/*
 * Aja Estate — component & layout styles.
 * Design tokens come from theme.json (CSS custom properties --wp--preset--*).
 * This file adds the bespoke "Modern Minimal / warm editorial" component system:
 * header, hero, sections, cards, stats, steps, splits, photo bands, footer, motion.
 */

:root {
	--aja-header-h: 80px;
	--aja-maxw: 1300px;
	--aja-radius: 12px;
	--aja-radius-sm: 8px;
	--aja-shadow: 0 18px 50px -28px rgba(20, 17, 15, 0.45);
	--aja-shadow-sm: 0 10px 30px -20px rgba(20, 17, 15, 0.4);
	--aja-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--aja-ink-rgb: 20, 17, 15;
	/* AA-compliant terracotta for small text / links / eyebrows on light bg
	   (the brand clay #B25B3E is ~4.4:1 on paper — just under AA for body text;
	   the brighter clay is kept for buttons, icons and large display numbers). */
	--aja-clay-text: #9A4226;
}

/* ------------------------------- Base ------------------------------- */
html {
	scroll-behavior: smooth;
	/* Keep in-page anchor targets clear of the fixed header. */
	scroll-padding-top: calc(var(--aja-header-h) + 1rem);
}

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

::selection {
	background: var(--wp--preset--color--clay);
	color: var(--wp--preset--color--white);
}

h1, h2, h3, h4, h5, h6,
.wp-block-site-title,
.wp-block-post-title {
	font-optical-sizing: auto;
}

/* Tidier multi-line headings; never let a long word force overflow. */
h1, h2 {
	text-wrap: balance;
}
:where(h1, h2, h3, h4, h5, h6) {
	overflow-wrap: break-word;
}

img {
	max-width: 100%;
	height: auto;
}

a {
	transition: color 0.18s var(--aja-ease);
}

/* Visible keyboard focus everywhere (accessibility). */
:where(a, button, input, textarea, select, .wp-block-button__link, summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--clay);
	outline-offset: 3px;
	border-radius: 3px;
}

/* Skip-to-content link: off-screen until focused, then drops in below the top
   edge so keyboard users can jump past the header/nav straight to the page. */
.aja-skip-link {
	position: fixed;
	left: 50%;
	top: 0;
	z-index: 1000;
	transform: translate(-50%, -130%);
	padding: 0.7rem 1.2rem;
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
	font-weight: 600;
	text-decoration: none;
	border-radius: 0 0 var(--aja-radius-sm) var(--aja-radius-sm);
	box-shadow: var(--aja-shadow-sm);
	transition: transform 0.2s var(--aja-ease);
}
.aja-skip-link:focus {
	transform: translate(-50%, 0);
	color: var(--wp--preset--color--paper);
}
.admin-bar .aja-skip-link:focus { top: 32px; }
@media screen and (max-width: 782px) {
	.admin-bar .aja-skip-link:focus { top: 46px; }
}

/* Fixed header => offset all page content (incl. the home hero) so the bar
   sits above the content, never over it. */
body {
	padding-top: var(--aja-header-h);
}
/* Cancel WP's block-gap margin on <main> so the home hero starts flush right
   below the header bar (no blank paper strip). */
body.home main {
	margin-top: 0 !important;
}
/* Let the sand trust band sit flush under the hero — kill the block-gap that
   otherwise shows a thin strip of paper background between them. */
.aja-hero + .aja-trust-wrap {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
}
/* Push the fixed header below the WP admin bar for logged-in users. */
.admin-bar .aja-header {
	top: 32px;
}
@media screen and (max-width: 782px) {
	.admin-bar .aja-header { top: 46px; }
}

/* ----------------------------- Buttons ------------------------------ */
.wp-block-button__link {
	transition: background-color 0.2s var(--aja-ease), color 0.2s var(--aja-ease), transform 0.2s var(--aja-ease), box-shadow 0.2s var(--aja-ease);
	box-shadow: 0 1px 0 rgba(var(--aja-ink-rgb), 0.04);
}
.wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: var(--aja-shadow-sm);
}

/* Outline style: ink hairline that fills on hover. */
.wp-block-button.is-style-outline .wp-block-button__link {
	border: 1px solid var(--wp--preset--color--ink);
	color: var(--wp--preset--color--ink);
	background: transparent;
	box-shadow: none;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
}

/* Dark sections: light text. */
.aja-on-dark {
	color: var(--wp--preset--color--paper);
}
.aja-on-dark :is(h1, h2, h3, h4, h5, h6) {
	color: var(--wp--preset--color--paper);
}
.aja-on-dark p:not(.aja-eyebrow):not(.aja-stat__num) {
	color: rgba(250, 247, 242, 0.88);
}

/* On dark backgrounds (hero, bands, footer) invert outline buttons + links. */
.aja-on-dark .wp-block-button.is-style-outline .wp-block-button__link {
	border-color: rgba(250, 247, 242, 0.55);
	color: var(--wp--preset--color--paper);
}
.aja-on-dark .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--paper);
}

/* ----------------------------- Eyebrow ------------------------------ */
.aja-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--aja-clay-text);
	margin: 0 0 0.6rem;
}

/* Accent text/links on light backgrounds use the AA-compliant clay.
   (Dark sections override links/eyebrows to paper further below.) */
.entry-content a:where(:not(.wp-element-button)) {
	color: var(--aja-clay-text);
}
.aja-card .has-clay-color {
	color: var(--aja-clay-text);
}
.aja-eyebrow::before {
	content: "";
	width: 28px;
	height: 1px;
	background: currentColor;
	opacity: 0.8;
}
/* Centred eyebrows must be full-width flex — an inline-flex box ignores the
   parent's text-align:center and clings to the left edge. */
