/* ==========================================================================
   Aviatrix theme. Tokens come from theme.json (--wp--preset--*).
   Section rhythm: white base, one tint per section, yellow as the bookend.
   ========================================================================== */

:root {
	--avx-navy: var(--wp--preset--color--navy);
	--avx-slate: var(--wp--preset--color--slate);
	--avx-yellow: var(--wp--preset--color--yellow);
	--avx-cream: var(--wp--preset--color--cream);
	--avx-blue: var(--wp--preset--color--blue);
	--avx-sky: var(--wp--preset--color--sky);
	--avx-coral: var(--wp--preset--color--coral);
	--avx-blush: var(--wp--preset--color--blush);
	--avx-green: var(--wp--preset--color--green);
	--avx-mint: var(--wp--preset--color--mint);
	--avx-mist: #F2F5F7; /* cool neutral with a navy tint, for panels that sit next to cream */
	--avx-line: rgba(8, 29, 44, 0.12);
	--avx-radius: 24px;
	--avx-header-h: 76px;
	--avx-gutter: clamp(1.25rem, 5vw, 3rem);
	--avx-section: clamp(3.25rem, 6.5vw, 5rem);
	/* Group colors default to the company pair; body.avx-group-* switches them. */
	--avx-tint: var(--avx-cream);
	--avx-accent: var(--avx-yellow);
}
body.avx-group-communications { --avx-tint: var(--avx-sky); --avx-accent: var(--avx-blue); }
body.avx-group-creative { --avx-tint: var(--avx-cream); --avx-accent: var(--avx-yellow); }
body.avx-group-outreach { --avx-tint: var(--avx-mint); --avx-accent: var(--avx-green); }
body.avx-group-websites { --avx-tint: var(--avx-blush); --avx-accent: var(--avx-coral); }

html { scroll-padding-top: calc(var(--avx-header-h) + 1rem); } /* WCAG 2.4.11: focus never hides under the sticky header */
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--avx-yellow); color: var(--avx-navy); }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--avx-navy);
	outline-offset: 3px;
	border-radius: 4px;
}
.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px;
	overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}
.skip-link:focus { clip: auto; clip-path: none; height: auto; width: auto; z-index: 100000; background: var(--avx-yellow); color: var(--avx-navy); padding: 0.75rem 1rem; border-radius: 999px; }

/* Header, main, closing band and footer butt together: no white seams between bands. */
.wp-site-blocks > *, .wp-site-blocks > main > * { margin-block: 0; }

img { height: auto; max-width: 100%; }
p, li { text-wrap: pretty; }
h1, h2, h3 { text-wrap: balance; }

