/*
Theme Name: Achasta Pattern Book
Theme URI: https://achastahomes.com
Description: The Achasta Pattern Book: a buyer's guide to the homes of the Achasta Golf Community, Dahlonega, GA, set as an architect's pattern book (matted photo plates, elevation linework, fieldstone and blueprint). Child of Twenty Twenty-Five. T19782 redesign of the achastahomes theme. A Gold Peach Realty satellite.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.1
Author: Gold Peach Realty
Template: twentytwentyfive
Text Domain: achasta-patternbook
*/

/* ── TOKENS ─────────────────────────────────────────────────────────────── */
:root {
	--apb-charcoal: #1F1E1B;
	--apb-hearth: #2B2925;
	--apb-hearth-2: #3A3631;
	--apb-lime: #E7E4DD;
	--apb-sand: #DCD7CC;
	--apb-plaster: #F5F3EE;
	--apb-rule: #C9C3B6;
	--apb-ink: #1E1F21;
	--apb-muted: #545049;
	--apb-blue: #2B4F6B;
	--apb-blue-l: #9DB8CC;
	--apb-brass: #C49A52;
	--apb-brass-hi: #D5B06C;
	--apb-cedar: #7A4E2F;
	--apb-slate: #46525A;
	--apb-on-dark: #D9D4CA;
	--apb-serif: Gloock, "Iowan Old Style", "Palatino Linotype", Georgia, serif;
	--apb-sans: "Albert Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
	--apb-mono: "Azeret Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	--apb-gutter: clamp(1rem, 4vw, 3rem);
	--apb-sec: clamp(4.5rem, 2.6rem + 5.2vw, 7rem);
	--apb-wide: 1280px;
	--apb-ease: cubic-bezier(.2, .7, .2, 1);
	--apb-shadow: 0 1px 0 rgba(31, 30, 27, .05), 0 30px 50px -36px rgba(31, 30, 27, .55);
	--apb-grid-dark: linear-gradient(rgba(157, 184, 204, .065) 1px, transparent 1px), linear-gradient(90deg, rgba(157, 184, 204, .065) 1px, transparent 1px), linear-gradient(rgba(157, 184, 204, .03) 1px, transparent 1px), linear-gradient(90deg, rgba(157, 184, 204, .03) 1px, transparent 1px);
	--apb-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .12 0 0 0 0 .11 0 0 0 0 .1 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	/* legacy tokens referenced inline by existing page content (achasta-homes-for-sale band) */
	--ac-champagne: #C49A52;
	--ac-ivory: #F5F3EE;
	--ac-stone: #D9D4CA;
	--ac-forest: #1F1E1B;
	interpolate-size: allow-keywords;
}