.has-text-align-center .aja-eyebrow,
.aja-eyebrow.has-text-align-center {
	display: flex;
	justify-content: center;
}

/* Lede paragraph */
.aja-lede {
	max-width: 52ch;
	color: var(--wp--preset--color--slate);
}

/* --------------------------- Section rhythm ------------------------- */
.aja-section {
	padding-block: clamp(3rem, 2rem + 3vw, 5rem);
}
.aja-section--tight {
	padding-block: clamp(2.5rem, 2rem + 2vw, 4rem);
}

/* ------------------------------ Header ------------------------------ */
.aja-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	min-height: var(--aja-header-h);
	display: flex;
	align-items: center;
	background: color-mix(in srgb, var(--wp--preset--color--paper) 90%, transparent);
	-webkit-backdrop-filter: saturate(140%) blur(10px);
	backdrop-filter: saturate(140%) blur(10px);
	border-bottom: 1px solid var(--wp--preset--color--line);
	transition: background-color 0.3s var(--aja-ease), border-color 0.3s var(--aja-ease), min-height 0.3s var(--aja-ease);
}
.aja-header > .wp-block-group {
	width: 100%;
}
.aja-header__bar {
	width: 100%;
	max-width: var(--aja-maxw);
	margin-inline: auto;
	padding-inline: clamp(1rem, 5vw, 2rem);
	gap: 1.25rem;
}
.aja-nav-cluster {
	gap: 1.1rem;
}

/* The header is a solid bar on every page (incl. home) — it sits above the hero
   rather than over it, so no transparent-over-photo treatment is needed. */

.aja-header .wp-block-navigation {
	font-size: 0.98rem;
	font-weight: 500;
}
.aja-header .wp-block-navigation a {
	color: var(--wp--preset--color--ink);
}
.aja-header .wp-block-navigation a:hover {
	color: var(--wp--preset--color--clay);
	text-decoration: none;
}

/* ------------------------------- Logo ------------------------------- */
.aja-logo {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	color: var(--wp--preset--color--ink);
	line-height: 1;
}
.aja-logo:hover {
	text-decoration: none;
}
/* Full "Aja Estate" lockup SVG — inherits `color` (dark ink in the header,
   light paper on the footer) via currentColor; CSS controls only its height. */
.aja-logo__full {
	display: block;
	height: 44px;
	width: auto;
	flex: none;
}

/* ------------------------- Language switcher ------------------------ */
.pll-switcher {
	list-style: none;
	display: flex;
	align-items: center;
	gap: 0.35rem;
	margin: 0;
	padding: 0;
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.pll-switcher li { line-height: 1; }
.pll-switcher a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 0.35rem;
	color: var(--wp--preset--color--slate);
	text-decoration: none;
}
.pll-switcher a:hover { color: var(--wp--preset--color--clay); }
.pll-switcher .current-lang a {
	color: var(--wp--preset--color--ink);
	font-weight: 700;
}

/* -------------------------- Page title band ------------------------- */
.aja-page-title {
	background-color: var(--wp--preset--color--sand);
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.aja-page-title .wp-block-post-title {
	margin: 0;
}

/* -------------------------------- Hero ------------------------------ */
.aja-hero {
	position: relative;
	min-height: min(82vh, 760px);
	/* Bottom-aligned vertical stack of hero copy (NOT a horizontal row). */
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: flex-start;
	color: var(--wp--preset--color--paper);
	background-image: url("../images/hero.jpg");
	background-size: cover;
	background-position: center 35%;
	padding-top: clamp(2.5rem, 1.5rem + 5vw, 5.5rem) !important;
	padding-bottom: clamp(2.5rem, 1.5rem + 5vw, 5.5rem) !important;
	/* Align hero copy to the same left margin as the wide content grid. */
	padding-inline: max(var(--wp--preset--spacing--40), calc((100% - var(--wp--style--global--wide-size)) / 2)) !important;
	overflow: hidden;
}
.aja-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	/* Two layered scrims: a left-to-right wash that darkens the text column
	   (the house stays bright on the right) + a gentle top/bottom vignette for
	   the eyebrow and stats. Text reads clearly; the photo stays the star. */
	background:
		linear-gradient(100deg, rgba(var(--aja-ink-rgb), 0.8) 0%, rgba(var(--aja-ink-rgb), 0.58) 24%, rgba(var(--aja-ink-rgb), 0.18) 46%, rgba(var(--aja-ink-rgb), 0) 64%),
		linear-gradient(180deg, rgba(var(--aja-ink-rgb), 0.3) 0%, rgba(var(--aja-ink-rgb), 0) 30%, rgba(var(--aja-ink-rgb), 0) 58%, rgba(var(--aja-ink-rgb), 0.6) 100%);
	z-index: 0;
}
/* On mobile the hero copy is centred (not a left column), so a vertical wash
   reads better than the left scrim. */
