/* ==========================================================
   WP Concierge LA — Public Site System
   ========================================================== */

html {
	scroll-behavior: smooth;
}

body {
	background: var(--wpcla-paper);
	color: var(--wpcla-text);
	font-family: var(--wpcla-font-body);
	font-size: var(--wpcla-fs-base);
	line-height: var(--wpcla-lh-body);
	-webkit-font-smoothing: antialiased;
}

body,
button,
input,
select,
textarea {
	font-family: var(--wpcla-font-body);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	color: var(--wpcla-ink);
	font-family: var(--wpcla-font-display);
	font-weight: var(--wpcla-weight-bold);
	line-height: var(--wpcla-lh-tight);
	letter-spacing: var(--wpcla-track-tight);
	text-wrap: balance;
}

h1 { font-size: var(--wpcla-fs-4xl); }
h2 { font-size: var(--wpcla-fs-3xl); }
h3 { font-size: var(--wpcla-fs-xl); }

p,
li {
	color: var(--wpcla-muted);
}

p {
	max-width: 72ch;
}

a {
	color: var(--wpcla-navy);
	text-underline-offset: 0.18em;
}

a:hover {
	color: var(--wpcla-copper-dark);
}

:focus-visible {
	outline: 0.1875rem solid var(--wpcla-focus);
	outline-offset: 0.1875rem;
}

::selection {
	background: var(--wpcla-paper-deep);
	color: var(--wpcla-ink);
}

/* ---------- Child-theme header ---------- */

.wpcla-header {
	position: relative;
	z-index: 50;
	background: rgba(250, 247, 242, 0.97);
	border-bottom: var(--wpcla-border-width) solid var(--wpcla-border);
	backdrop-filter: blur(0.875rem);
	-webkit-backdrop-filter: blur(0.875rem);
}

.wpcla-header__inner {
	width: min(calc(100% - (var(--wpcla-gutter) * 2)), var(--wpcla-shell));
	min-height: var(--wpcla-header-height);
	margin: var(--wpcla-s0) auto;
	display: flex;
	align-items: center;
	gap: var(--wpcla-s4);
}

.wpcla-brand {
	display: inline-flex;
	flex-direction: column;
	flex: 0 0 auto;
	color: var(--wpcla-ink);
	text-decoration: none;
}

.wpcla-brand:hover {
	color: var(--wpcla-ink);
}

.wpcla-brand__name {
	font-family: var(--wpcla-font-display);
	font-size: var(--wpcla-fs-md);
	font-weight: var(--wpcla-weight-bold);
	line-height: var(--wpcla-lh-heading);
	letter-spacing: var(--wpcla-track-tight);
}

.wpcla-brand__tag {
	margin-top: var(--wpcla-s1);
	color: var(--wpcla-muted);
	font-size: var(--wpcla-fs-xs);
	font-weight: var(--wpcla-weight-semibold);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.wpcla-nav {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: var(--wpcla-s3);
	white-space: nowrap;
}

.wpcla-nav a {
	color: var(--wpcla-ink);
	font-size: var(--wpcla-fs-sm);
	font-weight: var(--wpcla-weight-semibold);
	text-decoration: none;
}

.wpcla-nav a:hover {
	color: var(--wpcla-copper-dark);
}

.wpcla-nav .wpcla-nav__cta {
	padding: var(--wpcla-s1) var(--wpcla-s2);
	border: var(--wpcla-border-width) solid var(--wpcla-navy);
	border-radius: var(--wpcla-radius-sm);
	background: var(--wpcla-navy);
	color: var(--wpcla-white);
}

.wpcla-nav .wpcla-nav__cta:hover {
	border-color: var(--wpcla-copper-dark);
	background: var(--wpcla-copper-dark);
	color: var(--wpcla-white);
}

.wpcla-mobile-nav {
	display: none;
	margin-left: auto;
	position: relative;
}

.wpcla-mobile-nav summary {
	cursor: pointer;
	list-style: none;
	padding: var(--wpcla-s1) var(--wpcla-s2);
	border: var(--wpcla-border-width) solid var(--wpcla-border);
	border-radius: var(--wpcla-radius-sm);
	color: var(--wpcla-ink);
	font-weight: var(--wpcla-weight-semibold);
}

.wpcla-mobile-nav summary::-webkit-details-marker {
	display: none;
}

.wpcla-mobile-nav[open] nav {
	position: absolute;
	right: var(--wpcla-s0);
	top: calc(100% + var(--wpcla-s1));
	width: 17rem;
	display: grid;
	padding: var(--wpcla-s1);
	border: var(--wpcla-border-width) solid var(--wpcla-border);
	border-radius: var(--wpcla-radius-md);
	background: var(--wpcla-white);
	box-shadow: var(--wpcla-shadow-lift);
}

.wpcla-mobile-nav nav a {
	padding: var(--wpcla-s1) var(--wpcla-s2);
	color: var(--wpcla-ink);
	font-weight: var(--wpcla-weight-semibold);
	text-decoration: none;
}

/* ---------- Buttons ---------- */

.wp-block-button__link,
button,
input[type="submit"],
.ast-button,
.button {
	min-height: var(--wpcla-s6);
	padding: 0.875rem var(--wpcla-s3);
	border: var(--wpcla-border-width) solid var(--wpcla-navy);
	border-radius: var(--wpcla-radius-sm);
	background: var(--wpcla-navy);
	color: var(--wpcla-white);
	font-weight: var(--wpcla-weight-semibold);
	box-shadow: none;
	transition:
		background var(--wpcla-transition),
		border-color var(--wpcla-transition),
		color var(--wpcla-transition),
		transform var(--wpcla-transition);
}

.wp-block-button__link:hover,
button:hover,
input[type="submit"]:hover,
.ast-button:hover,
.button:hover {
	border-color: var(--wpcla-copper-dark);
	background: var(--wpcla-copper-dark);
	color: var(--wpcla-white);
	transform: translateY(-0.0625rem);
}

/* ---------- Internal pages ---------- */

body.page:not(.home) .site-content > .ast-container {
	width: min(calc(100% - (var(--wpcla-gutter) * 2)), var(--wpcla-shell));
	max-width: none;
	padding-left: var(--wpcla-s0);
	padding-right: var(--wpcla-s0);
}

body.page:not(.home) #primary {
	width: 100%;
	max-width: var(--wpcla-reading);
	margin: var(--wpcla-s10) auto var(--wpcla-s14);
	padding: var(--wpcla-s0);
}