/* ── BASE ───────────────────────────────────────────────────────────────── */
html { scroll-padding-top: 96px; -webkit-text-size-adjust: 100%; }
body.apb {
	background-color: var(--apb-lime);
	background-image: var(--apb-grain);
	color: var(--apb-ink);
	font-family: var(--apb-sans);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
body.apb .wp-site-blocks { padding: 0; }
body.apb .wp-site-blocks > * { margin-block-start: 0; }
body .apb-main > * { margin-block: 0; }
:where(.apb) img { max-width: 100%; height: auto; }
[class*="apb-"], [class*="apb-"]::before, [class*="apb-"]::after { box-sizing: border-box; }
.apb a { text-underline-offset: .18em; text-decoration-thickness: 1px; }
.apb a:hover { text-decoration-thickness: 2px; }
.apb :focus-visible { outline: 2px solid var(--apb-blue); outline-offset: 3px; }
.apb-on-dark :focus-visible, .apb-hero :focus-visible, .apb-sched :focus-visible, .apb-footer :focus-visible, .apb-drawer :focus-visible, .gpr-anchor :focus-visible { outline-color: var(--apb-brass); }
.apb-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.apb-nowrap { white-space: nowrap; }
.apb-wrap { width: min(100% - 2 * var(--apb-gutter), var(--apb-wide)); margin-inline: auto; }
::selection { background: var(--apb-brass); color: var(--apb-charcoal); }

/* ── TYPE PRIMITIVES ────────────────────────────────────────────────────── */
.apb-eyebrow, .ac-eyebrow {
	display: flex; align-items: center; gap: .75rem;
	font: 600 .95rem/1.3 var(--apb-sans); letter-spacing: .01em;
	color: var(--apb-cedar); margin: 0 0 1rem;
}
.apb-eyebrow::before, .ac-eyebrow::before { content: ""; width: 2rem; height: 1px; background: currentColor; flex: none; }
.apb-eyebrow--on-dark { color: var(--apb-brass); }
.apb-h2 {
	font-family: var(--apb-serif); font-weight: 400;
	font-size: clamp(2.2rem, 1.45rem + 2.7vw, 3.65rem); line-height: 1.04; letter-spacing: -.012em;
	margin: 0 0 1.25rem; text-wrap: balance;
}
.apb-lede { font-size: clamp(1.15rem, 1.05rem + .4vw, 1.32rem); line-height: 1.55; }
.apb-cap {
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .25rem 1rem;
	margin: .8rem 0 0; padding-top: .6rem; border-top: 1px solid var(--apb-rule);
	font: 400 .76rem/1.45 var(--apb-mono); color: var(--apb-muted);
}
.apb-cap__kind { color: var(--apb-slate); }
.apb-cap--on-dark { color: rgba(245, 243, 238, .72); border-top-color: rgba(245, 243, 238, .16); }
.apb-cap--on-dark .apb-cap__kind { color: var(--apb-blue-l); }
.apb-mat {
	background: var(--apb-plaster); padding: clamp(8px, .9vw, 14px);
	border: 1px solid rgba(31, 30, 27, .08); box-shadow: var(--apb-shadow);
}
.apb-mat img { display: block; width: 100%; height: auto; }
.apb-mat--dark { background: var(--apb-hearth); border-color: rgba(245, 243, 238, .08); box-shadow: 0 40px 70px -40px rgba(0, 0, 0, .8); }

/* ── BUTTONS ────────────────────────────────────────────────────────────── */
.apb-btn {
	display: inline-flex; align-items: center; justify-content: center; text-align: center;
	min-height: 48px; padding: .8rem 1.45rem; border: 1px solid transparent; border-radius: 0;
	font: 600 1rem/1.2 var(--apb-sans); letter-spacing: .005em; text-decoration: none !important; cursor: pointer;
	transition: background-color .2s var(--apb-ease), color .2s, border-color .2s, box-shadow .2s, transform .2s var(--apb-ease);
}
.apb-btn:active { transform: translateY(1px); }
.apb-btn--brass { background: var(--apb-brass); color: var(--apb-charcoal) !important; box-shadow: inset 0 0 0 3px var(--apb-brass), inset 0 0 0 4px rgba(31, 30, 27, .34); }
.apb-btn--brass:hover { background: var(--apb-brass-hi); box-shadow: inset 0 0 0 3px var(--apb-brass-hi), inset 0 0 0 4px rgba(31, 30, 27, .5); transform: translateY(-1px); }
.apb-btn--ghost { color: var(--apb-plaster) !important; border-color: rgba(245, 243, 238, .45); }
.apb-btn--ghost:hover { border-color: var(--apb-plaster); background: rgba(245, 243, 238, .07); transform: translateY(-1px); }
.apb-btn--ink { background: var(--apb-charcoal); color: var(--apb-plaster) !important; box-shadow: inset 0 0 0 3px var(--apb-charcoal), inset 0 0 0 4px rgba(196, 154, 82, .55); }
.apb-btn--ink:hover { background: #35332E; box-shadow: inset 0 0 0 3px #35332E, inset 0 0 0 4px var(--apb-brass); transform: translateY(-1px); }
.apb-btn--line { color: var(--apb-ink) !important; border-color: var(--apb-ink); }
.apb-btn--line:hover { background: var(--apb-ink); color: var(--apb-plaster) !important; }

/* ── HEADER ─────────────────────────────────────────────────────────────── */
.apb-header-part { position: sticky; top: 0; z-index: 50; }
body.admin-bar .apb-header-part { top: 32px; }
@media (max-width: 782px) { body.admin-bar .apb-header-part { top: 0; } }
.apb-header {
	background: rgba(231, 228, 221, .9);
	-webkit-backdrop-filter: saturate(140%) blur(12px); backdrop-filter: saturate(140%) blur(12px);
	border-bottom: 1px solid rgba(31, 30, 27, .12);
	transition: box-shadow .3s, background-color .3s;
}
.apb-header.is-scrolled { box-shadow: 0 12px 30px -24px rgba(31, 30, 27, .55); background: rgba(231, 228, 221, .96); }
.apb-header__in { display: flex; align-items: center; gap: clamp(1rem, 2.2vw, 2.25rem); width: min(100% - 2 * var(--apb-gutter), 1360px); margin-inline: auto; height: 76px; }
.apb-brand { display: flex; align-items: center; gap: .8rem; margin-right: auto; color: var(--apb-ink); text-decoration: none !important; min-height: 44px; }
.apb-brand__mark { height: 58px; width: auto; display: block; filter: drop-shadow(0 4px 8px rgba(31, 30, 27, .18)); }
.apb-brand__word { display: flex; flex-direction: column; line-height: 1; }
.apb-brand__name { font-family: var(--apb-serif); font-size: 1.55rem; letter-spacing: .003em; }
.apb-brand__sub { font: 500 .78rem/1.2 var(--apb-sans); letter-spacing: .05em; color: var(--apb-muted); margin-top: .32rem; }
.apb-nav__list { display: flex; gap: clamp(1rem, 2vw, 2rem); list-style: none; margin: 0; padding: 0; }
.apb-nav__link {
	display: inline-flex; align-items: center; min-height: 44px;
	font: 500 1rem/1 var(--apb-sans); color: var(--apb-ink) !important; text-decoration: none !important;
	background: linear-gradient(var(--apb-blue), var(--apb-blue)) left calc(50% + .85em) / 0 1.5px no-repeat;
	transition: background-size .3s var(--apb-ease), color .2s;
}
.apb-nav__link:hover, .apb-nav__link[aria-current="page"] { background-size: 100% 1.5px; color: var(--apb-blue) !important; }
.apb-header__tel { display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; font: 500 .9rem/1 var(--apb-mono); color: var(--apb-ink) !important; text-decoration: none !important; }
.apb-header__tel:hover { color: var(--apb-blue) !important; }
.apb-header__cta { min-height: 44px; padding: .65rem 1.15rem; font-size: .95rem; }
.apb-menu { display: none; align-items: center; gap: .6rem; min-height: 44px; min-width: 44px; padding: 0 .4rem 0 .75rem; background: none; border: 1px solid rgba(31, 30, 27, .25); color: var(--apb-ink); font: 600 .9rem/1 var(--apb-sans); cursor: pointer; }
.apb-menu__bars { display: grid; gap: 5px; width: 20px; }
.apb-menu__bars span { display: block; height: 1.5px; background: currentColor; }
.apb-menu__bars span:last-child { width: 70%; justify-self: end; }
.apb-menu__label { padding-right: .35rem; }

.apb-drawer { position: fixed; inset: 0; z-index: 100; background: rgba(20, 19, 17, .55); }
.apb-drawer[hidden] { display: none; }
.apb-drawer__sheet {
	position: absolute; inset: 0 0 0 auto; width: min(100%, 420px); overflow-y: auto;
	background-color: var(--apb-charcoal); background-image: var(--apb-grid-dark); background-size: 120px 120px, 120px 120px, 24px 24px, 24px 24px;
	color: var(--apb-plaster); padding: 1.25rem 1.5rem 2rem; display: flex; flex-direction: column; gap: 2rem;
	transform: translateX(100%); transition: transform .38s var(--apb-ease);
}
.apb-drawer.is-open .apb-drawer__sheet { transform: none; }
.apb-drawer__top { display: flex; justify-content: space-between; align-items: center; }
.apb-drawer__title { font-family: var(--apb-serif); font-size: 1.4rem; }
.apb-drawer__close { display: inline-grid; place-items: center; width: 48px; height: 48px; background: none; border: 1px solid rgba(245, 243, 238, .25); color: var(--apb-plaster); cursor: pointer; }
.apb-drawer__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(245, 243, 238, .14); }
.apb-drawer__list li { border-bottom: 1px solid rgba(245, 243, 238, .14); }
.apb-drawer__list a { display: block; padding: 1rem 0; font-family: var(--apb-serif); font-size: 2rem; line-height: 1.1; color: var(--apb-plaster) !important; text-decoration: none !important; }
.apb-drawer__list a:hover, .apb-drawer__list a[aria-current="page"] { color: var(--apb-brass) !important; }
.apb-drawer__foot { margin-top: auto; display: grid; gap: 1rem; }
.apb-drawer__tel { font: 500 1.25rem/1.2 var(--apb-mono); color: var(--apb-brass) !important; text-decoration: none !important; min-height: 44px; display: inline-flex; align-items: center; }
html.apb-locked { overflow: hidden; }

@media (max-width: 1120px) {
	.apb-nav, .apb-header__cta { display: none; }
	.apb-menu { display: inline-flex; }
}
@media (max-width: 600px) {
	.apb-header__in { height: 64px; gap: .5rem; }
	.apb-brand__mark { height: 46px; }
	.apb-article__meta > * + *::before { display: none; }
	.apb-brand__name { font-size: 1.3rem; }
	.apb-brand__sub { font-size: .7rem; }
	.apb-header__tel span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.apb-header__tel { width: 44px; justify-content: center; border: 1px solid rgba(31, 30, 27, .25); }
	.apb-menu__label { display: none; }
	.apb-menu { padding: 0; justify-content: center; }
	.apb-menu__bars { margin: 0 auto; }
}

@media (max-width: 374px) {
	.apb-header__in { gap: .4rem; }
	.apb-brand { gap: .55rem; }
	.apb-brand__mark { height: 40px; }
	.apb-brand__name { font-size: 1.12rem; white-space: nowrap; }
	.apb-brand__sub { font-size: .66rem; }
}

/* ── TITLE BLOCK (pages, archives) ──────────────────────────────────────── */
.apb-titleblock {
	width: min(100% - 2 * var(--apb-gutter), var(--apb-wide)); margin-inline: auto;
	padding: clamp(3rem, 7vw, 6.5rem) 0 clamp(2rem, 4vw, 3.25rem);
	border-bottom: 1px solid var(--apb-ink); position: relative;
	display: grid; gap: clamp(2rem, 4vw, 4rem); align-items: end;
}
.apb-titleblock::before, .apb-titleblock::after { content: ""; position: absolute; bottom: -7px; width: 1px; height: 13px; background: var(--apb-ink); }
.apb-titleblock::before { left: 0; }
.apb-titleblock::after { right: 0; }
.apb-titleblock__text > * { margin: 0; }
.apb-titleblock--index { grid-template-columns: minmax(0, 1fr) auto; }
.apb-titleblock__draw { width: clamp(220px, 28vw, 420px); color: var(--apb-blue); opacity: .7; margin-bottom: -1px; }
@media (max-width: 760px) { .apb-titleblock--index { grid-template-columns: 1fr; } .apb-titleblock__draw { display: none; } }
.apb-titleblock__title {
	font-family: var(--apb-serif) !important; font-weight: 400; font-size: clamp(2.6rem, 1.5rem + 4.3vw, 5.4rem) !important;
	line-height: 1 !important; letter-spacing: -.018em; margin: 0; text-wrap: balance; max-width: 15ch; color: var(--apb-ink);
}
/* page whose content carries its own H1: the template title shrinks to a running head */
.apb-titleblock [data-apb-title] { max-width: none; font: 500 1rem/1.4 var(--apb-sans) !important; letter-spacing: .01em; color: var(--apb-muted); margin: 0; display: flex; align-items: center; gap: .75rem; }
.apb-titleblock [data-apb-title]::before { content: ""; width: 2rem; height: 1px; background: currentColor; }
.apb-titleblock:has([data-apb-title]) { padding-top: clamp(2rem, 4vw, 3rem); padding-bottom: 1.5rem; }
.apb-prose > h1, .apb-prose h1.wp-block-heading { font-family: var(--apb-serif); font-weight: 400; font-size: clamp(2.4rem, 1.5rem + 3.4vw, 4.4rem) !important; line-height: 1.03; letter-spacing: -.016em; margin-bottom: .6em; text-wrap: balance; }
.apb-titleblock__lede { margin-top: 1.25rem !important; font-size: 1.15rem; color: var(--apb-muted); max-width: 54ch; }
.apb-titleblock .apb-eyebrow { margin-bottom: 1.25rem; }
.apb-titleblock__text > .apb-titleblock__eyebrow { margin-bottom: 1.35rem; }
.apb-titleblock__text > .apb-titleblock__lede--lift { margin-top: 1.4rem; max-width: 36ch; font-size: clamp(1.15rem, 1.05rem + .45vw, 1.38rem); line-height: 1.5; color: var(--apb-ink); }
.apb-page--lead .apb-titleblock__quick { margin-top: 1.5rem !important; }
.apb-page--lead .apb-prose > p:first-child { font-size: clamp(1.12rem, 1.05rem + .3vw, 1.25rem); line-height: 1.65; color: var(--apb-ink); }
.apb-page--lead .apb-titleblock { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; padding-top: clamp(2rem, 4vw, 3.5rem); padding-bottom: clamp(2rem, 3.5vw, 3rem); }
.apb-titleblock__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem !important; }
.apb-page--lead .apb-titleblock__actions { margin-top: 1.6rem !important; }
@media (max-width: 600px) { .apb-titleblock__actions .apb-btn { flex: 1 1 auto; } }
.apb-titleblock__quick { display: flex; flex-wrap: wrap; gap: .5rem 1.75rem; margin-top: 1.75rem !important; font: 500 .95rem/1.3 var(--apb-mono); }
.apb-titleblock__quick a { display: inline-flex; align-items: center; min-height: 44px; color: var(--apb-ink); text-decoration: none; border-bottom: 1px solid var(--apb-brass); }
.apb-titleblock__quick a:hover { color: var(--apb-blue); }
.apb-titleblock__note { margin-top: 1.25rem !important; max-width: 40ch; color: var(--apb-muted); font-size: 1.05rem; }
.apb-lead { position: relative; margin-bottom: -1px; }
.apb-lead figure { margin: 0; }
.apb-lead__main .apb-mat img { aspect-ratio: 4 / 3; object-fit: cover; }
.apb-lead__inset { position: absolute; left: -9%; bottom: 4%; width: 36%; }
.apb-lead__inset .apb-mat img { aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 62%; }
@media (max-width: 959px) {
	.apb-page--lead .apb-titleblock { grid-template-columns: 1fr; }
	.apb-lead__inset { display: none; }
}