@media (max-width: 781px) {
	.aja-hero::after {
		background: linear-gradient(180deg, rgba(var(--aja-ink-rgb), 0.45) 0%, rgba(var(--aja-ink-rgb), 0.4) 45%, rgba(var(--aja-ink-rgb), 0.62) 100%);
	}
}
.aja-hero > * {
	position: relative;
	z-index: 1;
	/* Defeat the constrained-layout auto-centering so every line shares one
	   left edge instead of each block centering independently. */
	margin-inline: 0 !important;
}
.aja-hero h1 {
	color: var(--wp--preset--color--paper);
	/* Headline is a full brand sentence, so dial the display size down and widen
	   the measure a touch so it reads as a few balanced lines, not a wall. */
	font-size: clamp(2rem, 1.35rem + 2.6vw, 3.9rem);
	line-height: 1.12;
	max-width: 22ch;
	overflow-wrap: break-word;
	text-shadow: 0 2px 26px rgba(var(--aja-ink-rgb), 0.5);
}
.aja-hero .aja-eyebrow {
	color: var(--wp--preset--color--paper);
	text-shadow: 0 1px 14px rgba(var(--aja-ink-rgb), 0.55);
}
.aja-hero .aja-lede {
	/* Match the heading's serif so the hero copy reads as one voice. */
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 400;
	color: rgba(250, 247, 242, 0.95);
	max-width: 40ch;
	text-shadow: 0 1px 16px rgba(var(--aja-ink-rgb), 0.5);
}

/* Hero meta strip (under the buttons) */
.aja-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem 2.5rem;
	margin-top: 2.2rem;
	padding-top: 1.6rem;
	border-top: 1px solid rgba(250, 247, 242, 0.25);
}
.aja-hero__meta .aja-stat__num { color: var(--wp--preset--color--paper); }
.aja-hero__meta .aja-stat__label { color: rgba(250, 247, 242, 0.8); }

/* ------------------------------- Stats ------------------------------ */
/* The .aja-stat group uses WP's constrained layout, which auto-centres its
   children (margin-inline:auto). That strands the narrow label far to the
   right inside full-width stacked columns (tablet/mobile). Pin them flush. */
.aja-stat__num,
.aja-stat__label {
	margin-inline: 0 !important;
}
.aja-stat__num {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(2.2rem, 1.6rem + 2.5vw, 3.2rem);
	line-height: 1;
	color: var(--wp--preset--color--clay);
	font-weight: 400;
}
.aja-stat__label {
	display: block;
	margin-top: 0.4rem;
	font-size: 0.92rem;
	color: var(--wp--preset--color--slate);
	max-width: 22ch;
}

/* --------------------------- Service cards -------------------------- */
.aja-service {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--aja-radius);
	height: 100%;
	overflow: hidden;
	transition: transform 0.25s var(--aja-ease), box-shadow 0.25s var(--aja-ease), border-color 0.25s var(--aja-ease);
}
.aja-service {
	position: relative;
}
.aja-service:hover {
	transform: translateY(-4px);
	box-shadow: var(--aja-shadow);
	border-color: transparent;
}
.aja-icon-badge {
	width: 56px;
	height: 56px;
	border-radius: 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: color-mix(in srgb, var(--wp--preset--color--clay) 12%, var(--wp--preset--color--paper));
	color: var(--wp--preset--color--clay);
	margin-bottom: 0.3rem;
}
.aja-icon-badge svg { width: 28px; height: 28px; }

/* Generic card (kept for compatibility) */
.aja-card {
	background-color: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--aja-radius);
	height: 100%;
	transition: transform 0.2s var(--aja-ease), box-shadow 0.2s var(--aja-ease), border-color 0.2s var(--aja-ease);
}
.aja-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--aja-shadow);
	border-color: transparent;
}

/* Clickable team-member card (whole card is a link to the member's page). */
.aja-card--link .aja-card__link {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.35rem;
	height: 100%;
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	text-decoration: none;
	color: inherit;
}
.aja-card__name {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.35rem;
	line-height: 1.2;
	margin-top: 0.9rem;
	color: var(--wp--preset--color--ink);
}
.aja-card__role {
	color: var(--aja-clay-text);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.82rem;
	font-weight: 700;
}
.aja-card__more {
	margin-top: 0.7rem;
	color: var(--aja-clay-text);
	font-weight: 600;
	font-size: 0.9rem;
}
.aja-card--link:hover .aja-card__more,
.aja-card__link:focus-visible .aja-card__more {
	text-decoration: underline;
}