/* ---------- Content rhythm ---------- */
.avx-content { padding-block: var(--avx-section); }
.avx-content > .alignfull:first-child { margin-top: calc(-1 * var(--avx-section)); }
.avx-content > .alignfull:last-child { margin-bottom: calc(-1 * var(--avx-section)); }
.avx-section { padding-block: var(--avx-section); }
.avx-section:not(.has-background) + .avx-section:not(.has-background) { padding-top: 0; } /* only between two white sections; after a band, full padding */
.avx-eyebrow, .is-style-avx-eyebrow {
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: 0.8125rem !important; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
	color: var(--avx-slate); margin-bottom: 0.5rem;
}
.is-style-avx-lead { font-size: var(--wp--preset--font-size--large); color: var(--avx-slate); }
.avx-content a:not(.wp-element-button) { text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
.avx-content a:not(.wp-element-button):hover { text-decoration-thickness: 2px; }

/* ---------- Header ---------- */
.avx-site-header { position: sticky; top: 0; z-index: 50; }
.admin-bar .avx-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .avx-site-header { top: 0; } }
.avx-header { background: rgba(255, 255, 255, 0.86); -webkit-backdrop-filter: saturate(180%) blur(16px); backdrop-filter: saturate(180%) blur(16px); border-bottom: 1px solid transparent; transition: border-color 0.2s, box-shadow 0.2s; }
.avx-header.is-scrolled { border-bottom-color: var(--avx-line); }
@supports not (backdrop-filter: blur(1px)) { .avx-header { background: #fff; } }
.avx-header__bar { display: flex; align-items: center; gap: 1.5rem; max-width: var(--wp--style--global--wide-size, 1200px); margin-inline: auto; padding: 0.75rem var(--avx-gutter); min-height: var(--avx-header-h); }
.avx-header__logo { display: inline-flex; flex: none; }
.avx-header__logo img { width: 168px; height: auto; display: block; }
.avx-nav { margin-left: auto; }
.avx-nav__list { display: flex; align-items: center; gap: 0.25rem; list-style: none; margin: 0; padding: 0; }
.avx-nav__item { position: relative; }
.avx-nav__trigger, .avx-nav__link {
	display: inline-flex; align-items: center; gap: 0.25rem; min-height: 44px; padding: 0 0.875rem;
	font: 600 0.9375rem/1 var(--wp--preset--font-family--body); color: var(--avx-navy);
	background: none; border: 0; border-radius: 999px; cursor: pointer; text-decoration: none;
}
.avx-nav__trigger:hover, .avx-nav__link:hover, .avx-nav__trigger[aria-expanded="true"] { background: var(--avx-cream); }
.avx-nav__trigger .avx-icon { width: 16px; height: 16px; transition: transform 0.15s; }
.avx-nav__trigger[aria-expanded="true"] .avx-icon { transform: rotate(180deg); }
.avx-nav__link[aria-current="page"], .avx-nav__trigger.is-section { box-shadow: inset 0 -2px 0 var(--avx-navy); border-radius: 0; }
.avx-header__actions { display: flex; align-items: center; gap: 0.5rem; }
.avx-icon-button { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 0; background: none; color: var(--avx-navy); cursor: pointer; padding: 0; }
.avx-icon-button:hover { background: var(--avx-cream); }
.avx-header__contact {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 1.25rem; border-radius: 999px;
	background: var(--avx-navy); color: #fff; font-weight: 600; font-size: 0.9375rem; text-decoration: none;
}
.avx-header__contact:hover, .avx-header__contact[aria-current="page"] { background: var(--avx-slate); color: #fff; }
.avx-menu-toggle { display: none; }

/* Panels */
.avx-panel { position: absolute; top: calc(100% + 0.75rem); left: 0; background: #fff; border-radius: 20px; box-shadow: var(--wp--preset--shadow--float); padding: 0.75rem; min-width: 240px; }
.avx-panel ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.125rem; }
.avx-panel a { display: block; padding: 0.625rem 0.75rem; border-radius: 12px; color: var(--avx-navy); text-decoration: none; font-size: 0.9375rem; }
.avx-panel a:hover { background: var(--avx-cream); }
.avx-panel a[aria-current="page"] { font-weight: 700; text-decoration: underline; text-underline-offset: 0.2em; }
.avx-panel--services { position: fixed; top: calc(var(--avx-header-h) + 0.5rem); left: 50%; transform: translateX(-50%); width: min(1152px, calc(100vw - 2 * var(--avx-gutter))); padding: 1rem; }
.admin-bar .avx-panel--services { top: calc(var(--avx-header-h) + 32px + 0.5rem); }
.avx-panel__grid { display: grid; grid-template-columns: repeat(4, 1fr) 1.1fr; gap: 0.75rem; }
.avx-panel__group { border-radius: 16px; padding: 1rem 0.75rem 0.75rem; }
.avx-panel__label { font: 700 1.0625rem/1.2 var(--wp--preset--font-family--display); margin: 0 0 0.5rem 0.75rem; }
.avx-panel__group a { padding: 0.5rem 0.75rem; }
.avx-panel__group a:hover { background: rgba(255, 255, 255, 0.7); }
.avx-panel__feature {
	position: relative; overflow: hidden; display: grid; align-content: start; gap: 0.5rem; padding: 1.25rem !important;
	border-radius: 16px; background: var(--avx-navy); color: #fff !important;
}
.avx-panel__feature::after { content: ""; position: absolute; width: 160px; height: 160px; right: -50px; bottom: -60px; border-radius: 50%; background: var(--avx-coral); }
.avx-panel__feature > * { position: relative; z-index: 1; }
.avx-panel__feature-title { font: 700 1.375rem/1.1 var(--wp--preset--font-family--display); color: var(--avx-yellow); }
.avx-panel__feature-go { display: inline-flex; align-items: center; gap: 0.375rem; font-weight: 600; text-decoration: underline; text-underline-offset: 0.2em; margin-top: 0.5rem; }
.avx-panel__feature:hover { background: var(--avx-slate) !important; }
.avx-panel__all { margin: 0.75rem 0.25rem 0; text-align: right; }
.avx-panel__all a { display: inline-block; font-weight: 600; text-decoration: underline; text-underline-offset: 0.2em; }
.avx-dot a::before, li.avx-dot > a::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 0.5rem; vertical-align: 0.1em; background: var(--dot, var(--avx-navy)); box-shadow: inset 0 0 0 1px rgba(8, 29, 44, 0.35); }
/* Dot lists: the dot hangs in its own column, so a name that wraps lines up with itself, not under the dot. */
li.avx-dot > a { display: flex; align-items: flex-start; gap: 0.5rem; }
li.avx-dot > a::before { flex: none; margin: 0.45em 0 0 !important; }
.avx-dot--blue { --dot: var(--avx-blue); } .avx-dot--yellow { --dot: var(--avx-yellow); } .avx-dot--green { --dot: var(--avx-green); } .avx-dot--coral { --dot: var(--avx-coral); }

/* Search panel */
.avx-search { border-top: 1px solid var(--avx-line); background: var(--avx-cream); padding: 1.75rem var(--avx-gutter) 2rem; }
.avx-search__form { max-width: 720px; margin-inline: auto; display: grid; gap: 0.875rem; justify-items: center; }
.avx-search__label { font: 700 1.5rem/1.2 var(--wp--preset--font-family--display); }
.avx-search__field { position: relative; width: 100%; }
.avx-search__field input { width: 100%; min-height: 56px; padding: 0 3.75rem 0 1.5rem; border: 2px solid var(--avx-navy); border-radius: 999px; font: inherit; font-size: 1.0625rem; background: #fff; color: var(--avx-navy); }
.avx-search__field input::placeholder { color: #5E6E75; }
.avx-search__submit { position: absolute; right: 6px; top: 6px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--avx-navy); color: #fff; display: grid; place-items: center; cursor: pointer; }
.avx-search__results { list-style: none; margin: 0; padding: 0.5rem; width: 100%; background: #fff; border-radius: 20px; box-shadow: var(--wp--preset--shadow--float); display: grid; gap: 0.125rem; }
.avx-search__results[hidden] { display: none; }
.avx-search__result { display: grid; grid-template-columns: auto 1fr; gap: 0.125rem 0.75rem; align-items: baseline; padding: 0.75rem 0.875rem; border-radius: 14px; color: var(--avx-navy); text-decoration: none; }
.avx-search__result:hover, .avx-search__result:focus-visible { background: var(--avx-cream); }
.avx-search__result-title { font-weight: 600; }
.avx-search__result-summary { grid-column: 2; font-size: 0.875rem; color: var(--avx-slate); }
.avx-search__all { width: 100%; min-height: 44px; border: 0; border-radius: 14px; background: none; color: var(--avx-navy); font: 600 0.9375rem var(--wp--preset--font-family--body); text-decoration: underline; text-underline-offset: 0.2em; cursor: pointer; }
.avx-search__all:hover { background: var(--avx-cream); }
.avx-search__quick { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; }
.avx-chip {
	display: inline-flex; align-items: center; min-height: 36px; padding: 0 0.875rem; border-radius: 999px;
	border: 1px solid rgba(8, 29, 44, 0.25); background: #fff; color: var(--avx-navy); font: 600 0.875rem/1 var(--wp--preset--font-family--body); text-decoration: none; cursor: pointer;
}
.avx-chip:hover { border-color: var(--avx-navy); }
.avx-chip[aria-pressed="true"] { background: var(--avx-navy); border-color: var(--avx-navy); color: #fff; }

/* Phone menu (dialog) */
.avx-mobile { width: 100%; max-width: 100%; height: 100%; max-height: 100%; margin: 0; padding: 0; border: 0; background: #fff; color: var(--avx-navy); }
.avx-mobile::backdrop { background: rgba(8, 29, 44, 0.3); }
.avx-mobile[open] { display: flex; flex-direction: column; }
.avx-mobile__top { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem var(--avx-gutter); border-bottom: 1px solid var(--avx-line); }
.avx-mobile__top img { width: 140px; }
.avx-mobile__nav { flex: 1; overflow-y: auto; padding: 0.5rem var(--avx-gutter); }
.avx-mobile__section summary, .avx-mobile__link {
	display: flex; justify-content: space-between; align-items: center; min-height: 56px; border-bottom: 1px solid var(--avx-line);
	font-size: 1.125rem; font-weight: 600; color: var(--avx-navy); text-decoration: none; list-style: none; cursor: pointer;
}
.avx-mobile__section summary::-webkit-details-marker { display: none; }
.avx-mobile__section[open] summary .avx-icon { transform: rotate(180deg); }
.avx-mobile__label { margin: 1rem 0 0.25rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--avx-slate); }
.avx-mobile ul { list-style: none; margin: 0; padding: 0; }
.avx-mobile li a { display: flex; align-items: center; min-height: 48px; padding-left: 0.5rem; color: var(--avx-navy); text-decoration: none; font-size: 1.0625rem; }
.avx-mobile__all { margin: 0.75rem 0 1rem; }
.avx-mobile__bottom { display: grid; gap: 0.75rem; padding: 1rem var(--avx-gutter) calc(1rem + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--avx-line); }
.avx-mobile__bottom .avx-header__contact { justify-content: center; min-height: 52px; font-size: 1.0625rem; }
.avx-mobile__search input { width: 100%; min-height: 52px; padding: 0 1.25rem; border-radius: 999px; border: 1px solid rgba(8, 29, 44, 0.3); font: inherit; background: var(--avx-cream); }

@media (max-width: 1080px) {
	.avx-nav, .avx-header__actions .avx-header__contact { display: none; }
	.avx-menu-toggle { display: inline-grid; }
	.avx-header__actions { margin-left: auto; }
	.avx-header__logo img { width: 140px; }
	:root { --avx-header-h: 64px; }
}

/* ---------- Page header ---------- */
.avx-page-header { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2rem; padding: clamp(2.5rem, 6vw, 4.5rem) max(var(--avx-gutter), calc((100% - 1200px) / 2 + var(--wp--style--root--padding-left, 0px))); }
.avx-page-header__circle { position: absolute; width: clamp(240px, 34vw, 460px); aspect-ratio: 1; border-radius: 50%; right: max(-120px, calc((100% - 1200px) / 2 - 140px)); top: 50%; transform: translateY(-50%); background: var(--avx-accent); opacity: 0.55; }
.avx-accent-yellow .avx-page-header__circle { background: var(--avx-yellow); opacity: 0.9; }
.avx-accent-blue .avx-page-header__circle { background: var(--avx-blue); }
.avx-accent-green .avx-page-header__circle { background: var(--avx-green); }
.avx-accent-coral .avx-page-header__circle { background: var(--avx-coral); opacity: 0.35; }
/* The route: placed so it ends at the sun's left edge; the trail draws in behind the plane (theme.js finishes it at once for reduced motion). */
.avx-page-header__path { position: absolute; bottom: 0; right: calc(max(-120px, (100% - 1200px) / 2 - 140px) + clamp(240px, 34vw, 460px) - 70px); width: min(520px, 40vw); height: auto; aspect-ratio: 560 / 260; color: var(--avx-navy); overflow: visible; pointer-events: none; }
.avx-route__trail { opacity: 0.4; }
.avx-route__plane { opacity: 0.85; }
.avx-page-header.has-image .avx-page-header__path { display: none; }
.avx-page-header__inner { position: relative; z-index: 1; max-width: 760px; display: grid; gap: 0.75rem; }
.avx-page-header__eyebrow, .avx-page-header__meta { margin: 0.5rem 0 0; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--avx-slate); }
.avx-page-header__title { margin: 0; font-size: var(--wp--preset--font-size--h-1); }
.avx-page-header__intro { margin: 0.25rem 0 0; font-size: var(--wp--preset--font-size--large); color: var(--avx-slate); max-width: 62ch; }
.avx-page-header__media { position: relative; z-index: 1; width: clamp(180px, 26vw, 340px); aspect-ratio: 1; border-radius: 50%; overflow: hidden; background: #fff; box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.6); }
.avx-page-header__img { width: 100%; height: 100%; object-fit: cover; }
.avx-crumbs ol { display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; list-style: none; margin: 0; padding: 0; font-size: 0.875rem; color: var(--avx-slate); }
.avx-crumbs li + li::before { content: "/"; margin-right: 0.5rem; opacity: 0.6; }
.avx-crumbs a { color: var(--avx-slate); }
@media (max-width: 720px) {
	.avx-page-header { grid-template-columns: 1fr; }
	.avx-page-header__media { width: 180px; justify-self: start; }
	.avx-page-header__circle { width: 260px; right: -110px; top: 0; transform: none; }
	.avx-page-header__path { display: none; }
}

/* ---------- Buttons ---------- */
.wp-element-button, .wp-block-button__link { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }
.is-style-avx-yellow .wp-block-button__link { background: var(--avx-yellow); color: var(--avx-navy); }
.is-style-avx-yellow .wp-block-button__link:hover, .is-style-avx-yellow .wp-block-button__link:focus { background: var(--avx-yellow); color: var(--avx-navy); box-shadow: inset 0 0 0 2px var(--avx-navy); }
.is-style-avx-text .wp-block-button__link { text-align: left; background: none; color: var(--avx-navy); padding-inline: 0.25rem; border-radius: 0; text-decoration: underline; text-decoration-color: var(--avx-coral); text-decoration-thickness: 2px; text-underline-offset: 0.35em; }
.is-style-avx-text .wp-block-button__link::after { content: "→"; margin-left: 0.4rem; transition: transform 0.15s; }
.is-style-avx-text .wp-block-button__link:hover, .is-style-avx-text .wp-block-button__link:focus { background: none; color: var(--avx-navy); text-decoration-color: var(--avx-navy); }
.is-style-avx-text .wp-block-button__link:hover::after { transform: translateX(3px); }

/* ---------- Cards, circles, phases ---------- */
.is-style-avx-card { display: flex; flex-direction: column; background: var(--avx-tint); border-radius: var(--avx-radius); padding: clamp(1.5rem, 3vw, 2rem); height: 100%; overflow: hidden; }
.is-style-avx-card > :first-child { margin-top: 0; }
.is-style-avx-card h3 { font-size: 1.25rem; }
.is-style-avx-card > .wp-block-image:first-child:not(.is-style-avx-icon) { margin: calc(-1 * clamp(1.5rem, 3vw, 2rem)) calc(-1 * clamp(1.5rem, 3vw, 2rem)) 1.25rem; max-width: none; }
.is-style-avx-card > .wp-block-image:first-child:not(.is-style-avx-icon) img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.is-style-avx-card > .wp-block-buttons:last-child { margin-top: auto; padding-top: 1rem; }
/* Card rows the items fill: see "Design pass 4" below (three across, a short last row widens). */
.avx-feature-cards { gap: 1rem; }
.avx-icon-circle { display: inline-block; width: 48px; height: 48px; border-radius: 50%; flex: none; }
.wp-block-image.is-style-avx-circle img { aspect-ratio: 1; object-fit: cover; border-radius: 50%; box-shadow: 0 0 0 14px var(--avx-tint); }
.is-style-avx-circle-left, .is-style-avx-circle-right { position: relative; overflow: hidden; }
.is-style-avx-circle-left::before, .is-style-avx-circle-right::before { content: ""; position: absolute; width: clamp(260px, 36vw, 520px); aspect-ratio: 1; border-radius: 50%; background: var(--avx-accent); opacity: 0.35; top: -10%; z-index: 0; }
.is-style-avx-circle-left::before { left: -12%; } .is-style-avx-circle-right::before { right: -12%; }
.is-style-avx-circle-left > *, .is-style-avx-circle-right > * { position: relative; z-index: 1; }
ol.avx-phases { counter-reset: phase; list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0.5rem; }
ol.avx-phases > li {
	counter-increment: phase; position: relative; display: grid; gap: 0.25rem; align-content: start; min-height: 150px;
	padding: 1.25rem 2.25rem 1.25rem 1.5rem; margin: 0;
	clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 50%, calc(100% - 22px) 100%, 0 100%, 18px 50%);
}
ol.avx-phases > li:first-child { clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 50%, calc(100% - 22px) 100%, 0 100%); }
ol.avx-phases > li::before { content: counter(phase); font: 700 2rem/1 var(--wp--preset--font-family--display); }
ol.avx-phases > li:nth-child(4n+1) { background: var(--avx-blush); }
ol.avx-phases > li:nth-child(4n+2) { background: var(--avx-cream); }
ol.avx-phases > li:nth-child(4n+3) { background: var(--avx-sky); }
ol.avx-phases > li:nth-child(4n+4) { background: var(--avx-mint); }
ol.avx-phases strong { font-size: 1.125rem; display: block; }
@media (max-width: 720px) {
	ol.avx-phases > li, ol.avx-phases > li:first-child { clip-path: none; border-radius: 20px; min-height: 0; padding: 1.25rem 1.5rem; }
}
.is-style-avx-checks { list-style: none; padding-left: 0; }
.is-style-avx-checks li { position: relative; padding-left: 2rem; margin-bottom: 0.5rem; }
.is-style-avx-checks li::before { content: ""; position: absolute; left: 0; top: 0.35em; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--avx-accent); }
.is-style-avx-checks li::after { content: ""; position: absolute; left: 0.35rem; top: 0.55em; width: 0.35rem; height: 0.6rem; border: solid var(--avx-navy); border-width: 0 2px 2px 0; transform: rotate(45deg); }

/* ---------- Services by group ---------- */
.avx-groups__tiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.avx-tile { border-radius: var(--avx-radius); padding: 1.5rem; display: grid; gap: 0.75rem; align-content: start; }
.avx-tile__title { margin: 0; font: 700 1.375rem/1.15 var(--wp--preset--font-family--display); }
.avx-tile__links { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.25rem; }
.avx-tile__links a { color: var(--avx-navy); text-decoration: none; display: block; padding: 0.25rem 0; }
.avx-tile__links a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
@media (max-width: 960px) { .avx-groups__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .avx-groups__tiles { grid-template-columns: 1fr; } }
.avx-group-section { padding-block: clamp(2.5rem, 5vw, 3.5rem); border-top: 1px solid var(--avx-line); scroll-margin-top: calc(var(--avx-header-h) + 1rem); }
.avx-group-section:first-child { border-top: 0; }
.avx-group-section__head { display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 1rem; align-items: center; margin-bottom: 1.5rem; }
.avx-group-section__head h2 { margin: 0; }
.avx-group-section__head p { grid-column: 2; margin: 0; color: var(--avx-slate); }
.avx-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
.avx-card { position: relative; border-radius: var(--avx-radius); padding: 1.5rem; display: flex; flex-direction: column; gap: 0.5rem; transition: transform 0.15s, box-shadow 0.15s; }
@media (hover: hover) { .avx-card:hover { transform: translateY(-2px); box-shadow: var(--wp--preset--shadow--float); } }
.avx-card.is-featured { grid-column: span 2; background: var(--avx-navy) !important; color: #fff; }
.avx-card.is-featured .avx-card__link, .avx-card.is-featured .avx-card__go { color: #fff; }
.avx-card__title { margin: 0; font-size: 1.25rem; }
.avx-card__link { color: var(--avx-navy); text-decoration: none; }
.avx-card__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } /* whole card clickable */
.avx-card__link:focus-visible { outline: none; }
.avx-card:has(.avx-card__link:focus-visible) { outline: 3px solid var(--avx-navy); outline-offset: 3px; }
.avx-card p { margin: 0; }
.avx-card__go { display: inline-flex; align-items: center; gap: 0.375rem; font-weight: 600; margin-top: auto; padding-top: 0.5rem; }
@media (max-width: 640px) { .avx-card.is-featured { grid-column: auto; } }
/* Desktop: three across (four for a group of 4 or 8); the featured card takes a full row. */
@media (min-width: 1000px) {
	.avx-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.avx-cards:has(> :last-child:nth-child(4n)):not(:has(> .is-featured)) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.avx-card.is-featured { grid-column: 1 / -1; }
}

/* ---------- Hero and video ---------- */
.avx-hero { position: relative; overflow: hidden; padding-block: clamp(2.5rem, 6vw, 5rem); }
.avx-hero__copy h1 { margin-top: 0.25rem; font-size: clamp(2.375rem, 4.2vw, 3.5rem); line-height: 1.06; }
.avx-hero__media { position: relative; }
.avx-hero__copy { position: relative; z-index: 1; }
.avx-video { position: relative; z-index: 1; margin: 0; border-radius: 20px; overflow: hidden; box-shadow: var(--wp--preset--shadow--float); background: var(--avx-yellow); }
.avx-video video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.avx-video__toggle { position: absolute; right: 14px; bottom: 14px; width: 44px; height: 44px; border-radius: 50%; border: 2px solid #fff; background: var(--avx-navy); color: #fff; display: grid; place-items: center; cursor: pointer; padding: 0; }
.avx-video__toggle:hover { background: var(--avx-slate); }
.avx-video__toggle .avx-icon--play { display: none; }
.avx-video.is-paused .avx-video__toggle .avx-icon--play { display: block; }
.avx-video.is-paused .avx-video__toggle .avx-icon--pause { display: none; }
@media (max-width: 781px) {
	.avx-hero__cols { flex-direction: column-reverse; }
}

/* ---------- Deadline ---------- */
.avx-deadline { background: var(--avx-blush); border-radius: var(--avx-radius); padding: 1.5rem 1.75rem; display: grid; gap: 0.5rem; }
.avx-deadline__number { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.75rem; }
.avx-deadline__days { font: 700 clamp(3rem, 7vw, 4.5rem)/1 var(--wp--preset--font-family--display); }
.avx-deadline__label { font-weight: 700; font-size: 1.125rem; }
.avx-deadline__note { margin: 0; color: var(--avx-slate); }

/* ---------- Quote ---------- */
.avx-quote { margin: 0; padding: 0; border: 0; }
.avx-quote p { font: 700 clamp(1.5rem, 3vw, 2rem)/1.3 var(--wp--preset--font-family--display); }
.avx-quote p::before { content: "“"; } .avx-quote p::after { content: "”"; }
.avx-quote cite { display: block; margin-top: 1rem; font: 400 1rem/1.4 var(--wp--preset--font-family--body); font-style: normal; color: var(--avx-slate); }
.avx-quote cite strong { color: var(--avx-navy); }

/* ---------- FAQ ---------- */
.avx-faq { padding-block: var(--avx-section); padding-inline: var(--avx-gutter); }
.avx-faq-block { margin-block: 0 !important; }
.avx-faq__inner { max-width: 760px; margin-inline: auto; }
.avx-faq__title { margin: 0 0 1.5rem; }
.avx-faq__item { border-top: 1px solid rgba(8, 29, 44, 0.18); }
.avx-faq__item:last-child { border-bottom: 1px solid rgba(8, 29, 44, 0.18); }
.avx-faq__q { margin: 0; font-size: 1.0625rem; }
.avx-faq__q button { width: 100%; min-height: 56px; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 0; background: none; border: 0; text-align: left; font: 600 1.0625rem/1.4 var(--wp--preset--font-family--body); color: var(--avx-navy); cursor: pointer; }
.avx-faq__icon { position: relative; width: 16px; height: 16px; flex: none; }
.avx-faq__icon::before, .avx-faq__icon::after { content: ""; position: absolute; background: var(--avx-navy); border-radius: 2px; }
.avx-faq__icon::before { width: 16px; height: 2px; top: 7px; left: 0; }
.avx-faq__icon::after { width: 2px; height: 16px; top: 0; left: 7px; transition: transform 0.15s; }
.avx-faq__item.is-open .avx-faq__icon::after { transform: scaleY(0); }
.avx-faq__a { padding: 0 0 1.25rem; color: var(--avx-slate); }
.avx-faq__a p { margin: 0 0 0.75rem; }
.js .avx-faq__item:not(.is-open) .avx-faq__a { display: none; }
.has-white-background-color.avx-faq { background: #fff; }

/* ---------- Closing band ---------- */
.avx-closing { position: relative; overflow: hidden; text-align: center; padding-block: clamp(4rem, 8vw, 6rem) !important; }
.avx-closing::before { content: ""; position: absolute; width: 360px; aspect-ratio: 1; border-radius: 50%; background: #fff; opacity: 0.45; right: -100px; top: -140px; }
.avx-closing::after { content: ""; position: absolute; width: 140px; aspect-ratio: 1; border-radius: 50%; background: var(--avx-cream); opacity: 0.7; left: 8%; bottom: -50px; }
.avx-closing > * { position: relative; z-index: 1; }
.avx-closing__trixie { margin-inline: auto !important; width: 72px; }
.avx-closing .avx-eyebrow { text-align: center; }

/* ---------- Footer (horizon) ---------- */
.avx-footer__horizon { position: relative; overflow: hidden; background: var(--avx-sky); padding: clamp(3.5rem, 7vw, 5rem) var(--avx-gutter) clamp(6rem, 11vw, 8.5rem); }
/* The sun rises in the empty band under the columns, so it never sits behind link text. */
.avx-footer__sun { position: absolute; width: clamp(200px, 26vw, 380px); aspect-ratio: 1; border-radius: 50%; background: var(--avx-yellow); right: 7%; bottom: 0; transform: translateY(64%); }
.avx-footer__path { position: absolute; inset: auto 0 18% 0; width: 100%; height: 160px; color: var(--avx-navy); opacity: 0.3; }
.avx-footer__inner { position: relative; z-index: 1; max-width: 1200px; margin-inline: auto; display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 2rem; }
.avx-footer__logo img { width: 200px; height: auto; }
.avx-footer__brand p { margin: 1rem 0 0; max-width: 32ch; }
.avx-footer__small { font-size: 0.875rem; color: var(--avx-slate); }
.avx-footer__heading { margin: 0 0 0.75rem; font: 700 0.8125rem/1.2 var(--wp--preset--font-family--body); letter-spacing: 0.1em; text-transform: uppercase; color: var(--avx-slate); }
.avx-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.125rem; }
.avx-footer__col a { color: var(--avx-navy); text-decoration: none; display: inline-flex; align-items: center; min-height: 32px; }
.avx-footer__email { display: inline !important; line-height: 1.5; }
.avx-footer__col a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.avx-footer__social { margin-top: 1rem !important; display: flex !important; flex-wrap: wrap; gap: 0.5rem 1rem !important; }
.avx-footer__social a { font-weight: 600; }
.avx-footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 1.5rem; max-width: 1200px; margin-inline: auto; padding: 1.25rem var(--avx-gutter); font-size: 0.875rem; color: var(--avx-slate); }
.avx-footer__legal p { margin: 0; }
.avx-footer__legal ul { list-style: none; display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; margin: 0; padding: 0; }
.avx-footer__legal a { color: var(--avx-slate); }
@media (max-width: 960px) { .avx-footer__inner { grid-template-columns: 1fr 1fr; } .avx-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 560px) { .avx-footer__inner { grid-template-columns: 1fr; } .avx-footer__sun { right: -10%; } }

/* ---------- Our Work: boarding passes ---------- */
.avx-work__filters { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.5rem; }
@media (min-width: 1000px) { .avx-work__grid:has(> :last-child:nth-child(4)) { grid-template-columns: repeat(4, minmax(0, 1fr)); } } /* exactly four (homepage): one row */
.avx-work__jump ul { list-style: none; margin: 0 0 0.5rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.avx-work__group { padding-top: clamp(2.5rem, 5vw, 3.5rem); }
.avx-work__group > h2 { margin: 0 0 1.25rem; }
.avx-work__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.25rem; }
.avx-pass { position: relative; display: grid; grid-template-rows: auto 1fr; background: #fff; border-radius: var(--avx-radius); box-shadow: 0 0 0 1px var(--avx-line); overflow: hidden; transition: transform 0.15s, box-shadow 0.15s; }
@media (hover: hover) { .avx-pass:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px var(--avx-line), var(--wp--preset--shadow--float); } } /* keeps its edge */
.avx-pass[hidden] { display: none; }
.avx-pass__media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.avx-pass__body { position: relative; padding: 1.5rem 1.5rem 1.25rem; display: grid; gap: 0.375rem; align-content: start; border-top: 2px dashed var(--avx-line); }
.avx-pass__body::before, .avx-pass__body::after { content: ""; position: absolute; top: -12px; width: 22px; height: 22px; border-radius: 50%; background: var(--avx-pass-bg, #fff); box-shadow: inset 0 0 0 1px var(--avx-line); } /* perforation notches match the section behind */
.avx-pass__body::before { left: -11px; } .avx-pass__body::after { right: -11px; }
.avx-pass__code { margin: 0; font: 700 2.75rem/1 var(--wp--preset--font-family--display); letter-spacing: 0.04em; }
.avx-pass__title { margin: 0; font-size: 1.1875rem; }
.avx-pass__title a { color: var(--avx-navy); text-decoration: none; }
.avx-pass__title a::after { content: ""; position: absolute; inset: 0; }
.avx-pass:has(.avx-pass__title a:focus-visible) { outline: 3px solid var(--avx-navy); outline-offset: 3px; }
.avx-pass__title a:focus-visible { outline: none; }
.avx-pass__client { margin: 0; color: var(--avx-slate); font-size: 0.9375rem; }
.avx-pass__meta { display: flex; gap: 1.5rem; margin: 0.5rem 0 0; }
.avx-pass__meta dt { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--avx-slate); }
.avx-pass__meta dd { margin: 0; font-weight: 600; font-size: 0.9375rem; }
.avx-pass__award { margin: 0.5rem 0 0; font-size: 0.875rem; font-weight: 600; }
.avx-pass__award::before { content: "★"; color: var(--avx-coral); margin-right: 0.35rem; }
.avx-pass__go { margin: 0.75rem 0 0; display: inline-flex; align-items: center; gap: 0.375rem; font-weight: 600; font-size: 0.9375rem; }

/* ---------- News, posts, search, 404 ---------- */
.avx-news { padding-block: var(--avx-section); }
.avx-news__card { gap: 0.5rem; }
.avx-news__card .wp-block-post-featured-image img { border-radius: 16px; }
.avx-news__date { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--avx-slate); }
.avx-news__title { font-size: 1.25rem; font-family: var(--wp--preset--font-family--body); font-weight: 700; margin: 0; }
.avx-news__title a { color: var(--avx-navy); text-decoration: none; }
.avx-news__title a:hover { text-decoration: underline; }
.avx-post-nav { padding-block: 2rem 4rem; border-top: 1px solid var(--avx-line); }
.avx-result { padding-block: 1.25rem; border-bottom: 1px solid var(--avx-line); }
.avx-result h2 { margin: 0 0 0.25rem; }
.avx-result h2 a { color: var(--avx-navy); }
.avx-404__code { margin: 0; font: 700 clamp(5rem, 16vw, 9rem)/1 var(--wp--preset--font-family--display); color: var(--avx-yellow); -webkit-text-stroke: 2px var(--avx-navy); }
.wp-block-search__inside-wrapper { border-radius: 999px; overflow: hidden; border: 2px solid var(--avx-navy) !important; padding: 4px !important; }
.wp-block-search__input { border: 0 !important; padding-left: 1rem !important; min-height: 44px; }
.wp-block-search__button { border-radius: 999px !important; min-width: 44px; min-height: 44px; background: var(--avx-navy) !important; color: #fff !important; }

/* Search results and Rank Math breadcrumbs */
.avx-result-type { display: inline-flex; align-items: center; min-height: 24px; padding: 0 0.625rem; margin-right: 0.5rem; border-radius: 999px; background: var(--avx-sky); color: var(--avx-navy); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; vertical-align: 0.1em; }
.avx-result__meta { margin: 0; color: var(--avx-slate); }
.avx-crumbs--rm .rank-math-breadcrumb p { margin: 0; font-size: 0.875rem; color: var(--avx-slate); }
.avx-crumbs--rm .rank-math-breadcrumb a { color: var(--avx-slate); }
.avx-crumbs--rm .rank-math-breadcrumb .separator { padding: 0 0.4rem; opacity: 0.7; }
.avx-crumbs--rm .rank-math-breadcrumb .last { font-weight: 600; color: var(--avx-navy); }

/* ---------- Landing pages ---------- */
.avx-landing { padding: 0 !important; }

/* ---------- Motion ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

/* ---------- Forced colors (Windows High Contrast) ---------- */
@media (forced-colors: active) {
	.avx-card, .avx-pass, .avx-tile, .is-style-avx-card, .avx-panel { border: 1px solid CanvasText; }
	.avx-faq__icon::before, .avx-faq__icon::after { background: CanvasText; }
}
/* ---------- Team (ACF Staff) ---------- */
.avx-team { display: grid; gap: clamp(2.5rem, 5vw, 3.5rem); }
.avx-person { position: relative; display: grid; gap: 1rem; align-content: start; justify-items: center; text-align: center; }
.avx-person__photo { width: 168px; aspect-ratio: 1; border-radius: 50%; overflow: hidden; background: var(--avx-cream); box-shadow: 0 6px 20px rgba(8, 29, 44, 0.12), 0 0 0 1px var(--avx-line); display: grid; place-items: center; }
.avx-person__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.avx-person__initials { font: 700 2.5rem/1 var(--wp--preset--font-family--display); color: var(--avx-navy); }
.avx-person__text { display: grid; gap: 0.25rem; justify-items: center; }
.avx-person__name { margin: 0 !important; font-size: 1.375rem !important; line-height: 1.2; }
.avx-person__role { margin: 0; font-weight: 600; }
.avx-person__city { margin: 0.25rem 0 0; display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.25rem 0.75rem; border-radius: 999px; background: var(--avx-cream); font-size: 0.875rem; color: var(--avx-slate); }
.avx-person__city.avx-dot::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--dot); box-shadow: inset 0 0 0 1px rgba(8, 29, 44, 0.35); }
.avx-person__actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0.25rem 0.5rem; margin-top: 0.75rem; }
.avx-person__more { min-height: 44px; padding: 0 1.25rem; border: 1px solid rgba(8, 29, 44, 0.25); border-radius: 999px; background: #fff; color: var(--avx-navy); font: 600 0.9375rem/1 var(--wp--preset--font-family--body); cursor: pointer; }
.avx-person__more:hover { border-color: var(--avx-navy); background: var(--avx-cream); }
.avx-person__link { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--avx-navy); }
.avx-person__link:hover { background: var(--avx-cream); }
.avx-person__bio p { margin: 0 0 1em; }
.avx-person__bio p:last-child { margin-bottom: 0; }
/* The lead card: photo left, full bio right. */
.avx-person--lead { grid-template-columns: minmax(0, 280px) minmax(0, 1fr); justify-items: start; text-align: left; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; padding: clamp(1.5rem, 4vw, 3rem); border-radius: var(--avx-radius); background: var(--avx-cream); }
.avx-person--lead .avx-person__photo { width: 100%; max-width: 280px; background: #fff; }
.avx-person--lead .avx-person__text { justify-items: start; }
.avx-person--lead .avx-person__name { font-size: var(--wp--preset--font-size--h-2) !important; }
.avx-person--lead .avx-person__city { background: #fff; }
.avx-person--lead .avx-person__bio { margin-top: 1rem; max-width: 62ch; }
.avx-person--lead .avx-person__actions { justify-content: flex-start; margin-left: -10px; }
.avx-team__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: clamp(2.5rem, 5vw, 3.5rem) 1.5rem; }
@media (min-width: 1000px) { .avx-team__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.avx-person:not(.avx-person--lead) .avx-person__photo { cursor: pointer; }
.avx-team__map { margin: 0; text-align: center; }
.avx-team__map a { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 44px; font-weight: 600; color: var(--avx-navy); text-decoration-color: var(--avx-coral); text-decoration-thickness: 2px; text-underline-offset: 0.35em; }
@media (max-width: 700px) {
	.avx-person--lead { grid-template-columns: 1fr; justify-items: center; text-align: center; }
	.avx-person--lead .avx-person__photo { max-width: 200px; }
	.avx-person--lead .avx-person__text { justify-items: center; }
	.avx-person--lead .avx-person__bio { text-align: left; }
	.avx-person--lead .avx-person__actions { justify-content: center; margin-left: 0; }
}
/* Bio dialog: centered sheet on desktop, bottom sheet on phones. */
.avx-bio-dialog { width: min(640px, calc(100% - 2rem)); max-height: min(86vh, 900px); padding: 0; border: 0; border-radius: var(--avx-radius); background: #fff; color: var(--avx-navy); box-shadow: var(--wp--preset--shadow--float); }
.avx-bio-dialog::backdrop { background: rgba(8, 29, 44, 0.45); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.avx-bio-dialog__inner { position: relative; padding: clamp(1.5rem, 4vw, 2.5rem); }
.avx-bio-dialog__close { position: absolute; top: 0.75rem; right: 0.75rem; width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--avx-cream); color: var(--avx-navy); cursor: pointer; }
.avx-bio-dialog__head { display: flex; align-items: center; gap: 1.25rem; padding-right: 3rem; margin-bottom: 1.25rem; }
.avx-bio-dialog__head .avx-person__photo { width: 96px; flex: 0 0 auto; }
.avx-bio-dialog__head > div:last-child { display: grid; gap: 0.25rem; justify-items: start; }
.avx-bio-dialog__name { margin: 0; font: 700 1.5rem/1.2 var(--wp--preset--font-family--display); }
.avx-bio-dialog__body p { margin: 0 0 1em; }
.avx-bio-dialog .avx-person__actions { justify-content: flex-start; margin-left: -10px; }
@media (max-width: 600px) {
	.avx-bio-dialog { width: 100%; max-width: none; max-height: 88vh; margin: auto 0 0; border-radius: var(--avx-radius) var(--avx-radius) 0 0; }
}
@media (prefers-reduced-motion: no-preference) {
	.avx-bio-dialog[open] { animation: avx-sheet 0.22s ease-out; }
	@keyframes avx-sheet { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
}

/* ---------- Client map (rendered from the Client Map page) ---------- */
.avx-map { scroll-margin-top: calc(var(--avx-header-h) + 1rem); margin-bottom: clamp(3rem, 6vw, 4.5rem) !important; }
.avx-map #avxm { max-width: none; padding-top: 0; }

/* ---------- Pagination ---------- */
.wp-block-query-pagination { gap: 0.5rem; margin-top: clamp(2.5rem, 5vw, 3.5rem) !important; font-weight: 600; }
.wp-block-query-pagination-numbers { display: flex; flex-wrap: wrap; gap: 0.375rem; }
.wp-block-query-pagination .page-numbers, .wp-block-query-pagination-previous, .wp-block-query-pagination-next {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 0.75rem; border-radius: 999px; color: var(--avx-navy); text-decoration: none;
}
.wp-block-query-pagination .page-numbers.current { background: var(--avx-navy); color: var(--wp--preset--color--white); }
.wp-block-query-pagination a:hover { background: var(--avx-cream); }
.wp-block-query-pagination .page-numbers.dots { min-width: auto; padding: 0; }

/* ---------- About: dictionary entry ---------- */
.avx-definition__cols { margin-bottom: clamp(2.5rem, 5vw, 4rem) !important; gap: clamp(2rem, 5vw, 4rem) !important; }
.avx-definition__trixie { margin: 0 auto; max-width: 340px; }
.avx-definition__trixie img { display: block; width: 100%; aspect-ratio: 1; object-fit: contain; padding: 14%; background: var(--avx-yellow); border-radius: 50%; }
.avx-definition__word { margin: 0 !important; font-size: var(--wp--preset--font-size--display) !important; line-height: 1 !important; letter-spacing: -0.01em; }
.avx-definition__say { margin-top: 0.75rem !important; font-size: 1.125rem; color: var(--avx-slate); }
.avx-definition__say em { font-family: var(--wp--preset--font-family--display); margin-left: 0.25rem; }
.avx-definition__bar { margin: 0 0.35rem; color: var(--avx-coral); }
.avx-definition__sense { margin-top: 1.25rem !important; padding-top: 1.25rem; border-top: 1px solid var(--avx-line); max-width: 30ch; font: 400 var(--wp--preset--font-size--h-3)/1.35 var(--wp--preset--font-family--display); }
@media (max-width: 781px) { .avx-definition__trixie { max-width: 220px; } }

/* ---------- Airport board (split-flap) ---------- */
.avx-board { margin: 0; }
.avx-board__list { list-style: none; margin: 0; padding: clamp(1.25rem, 3vw, 1.75rem); display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 8.75rem), 1fr)); gap: 1.5rem 1rem; background: var(--avx-navy); border-radius: var(--avx-radius); box-shadow: var(--wp--preset--shadow--float); }
.avx-board__flap { display: grid; gap: 0.5rem; align-content: start; }
.avx-board__code { display: flex; gap: 3px; }
.avx-board__char { position: relative; display: grid; place-items: center; width: 1.5em; height: 1.8em; font: 700 1.5rem/1 var(--wp--preset--font-family--body); color: var(--avx-yellow); background: rgba(255, 255, 255, 0.09); border-radius: 4px; }
.avx-board__char::after { content: ""; position: absolute; inset: calc(50% - 0.5px) 0 auto; height: 1px; background: rgba(8, 29, 44, 0.6); } /* the flap seam, kept thin so letters read clearly */
.avx-board__name { font-size: 0.8125rem; line-height: 1.35; color: var(--wp--preset--color--white); }
.avx-board__caption { margin-top: 0.875rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem 1rem; font-size: 0.875rem; color: var(--avx-slate); }
.avx-board__caption a { display: inline-flex; align-items: center; gap: 0.375rem; min-height: 24px; font-weight: 600; color: var(--avx-navy); text-decoration-color: var(--avx-coral); text-decoration-thickness: 2px; text-underline-offset: 0.3em; }
@media (max-width: 560px) {
	.avx-board__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 0.75rem; }
	.avx-board__char { font-size: 1.25rem; }
}
@media (forced-colors: active) { .avx-board__list { border: 1px solid CanvasText; } .avx-board__char { border: 1px solid CanvasText; } }

.avx-pass__summary { margin: 0.25rem 0 0; font-size: 0.9375rem; }

/* ==========================================================================
   Design pass 2 (Oct 15, 2026): Kyle's review. More color, icons instead of dots,
   one alignment edge for everything, no cropped work, fewer long scrolls.
   ========================================================================== */

/* ---------- One left edge: text lines up with the logo, the page title and the wide grids ---------- */
.avx-content .avx-section.is-layout-constrained > :not(.alignwide):not(.alignfull),
.avx-content.is-layout-constrained:not(.avx-content--article) > :not(.alignwide):not(.alignfull):not(.avx-section) {
	margin-left: max(0px, calc((100% - var(--wp--style--global--wide-size)) / 2)) !important;
	margin-right: auto !important;
}
/* Text-only sections read as an editorial spread: the heading on the left, the words on the right. */
@media (min-width: 1000px) {
	.avx-content > .avx-section.is-layout-constrained:has(> h2:first-child + *):not(:has(> :not(h2, h3, h4, p, ul, ol, .wp-block-buttons, .wp-block-separator))) {
		display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(2.5rem, 5vw, 5rem); row-gap: 0; align-items: start; align-content: start;
		padding-inline: max(var(--avx-gutter), calc((100% - var(--wp--style--global--wide-size)) / 2 + var(--wp--style--root--padding-left, 0px)));
	}
	.avx-content > .avx-section.is-layout-constrained:has(> h2:first-child + *):not(:has(> :not(h2, h3, h4, p, ul, ol, .wp-block-buttons, .wp-block-separator))) > * {
		grid-column: 2; max-width: 66ch !important; margin: 0 0 1.1rem !important;
	}
	.avx-content > .avx-section.is-layout-constrained:has(> h2:first-child + *):not(:has(> :not(h2, h3, h4, p, ul, ol, .wp-block-buttons, .wp-block-separator))) > :last-child { margin-bottom: 0 !important; }
	.avx-content > .avx-section.is-layout-constrained:has(> h2:first-child + *):not(:has(> :not(h2, h3, h4, p, ul, ol, .wp-block-buttons, .wp-block-separator))) > h2:first-child {
		grid-column: 1; grid-row: 1 / span 40; max-width: 18ch !important; margin: 0 !important; /* empty rows have no gap, so the span costs nothing */
	}
	.avx-content > .avx-section.is-layout-constrained:has(> h2:first-child + *):not(:has(> :not(h2, h3, h4, p, ul, ol, .wp-block-buttons, .wp-block-separator))) > h3 { margin-top: 0.75rem !important; }
}

/* ---------- Text links with an arrow: underline the words, not the arrow ---------- */
.is-style-avx-text .wp-block-button__link::after { display: inline-block; text-decoration: none; }

/* ---------- Icons in tinted tiles (replace the old dots) ---------- */
.avx-accent-blue { --avx-chip: var(--avx-blue); } .avx-accent-yellow { --avx-chip: var(--avx-yellow); }
.avx-accent-green { --avx-chip: var(--avx-green); } .avx-accent-coral { --avx-chip: var(--avx-coral); }
.avx-tile__icon, .avx-card__icon {
	display: grid; place-items: center; width: 52px; height: 52px; flex: none; border-radius: 16px;
	background: var(--avx-chip, var(--avx-accent)); color: var(--avx-navy);
}
.avx-tile__icon .avx-icon, .avx-card__icon .avx-icon { width: 26px; height: 26px; }
.is-style-avx-card > .avx-card__icon { margin-bottom: 1.1rem; }
.wp-block-image.is-style-avx-icon { width: 76px; height: 76px; margin: 0 0 1.1rem !important; border-radius: 20px; background: rgba(255, 255, 255, 0.75); display: grid; place-items: center; }
.wp-block-image.is-style-avx-icon img { width: 48px; height: 48px; object-fit: contain; }

/* ---------- Home hero: nothing behind the video, and the video gets the room; service colors up front ---------- */
.avx-hero { background: var(--avx-mist); } /* a quiet neutral band sets the hero apart from the white header */
.avx-hero__cols { gap: clamp(2rem, 4vw, 3.5rem) !important; }
.avx-hero__copy { container-type: inline-size; }
.avx-hero__copy h1 { font-size: clamp(2.125rem, 9.8cqi, 2.875rem); } /* sized to its column: the longest line (9.4em) always fits, so the headline keeps three lines */
.avx-video { background: var(--avx-cream); box-shadow: 0 30px 60px -20px rgba(8, 29, 44, 0.35), 0 0 0 1px rgba(8, 29, 44, 0.06); }
/* The promo file has a 2px black edge on its right side (0:10 to 0:16); a few px wider than the frame hides it. */
.avx-video video { width: calc(100% + 4px); max-width: none; }
.avx-svc-chips ul { list-style: none; margin: 1.75rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, max-content); gap: 0.5rem; }
@media (max-width: 420px) { .avx-svc-chips ul { grid-template-columns: 1fr; } }
.avx-svc-chip {
	display: inline-flex; align-items: center; gap: 0.5rem; min-height: 40px; padding: 0 1rem 0 0.375rem; border-radius: 999px;
	color: var(--avx-navy); font: 600 0.875rem/1.1 var(--wp--preset--font-family--body); text-decoration: none;
	box-shadow: inset 0 0 0 1px rgba(8, 29, 44, 0.08); transition: box-shadow 0.15s, transform 0.15s;
}
.avx-svc-chip .avx-icon { width: 28px; height: 28px; padding: 5px; border-radius: 50%; background: var(--avx-chip); }
@media (hover: hover) { .avx-svc-chip:hover { box-shadow: inset 0 0 0 2px var(--avx-navy); transform: translateY(-1px); } }
@media (max-width: 781px) {
	.avx-svc-chips ul { margin-top: 1.25rem; }
}

/* ---------- Service tiles (home): icon, then each service as a clear link row ---------- */
.avx-tile { display: flex; flex-direction: column; gap: 1rem; padding: 1.5rem 1.25rem 1rem; }
.avx-tile__title a { color: var(--avx-navy); text-decoration: none; }
.avx-tile__title a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.avx-tile__links { gap: 0; border-top: 1px solid rgba(8, 29, 44, 0.12); }
.avx-tile__links li { border-bottom: 1px solid rgba(8, 29, 44, 0.12); }
.avx-tile__links li:last-child { border-bottom: 0; }
.avx-tile__links a {
	display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; min-height: 46px; padding: 0.5rem 0.5rem;
	margin-inline: -0.5rem; border-radius: 10px; font-weight: 600; font-size: 0.9375rem;
}
.avx-tile__links a:hover { text-decoration: none; background: rgba(255, 255, 255, 0.6); }
.avx-tile__links .avx-icon { width: 18px; height: 18px; flex: none; opacity: 0.55; transition: transform 0.15s, opacity 0.15s; }
.avx-tile__links a:hover .avx-icon { transform: translateX(3px); opacity: 1; }

/* ---------- All Services: each group opens with a work example ---------- */
.avx-group-section { border-top: 0; padding-block: clamp(1.75rem, 3.5vw, 2.5rem); }
.avx-group-section__head {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: center;
	margin-bottom: 1rem; padding: clamp(1.25rem, 3vw, 2rem); border-radius: var(--avx-radius);
}
.avx-group-section__text { display: grid; gap: 0.75rem; justify-items: start; }
.avx-group-section__text h2 { margin: 0; }
.avx-group-section__text p { margin: 0; color: var(--avx-slate); font-size: var(--wp--preset--font-size--large); }
.avx-group-section__media { margin: 0; aspect-ratio: 2 / 1; border-radius: 16px; overflow: hidden; background: rgba(255, 255, 255, 0.7); }
.avx-group-section__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.avx-card { gap: 0.625rem; }
.avx-card .avx-card__icon { margin-bottom: 0.375rem; }
.avx-card.is-featured .avx-card__icon { background: var(--avx-yellow); }
@media (max-width: 800px) { .avx-group-section__head { grid-template-columns: 1fr; } }

/* ---------- Images are never cut off: graphics and mockups sit whole on a tinted panel ---------- */
.avx-fit-contain img, img.avx-fit-contain { object-fit: contain !important; padding: 6%; }
.avx-pass__media { aspect-ratio: 3 / 2; background: var(--avx-mist); overflow: hidden; }
.avx-pass__media img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }

/* ---------- Work examples next to the text they illustrate (service pages) ---------- */
.avx-split-examples { gap: clamp(2rem, 4vw, 3.5rem) !important; align-items: center !important; margin-block: clamp(1.5rem, 3vw, 2.5rem) !important; }
.avx-examples { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 0.75rem; }
.avx-split-examples .avx-examples { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.avx-examples > .wp-block-image { margin: 0 !important; aspect-ratio: 4 / 3; border-radius: 16px; overflow: hidden; background: var(--avx-cream); display: grid; place-items: center; }
.avx-examples > .wp-block-image img { width: 100%; height: 100%; object-fit: contain; padding: 9%; }
.avx-examples > .wp-block-image:nth-child(4n+2) { background: var(--avx-sky); }
.avx-examples > .wp-block-image:nth-child(4n+3) { background: var(--avx-mint); }
.avx-examples > .wp-block-image:nth-child(4n+4) { background: var(--avx-blush); }

/* ---------- News: colorful cards, a featured first story, whole images ---------- */
.avx-news { margin-top: clamp(2.5rem, 5vw, 3.5rem) !important; }
.avx-news .wp-block-post-template { gap: 1.25rem !important; }
.avx-news__card, .avx-more-news .avx-news__card {
	position: relative; height: 100%; margin: 0; padding: 0 0 1.5rem; gap: 0.5rem !important;
	background: var(--avx-card-tint, var(--avx-cream)); border-radius: var(--avx-radius); overflow: hidden;
	transition: transform 0.15s, box-shadow 0.15s;
}
@media (hover: hover) { .avx-news__card:hover { transform: translateY(-2px); box-shadow: var(--wp--preset--shadow--float); } }
.avx-news .wp-block-post-template > li:nth-child(4n+1) .avx-news__card, .avx-more-news__list > li:nth-child(3n+1) { --avx-card-tint: var(--avx-sky); }
.avx-news .wp-block-post-template > li:nth-child(4n+2) .avx-news__card, .avx-more-news__list > li:nth-child(3n+2) { --avx-card-tint: var(--avx-cream); }
.avx-news .wp-block-post-template > li:nth-child(4n+3) .avx-news__card, .avx-more-news__list > li:nth-child(3n+3) { --avx-card-tint: var(--avx-mint); }
.avx-news .wp-block-post-template > li:nth-child(4n+4) .avx-news__card { --avx-card-tint: var(--avx-blush); }
.avx-news__card .wp-block-post-featured-image { margin: 0 !important; width: 100%; aspect-ratio: 16 / 10; background: rgba(255, 255, 255, 0.6); }
.avx-news__card .wp-block-post-featured-image a { display: block; height: 100%; }
.avx-news__card .wp-block-post-featured-image img { display: block; width: 100% !important; height: 100% !important; object-fit: cover; }
.avx-news__card > :not(.wp-block-post-featured-image) { margin: 0 !important; padding-inline: 1.5rem; }
.avx-news__card .wp-block-post-date, .avx-news__date { margin-top: 0.75rem !important; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--avx-slate); }
.avx-news__card > .avx-news__title { margin-top: 0.75rem !important; } /* no dates on cards (Katie, Oct 15): the title takes the date's place */
.avx-news__title { font-size: 1.25rem !important; line-height: 1.25; }
.avx-news__title a { color: var(--avx-navy); text-decoration: none; }
.avx-news__title a::after { content: ""; position: absolute; inset: 0; } /* the whole card is the link */
.avx-news__card:has(.avx-news__title a:focus-visible) { outline: 3px solid var(--avx-navy); outline-offset: 3px; }
.avx-news__title a:focus-visible { outline: none; }
.avx-news__card .wp-block-post-excerpt__excerpt { margin: 0; color: var(--avx-slate); font-size: 0.9375rem; }
.avx-news__card .wp-block-post-featured-image a { position: relative; z-index: 1; } /* image link stays clickable, same target */
@media (min-width: 1000px) {
	.avx-news .wp-block-post-template { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.avx-news .wp-block-post-template > li:first-child { grid-column: span 2; }
	.avx-news .wp-block-post-template > li:first-child .avx-news__card { display: grid !important; grid-template-columns: 1.1fr 1fr; grid-template-rows: auto 1fr; column-gap: 0; padding: 0; }
	.avx-news .wp-block-post-template > li:first-child .wp-block-post-featured-image { grid-row: 1 / span 2; aspect-ratio: auto; height: 100%; min-height: 320px; }
	.avx-news .wp-block-post-template > li:first-child .avx-news__card > :not(.wp-block-post-featured-image) { grid-column: 2; padding-inline: 2rem; }
	.avx-news .wp-block-post-template > li:first-child .avx-news__card > .avx-news__title { margin-top: 2rem !important; }
	.avx-news .wp-block-post-template > li:first-child .avx-news__title { font-size: 1.75rem !important; }
}
@media (min-width: 640px) and (max-width: 999px) { .avx-news .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 639px) { .avx-news .wp-block-post-template { grid-template-columns: 1fr !important; } }

/* ---------- Single post: the whole image, an easy column, more news after ---------- */
/* One reading column (720px) holds the title, the lead image and the text; photos sit in the text at the same width. */
.single-post .avx-page-header { padding-inline: max(var(--avx-gutter), calc((100% - 720px) / 2 + var(--wp--style--root--padding-left, 0px))); }
.single-post .avx-page-header__inner { max-width: 720px; }
.avx-article { padding-top: clamp(2rem, 4vw, 3rem); }
.avx-post-hero { margin: 0 auto !important; }
.avx-post-hero img { display: block; width: 100%; height: auto !important; border-radius: 20px; }
.avx-post-hero.avx-fit-cover img { max-height: min(75vh, 600px); object-fit: cover; }
.avx-post-hero.avx-fit-contain img { max-height: 640px; object-fit: contain !important; padding: 0; }
.avx-content--article { padding-block: clamp(2rem, 4vw, 2.75rem) clamp(3rem, 6vw, 4.5rem); font-size: 1.125rem; line-height: 1.7; }
.avx-content--article > p:first-of-type { font-size: var(--wp--preset--font-size--large); line-height: 1.55; color: var(--avx-navy); }
.avx-content--article h2 { margin-top: 2.25rem; }
.avx-content--article > .wp-block-image, .avx-content--article > .avx-photos { margin-block: 2.25rem !important; }
.avx-content--article .wp-block-image img { display: block; width: 100%; height: auto; border-radius: 16px; }
.avx-content--article > .wp-block-image.avx-fit-cover img { max-height: 560px; object-fit: cover; }
.avx-content--article > .wp-block-image.avx-fit-contain img { max-height: 640px; padding: 0; }
/* Video embeds in posts get the same rounded corners as the photos around them. */
.avx-content--article .wp-block-embed__wrapper { border-radius: 16px; overflow: hidden; }
.avx-content--article .wp-block-embed iframe { display: block; border-radius: 16px; }
.avx-photos { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0.75rem; }
.avx-photos > .wp-block-image { grid-column: span 2; margin: 0 !important; aspect-ratio: 4 / 3; border-radius: 14px; overflow: hidden; background: var(--avx-mist); }
.avx-photos > .is-half { grid-column: span 3; }
.avx-photos > .is-full { grid-column: span 6; aspect-ratio: 16 / 9; }
.avx-content--article .avx-photos img { width: 100%; height: 100%; border-radius: 0; object-fit: cover; }
.avx-content--article .avx-photos .avx-fit-contain img { object-fit: contain; padding: 8%; }
@media (max-width: 600px) {
	.avx-photos > .wp-block-image { grid-column: span 3; aspect-ratio: 1; }
	.avx-photos > :first-child:nth-last-child(odd) { grid-column: span 6; aspect-ratio: 16 / 9; } /* odd count: the first goes full width */
}
/* A quote in a post is a panel in the column, so it never runs into the More News band below. */
.avx-content--article .avx-quote { margin-top: 2.5rem; padding: clamp(1.5rem, 3vw, 2.25rem); border-radius: 20px; background: var(--avx-sky); }
.avx-content--article .avx-quote p { font-size: clamp(1.25rem, 2.2vw, 1.5rem); }
.avx-more-news-band { background: var(--avx-mist); }
.avx-more-news__head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.avx-more-news__head h2 { margin: 0; }
.avx-more-news__all { display: inline-flex; align-items: center; gap: 0.375rem; font-weight: 600; color: var(--avx-navy); }
.avx-more-news__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.avx-more-news .avx-news__card { background: #fff; display: flex; flex-direction: column; }
.avx-more-news .wp-block-post-featured-image { margin: 0; aspect-ratio: 16 / 10; background: var(--avx-card-tint, var(--avx-cream)); }
.avx-more-news .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.avx-more-news .avx-news__card > :not(figure) { padding-inline: 1.25rem; margin: 0; }
@media (max-width: 800px) { .avx-more-news__list { grid-template-columns: 1fr; } }

/* ---------- Team: tinted cards that line up row by row ---------- */
.avx-team__grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: 1.25rem; }
@media (min-width: 1000px) {
	.avx-team__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	/* 3, 6 or 9 people: three across, so no one sits alone on the last row */
	.avx-team__grid:has(> :last-child:nth-child(3n)):not(:has(> :last-child:nth-child(4n))) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.avx-team__grid > .avx-person {
	display: grid; grid-template-rows: subgrid; grid-row: span 4; gap: 0.5rem; justify-items: center; align-content: start;
	padding: 1.75rem 1.25rem 1.25rem; border-radius: var(--avx-radius); background: var(--avx-card-tint, var(--avx-cream));
}
.avx-team__grid > .avx-person:nth-child(4n+1) { --avx-card-tint: var(--avx-sky); }
.avx-team__grid > .avx-person:nth-child(4n+2) { --avx-card-tint: var(--avx-mint); }
.avx-team__grid > .avx-person:nth-child(4n+3) { --avx-card-tint: var(--avx-blush); }
.avx-team__grid > .avx-person:nth-child(4n+4) { --avx-card-tint: var(--avx-cream); }
.avx-team__grid > .avx-person .avx-person__text { display: contents; }
.avx-team__grid > .avx-person .avx-person__photo { width: 148px; margin-bottom: 0.5rem; background: #fff; box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.7); }
.avx-team__grid > .avx-person .avx-person__name { align-self: end; }
.avx-team__grid > .avx-person .avx-person__role { align-self: start; color: var(--avx-slate); }
.avx-team__grid > .avx-person .avx-person__actions { align-self: end; margin-top: 0.5rem; }
.avx-person__more { background: rgba(255, 255, 255, 0.85); transition: background 0.15s, color 0.15s; }
.avx-person__more:hover, .avx-person__more:focus-visible { background: var(--avx-navy); color: #fff; border-color: var(--avx-navy); }
.avx-person__link { background: rgba(255, 255, 255, 0.85); box-shadow: inset 0 0 0 1px rgba(8, 29, 44, 0.15); transition: background 0.15s, color 0.15s, transform 0.15s; }
.avx-person__link:focus-visible { background: var(--avx-navy); color: #fff; transform: translateY(-1px); }
@media (hover: hover) { .avx-person__link:hover { background: var(--avx-navy); color: #fff; transform: translateY(-1px); } }
.avx-person--lead .avx-person__photo { box-shadow: 0 0 0 8px #fff; }

/* ---------- About: one compact opener ---------- */
.avx-definition__cols { align-items: center !important; }
.avx-definition__cols > .wp-block-column:last-child > p:not([class]) { margin: 1rem 0 0; max-width: 62ch; }
.avx-definition__trixie { max-width: 300px; }
.avx-definition__sense { margin-bottom: 0.5rem !important; }

/* ---------- Contact: details beside the form ---------- */
.avx-contact { gap: clamp(2rem, 5vw, 4.5rem) !important; align-items: start !important; }
.avx-contact__text h2 { margin-top: 0; }
.avx-contact__details { margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--avx-line); }
.avx-contact__details h3 { font-size: 1.0625rem; margin: 0 0 0.5rem; }
.avx-contact__details ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.375rem; }
.avx-contact__support { margin-top: 1.75rem; padding: 1.25rem 1.375rem; border-radius: 18px; background: var(--avx-sky); display: grid; gap: 0.875rem; justify-items: start; }
.avx-contact__support p { margin: 0; }
.avx-contact__support .wp-block-buttons { margin: 0; }
/* Embedded monday.com form: the frame spans the wide column and the form centers itself in it. */
.avx-embed iframe { display: block; width: 100%; border: 0; }
.avx-contact__form { background: var(--avx-mist); box-shadow: inset 0 0 0 1px var(--avx-line); border-radius: var(--avx-radius); padding: clamp(1.5rem, 3vw, 2.5rem) !important; }

/* ---------- Footer: links that look like links, social icons, one-line email ---------- */
@media (min-width: 1101px) { .avx-footer__inner { grid-template-columns: 1.25fr 1fr 1fr 1.45fr; } } /* desktop only: it used to override the phone layout */
.avx-footer__col a { text-decoration: underline; text-decoration-color: rgba(8, 29, 44, 0.25); text-decoration-thickness: 1px; text-underline-offset: 0.3em; }
.avx-footer__col a:hover { text-decoration-color: var(--avx-navy); text-decoration-thickness: 2px; }
.avx-footer__svc { gap: 0.5rem; }
.avx-footer__svc .avx-icon { width: 26px; height: 26px; padding: 4px; border-radius: 8px; background: var(--avx-chip); flex: none; }
.avx-footer__email { display: inline !important; white-space: nowrap; font-size: clamp(0.875rem, 1.05vw, 1rem); }
.avx-footer__social { gap: 0.5rem !important; }
.avx-footer__social a.avx-social {
	width: 44px; height: 44px; min-height: 0; display: inline-grid; place-items: center; border-radius: 50%; text-decoration: none;
	background: #fff; color: var(--avx-navy); box-shadow: inset 0 0 0 1px rgba(8, 29, 44, 0.15); transition: background 0.15s, color 0.15s, transform 0.15s;
}
.avx-footer__social a.avx-social:focus-visible { background: var(--avx-navy); color: #fff; transform: translateY(-1px); }
@media (hover: hover) { .avx-footer__social a.avx-social:hover { background: var(--avx-navy); color: #fff; transform: translateY(-1px); } }
@media (max-width: 1100px) and (min-width: 961px) { .avx-footer__inner { grid-template-columns: 1fr 1fr 1fr; } .avx-footer__brand { grid-column: 1 / -1; } }

/* ---------- Search: a white sheet over a dimmed page, so it never blends into a cream header ---------- */
.avx-search { background: #fff; box-shadow: 0 0 0 100vmax rgba(8, 29, 44, 0.32); clip-path: inset(0 -100vmax -100vmax -100vmax); }
.avx-search__field input { background: var(--avx-sky); border-color: var(--avx-navy); }
.avx-search .avx-chip { background: var(--avx-cream); border-color: transparent; }
.avx-search .avx-chip:hover { border-color: var(--avx-navy); }

/* FAQ on the same left edge; on wide screens the title sits left of the questions, like the text sections. */
.avx-faq__inner { max-width: var(--wp--style--global--wide-size, 1200px); }
@media (min-width: 1000px) {
	.avx-faq__inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(2.5rem, 5vw, 5rem); align-items: start; }
	.avx-faq__title { margin: 0; max-width: 16ch; position: sticky; top: calc(var(--avx-header-h) + 2rem); }
	.admin-bar .avx-faq__title { top: calc(var(--avx-header-h) + 32px + 2rem); }
}

/* ==========================================================================
   Design pass 3 (Oct 15, 2026): Our Work pictures are framed at 3:2 ahead of time
   (tools/frame_images.swift), so every card fills edge to edge with nothing cut off.
   ========================================================================== */
@media (min-width: 1000px) {
	/* Our Work groups: three across; a short last row widens to fill (2 left: halves; 1 left: the last four go two by two). */
	.avx-work--grouped .avx-work__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.avx-work--grouped .avx-work__grid > .avx-pass { grid-column: span 2; }
	.avx-work--grouped .avx-work__grid:has(> :last-child:nth-child(3n+2)) > :nth-last-child(-n+2),
	.avx-work--grouped .avx-work__grid:has(> :last-child:nth-child(3n+1)) > :nth-last-child(-n+4) { grid-column: span 3; }
}
/* "If you can envision it": white cards with the piece edge to edge at 3:2, like the project cards. */
.avx-print-grid > .is-style-avx-card { background: #fff; box-shadow: 0 0 0 1px var(--avx-line); overflow: hidden; padding-top: 0 !important; }
.avx-print-grid > .is-style-avx-card > .wp-block-image:first-child:not(.is-style-avx-icon) {
	margin: 0 calc(-1 * clamp(1.5rem, 3vw, 2rem)) 1.25rem !important; max-width: none !important; /* beats the layout's auto margins */
}
.avx-print-grid > .is-style-avx-card > .wp-block-image:first-child:not(.is-style-avx-icon) img { aspect-ratio: 3 / 2; border-radius: 0; object-fit: cover; }
/* All Services: each group's work example at 3:2 too. */
.avx-group-section__media { aspect-ratio: 3 / 2; }

.avx-work__heading { margin: 0 0 1.25rem; }

/* ==========================================================================
   Design pass 4 (Oct 15, 2026): service page polish. The content build (tools/compose.py polish())
   splits long sections at their headings; these rules lay the pieces out.
   ========================================================================== */

/* Cards: everything starts on the same left edge (the layout's auto margins used to shrink-wrap and center
   the titles), and cards in a row take turns through the brand tints instead of all cream. */
.is-style-avx-card > * { margin-left: 0 !important; margin-right: 0 !important; align-self: stretch; max-width: none !important; }
.is-style-avx-card > .avx-card__icon { align-self: flex-start; }
.is-style-avx-card h2, .is-style-avx-card h3 { font: 600 1.25rem/1.3 var(--wp--preset--font-family--body); text-wrap: balance; margin: 0 0 0.5rem; }
.avx-card-grid > .is-style-avx-card:nth-child(4n+1) { --avx-tint: var(--avx-sky); --avx-chip: rgba(114, 177, 217, 0.45); }
.avx-card-grid > .is-style-avx-card:nth-child(4n+2) { --avx-tint: var(--avx-mint); --avx-chip: rgba(129, 200, 146, 0.45); }
.avx-card-grid > .is-style-avx-card:nth-child(4n+3) { --avx-tint: #FDEEEB; --avx-chip: rgba(239, 106, 93, 0.3); }
.avx-card-grid > .is-style-avx-card:nth-child(4n+4) { --avx-tint: var(--avx-cream); --avx-chip: var(--avx-yellow); }
.avx-print-grid > .is-style-avx-card { --avx-tint: #fff; }
/* Text links in cards: one tidy line height when the label wraps. */
.is-style-avx-card .is-style-avx-text .wp-block-button__link { line-height: 1.4; text-align: left; padding: 0; display: inline; }
@media (min-width: 1000px) {
	/* Three across; a short last row widens to fill (2 left: halves; 1 left: the last four go two by two). */
	.avx-card-grid.avx-card-grid.avx-card-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.avx-card-grid > * { grid-column: span 2; }
	.avx-card-grid:has(> :last-child:nth-child(3n+2)) > :nth-last-child(-n+2),
	.avx-card-grid:has(> :last-child:nth-child(3n+1)) > :nth-last-child(-n+4) { grid-column: span 3; }
	.avx-card-grid > :only-child { grid-column: 1 / -1; }
}
@media (min-width: 640px) and (max-width: 999px) { .avx-card-grid.avx-card-grid.avx-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* A topic: heading beside its text. */
.avx-split { display: grid; gap: 0.75rem; }
.avx-split > * { margin: 0 !important; max-width: 66ch; }
.avx-split > * + * { margin-top: 1.1rem !important; }
@media (min-width: 1000px) {
	.avx-split { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(2.5rem, 5vw, 5rem); row-gap: 0; align-items: start; }
	.avx-split > * { grid-column: 2; }
	.avx-split > :first-child { grid-column: 1; grid-row: 1 / span 40; max-width: 18ch; }
	.avx-split > :nth-child(2) { margin-top: 0 !important; }
}
/* A long topic: heading on top, the words in two columns. */
.avx-longread > h2, .avx-longread > h3 { margin: 0 0 1.5rem; max-width: 24ch; }
.avx-longread__body > * { margin: 0 0 1.1rem; break-inside: avoid; }
.avx-longread__body > :last-child { margin-bottom: 0; }
@media (min-width: 1000px) { .avx-longread__body { columns: 2; column-gap: clamp(2.5rem, 5vw, 4.5rem); } }
/* Opening words before the first heading: one easy column, a little larger. */
.avx-lead-section > p { font-size: var(--wp--preset--font-size--large); line-height: 1.55; max-width: 62ch; color: var(--avx-navy); }
/* Sections that follow each other without a color change sit a little closer. */
.avx-content > .avx-section:not(.has-background) + .avx-section:not(.has-background) { padding-top: clamp(1rem, 2.5vw, 2rem); }

/* Testimonials: centered, with a small label above. */
.avx-quote-section { text-align: center; }
.avx-quote-section > *,
.avx-content .avx-section.avx-quote-section.is-layout-constrained > :not(.alignwide):not(.alignfull) { margin-left: auto !important; margin-right: auto !important; } /* beats the one-left-edge rule */
.avx-quote-section .avx-eyebrow { margin-bottom: 0.75rem; }
.avx-quote-section > h2 { margin-bottom: 1.5rem; }
.avx-quote-section .avx-quote { max-width: 860px; }
.avx-quote-section .avx-quote p { text-wrap: balance; }

/* Galleries on pages: equal tiles; mockups whole on a soft panel, photos fill. */
.avx-content .wp-block-gallery.avx-gallery { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem !important; }
.avx-content .wp-block-gallery.avx-gallery > figure.wp-block-image { width: auto !important; margin: 0 !important; aspect-ratio: 3 / 2; border-radius: 14px; overflow: hidden; background: var(--avx-mist); }
.avx-content .wp-block-gallery.avx-gallery > figure.wp-block-image img { width: 100% !important; height: 100% !important; object-fit: cover; }
.avx-content .avx-gallery img[src$=".png"], .avx-content .avx-gallery img[src*="mockup"], .avx-content .avx-gallery .avx-fit-contain img { object-fit: contain !important; padding: 6%; }
/* Three photos beside text: one large, two below. */
.avx-content .wp-block-column > .wp-block-gallery.avx-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.avx-content .wp-block-column > .wp-block-gallery.avx-gallery > figure:first-child { grid-column: 1 / -1; }
/* Big galleries scroll sideways (theme.js adds the arrow buttons). */
.avx-content .wp-block-gallery.avx-slider { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 0; overscroll-behavior-x: contain; scrollbar-width: thin; padding-bottom: 0.5rem; }
.avx-content .wp-block-gallery.avx-slider > figure.wp-block-image { flex: 0 0 calc((100% - 1.5rem) / 3) !important; scroll-snap-align: start; }
@media (max-width: 781px) { .avx-content .wp-block-gallery.avx-slider > figure.wp-block-image { flex-basis: 82% !important; } }
.avx-slider-nav { display: flex; justify-content: flex-end; gap: 0.5rem; margin-top: 0.75rem; }
.avx-slider-nav button { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--avx-line); background: #fff; color: var(--avx-navy); display: grid; place-items: center; cursor: pointer; padding: 0; transition: background 0.15s, color 0.15s; }
.avx-slider-nav button:hover { background: var(--avx-navy); color: #fff; }
.avx-slider-nav button:disabled { opacity: 0.35; cursor: default; background: #fff; color: var(--avx-navy); }
.avx-slider-nav .avx-icon { width: 20px; height: 20px; }
/* The count sits before the buttons, so the back button is the first button, not the first child. */
.avx-slider-nav button:first-of-type .avx-icon { transform: rotate(180deg); }
.avx-slider:focus-visible, [data-avx-slider]:focus-visible { outline: 3px solid var(--avx-navy); outline-offset: 4px; border-radius: 16px; }

/* Footer: one sky band (no white strip under it), a little tighter; the legal line sits inside it, on the left,
   with the sun rising at the right. */
.avx-footer { position: relative; overflow: hidden; background: var(--avx-sky); }
.avx-footer__horizon { position: static; padding: clamp(2.5rem, 5vw, 3.5rem) var(--avx-gutter) clamp(1.75rem, 3vw, 2.25rem); }
.avx-footer__sun { width: clamp(150px, 18vw, 260px); right: 6%; bottom: 0; transform: translateY(58%); }
.avx-footer__path { inset: auto 0 12% 0; height: 130px; }
.avx-footer__inner { gap: 1.5rem 2rem; }
.avx-footer__logo img { width: 180px; }
.avx-footer__legal { position: relative; z-index: 1; justify-content: flex-start; gap: 0.25rem 1.5rem; padding: 1rem var(--avx-gutter) 1.25rem; border-top: 1px solid rgba(8, 29, 44, 0.1); max-width: 1200px; }
/* A topic's heading reads as a section heading whatever its level in the converted content. */
.avx-split > :first-child:is(h2, h3, h4), .avx-longread > :first-child:is(h2, h3, h4) {
	font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--h-2); font-weight: 700; line-height: 1.15; text-wrap: balance;
}
/* Service cards: a slightly larger icon. */
.avx-card .avx-card__icon, .is-style-avx-card > .avx-card__icon { width: 56px; height: 56px; border-radius: 18px; }
.avx-card .avx-card__icon .avx-icon, .is-style-avx-card > .avx-card__icon .avx-icon { width: 28px; height: 28px; }

/* Motion: sections and cards below the fold ease in once (theme.js adds .avx-reveal only when motion is welcome). */
/* Movement only, never a fade: text keeps full contrast the whole time (accessibility checkers included). */
.avx-reveal { transform: translateY(12px); transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1); transition-delay: var(--avx-delay, 0s); }
.avx-reveal--fade { transform: translateY(16px); }
.avx-reveal.is-in { transform: none; }
@media (prefers-reduced-motion: reduce) { .avx-reveal { opacity: 1; transform: none; transition: none; } }
@media print { .avx-reveal { opacity: 1 !important; transform: none !important; } }

/* About: Trixi in the logo navy on the yellow sun, with a wink layer. */
.avx-trixi__face { position: relative; display: block; aspect-ratio: 1; padding: 14%; background: var(--avx-yellow); border-radius: 50%; overflow: hidden; } /* overflow keeps her circle round whatever is inside */
.avx-trixi__face img { display: block; width: 100%; height: 100%; object-fit: contain; padding: 0 !important; background: none !important; border-radius: 0 !important; aspect-ratio: auto !important; }
.avx-trixi__wink { position: absolute; inset: 14%; width: 72% !important; height: 72% !important; opacity: 0; }
.avx-trixi.is-winking .avx-trixi__wink { opacity: 1; }
.avx-trixi.is-winking .avx-trixi__face > img:first-child { opacity: 0; }

/* Our Work: one sliding row per project type (three cards in view), so the portfolio is quick to scan. */
.avx-work__track { overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: thin; padding: 6px 2px 10px; margin: -6px -2px 0; }
.avx-work--grouped .avx-work__track .avx-work__grid { display: flex !important; gap: 1.25rem; }
.avx-work--grouped .avx-work__track .avx-pass { flex: 0 0 calc((100% - 2.5rem) / 3); scroll-snap-align: start; grid-column: auto !important; }
@media (max-width: 999px) { .avx-work--grouped .avx-work__track .avx-pass { flex-basis: calc((100% - 1.25rem) / 2); } }
@media (max-width: 640px) { .avx-work--grouped .avx-work__track .avx-pass { flex-basis: 85%; } }
.avx-work__group .avx-slider-nav { margin-top: 0.5rem; }
/* Client map: organizations without a pin aren't shown (no List view since 0.8.1). */
#avxm:not(.is-list) .avxm-orgs { display: none !important; }
/* Team view: the pins and their cards show who is where, so no team list under the map (Kyle, Oct 15). */
#avxm.is-team .avxm-team-list { display: none !important; }

/* Sliders: no scrollbar under the arrows, and a sliver of the next card shows there is more. */
.avx-content .wp-block-gallery.avx-slider, .avx-work__track { scrollbar-width: none; }
.avx-content .wp-block-gallery.avx-slider::-webkit-scrollbar, .avx-work__track::-webkit-scrollbar { display: none; }
.avx-content .wp-block-gallery.avx-slider > figure.wp-block-image { flex-basis: calc((100% - 1.5rem) / 3.2) !important; }
.avx-work--grouped .avx-work__track .avx-pass { flex-basis: calc((100% - 2.5rem) / 3.2); }
@media (max-width: 999px) { .avx-work--grouped .avx-work__track .avx-pass { flex-basis: calc((100% - 1.25rem) / 2.2); } }
@media (max-width: 781px) { .avx-content .wp-block-gallery.avx-slider > figure.wp-block-image { flex-basis: 82% !important; } }
@media (max-width: 640px) { .avx-work--grouped .avx-work__track .avx-pass { flex-basis: 85%; } }


/* ==========================================================================
   Final round (Oct 15, 2026): Kyle's last review.
   ========================================================================== */

/* Sliders: navy arrows that read as controls, with a count beside them; drag with the mouse. */
.avx-slider-nav { align-items: center; gap: 0.625rem; margin-top: 1rem; }
.avx-slider-count { margin-right: 0.25rem; font: 600 0.875rem/1 var(--wp--preset--font-family--body); color: var(--avx-slate); font-variant-numeric: tabular-nums; }
.avx-slider-nav button { width: 48px; height: 48px; border: 0; background: var(--avx-navy); color: #fff; box-shadow: 0 6px 16px -6px rgba(8, 29, 44, 0.45); }
.avx-slider-nav button:hover { background: var(--avx-slate); color: #fff; }
.avx-slider-nav button:disabled { background: #fff; color: var(--avx-navy); box-shadow: inset 0 0 0 1px var(--avx-line); opacity: 0.45; }
.avx-slider-nav[hidden] { display: none; }
@media (hover: hover) and (pointer: fine) {
	.avx-slider, [data-avx-slider] { cursor: grab; }
	.avx-slider.is-dragging, [data-avx-slider].is-dragging { cursor: grabbing; scroll-snap-type: none !important; user-select: none; }
	.is-dragging * { pointer-events: none; }
}

/* Lightbox. */
.avx-zoom { display: block; width: 100%; height: 100%; padding: 0; margin: 0; border: 0; background: none; cursor: zoom-in; border-radius: inherit; }
.avx-pass__media .avx-zoom { position: relative; z-index: 2; } /* above the card's stretched link */
.avx-zoom:focus-visible { outline: 3px solid var(--avx-navy); outline-offset: -3px; }
.avx-lightbox { width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(8, 29, 44, 0.94); color: #fff; overflow: hidden; }
.avx-lightbox::backdrop { background: rgba(8, 29, 44, 0.6); }
.avx-lightbox[open] { display: grid; place-items: center; }
.avx-lightbox__fig { margin: 0; display: grid; gap: 0.875rem; justify-items: center; max-width: min(1200px, 90vw); }
.avx-lightbox__fig img { max-width: 100%; max-height: 78vh; width: auto; height: auto; border-radius: 12px; background: #fff; }
.avx-lightbox__fig figcaption { max-width: 70ch; text-align: center; font-size: 0.9375rem; line-height: 1.5; color: rgba(255, 255, 255, 0.88); }
.avx-lightbox__count { position: absolute; top: 1.4rem; left: 1.5rem; margin: 0; font: 600 0.875rem var(--wp--preset--font-family--body); color: rgba(255, 255, 255, 0.8); }
.avx-lightbox__btn { position: absolute; width: 52px; height: 52px; border-radius: 50%; border: 0; background: #fff; color: var(--avx-navy); display: grid; place-items: center; cursor: pointer; }
.avx-lightbox__btn:hover { background: var(--avx-yellow); }
.avx-lightbox__btn:focus-visible { outline: 3px solid var(--avx-yellow); outline-offset: 3px; }
.avx-lightbox__btn .avx-icon { width: 22px; height: 22px; }
.avx-lightbox__close { top: 1rem; right: 1rem; }
.avx-lightbox__prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.avx-lightbox__prev .avx-icon { transform: rotate(180deg); }
.avx-lightbox__next { right: 1rem; top: 50%; transform: translateY(-50%); }
.avx-lightbox.is-single .avx-lightbox__prev, .avx-lightbox.is-single .avx-lightbox__next { display: none; }
@media (max-width: 640px) { .avx-lightbox__prev, .avx-lightbox__next { top: auto; bottom: 1rem; transform: none; } }

/* Example tiles framed ahead of time fill their tile. */
.avx-examples > .wp-block-image.avx-fit-cover img { object-fit: cover !important; padding: 0 !important; }
/* Two or three examples beside text stack, so each is large. */
.wp-block-column > .avx-examples:not(:has(> :nth-child(4))) { grid-template-columns: 1fr !important; }
.wp-block-column > .avx-examples:not(:has(> :nth-child(4))) > .wp-block-image { aspect-ratio: 3 / 2; }
/* Brand Development: the opening words with a picture beside them; a picture under the branding process heading. */
.avx-lead-cols { gap: clamp(2rem, 5vw, 4rem) !important; }
.avx-lead-cols p { font-size: var(--wp--preset--font-size--large); line-height: 1.55; color: var(--avx-navy); }
.avx-lead-cols .wp-block-image img, .avx-split__aside .wp-block-image img { display: block; width: 100%; height: auto; border-radius: var(--avx-radius); box-shadow: 0 18px 40px -22px rgba(8, 29, 44, 0.35); }
.avx-split__aside > :first-child:is(h2, h3) { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--h-2); font-weight: 700; line-height: 1.15; margin: 0 0 1.5rem; max-width: 18ch; }
.avx-split__aside .wp-block-image { margin: 0; }
@media (min-width: 1000px) { .avx-split__aside { position: sticky; top: calc(var(--avx-header-h) + 2rem); } }

/* Accordions side by side. */
.avx-details-grid { display: grid; gap: 0.75rem 1.25rem; align-items: start; }
@media (min-width: 800px) { .avx-details-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.avx-details-grid > .wp-block-details { margin: 0 !important; }

/* Digital Accessibility: deadline beside the opening; services as cards; process as numbered steps. */
.avx-ada-open { gap: clamp(2rem, 5vw, 4rem) !important; }
.avx-deadline-panel { background: var(--avx-blush); border-radius: var(--avx-radius); padding: clamp(1.5rem, 3vw, 2.25rem); display: grid; gap: 0.75rem; }
.avx-deadline-panel > h3 { margin: 0; font: 700 1.25rem/1.3 var(--wp--preset--font-family--body); }
.avx-deadline-panel .avx-deadline { background: none; padding: 0; }
.avx-section-intro { display: grid; gap: 0.75rem; margin-bottom: 1.75rem; max-width: 760px; }
.avx-section-intro > * { margin: 0; }
.has-background .avx-card-grid > .is-style-avx-card { --avx-tint: #fff; } /* cards on a tinted band are white */
.avx-step-cards { counter-reset: avx-step; }
.avx-step-cards > .is-style-avx-card { counter-increment: avx-step; }
.avx-step-cards > .is-style-avx-card > .avx-card__icon { display: none; }
.avx-step-cards > .is-style-avx-card::before { content: "Step " counter(avx-step); align-self: flex-start; margin-bottom: 0.875rem; padding: 0.375rem 0.75rem; border-radius: 999px; background: var(--avx-navy); color: #fff; font: 700 0.75rem/1 var(--wp--preset--font-family--body); letter-spacing: 0.08em; text-transform: uppercase; }

/* Testimonials: easier to read (the body face, a little smaller, with a big quotation mark above). */
.avx-quote-section .avx-quote p { font: 500 clamp(1.25rem, 2.2vw, 1.5rem)/1.5 var(--wp--preset--font-family--body); letter-spacing: 0; }
.avx-quote-section .avx-quote p::before, .avx-quote-section .avx-quote p::after { content: none; }
.avx-quote-section .avx-quote::before { content: "\201C"; display: block; font: 700 4.5rem/0.6 var(--wp--preset--font-family--display); color: var(--avx-blue); margin: 0.5rem 0 1rem; }
.avx-quote-section .avx-quote cite { margin-top: 1.25rem; font-size: 1rem; }

/* Links that lead somewhere read as links. */
.avx-card__go { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.25em; }
.avx-card:hover .avx-card__go { text-decoration-thickness: 2px; }
.avx-pass__go { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.25em; }
.avx-pass:hover .avx-pass__go { text-decoration-thickness: 2px; }

/* Our Work: project types alternate with soft brand bands; the print pieces sit on cream. */
.avx-work--grouped .avx-work__group { position: relative; }
.avx-work--grouped .avx-work__group:nth-of-type(even) { background: var(--avx-sky); box-shadow: 0 0 0 100vmax var(--avx-sky); clip-path: inset(0 -100vmax); padding-bottom: clamp(2rem, 4vw, 3rem); }
.avx-work--grouped .avx-work__group:nth-of-type(even) .avx-pass__body::before, .avx-work--grouped .avx-work__group:nth-of-type(even) .avx-pass__body::after { background: var(--avx-sky); }
.avx-content > .avx-section:has(.avx-print-grid) { background: var(--avx-cream); }
.avx-section-head { align-items: center; margin-bottom: 1.25rem; gap: 1rem; }
.avx-section-head > h2 { margin: 0; }
.avx-section-head .wp-block-buttons { margin: 0; }

/* Search: one clear focus ring; the quick links in the brand tints. */
.avx-search__field input { border: 1.5px solid rgba(8, 29, 44, 0.35); }
.avx-search__field input:focus-visible { outline: none; border: 2px solid var(--avx-navy); box-shadow: 0 0 0 4px rgba(114, 177, 217, 0.45); }
.avx-search .avx-search__quick li:nth-child(4n+1) .avx-chip { background: var(--avx-sky); }
.avx-search .avx-search__quick li:nth-child(4n+2) .avx-chip { background: var(--avx-mint); }
.avx-search .avx-search__quick li:nth-child(4n+3) .avx-chip { background: #FDEEEB; }
.avx-search .avx-search__quick li:nth-child(4n+4) .avx-chip { background: var(--avx-cream); }

/* Contact: the form panel in the brand mint (the website-support box stays sky). */
/* Contact form (Kyle, Oct 15, replaces the mint): a white card with a fine border, as tall as the text beside it;
   the Send button sits at the card's foot, level with the Website Support box. */
.avx-contact { align-items: stretch !important; }
.avx-contact__form { background: #fff; box-shadow: 0 0 0 1px rgba(8, 29, 44, 0.16), 0 12px 32px rgba(8, 29, 44, 0.06); display: flex; flex-direction: column; }
.avx-contact__form > .gform_wrapper, .avx-contact__form > .gform_wrapper > form { flex: 1; display: flex; flex-direction: column; }
.avx-contact__form :is(.gform-body, .gform_body) { flex: 1; }
.avx-contact__form :is(.gform-footer, .gform_footer) { margin-top: auto; }
@media (max-width: 781px) { .avx-contact { align-items: start !important; } }

/* Home hero: the brand sky; the service links sit on white so they still stand apart. */
.avx-hero { background: var(--avx-sky); }
.avx-hero .avx-svc-chip { background: #fff !important; box-shadow: 0 1px 2px rgba(8, 29, 44, 0.08); }

/* Headings: a column's single heading reads at section size, like the H2s around it. */
.avx-content .wp-block-column:not(:has(> :is(h2, h3) ~ :is(h2, h3))) > h3:first-child {
	font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--h-2); font-weight: 700; line-height: 1.15;
}
/* Service pages: a little less air between plain sections. */
.avx-content > .avx-section:not(.has-background) + .avx-section:not(.has-background) { padding-top: 0; }
.avx-split > .avx-split__aside { max-width: none !important; }

/* Home: Recent Projects on the neutral mist band with the cards in the brand pastels; the FAQ below it is white,
   so the two sections no longer read as one (Kyle, Oct 15). Ticket notches show the band behind them. */
.avx-section.has-mist-background-color { --avx-pass-bg: var(--avx-mist); }
.avx-section.has-cream-background-color { --avx-pass-bg: var(--avx-cream); }
.avx-work--tinted .avx-pass:nth-child(4n+1) { background: var(--avx-sky); }
.avx-work--tinted .avx-pass:nth-child(4n+2) { background: var(--avx-mint); }
.avx-work--tinted .avx-pass:nth-child(4n+3) { background: #FDEEEB; }
.avx-work--tinted .avx-pass:nth-child(4n+4) { background: var(--avx-cream); }

/* Search results field: one focus ring (the field had its own outline inside the pill). Rest and focus match the
   header search: a light pill, then navy with the sky halo; the button shows an inner white ring. */
.wp-block-search__inside-wrapper { border: 1.5px solid rgba(8, 29, 44, 0.35) !important; }
.wp-block-search__input:focus-visible { outline: none; }
.wp-block-search__inside-wrapper:has(.wp-block-search__input:focus-visible) { border: 2px solid var(--avx-navy) !important; box-shadow: 0 0 0 4px rgba(114, 177, 217, 0.45); }
.wp-block-search__button:focus-visible { outline: 2px solid #fff !important; outline-offset: -5px !important; }

/* Our Work (Kyle, Oct 15): every group gets the same room below its slider, so Websites doesn't run into the
   Brands band; Events takes the mint band (not blue, white, blue) and meets the cream print section with no white gap. */
.avx-work--grouped .avx-work__group { padding-bottom: clamp(2rem, 4vw, 3rem); }
.avx-work--grouped .avx-work__group:nth-of-type(4n) { background: var(--avx-mint); box-shadow: 0 0 0 100vmax var(--avx-mint); }
.avx-work--grouped .avx-work__group:nth-of-type(4n) .avx-pass__body::before, .avx-work--grouped .avx-work__group:nth-of-type(4n) .avx-pass__body::after { background: var(--avx-mint); }
.avx-content > .avx-work--grouped + .avx-section { margin-block-start: 0 !important; }

/* ADA services (Kyle, Oct 15): one list, each service opening in place, like the FAQ. The titles stay H3s; theme.js
   puts a button in each and hides the text until it's opened. Without JavaScript everything shows. */
.avx-accordion { border-top: 1px solid rgba(8, 29, 44, 0.18); }
.avx-accordion__item { border-bottom: 1px solid rgba(8, 29, 44, 0.18); }
.avx-accordion__item > * { margin: 0; }
.avx-accordion__item > h3 { margin: 0 !important; font-size: 1.0625rem; }
.avx-accordion__item > h3 button { width: 100%; min-height: 64px; display: flex; align-items: center; gap: 0.875rem; padding: 0.875rem 0; background: none; border: 0; text-align: left; font: 600 1.0625rem/1.35 var(--wp--preset--font-family--body); color: var(--avx-navy); cursor: pointer; }
.avx-accordion__item > h3 .avx-faq__icon { margin-left: auto; }
.avx-accordion__item.is-open > h3 .avx-faq__icon::after { transform: scaleY(0); }
.avx-accordion__icon { flex: none; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; background: #fff; color: var(--avx-navy); }
.avx-accordion__icon .avx-icon { width: 20px; height: 20px; }
.avx-accordion__panel { padding: 0 0 1.5rem calc(40px + 0.875rem); }
.avx-accordion__panel > * { margin: 0 0 0.75rem; }
.avx-accordion__panel > :last-child { margin-bottom: 0; }
.avx-accordion__panel ul { padding-left: 1.1rem; display: grid; gap: 0.5rem; }
.avx-accordion__item.is-ready:not(.is-open) > .avx-accordion__panel { display: none; }
.avx-split > .avx-accordion { max-width: none; }
@media (max-width: 640px) { .avx-accordion__panel { padding-left: 0; } }
@media (forced-colors: active) { .avx-accordion__icon { border: 1px solid CanvasText; } }

/* ADA process: two even columns of steps (Kyle, Oct 15). */
@media (min-width: 782px) {
	.avx-card-grid.avx-step-cards.avx-step-cards.avx-step-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 1fr; }
	.avx-step-cards > * { grid-column: auto !important; }
}

/* Accordions written in content (Website Development add-ons): the same plus sign as the FAQ, no browser triangle. */
.avx-content .wp-block-details { border-bottom: 1px solid rgba(8, 29, 44, 0.18); }
.avx-content .wp-block-details > summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 56px; padding: 0.875rem 0; font-weight: 600; color: var(--avx-navy); cursor: pointer; }
.avx-content .wp-block-details > summary::-webkit-details-marker { display: none; }
.avx-content .wp-block-details > summary::after { content: ""; flex: none; width: 16px; height: 16px; background: linear-gradient(var(--avx-navy), var(--avx-navy)) center / 16px 2px no-repeat, linear-gradient(var(--avx-navy), var(--avx-navy)) center / 2px 16px no-repeat; }
.avx-content .wp-block-details[open] > summary::after { background-size: 16px 2px, 2px 0; }
.avx-content .wp-block-details[open] > summary { margin-bottom: 0.25rem; }
.avx-content .wp-block-details > :last-child { margin-bottom: 1.25rem; }
@media (forced-colors: active) { .avx-content .wp-block-details > summary::after { content: "+"; width: auto; height: auto; background: none; } .avx-content .wp-block-details[open] > summary::after { content: "\2212"; } }

/* More of the secondary colors (Kyle, Oct 15). Eyebrow labels ("Our services", "Our work"...) in a deep brand coral,
   dark enough for small text (4.5:1 or better on white and every pastel band); on the yellow closing band they stay navy. */
.avx-eyebrow, .is-style-avx-eyebrow { color: #B5423F; }
.avx-closing .avx-eyebrow, .has-yellow-background-color .avx-eyebrow { color: var(--avx-navy); }
/* Departures board: a few codes flip in the other brand colors, like status colors on a real board. */
.avx-board__flap:nth-child(12n+2) .avx-board__char { color: var(--avx-coral); }
.avx-board__flap:nth-child(12n+7) .avx-board__char { color: var(--wp--preset--color--blue); }
.avx-board__flap:nth-child(12n+9) .avx-board__char { color: var(--wp--preset--color--green); }

/* Home: client logos (Kyle, Oct 15). theme.js shuffles them each visit, gives each about the same visual area, runs
   the strip (a hidden copy makes the loop seamless) and adds the controls: previous, pause/play, next. */
.avx-logos.wp-block-gallery { display: block !important; position: relative; overflow: hidden; margin-top: clamp(2.5rem, 5vw, 4rem) !important; margin-bottom: 0 !important; padding-block: 0.75rem; touch-action: pan-y; cursor: grab; -webkit-user-select: none; user-select: none; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.avx-logos.is-dragging { cursor: grabbing; }
.avx-logos__track { display: flex; flex-wrap: nowrap; align-items: center; width: max-content; will-change: transform; }
.avx-logos.wp-block-gallery figure.wp-block-image { flex: none; width: auto !important; margin: 0 clamp(3rem, 6vw, 5.5rem) 0 0 !important; display: grid; place-items: center; height: 100px; }
.avx-logos.wp-block-gallery figure.wp-block-image img { max-width: none; object-fit: contain !important; pointer-events: none; }
.avx-logos__nav { margin-top: 0.25rem !important; }
.avx-logos__nav .avx-logos__toggle { width: auto; padding: 0 1.125rem 0 0.875rem; border-radius: 999px; display: inline-flex; align-items: center; gap: 0.5rem; font: 600 0.875rem/1 var(--wp--preset--font-family--body); }
.avx-logos__toggle .avx-icon:nth-of-type(2), .avx-logos.is-paused + .avx-logos__nav .avx-logos__toggle .avx-icon:nth-of-type(1) { display: none; }
.avx-logos.is-paused + .avx-logos__nav .avx-logos__toggle .avx-icon:nth-of-type(2) { display: block; }
@media (max-width: 640px) { .avx-logos.wp-block-gallery figure.wp-block-image { height: 72px; margin-right: 2.25rem !important; } }

/* Departures board: two more codes in the brand colors (Kyle, Oct 15). */
.avx-board__flap:nth-child(12n+4) .avx-board__char { color: var(--wp--preset--color--green); }
.avx-board__flap:nth-child(12n+11) .avx-board__char { color: var(--avx-coral); }

/* Closing band: Trixi in navy without her circle, winking like on About. */
.avx-trixi--plain .avx-trixi__face { aspect-ratio: 490 / 589; padding: 0; background: none; border-radius: 0; overflow: visible; }
.avx-trixi--plain .avx-trixi__wink { inset: 0; width: 100% !important; height: 100% !important; }
.avx-closing__trixie.avx-trixi { width: 64px; cursor: default; }

/* Link arrows (Kyle, Oct 15): the little plane from the page headers, drawn as a shape so it never takes the link's
   underline; it nudges forward on hover. */
.is-style-avx-text .wp-block-button__link::after {
	content: ""; display: inline-block; width: 1.05em; height: 1.05em; margin-left: 0.45rem; vertical-align: -0.2em; background: currentColor; text-decoration: none; transition: transform 0.2s;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='rotate(90 12 12)' d='M12 3c1 0 1.5 1 1.5 2.5V10l7 3v2l-7-1.5V18l2 1.5V21L12 20l-3.5 1v-1.5l2-1.5v-4.5L3.5 15v-2l7-3V5.5C10.5 4 11 3 12 3z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='rotate(90 12 12)' d='M12 3c1 0 1.5 1 1.5 2.5V10l7 3v2l-7-1.5V18l2 1.5V21L12 20l-3.5 1v-1.5l2-1.5v-4.5L3.5 15v-2l7-3V5.5C10.5 4 11 3 12 3z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.is-style-avx-text .wp-block-button__link:hover::after { transform: translateX(4px); }
.avx-icon--go { transition: transform 0.2s; }
a:hover .avx-icon--go, a:focus-visible .avx-icon--go, .avx-card:hover .avx-icon--go, .avx-pass:hover .avx-icon--go { transform: translateX(3px); }
@media (prefers-reduced-motion: reduce) { .avx-icon--go, .is-style-avx-text .wp-block-button__link::after { transition: none; } }
@media (forced-colors: active) { .is-style-avx-text .wp-block-button__link::after { content: "\2192"; width: auto; height: auto; background: none; -webkit-mask: none; mask: none; } }

/* ---------- Phones and tablets (Kyle, Oct 15: checked on an iPhone Pro Max) ---------- */
.avx-menu-toggle__label { display: none; }
@media (max-width: 1080px) { /* wherever the nav is hidden (it was 960px, which left iPad landscape a bare icon) */
	/* A bigger, labeled menu button; the search button grows to match. */
	.avx-header__actions { gap: 0.375rem; }
	.avx-header__actions .avx-icon-button { width: 48px; height: 48px; }
	.avx-header__actions .avx-icon-button .avx-icon { width: 24px; height: 24px; }
	.avx-header__actions .avx-menu-toggle { width: auto; height: 48px; padding: 0 1.125rem 0 0.875rem; gap: 0.5rem; display: inline-flex; align-items: center; border-radius: 999px; background: var(--avx-navy); color: #fff; font: 600 1rem/1 var(--wp--preset--font-family--body); }
	.avx-header__actions .avx-menu-toggle:hover { background: var(--avx-slate); }
	.avx-menu-toggle__label { display: inline; }
}
/* Hero service links wrap to the screen instead of running off it. */
.avx-svc-chips ul { display: flex !important; flex-wrap: wrap; }
.avx-svc-chips li { max-width: 100%; }
.avx-svc-chip { max-width: 100%; }
/* Footer on phones: one tidy column (side by side, the email address had to break mid-word). */
@media (max-width: 560px) {
	.avx-footer__inner { grid-template-columns: 1fr; gap: 1.75rem; }
	.avx-footer__email { font-size: 1rem; }
}
/* Client map filters (Our Work, Client Map): wrap on phones instead of a sideways strip that looks cut off. */
@media (max-width: 640px) { .avx-map .avxm-filters { flex-wrap: wrap; overflow: visible; } }
/* Long words and addresses (e.g. an email in body text) break rather than run off a phone screen. */
.avx-content, .avx-footer { overflow-wrap: break-word; }
/* Phone menu: the close button as easy to hit as the Menu button. */
#avx-mobile [data-avx-close] { width: 48px; height: 48px; background: var(--avx-navy); color: #fff; }
#avx-mobile [data-avx-close]:hover { background: var(--avx-slate); }
#avx-mobile [data-avx-close] .avx-icon { width: 24px; height: 24px; }

/* Logo strip: no rounded corners. The theme rounds image blocks (16px), which clipped the tightly trimmed logos. */
.avx-logos.wp-block-gallery figure.wp-block-image img { border-radius: 0 !important; }

/* Footer flight path (designer, Oct 16): its own band between the columns and the legal line, so the dashes never
   cross a link at any width. It rises from the legal line like the old path, just lower. */
.avx-footer__horizon { padding-bottom: 0; }
.avx-footer .avx-footer__path { position: static; display: block; inset: auto; width: calc(100% + 2 * var(--avx-gutter)); max-width: none; height: clamp(44px, 5.5vw, 72px); margin: clamp(0.75rem, 2vw, 1.25rem) calc(-1 * var(--avx-gutter)) 0; }
.avx-footer__path path { vector-effect: non-scaling-stroke; stroke-width: 1.5px; stroke-dasharray: 2 9; } /* same dashes at any band height */

/* Hero service pills (designer, Oct 16): the icon circle is concentric with the pill's round end, 2px all round,
   and the four pills sit in even rows, sized by the space the pills actually have (not the screen): two per row in
   aligned columns when both rows fit, else one column of equal-width pills. Never 2 + 1 + 1 or 3 + 1. */
.avx-svc-chip { padding-left: 2px; gap: 0.625rem; }
.avx-svc-chip .avx-icon { padding: 4px; }
.avx-svc-chips { container-type: inline-size; }
.avx-svc-chips ul { display: grid !important; grid-template-columns: max-content; justify-items: stretch; }
.avx-svc-chips li { display: flex; }
.avx-svc-chips li > .avx-svc-chip { flex: 1; }
@container (min-width: 430px) { .avx-svc-chips ul { grid-template-columns: repeat(2, max-content); justify-items: start; } }

/* About Trixi (Kyle, Oct 16): Safari sized her open frame from the whole circle's height (216 x 300 inside the
   300px sun) while the wink frame stayed 216 x 216, so on iPhones she grew and dropped each time she winked. The open
   frame now takes the same square as the wink frame in every browser; Chrome draws exactly as before. */
.avx-trixi:not(.avx-trixi--plain) .avx-trixi__face > img:first-child { height: auto; aspect-ratio: 1 !important; }

/* ======================================================================================================
   0.8.7 (Oct 16): fixes from the design audit, agreed by Kyle. Each one is measured against 0.8.6 in
   docs/STAGING-CLEANUP.md (item 11).
   ====================================================================================================== */

/* Header: --avx-header-h is the header's real height (the bar's 76px plus its padding and border; 64px on phones
   and tablets), so jump links, keyboard focus and the sticky side headings clear it. The bar and the Services panel
   keep their exact places. */
:root { --avx-header-h: 101px; }
.avx-header__bar { min-height: 76px; }
.avx-panel--services { top: calc(76px + 0.5rem); }
.admin-bar .avx-panel--services { top: calc(76px + 32px + 0.5rem); }
@media (max-width: 1080px) { :root { --avx-header-h: 89px; } .avx-header__bar { min-height: 64px; } }

/* Hero service pills: the hover ring (the hero's own shadow was hiding it). */
@media (hover: hover) { .avx-hero .avx-svc-chip:hover { box-shadow: inset 0 0 0 2px var(--avx-navy); } }

/* Press feedback: buttons give a little when tapped or clicked. */
.wp-block-button:not(.is-style-avx-text) > .wp-block-button__link, .avx-header__contact, .avx-menu-toggle, .avx-icon-button,
.avx-chip, .avx-video__toggle { transition: scale 160ms cubic-bezier(0.23, 1, 0.32, 1); }
.avx-svc-chip { transition: box-shadow 0.15s, transform 0.15s, scale 160ms cubic-bezier(0.23, 1, 0.32, 1); }
.avx-slider-nav button, .avx-person__more { transition: background 0.15s, color 0.15s, scale 160ms cubic-bezier(0.23, 1, 0.32, 1); }
@media (prefers-reduced-motion: no-preference) {
	:is(.wp-block-button:not(.is-style-avx-text) > .wp-block-button__link, .avx-header__contact, .avx-menu-toggle, .avx-icon-button,
	.avx-chip, .avx-svc-chip, .avx-slider-nav button, .avx-person__more, .avx-video__toggle):active:not(:disabled) { scale: 0.97; }
}

/* All Services: every group's title and intro start at the same place (a short intro let the icon column grow). */
.avx-group-section__text { grid-template-columns: auto minmax(0, 1fr); }

/* All Services: a group whose cards don't fill the last row of three widens that row (5 cards: 3 + 2 halves;
   7: 3 + 2 x 2), like the content card grids. Groups of 3, 4, 6 and 8 are unchanged. */
@media (min-width: 1000px) {
	ul.avx-cards:not(:has(> .is-featured, > :last-child:nth-child(3n), > :last-child:nth-child(4n))) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	ul.avx-cards:not(:has(> .is-featured, > :last-child:nth-child(3n), > :last-child:nth-child(4n))) > * { grid-column: span 2; }
	ul.avx-cards:not(:has(> .is-featured, > :last-child:nth-child(3n), > :last-child:nth-child(4n))):has(> :last-child:nth-child(3n+2)) > :nth-last-child(-n+2),
	ul.avx-cards:not(:has(> .is-featured, > :last-child:nth-child(3n), > :last-child:nth-child(4n))):has(> :last-child:nth-child(3n+1)) > :nth-last-child(-n+4) { grid-column: span 3; }
}

/* Content cards: the title sits with its text (8px), not halfway between the icon and the text. */
.is-style-avx-card > h4 { margin: 0 0 0.5rem; }
.is-style-avx-card > :is(h2, h3, h4) + :is(p, ul, ol) { margin-top: 0; }

/* Accordions (ADA): every row the same height; the block gap was adding 24px above rows 2 onward. */
.avx-accordion > .avx-accordion__item { margin-block: 0; }

/* News: the grid starts as close to the page header as other pages do; every image box keeps 16:10 (tall images
   were stretching theirs), and images are square-cornered inside their rounded cards (no notches). */
.avx-news { margin-top: 0 !important; }
.avx-news__card .wp-block-post-featured-image, .avx-more-news .wp-block-post-featured-image { overflow: hidden; }
.avx-news__card .wp-block-post-featured-image img { border-radius: 0; }

/* Coral cards: blush (#FFF7F5) barely shows on white, so card-sized surfaces use the coral tint the content cards
   already use. The page-header bands stay blush. */
:root { --avx-blush-card: #FDEEEB; }
.avx-tile.has-blush-background-color, .avx-panel__group.has-blush-background-color, .avx-group-section__head.has-blush-background-color,
.avx-card.has-blush-background-color { background-color: var(--avx-blush-card) !important; }
.avx-deadline, .avx-deadline-panel, ol.avx-phases > li:nth-child(4n+1), .avx-examples > .wp-block-image:nth-child(4n+4) { background: var(--avx-blush-card); }
.avx-news .wp-block-post-template > li:nth-child(4n+4) .avx-news__card, .avx-team__grid > .avx-person:nth-child(4n+3) { --avx-card-tint: var(--avx-blush-card); }

/* Home service tiles: the links start at the same height in every tile of a row, whatever the title's length. */
@supports (grid-template-rows: subgrid) {
	@media (min-width: 561px) {
		.avx-tile { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 1rem; align-content: normal; }
		.avx-tile__links { align-self: start; } /* the list keeps its own height; its rows don't spread out */
	}
}

/* Project cards: "Visit the site" sits at the bottom of every card in a row. */
.avx-pass__body { display: flex; flex-direction: column; }
.avx-pass__go { margin-top: auto; }
.avx-pass__body > :has(+ .avx-pass__go) { margin-bottom: 0.75rem; } /* the space the link had above it */

/* Client Map (Katie, Oct 16): an organization can show its name on a pill-shaped pin; zoomed out it's a dot like
   the rest. No service filters on the map (no services are shown), so the Map / Team switch stands alone. */
#avxm .avxm-svg:not(.is-compact) .avxm-pin--pill circle { display: none; }
#avxm .avxm-svg.is-compact .avxm-pin--pill rect { display: none; }
#avxm .avxm-filters[hidden] { display: none !important; }