/* ── PROSE (page + post content) ────────────────────────────────────────── */
.apb-prose { padding-block: clamp(2.5rem, 5vw, 4.5rem) clamp(3rem, 6vw, 5.5rem); font-size: clamp(1.0625rem, 1rem + .2vw, 1.125rem); line-height: 1.7; }
body .apb-prose > * + * { margin-block-start: 1.15em; }
.apb-prose > :first-child, .apb-prose > div:first-child > h2:first-child { margin-top: 0 !important; }
.apb-prose h2 { font-family: var(--apb-serif); font-weight: 400; font-size: clamp(1.75rem, 1.35rem + 1.3vw, 2.4rem); line-height: 1.12; letter-spacing: -.008em; margin-top: 2.4em !important; margin-bottom: .55em; text-wrap: balance; }
.apb-prose h3 { font: 600 1.22rem/1.3 var(--apb-sans); margin-top: 1.9em !important; margin-bottom: .4em; }
.apb-prose h4 { font: 600 1.05rem/1.35 var(--apb-sans); }
.apb-prose a { color: var(--apb-blue); }
.apb-prose a:hover { color: var(--apb-cedar); }
.apb-prose ul, .apb-prose ol { padding-left: 1.3em; }
.apb-prose li + li { margin-top: .45em; }
.apb-prose li::marker { color: var(--apb-cedar); }
.apb-prose strong { font-weight: 650; }
.apb-prose figure { margin-inline: 0; }
.apb-prose table { width: 100%; border-collapse: collapse; font-size: .95em; }
.apb-prose th, .apb-prose td { text-align: left; padding: .7rem .85rem; vertical-align: top; }
@media (max-width: 640px) { .apb-prose table { display: block; max-width: 100%; overflow-x: auto; } }
.apb-prose blockquote { margin-inline: 0; padding: .25rem 0 .25rem 1.5rem; border-left: 2px solid var(--apb-brass); font-family: var(--apb-serif); font-size: 1.4em; line-height: 1.3; }