/* Team page — large editorial profile cards based on the supplied reference. */
.aja-team-page .wp-block-columns {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
}
.aja-team-page .wp-block-column {
	display: flex;
	min-width: 0;
}
.aja-team-profile {
	display: flex;
	flex-direction: column;
	width: 100%;
	min-width: 0;
	overflow: hidden;
	background: var(--wp--preset--color--white);
	border: 2px solid color-mix(in srgb, var(--wp--preset--color--ink) 86%, #27465c);
	border-radius: 16px;
	box-shadow: 0 18px 42px -28px rgba(var(--aja-ink-rgb), 0.55);
	transition: transform 0.25s var(--aja-ease), box-shadow 0.25s var(--aja-ease);
}
.aja-team-profile:hover,
.aja-team-profile:focus-within {
	transform: translateY(-4px);
	box-shadow: 0 24px 54px -30px rgba(var(--aja-ink-rgb), 0.68);
}
.aja-team-profile__media {
	position: relative;
	aspect-ratio: 4 / 4.7;
	overflow: hidden;
	background: var(--wp--preset--color--sand);
}
.aja-team-profile__media > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 18%;
	transition: transform 0.55s var(--aja-ease);
}
.aja-team-profile:hover .aja-team-profile__media > img,
.aja-team-profile:focus-within .aja-team-profile__media > img {
	transform: scale(1.025);
}
.aja-team-profile__badge {
	position: absolute;
	z-index: 2;
	top: 1rem;
	left: 1rem;
	max-width: calc(100% - 2rem);
	padding: 0.55rem 0.85rem;
	border-radius: 999px;
	background: color-mix(in srgb, var(--wp--preset--color--ink) 88%, #294c62);
	color: var(--wp--preset--color--white);
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.035em;
	text-transform: uppercase;
}
.aja-team-profile__overlay {
	position: absolute;
	z-index: 1;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	background: rgba(73, 72, 56, 0.76);
	opacity: 0;
	text-decoration: none;
	transition: opacity 0.28s var(--aja-ease);
}
.aja-team-profile__overlay:hover,
.aja-team-profile__overlay:focus-visible {
	opacity: 1;
}
.aja-team-profile__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 0.9rem 1.35rem;
	border-radius: 12px;
	background: var(--wp--preset--color--clay);
	color: var(--wp--preset--color--white);
	font-size: 1rem;
	font-weight: 700;
	box-shadow: var(--aja-shadow-sm);
}
.aja-team-profile__body {
	flex: 1;
	padding: 1.45rem 1.55rem 1.35rem;
}
.aja-team-profile__name {
	margin: 0;
	font-family: var(--wp--preset--font-family--body);
	font-size: clamp(1rem, 0.9rem + 0.3vw, 1.18rem);
	font-weight: 700;
	line-height: 1.32;
}
.aja-team-profile__name a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}
.aja-team-profile__name a:hover {
	color: var(--aja-clay-text);
}
.aja-team-profile__role {
	margin: 0.7rem 0 0;
	color: var(--aja-clay-text);
	font-size: 0.9rem;
	line-height: 1.45;
}
.aja-team-profile__contacts {
	display: grid;
	gap: 0.85rem;
	margin: 0;
	padding: 1.25rem 1.55rem 1.4rem;
	border-top: 1px solid var(--wp--preset--color--line);
	background: color-mix(in srgb, var(--wp--preset--color--sand) 34%, var(--wp--preset--color--white));
	font-style: normal;
}
.aja-team-profile__contacts a {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	min-width: 0;
	color: var(--wp--preset--color--ink);
	font-size: 0.88rem;
	line-height: 1.35;
	text-decoration: none;
}
.aja-team-profile__contacts a:hover {
	color: var(--aja-clay-text);
}
.aja-team-profile__contacts svg {
	width: 16px;
	height: 16px;
	flex: none;
	color: var(--aja-clay-text);
}
.aja-team-profile__contacts span {
	min-width: 0;
	overflow-wrap: anywhere;
}

/* ------------------------- Feature (why-us) ------------------------- */
/* Features and steps are otherwise bare text on the pale paper bg, which reads
   as empty floating blobs across the wide row. Give them the same quiet card
   surface as the service cards so each column carries visual weight. */
.aja-feature,
.aja-step {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--aja-radius);
	height: 100%;
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	transition: transform 0.25s var(--aja-ease), box-shadow 0.25s var(--aja-ease), border-color 0.25s var(--aja-ease);
}
/* Features/steps aren't links, so they get a quiet hover (no lift) — only the
   genuinely clickable cards (service, team, testimonial) rise on hover. */
.aja-feature:hover,
.aja-step:hover {
	box-shadow: var(--aja-shadow-sm);
	border-color: color-mix(in srgb, var(--wp--preset--color--clay) 35%, var(--wp--preset--color--line));
}
.aja-feature .aja-icon-badge {
	width: 46px;
	height: 46px;
	border-radius: 12px;
}
.aja-feature .aja-icon-badge svg { width: 22px; height: 22px; }

/* ----------------------------- Checklist ---------------------------- */
.aja-checklist {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.75rem;
}
.aja-checklist li {
	position: relative;
	padding-left: 2rem;
	color: var(--wp--preset--color--ink);
}
/* On dark photo bands the checklist text must be light, not ink. */
.aja-on-dark .aja-checklist li,
.aja-band .aja-checklist li {
	color: var(--wp--preset--color--paper);
}
.aja-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.15em;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 50%;
	background: color-mix(in srgb, var(--wp--preset--color--clay) 14%, var(--wp--preset--color--paper));
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23B25B3E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
}
/* Keep the check badge readable on dark too (solid light disc + clay tick). */
.aja-on-dark .aja-checklist li::before,
.aja-band .aja-checklist li::before {
	background-color: var(--wp--preset--color--paper);
}

/* --------------------------- Split (image) -------------------------- */
.aja-split__media img {
	width: 100%;
	border-radius: var(--aja-radius);
	box-shadow: var(--aja-shadow);
	display: block;
	object-fit: cover;
}

/* ---------------------------- Photo band ---------------------------- */
.aja-band {
	position: relative;
	color: var(--wp--preset--color--paper);
	background-size: cover;
	background-position: center;
	overflow: hidden;
}
.aja-band::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(var(--aja-ink-rgb), 0.55), rgba(var(--aja-ink-rgb), 0.72));
	z-index: 0;
}
.aja-band > * { position: relative; z-index: 1; }
.aja-band--land { background-image: url("../images/land.jpg"); }
.aja-band h2, .aja-band .aja-eyebrow { color: var(--wp--preset--color--paper); }
.aja-band .aja-eyebrow { text-shadow: 0 1px 14px rgba(var(--aja-ink-rgb), 0.6); }
.aja-band p { color: rgba(250, 247, 242, 0.9); }

/* ---------------------------- Process steps ------------------------- */
.aja-step__num {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.1rem;
	font-weight: 600;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--clay);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--clay) 45%, transparent);
	margin-bottom: 0.4rem;
}