body.page:not(.home) .entry-content h1:first-child {
	margin-bottom: var(--wpcla-s3);
	font-size: var(--wpcla-fs-4xl);
}

body.page:not(.home) .entry-content h2 {
	margin-top: var(--wpcla-s6);
	margin-bottom: var(--wpcla-s2);
	font-size: var(--wpcla-fs-2xl);
}

body.page:not(.home) .entry-content li {
	margin-bottom: var(--wpcla-s1);
}

/* ---------- Child-theme footer ---------- */

.wpcla-footer {
	margin-top: var(--wpcla-s12);
	background: var(--wpcla-navy);
	color: var(--wpcla-white);
}

.wpcla-footer__inner,
.wpcla-footer__legal {
	width: min(calc(100% - (var(--wpcla-gutter) * 2)), var(--wpcla-shell));
	margin: var(--wpcla-s0) auto;
}

.wpcla-footer__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: var(--wpcla-s8);
	padding: var(--wpcla-s8) var(--wpcla-s0);
}

.wpcla-footer__brand strong {
	display: block;
	margin-bottom: var(--wpcla-s2);
	font-family: var(--wpcla-font-display);
	font-size: var(--wpcla-fs-lg);
	letter-spacing: var(--wpcla-track-tight);
}

.wpcla-footer__brand p {
	max-width: 44rem;
	margin: var(--wpcla-s0);
	color: rgba(255, 255, 255, 0.76);
}

.wpcla-footer__nav {
	display: flex;
	align-items: flex-start;
	gap: var(--wpcla-s3);
}

.wpcla-footer__nav a {
	color: var(--wpcla-white);
	font-size: var(--wpcla-fs-sm);
	font-weight: var(--wpcla-weight-semibold);
	text-decoration: none;
}

.wpcla-footer__legal {
	padding: var(--wpcla-s2) var(--wpcla-s0) var(--wpcla-s4);
	display: flex;
	justify-content: space-between;
	gap: var(--wpcla-s2);
	border-top: var(--wpcla-border-width) solid rgba(255, 255, 255, 0.18);
	color: rgba(255, 255, 255, 0.60);
	font-size: var(--wpcla-fs-sm);
}

@media (max-width: 68rem) {
	.wpcla-nav {
		display: none;
	}

	.wpcla-mobile-nav {
		display: block;
	}
}

@media (max-width: 44rem) {
	.wpcla-brand__tag {
		display: none;
	}

	.wpcla-footer__inner {
		grid-template-columns: 1fr;
		gap: var(--wpcla-s4);
	}

	.wpcla-footer__nav {
		flex-wrap: wrap;
	}

	.wpcla-footer__legal {
		flex-direction: column;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}