/* legacy page-content classes (pages 17, 18) */
body.apb .apb-prose .ac-section--forest {
	background-color: var(--apb-charcoal); background-image: var(--apb-grid-dark); background-size: 120px 120px, 120px 120px, 24px 24px, 24px 24px;
	padding: clamp(3.5rem, 7vw, 6rem) var(--apb-gutter); margin-block: clamp(2.5rem, 5vw, 4rem) !important;
}
body.apb .apb-prose .ac-container { max-width: 760px; margin-inline: auto; }
body.apb .apb-prose .ac-section--forest .ac-eyebrow { color: var(--apb-brass) !important; }
body.apb .apb-prose .ac-section--forest h2 { margin-top: 0 !important; color: var(--apb-plaster) !important; font-size: clamp(2rem, 1.5rem + 1.8vw, 3rem); }
body.apb .apb-prose .ac-section--forest ol { counter-reset: apbstep; list-style: none; padding-left: 0 !important; }
body.apb .apb-prose .ac-section--forest li { counter-increment: apbstep; position: relative; padding: 1.1rem 0 1.1rem 3.5rem; border-top: 1px solid rgba(245, 243, 238, .14); margin: 0 !important; }
body.apb .apb-prose .ac-section--forest li::before { content: counter(apbstep, decimal-leading-zero); position: absolute; left: 0; top: 1.25rem; font: 500 .85rem/1 var(--apb-mono); color: var(--apb-brass); }
body.apb .apb-prose .ac-facts-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1rem; }
body.apb .apb-prose .ac-fact-block { background: var(--apb-plaster); border: 1px solid rgba(31, 30, 27, .1); padding: 1.5rem 1.35rem; box-shadow: var(--apb-shadow); }
body.apb .apb-prose .ac-fact-block__icon { width: 28px; height: 28px; color: var(--apb-blue); display: block; margin-bottom: 1rem; }
body.apb .apb-prose .ac-fact-block__title { font-family: var(--apb-serif); font-size: 1.4rem; line-height: 1.15; margin-bottom: .5rem; }
body.apb .apb-prose .ac-fact-block__body { color: var(--apb-muted); font-size: 1rem; line-height: 1.6; }
body.apb .apb-prose .ac-fact-block__body a { color: var(--apb-ink); }