/* ----------------------------- Testimonial -------------------------- */
.aja-quote {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 400;
	font-size: clamp(1.5rem, 1.1rem + 1.8vw, 2.3rem);
	line-height: 1.3;
	letter-spacing: -0.01em;
}
.aja-quote--mark::before {
	content: "\201C";
	display: block;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 4rem;
	line-height: 0.6;
	color: var(--wp--preset--color--clay);
	margin-bottom: 0.6rem;
}

/* ----------------------- Testimonials / reviews --------------------- */
/* Each approved review is a single-line row: initial avatar + quote (clipped to
   one line with an ellipsis; full text in the title tooltip and the DOM) +
   author · city · date. Rendered from moderated WP comments by
   [aja_testimonials], followed by a centred "leave a review" panel. */
.aja-testimonials-block { margin-top: var(--wp--preset--spacing--50); }

.aja-reviews {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.7rem;
}
.aja-review {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.9rem;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--aja-radius-sm);
	padding: 0.9rem 1.15rem;
	transition: border-color 0.2s var(--aja-ease), box-shadow 0.2s var(--aja-ease);
}
.aja-review:hover {
	border-color: color-mix(in srgb, var(--wp--preset--color--clay) 45%, var(--wp--preset--color--line));
	box-shadow: var(--aja-shadow);
}
.aja-review__avatar {
	flex: none;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.05rem;
	line-height: 1;
	color: var(--wp--preset--color--clay);
	background: color-mix(in srgb, var(--wp--preset--color--clay) 14%, var(--wp--preset--color--sand));
}
/* Full comment on its own line beneath the avatar + byline, wrapping freely
   however long it runs (previously clamped to a single ellipsised line, which
   let long reviews overflow the card). */
.aja-review__quote {
	order: 3;
	flex-basis: 100%;
	min-width: 0;
	margin: 0;
	font-family: var(--wp--preset--font-family--body);
	font-style: normal;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--wp--preset--color--ink);
	overflow-wrap: anywhere;
}
.aja-review__who {
	flex: 1 1 auto;
	min-width: 0;
	font-size: 0.85rem;
	color: var(--wp--preset--color--slate);
}
.aja-review__author {
	font-weight: 700;
	color: var(--wp--preset--color--ink);
}
.aja-review__sub::before {
	content: "·";
	margin: 0 0.4rem;
}
.aja-review__sub time { font-variant-numeric: tabular-nums; }
.aja-reviews__empty {
	color: var(--wp--preset--color--slate);
	margin: 0;
}

/* Leave-a-review form — a centred panel so it reads as a distinct invitation
   beneath the reviews rather than floating on the section background. */
.aja-review-form {
	margin: var(--wp--preset--spacing--60) auto 0;
	max-width: 760px;
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--aja-radius);
}
.aja-review-form__title {
	font-size: 1.5rem;
	margin: 0 0 1.25rem;
}
.aja-form__opt {
	font-weight: 400;
	color: var(--wp--preset--color--slate);
}

/* Per-team-member testimonial groups */
.aja-tgroup + .aja-tgroup {
	margin-top: var(--wp--preset--spacing--60);
	padding-top: var(--wp--preset--spacing--60);
	border-top: 1px solid var(--wp--preset--color--line);
}
.aja-tgroup__head {
	display: flex;
	align-items: center;
	gap: 1rem;
}
.aja-tgroup__avatar {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	overflow: hidden;
	margin: 0;
	flex: none;
	background: color-mix(in srgb, var(--wp--preset--color--clay) 12%, var(--wp--preset--color--sand));
}
.aja-tgroup__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 18%;
	display: block;
}
.aja-tgroup__role {
	color: var(--aja-clay-text);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
	margin: 0;
}

/* ----------------------------- Avatars ------------------------------ */
.aja-avatar {
	width: 116px;
	height: 116px;
	border-radius: 50%;
	overflow: hidden;
	margin: 0 auto;
	background: color-mix(in srgb, var(--wp--preset--color--clay) 12%, var(--wp--preset--color--sand));
	/* initials fallback if no photo */
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 2.2rem;
	box-shadow: 0 10px 30px -18px rgba(var(--aja-ink-rgb), 0.5);
}
.aja-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 18%;
	display: block;
}

/* --------------------------- Contact info --------------------------- */
.aja-contact-row {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
}
/* Let the text column shrink/wrap instead of overflowing next to the icon. */
.aja-contact-row > .wp-block-group:not(.aja-icon-badge) {
	min-width: 0;
}
.aja-contact-row a {
	overflow-wrap: break-word;
}
.aja-contact-row .aja-icon-badge {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	flex: none;
}
.aja-contact-row .aja-icon-badge svg { width: 20px; height: 20px; }

/* ------------------------------ Map -------------------------------- */
.aja-map iframe {
	display: block;
	width: 100%;
	height: clamp(320px, 45vh, 460px);
	min-height: 0;
	border: 0;
	border-radius: var(--aja-radius);
}

/* ------------------------------ Footer ------------------------------ */
.aja-footer {
	background-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
}
.aja-footer a { color: var(--wp--preset--color--paper); text-decoration: none; }
.aja-footer a:hover { color: var(--wp--preset--color--clay); }
.aja-footer .aja-logo { color: var(--wp--preset--color--paper); }
/* Footer link columns read as plain links, not bulleted lists. */
.aja-footer .wp-block-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.aja-footer h3 {
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: rgba(250, 247, 242, 0.6);
	font-family: var(--wp--preset--font-family--body);
	font-weight: 600;
}
.aja-social {
	display: flex;
	gap: 0.6rem;
}
.aja-social a {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(250, 247, 242, 0.25);
	transition: background-color 0.2s var(--aja-ease), border-color 0.2s var(--aja-ease), color 0.2s var(--aja-ease);
}
.aja-social a:hover {
	background: var(--wp--preset--color--clay);
	border-color: var(--wp--preset--color--clay);
	color: var(--wp--preset--color--white);
}
.aja-social svg { width: 18px; height: 18px; }