/* Fluent Forms (contact) */
.apb .fluentform .ff-el-group { margin-bottom: 1.1rem; }
.apb .fluentform .ff-el-input--label label { font: 600 .95rem/1.3 var(--apb-sans); color: var(--apb-ink); }
.apb .fluentform .ff-el-form-control {
	border: 1px solid #B9B2A3 !important; border-radius: 0 !important; background: var(--apb-plaster) !important;
	padding: .85rem 1rem !important; font: 400 1rem/1.4 var(--apb-sans) !important; color: var(--apb-ink) !important; min-height: 48px;
	transition: border-color .2s, box-shadow .2s;
}
.apb .fluentform .ff-el-form-control:focus { border-color: var(--apb-blue) !important; box-shadow: 0 0 0 3px rgba(43, 79, 107, .2) !important; outline: none; }
.apb .fluentform .ff-btn-submit {
	background: var(--apb-brass) !important; color: var(--apb-charcoal) !important; border: 0 !important; border-radius: 0 !important;
	min-height: 50px; padding: .85rem 1.8rem !important; font: 600 1rem/1 var(--apb-sans) !important;
	box-shadow: inset 0 0 0 3px var(--apb-brass), inset 0 0 0 4px rgba(31, 30, 27, .34) !important; cursor: pointer;
}
.apb .fluentform .ff-btn-submit:hover { background: var(--apb-brass-hi) !important; }

/* ── 404 ────────────────────────────────────────────────────────────────── */
.apb-nf { padding: clamp(4rem, 9vw, 8rem) 0; }
.apb-nf__in { width: min(100% - 2 * var(--apb-gutter), 860px); margin-inline: auto; }
.apb-nf__draw { width: min(100%, 420px); color: var(--apb-blue); display: block; margin-bottom: 2rem; }
.apb-nf__title { font-family: var(--apb-serif); font-weight: 400; font-size: clamp(2.6rem, 1.6rem + 4vw, 4.8rem); line-height: 1.02; margin: 0 0 1rem; }
.apb-nf__lede { font-size: 1.2rem; color: var(--apb-muted); max-width: 52ch; }
.apb-nf__links { list-style: none; padding: 0; margin: 2rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem 1.75rem; }
.apb-nf__links a { display: inline-flex; min-height: 44px; align-items: center; font-weight: 600; color: var(--apb-blue); }

/* ── TOUR BAND (every page): plaster card on a Hearthstone sheet ─────────── */
.apb-cta {
	display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: stretch;
	background-color: var(--apb-hearth-2); background-image: var(--apb-grid-dark); background-size: 120px 120px, 120px 120px, 24px 24px, 24px 24px;
	border-top: 1px solid rgba(196, 154, 82, .4); padding-block: clamp(3rem, 5vw, 4.5rem);
}
.apb-cta__photo { margin: 0; position: relative; min-height: 360px; overflow: hidden; box-shadow: 0 40px 70px -40px rgba(0, 0, 0, .7); }
.apb-cta__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.apb-cta__photo::after { content: ""; position: absolute; right: 18px; bottom: 18px; width: 18px; height: 18px; border: 0 solid var(--apb-plaster); border-right-width: 1px; border-bottom-width: 1px; opacity: .8; }
.apb-cta__card {
	align-self: center; position: relative; z-index: 2;
	margin: clamp(2rem, 3.5vw, 3rem) clamp(1.25rem, 4vw, 4rem) clamp(2rem, 3.5vw, 3rem) calc(-1 * clamp(3rem, 6vw, 6.5rem));
	padding: clamp(2rem, 3.5vw, 3.25rem); background: var(--apb-plaster); border: 1px solid rgba(31, 30, 27, .08);
	box-shadow: 0 50px 90px -40px rgba(0, 0, 0, .75);
}
.apb-cta__card::before { content: ""; position: absolute; top: 12px; left: 12px; width: 18px; height: 18px; border: 0 solid var(--apb-brass); border-top-width: 1px; border-left-width: 1px; }
.apb-cta__h { font-family: var(--apb-serif); font-weight: 400; font-size: clamp(1.9rem, 1.4rem + 1.4vw, 2.75rem); line-height: 1.06; letter-spacing: -.01em; margin: 0 0 1rem; text-wrap: balance; }
.apb-cta__body { color: var(--apb-muted); max-width: 58ch; margin: 0; }
.apb-cta__tel { display: inline-flex; align-items: center; min-height: 48px; margin: 1.15rem 0 .2rem; font-family: var(--apb-serif); font-size: clamp(2.1rem, 1.6rem + 1.8vw, 3.1rem); line-height: 1.05; color: var(--apb-ink) !important; text-decoration: none !important; border-bottom: 1px solid var(--apb-brass); transition: color .2s; }
.apb-cta__tel:hover { color: var(--apb-blue) !important; }
.apb-cta__addr { font: 400 .8rem/1.5 var(--apb-mono); color: var(--apb-slate); margin: .75rem 0 1.6rem; }
.apb-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.apb-cta__actions .apb-btn { flex: 1 1 auto; padding-inline: 1.2rem; }
@media (max-width: 959px) {
	.apb-cta { grid-template-columns: 1fr; padding-block: 0 3rem; align-items: start; }
	.apb-cta__photo { min-height: 0; width: 100%; height: clamp(240px, 56vw, 440px); box-shadow: none; }
	.apb-cta__photo img { object-position: 60% 40%; }
	.apb-cta__card { margin: -56px var(--apb-gutter) 0; }
}