/* ------------------------------ Motion ------------------------------ */
.aja-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity 0.7s var(--aja-ease), transform 0.7s var(--aja-ease);
	will-change: opacity, transform;
}
.aja-reveal.is-visible {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.aja-reveal { opacity: 1; transform: none; transition: none; }
	.wp-block-button__link:hover,
	.aja-service:hover,
	.aja-card:hover { transform: none; }
}

/* --------------------------- Responsive ----------------------------- */
/* Footer: between the WP stacking breakpoint and desktop the four fixed-width
   columns get squeezed by the large gap and wrap mid-word. Drop to 2-up. */
@media (min-width: 782px) and (max-width: 1023px) {
	.aja-footer .wp-block-columns {
		flex-wrap: wrap !important;
		row-gap: var(--wp--preset--spacing--60);
	}
	.aja-footer .wp-block-columns > .wp-block-column {
		flex-basis: calc(50% - 2rem) !important;
		flex-grow: 1;
	}
}

/* The header valuation button only appears on the widest viewports — below
   ~1340px the logo + full nav + language switcher + phone pill + valuation
   button no longer fit on one row and the bar wraps. The selector is scoped to
   .aja-header so it out-specifies core's `.wp-block-buttons{display:flex}` — a
   plain `.aja-cta-valuation` (equal specificity, earlier in source order) lost
   to core and the button stayed visible at every width. */
@media (max-width: 1340px) {
	.aja-header .aja-cta-valuation { display: none; }
}

/* Collapse the primary nav into the hamburger overlay at/below 1100px. Core's
   "mobile" overlay only engages under 600px, but the full horizontal nav +
   language switcher + phone pill don't fit beside the logo until ~1100px, so
   between 600–1100px the header bar wrapped to 2–3 rows and overran the
   fixed-height offset (--aja-header-h), overlapping the page content. */
@media (max-width: 1100px) {
	.aja-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		padding: 0;
		color: var(--wp--preset--color--ink);
		border-radius: 4px;
	}
	.aja-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.aja-header .wp-block-navigation__responsive-container.is-menu-open {
		display: flex !important;
		position: fixed !important;
		inset: 0 !important;
		z-index: 1000 !important;
		width: 100vw;
		height: 100vh;
		height: 100dvh;
		box-sizing: border-box;
		overflow-y: auto;
		background: var(--wp--preset--color--paper) !important;
		color: var(--wp--preset--color--ink) !important;
		padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
	}
	.aja-header .wp-block-navigation__responsive-close,
	.aja-header .wp-block-navigation__responsive-dialog {
		width: 100%;
		max-width: none;
	}
	.aja-header .wp-block-navigation__responsive-container-close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		top: 0;
		right: 0;
		width: 44px;
		height: 44px;
		color: var(--wp--preset--color--ink);
	}
	.aja-header .wp-block-navigation__responsive-container-content {
		align-items: stretch !important;
		justify-content: center;
		min-height: calc(100dvh - 2rem);
		padding-top: 4rem !important;
	}
	.aja-header .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
		align-items: stretch !important;
		gap: 0 !important;
		width: 100%;
	}
	.aja-header .wp-block-navigation__responsive-container-content .wp-block-navigation-item {
		width: 100%;
		border-bottom: 1px solid var(--wp--preset--color--line);
	}
	.aja-header .wp-block-navigation__responsive-container-content .wp-block-navigation-item:first-child {
		border-top: 1px solid var(--wp--preset--color--line);
	}
	.aja-header .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
		display: flex;
		align-items: center;
		width: 100%;
		min-height: 58px;
		padding: 0.75rem 0;
		font-family: var(--wp--preset--font-family--heading);
		font-size: clamp(1.35rem, 5vw, 1.8rem);
		line-height: 1.2;
	}
}

@media (max-width: 781px) {
	:root { --aja-header-h: 68px; }
	.aja-logo__full { height: 34px; }
	.aja-hero { min-height: 78vh; justify-content: center; }
	.aja-hero h1 { max-width: 100%; }
	.aja-hero__meta { gap: 1rem 1.8rem; }
	.aja-header .aja-cta-phone { display: none; }
	.aja-nav-cluster {
		flex-wrap: nowrap;
		gap: 0.6rem;
	}
}

@media (min-width: 782px) and (max-width: 1050px) {
	.aja-team-page .wp-block-columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 781px) {
	.aja-team-page .wp-block-columns {
		grid-template-columns: minmax(0, 1fr);
	}
	.aja-team-page .wp-block-column {
		width: 100%;
		max-width: 470px;
		margin-inline: auto;
	}
}

@media (max-width: 600px) {
	/* Keep logo + hamburger + language switcher on a single row so the
	   header never grows past the fixed --aja-header-h offset. */
	.aja-header__bar { flex-wrap: nowrap; }
}

@media (max-width: 480px) {
	.aja-logo__full {
		height: 28px;
		max-width: 44vw;
	}
	.pll-switcher {
		gap: 0.1rem;
		font-size: 0.72rem;
		letter-spacing: 0.04em;
	}
	.pll-switcher a { padding-inline: 0.2rem; }
}

/* =====================================================================
   Component additions — section heads, clickable cards, chips, trust
   strip, listings, FAQ, CTA panel, forms, consent map, hero cue,
   nav state, breadcrumb, mobile CTA bar.
   ===================================================================== */

/* Left-aligned section head — eyebrow + h2 + lede line up with the grid below. */
.aja-section-head {
	margin-bottom: var(--wp--preset--spacing--50);
}
.aja-section-head h2 { margin-top: 0.4rem; }
.aja-section-head .aja-lede { max-width: 60ch; margin-top: 0.9rem; }

/* Tabular figures so numbers align. */
.aja-stat__num,
.aja-listing__meta {
	font-variant-numeric: tabular-nums;
}

/* Whole-card click: the visible "more" link stretches to cover the service card. */
.aja-stretched-link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
.aja-service__more { color: var(--aja-clay-text); }
.aja-service:hover .aja-service__more a { text-decoration: underline; }

/* Language / specialization chips on team cards. */
.aja-card__langs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.35rem;
	margin-top: 0.6rem;
}
.aja-chip {
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	padding: 0.18rem 0.55rem;
	border-radius: 999px;
	color: var(--wp--preset--color--slate);
	background: color-mix(in srgb, var(--wp--preset--color--clay) 8%, var(--wp--preset--color--sand));
	border: 1px solid var(--wp--preset--color--line);
}

/* Trust / credentials strip. Widened past the 820px content cap so all four
   items sit on one row on desktop; still wraps on narrower screens. */
.aja-trust {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1.25rem 2rem;
	max-width: var(--aja-maxw);
	margin-inline: auto;
}
.aja-trust__item {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	font-weight: 600;
	font-size: 0.95rem;
}
.aja-trust__item .aja-icon-badge { width: 40px; height: 40px; border-radius: 10px; flex: none; }
.aja-trust__item .aja-icon-badge svg { width: 20px; height: 20px; }

/* Recently-sold listing teaser. */
.aja-listings {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--40);
	margin-top: var(--wp--preset--spacing--50);
}
.aja-listing {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--aja-radius);
	overflow: hidden;
	transition: transform 0.25s var(--aja-ease), box-shadow 0.25s var(--aja-ease);
}
.aja-listing:hover { transform: translateY(-4px); box-shadow: var(--aja-shadow); }
.aja-listing__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.aja-listing__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.aja-listing__badge {
	position: absolute;
	top: 0.8rem;
	left: 0.8rem;
	background: var(--wp--preset--color--clay);
	color: var(--wp--preset--color--white);
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 0.3rem 0.7rem;
	border-radius: 999px;
}
.aja-listing__body { padding: var(--wp--preset--spacing--40); }
.aja-listing__loc {
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 700;
	color: var(--aja-clay-text);
	margin: 0 0 0.3rem;
}
.aja-listing__title { font-family: var(--wp--preset--font-family--heading); font-size: 1.25rem; margin: 0 0 0.3rem; }
.aja-listing__meta { color: var(--wp--preset--color--slate); font-size: 0.9rem; margin: 0; }
.aja-listing__price {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.2rem;
	color: var(--wp--preset--color--ink);
	margin: 0.85rem 0 0;
	padding-top: 0.75rem;
	border-top: 1px solid var(--wp--preset--color--line);
}

/* FAQ accordion (native <details>). */
.aja-faq { max-width: 820px; margin-top: var(--wp--preset--spacing--50); }
.aja-faq__item { border-bottom: 1px solid var(--wp--preset--color--line); }
.aja-faq__item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.15rem 0;
	cursor: pointer;
	list-style: none;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.15rem;
	color: var(--wp--preset--color--ink);
}
.aja-faq__item summary::-webkit-details-marker { display: none; }
.aja-faq__icon { position: relative; flex: none; width: 18px; height: 18px; }
.aja-faq__icon::before,
.aja-faq__icon::after {
	content: "";
	position: absolute;
	background: var(--wp--preset--color--clay);
	transition: transform 0.25s var(--aja-ease), opacity 0.25s var(--aja-ease);
}
.aja-faq__icon::before { top: 8px; left: 0; width: 18px; height: 2px; }
.aja-faq__icon::after { left: 8px; top: 0; width: 2px; height: 18px; }
.aja-faq__item[open] .aja-faq__icon::after { transform: scaleY(0); opacity: 0; }
.aja-faq__a { padding: 0 0 1.2rem; color: var(--wp--preset--color--slate); max-width: 70ch; }
.aja-faq__a p { margin: 0; }

/* CTA panel — rounded ink card floating on paper (separated from the footer). */
.aja-cta-panel { box-shadow: var(--aja-shadow); }

/* Hero scroll cue. */
.aja-hero__scroll {
	position: absolute;
	left: 50%;
	bottom: 1.1rem;
	transform: translateX(-50%);
	z-index: 2;
	display: inline-flex;
	width: 42px;
	height: 42px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	color: var(--wp--preset--color--paper);
	border: 1px solid rgba(250, 247, 242, 0.4);
	background: rgba(20, 17, 15, 0.2);
	animation: aja-bob 1.8s var(--aja-ease) infinite;
}
.aja-hero__scroll svg { width: 22px; height: 22px; }
@keyframes aja-bob {
	0%, 100% { transform: translate(-50%, 0); }
	50% { transform: translate(-50%, 6px); }
}