/* ── FOOTER ─────────────────────────────────────────────────────────────── */
.apb-footer {
	background-color: var(--apb-charcoal); background-image: var(--apb-grain), var(--apb-grid-dark);
	background-size: 180px 180px, 120px 120px, 120px 120px, 24px 24px, 24px 24px;
	color: var(--apb-on-dark); padding: clamp(3.5rem, 7vw, 6rem) 0 0;
}
.apb-footer a { color: var(--apb-plaster); text-decoration: none; }
.apb-footer a:hover { color: var(--apb-brass); text-decoration: underline; }
.apb-footer__in { width: min(100% - 2 * var(--apb-gutter), var(--apb-wide)); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.apb-footer__brand { display: flex; gap: 1.5rem; align-items: flex-start; }
.apb-footer__mark { width: 88px; height: auto; flex: none; }
.apb-footer__name { font-family: var(--apb-serif); font-size: 2.1rem; line-height: 1; color: var(--apb-plaster); margin: .2rem 0 .9rem; }
.apb-footer__tagline { margin: 0; max-width: 40ch; font-size: .98rem; line-height: 1.6; }
.apb-footer__h { font-family: var(--apb-serif); font-size: 1.2rem; color: var(--apb-plaster); margin: .2rem 0 1rem; }
.apb-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .15rem; }
.apb-footer__col li a { display: inline-flex; align-items: center; min-height: 40px; }
.apb-footer__base { width: min(100% - 2 * var(--apb-gutter), var(--apb-wide)); margin-inline: auto; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem 2rem; padding: 1.25rem 0; border-top: 1px solid rgba(245, 243, 238, .14); font-size: .88rem; }
.apb-footer__base a { display: inline-flex; min-height: 40px; align-items: center; }
.apb-footer__disclaimer { width: min(100% - 2 * var(--apb-gutter), var(--apb-wide)); margin: 0 auto; padding: 0 0 1.75rem; font-size: .8rem; line-height: 1.6; color: rgba(245, 243, 238, .62); }
/* the GPR anchor line printed by the gpr-anchor mu-plugin becomes the footer's last row */
body.apb .gpr-anchor { background: #171614 !important; color: var(--apb-on-dark) !important; border-top: 1px solid rgba(245, 243, 238, .1) !important; padding: 1.25rem var(--apb-gutter) !important; font-size: .88rem !important; }
body.apb .gpr-anchor a { color: var(--apb-brass); }
body.apb .gpr-anchor a:hover { color: var(--apb-brass-hi); }
@media (max-width: 860px) {
	.apb-footer__in { grid-template-columns: 1fr 1fr; }
	.apb-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
	.apb-footer__in { grid-template-columns: 1fr; }
	.apb-footer__brand { flex-direction: column; }
	.apb-footer__mark { width: 64px; }
}

/* ── MOTION ─────────────────────────────────────────────────────────────── */
.js .apb-rv { opacity: 0; transform: translate3d(0, 16px, 0); transition: opacity .8s var(--apb-ease), transform .8s var(--apb-ease); transition-delay: var(--apb-d, 0s); }
.js .apb-rv.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.js .apb-rv { opacity: 1; transform: none; transition: none; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