/* Process step connector (desktop). */
@media (min-width: 782px) {
	.aja-process .wp-block-column { position: relative; }
	.aja-process .wp-block-column + .wp-block-column::before {
		content: "";
		position: absolute;
		top: calc(var(--wp--preset--spacing--50) + 21px);
		left: calc(var(--wp--preset--spacing--50) / -2 - 1px);
		width: var(--wp--preset--spacing--50);
		height: 2px;
		background: color-mix(in srgb, var(--wp--preset--color--clay) 45%, transparent);
	}
}

/* Stats with dividers (About page). */
@media (min-width: 782px) {
	.aja-stats .wp-block-column + .wp-block-column {
		border-left: 1px solid var(--wp--preset--color--line);
		padding-left: var(--wp--preset--spacing--50);
	}
}

/* Contact / valuation form. */
.aja-form { display: grid; gap: 1rem; }
.aja-form__row { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
.aja-form label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 0.35rem; color: var(--wp--preset--color--slate); }
.aja-form input,
.aja-form select,
.aja-form textarea {
	box-sizing: border-box; /* keep width:100% + padding + border inside the column (no overflow) */
	width: 100%;
	font: inherit;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--aja-radius-sm);
	padding: 0.7rem 0.85rem;
}
.aja-form textarea { min-height: 130px; resize: vertical; }
.aja-form input:focus,
.aja-form select:focus,
.aja-form textarea:focus { outline: 2px solid var(--wp--preset--color--clay); outline-offset: 1px; border-color: transparent; }
.aja-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.aja-form button {
	justify-self: start;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--clay);
	border: 0;
	border-radius: 4px;
	padding: 0.9rem 1.8rem;
	transition: background-color 0.2s var(--aja-ease), transform 0.2s var(--aja-ease);
}
.aja-form button:hover { background: var(--wp--preset--color--ink); transform: translateY(-2px); }
.aja-form__note { font-size: 0.8rem; color: var(--wp--preset--color--slate); margin: 0; }
.aja-form__success {
	padding: 1rem 1.25rem;
	border-radius: var(--aja-radius-sm);
	background: color-mix(in srgb, var(--wp--preset--color--clay) 12%, var(--wp--preset--color--paper));
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--clay) 35%, var(--wp--preset--color--line));
	color: var(--wp--preset--color--ink);
}
.aja-on-dark .aja-form label { color: rgba(250, 247, 242, 0.8); }
.aja-on-dark .aja-form input,
.aja-on-dark .aja-form select,
.aja-on-dark .aja-form textarea {
	background: rgba(250, 247, 242, 0.08);
	border-color: rgba(250, 247, 242, 0.25);
	color: var(--wp--preset--color--paper);
}
.aja-on-dark .aja-form input::placeholder,
.aja-on-dark .aja-form textarea::placeholder { color: rgba(250, 247, 242, 0.5); }
.aja-on-dark .aja-form__note { color: rgba(250, 247, 242, 0.7); }

/* Consent map (no Google cookies until the visitor opts in — GDPR). */
.aja-map-consent {
	position: relative;
	border-radius: var(--aja-radius);
	overflow: hidden;
	/* White card so the placeholder reads as a distinct surface — it previously
	   sat on the sand section background tinted with sand, so it was nearly
	   invisible (a big beige void). */
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	box-shadow: var(--aja-shadow-sm);
	min-height: clamp(300px, 42vh, 420px);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.8rem;
	text-align: center;
	padding: 2rem;
}
.aja-map-consent__note { max-width: 46ch; color: var(--wp--preset--color--slate); margin: 0; font-size: 0.92rem; }
.aja-map-consent iframe { width: 100%; height: clamp(300px, 42vh, 420px); border: 0; display: block; }

/* Active navigation item. */
.aja-header .wp-block-navigation .current-menu-item > a,
.aja-header .wp-block-navigation a[aria-current] { color: var(--wp--preset--color--clay); }

/* Breadcrumb in the page-title band. */
.aja-breadcrumb { font-size: 0.85rem; color: var(--wp--preset--color--slate); margin: 0 0 0.6rem; }
.aja-breadcrumb a { color: var(--wp--preset--color--slate); }
.aja-breadcrumb a:hover { color: var(--wp--preset--color--clay); }
.aja-breadcrumb span[aria-current] { color: var(--wp--preset--color--ink); font-weight: 600; }

/* Mobile sticky call / contact bar. */
.aja-mobile-cta { display: none; }
@media (max-width: 781px) {
	.aja-mobile-cta {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 1px;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 90;
		background: var(--wp--preset--color--line);
		box-shadow: 0 -8px 24px -16px rgba(var(--aja-ink-rgb), 0.5);
	}
	.aja-mobile-cta a {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 0.5rem;
		min-height: 52px;
		font-weight: 600;
		text-decoration: none;
		background: var(--wp--preset--color--paper);
		color: var(--wp--preset--color--ink);
	}
	.aja-mobile-cta a.aja-mobile-cta__call { background: var(--wp--preset--color--clay); color: var(--wp--preset--color--white); }
	.aja-mobile-cta svg { width: 18px; height: 18px; }
	body { padding-bottom: 52px; }
}

/* 2×2 "why-us" on tablet for better density. */
@media (min-width: 782px) and (max-width: 1023px) {
	.aja-why .wp-block-columns { flex-wrap: wrap !important; row-gap: var(--wp--preset--spacing--50); }
	.aja-why .wp-block-columns > .wp-block-column { flex-basis: calc(50% - var(--wp--preset--spacing--50) / 2) !important; flex-grow: 0; }
}

/* Listings + form responsive. */
@media (max-width: 900px) { .aja-listings { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) {
	.aja-listings { grid-template-columns: 1fr; }
	.aja-form__row { grid-template-columns: 1fr; }
}
