@import url("https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700&family=Figtree:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700;9..144,900&display=swap");

:root {
  --midnight: #092b24;
  --midnight-2: #12463b;
  --pool: #24c7b5;
  --pool-dark: #087c70;
  --mango: #f2c94c;
  --coral: #ef6b63;
  /* --coral is a FILL: dark text sits on it and passes easily. As TEXT on the
     cream page it is only 2.99:1, under the 4.5:1 WCAG AA needs for body-size
     text, which is what the advertise page's kickers were doing. This is the
     same hue darkened until it clears 4.5:1 on every light surface it actually
     lands on: the cream page (5.47:1), the pale-teal panels (4.90:1) and plain
     white (5.52:1). Calibrating it against cream alone left the teal panels at
     4.41:1, which still failed.

     It is for LIGHT backgrounds only. On the dark bands use --coral, which is
     5.03:1 on midnight; this darkened red on midnight is 3.05:1. */
  --coral-text: #bd3a2c;
  /* Solid twin of .site-command's translucent background. The nav scroll fade
     has to end in the bar's own colour or the seam shows. */
  --command-bg: #fffdf8;
  --sky: #e1f6f1;
  --paper: #fffefa;
  --sand: #f2f4ef;
  --ink: #17302a;
  --muted: #607069;
  --line: #d5dfda;
  --panel: #ffffff;
  --panel-2: #f7faf9;
  --shadow: 0 20px 50px rgba(7, 28, 51, .12);
  --font-display: "Fraunces", Georgia, serif;
  --font-body: "Figtree", system-ui, sans-serif;
  --font-condensed: "Barlow Condensed", "Arial Narrow", sans-serif;
  /* Semantic aliases consumed by the site's generated charts and maps. */
  --bg: var(--paper);
  --bg-tint: var(--sand);
  --ink-soft: var(--muted);
  --line-2: #e9eeeb;
  --accent: var(--pool-dark);
  --accent-ink: #05685e;
  --accent-soft: #dcf5f0;
  --palm: var(--pool-dark);
  --palm-soft: var(--sky);
  --sun: var(--mango);
  --sun-deep: #c79200;
  --flamingo: var(--coral);
  --teal: var(--pool);
  --teal-deep: var(--pool-dark);
  --warn: #d67500;
  --good: #15876f;
  --font-sign: var(--font-condensed);
  --fs-sm: .9rem;
  --fs-xs: .78rem;
  --content: 1280px;
  --article: 760px;
  --radius: 6px;
  color-scheme: light;
}
/* Cost of living decision workspace */
.living-cost-guide { margin-top: -18px; }
.living-cost-kicker { margin: 0 0 12px; color: var(--coral-text); font-family: var(--font-condensed); font-size: .76rem; font-weight: 850; text-transform: uppercase; }
.living-cost-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr); min-height: 620px; overflow: hidden; background: linear-gradient(90deg, rgba(6,35,29,.98) 0%, rgba(6,35,29,.9) 45%, rgba(6,35,29,.35) 100%), url("/assets/villages/lake-sumter-landing.jpg") center/cover; color: white; }
.living-cost-hero::after { position: absolute; right: 0; bottom: 0; left: 0; height: 9px; background: var(--mango); content: ""; }
.living-cost-hero-copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; max-width: 840px; padding: clamp(54px, 7vw, 100px); }
.living-cost-hero .living-cost-kicker { color: var(--mango); }
.living-cost-hero h1 { max-width: 770px; color: white; font-size: clamp(4rem, 7.2vw, 7.6rem); line-height: .87; }
.living-cost-hero-copy > p:not(.living-cost-kicker) { max-width: 580px; margin: 26px 0 30px; color: #d8e6e1; font-size: 1.08rem; }
.living-cost-hero-number { align-self: end; margin: 0 7vw 72px 0; padding: 34px 0 34px 34px; border-left: 2px solid var(--mango); }
.living-cost-hero-number span, .living-cost-hero-number small { display: block; color: #d8e6e1; }
.living-cost-hero-number span { font-family: var(--font-condensed); font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.living-cost-hero-number strong { display: block; margin: 8px 0; color: var(--mango); font-family: var(--font-display); font-size: clamp(4rem, 7vw, 7.4rem); line-height: 1; }
.living-cost-hero-number small { max-width: 240px; font-size: .75rem; }
.living-cost-opening { display: grid; grid-template-columns: .38fr .9fr 1.15fr; gap: 48px; align-items: start; padding: 100px 0; border-bottom: 1px solid var(--line); }
.living-cost-opening h2, .living-cost-calculator h2, .living-cost-comparison h2, .living-cost-drivers h2, .living-cost-electric h2, .living-cost-details h2, .living-cost-next h2 { font-size: clamp(2.8rem, 4.8vw, 5.2rem); }
.living-cost-opening > div > p:first-child { margin-top: 0; color: var(--muted); font-size: 1rem; }
.living-cost-sources { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 20px; }
.living-cost-sources span { color: var(--coral-text); font-family: var(--font-condensed); font-size: .66rem; font-weight: 850; text-transform: uppercase; }
.living-cost-sources a { color: var(--muted); font-size: .68rem; text-decoration: underline; text-underline-offset: 3px; }
.living-cost-calculator { padding: 96px 0; }
.living-cost-calculator > header { display: grid; grid-template-columns: .4fr 1fr .7fr; gap: 38px; align-items: end; margin-bottom: 42px; }
.living-cost-calculator > header > p:last-child { margin: 0; color: var(--muted); }
.living-cost-tool-fallback { padding: 40px; background: var(--panel-2); }
.living-cost-calculator .monthly-cost-tool { margin: 0; padding: 0; border: 0; background: transparent; }
.cost-tool-workspace { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr); border-top: 5px solid var(--midnight); border-bottom: 1px solid var(--line); }
.living-cost-calculator .cost-tool-form { max-width: none; margin: 0; padding: 34px 38px 34px 0; border-right: 1px solid var(--line); }
.living-cost-calculator .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; }
.living-cost-calculator .form-row { margin: 0; }
.living-cost-calculator .form-row label { display: block; margin-bottom: 7px; color: var(--muted); font-family: var(--font-condensed); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.living-cost-calculator .form-row input, .living-cost-calculator .form-row select { width: 100%; min-height: 48px; border: 1px solid var(--line); border-radius: 0; background: var(--panel); color: var(--ink); font: 700 .95rem var(--font-body); }
.living-cost-calculator .form-row input:focus, .living-cost-calculator .form-row select:focus { border-color: var(--pool-dark); outline: 3px solid color-mix(in srgb, var(--pool) 28%, transparent); }
.living-cost-calculator .cost-tool-result { margin: 0; padding: 34px 0 34px 38px; }
.living-cost-calculator .cost-tool-total { display: block; padding: 0 0 28px; border-bottom: 1px solid var(--line); background: transparent; color: var(--ink); }
.living-cost-calculator .cost-tool-total span, .living-cost-calculator .cost-tool-total small { display: block; color: var(--muted); }
.living-cost-calculator .cost-tool-total span { font-family: var(--font-condensed); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.living-cost-calculator .cost-tool-total strong { display: block; margin: 8px 0 4px; color: var(--coral-text); font-family: var(--font-display); font-size: clamp(4rem, 6vw, 6.8rem); line-height: 1; }
.living-cost-calculator .cost-tool-parts { display: grid; grid-template-columns: 1fr; border: 0; }
.living-cost-calculator .cost-tool-parts div { display: grid; grid-template-columns: 140px 1fr auto; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); }
.living-cost-calculator .cost-tool-parts span { color: var(--muted); font-size: .75rem; }
.living-cost-calculator .cost-tool-parts i { height: 5px; background: linear-gradient(90deg, var(--pool-dark) var(--share), var(--sand) var(--share)); }
.living-cost-calculator .cost-tool-parts strong { color: var(--ink); font-size: .8rem; }
.cost-tool-note { max-width: 900px; margin: 18px 0 0; color: var(--muted); font-size: .72rem; }
.living-cost-comparison { padding: 100px 0; border-top: 1px solid var(--line); }
.living-cost-comparison > header { display: grid; grid-template-columns: 1fr .8fr; gap: 7vw; align-items: end; margin-bottom: 48px; }
.living-cost-comparison > header > p:last-child { margin: 0; color: var(--muted); }
.living-cost-scenarios { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 5px solid var(--midnight); border-bottom: 1px solid var(--line); }
.living-cost-scenario { padding: 32px; border-right: 1px solid var(--line); }
.living-cost-scenario:last-child { border-right: 0; }
.living-cost-scenario > p { color: var(--coral-text); font-family: var(--font-condensed); font-size: .68rem; font-weight: 850; }
.living-cost-scenario h3 { margin-bottom: 24px; font-size: 1.9rem; }
.living-cost-scenario dl > div { display: flex; justify-content: space-between; gap: 20px; padding: 12px 0; border-top: 1px solid var(--line); }
.living-cost-scenario dt { color: var(--muted); font-size: .72rem; }
.living-cost-scenario dd { margin: 0; color: var(--ink); font-weight: 800; white-space: nowrap; }
.living-cost-scenario dl > div:last-child dd { color: var(--coral-text); font-size: 1.05rem; }
.living-cost-drivers { padding: 100px 0; background: var(--midnight); color: white; box-shadow: 50vw 0 var(--midnight), -50vw 0 var(--midnight); }
.living-cost-drivers .living-cost-kicker { color: var(--mango); }
.living-cost-drivers h2 { max-width: 800px; color: white; }
.living-cost-drivers > div { margin-top: 48px; border-top: 1px solid rgba(255,255,255,.24); }
.living-cost-driver { display: grid; grid-template-columns: 46px 190px 1fr .8fr; gap: 28px; align-items: center; min-height: 116px; border-bottom: 1px solid rgba(255,255,255,.18); }
.living-cost-driver > span { color: var(--mango); font-family: var(--font-condensed); font-size: .7rem; font-weight: 850; }
.living-cost-driver h3 { color: white; font-size: 1.35rem; }
.living-cost-driver p { color: #c9d9d4; font-size: .82rem; }
.living-cost-driver strong { color: var(--mango); font-size: .78rem; }
.living-cost-drivers .living-cost-sources a { color: #c9d9d4; }
.living-cost-electric { display: grid; grid-template-columns: 1fr .9fr; gap: 8vw; align-items: center; padding: 110px 0; }
.living-cost-electric > div:first-child > p:not(.living-cost-kicker) { color: var(--muted); }
.living-cost-electric-chart { padding: 34px 0; border-top: 5px solid var(--midnight); border-bottom: 1px solid var(--line); }
.living-cost-electric-row { display: grid; grid-template-columns: 150px 1fr 76px; gap: 18px; align-items: center; padding: 16px 0; }
.living-cost-electric-row span { color: var(--muted); font-size: .76rem; }
.living-cost-electric-row i { height: 12px; background: linear-gradient(90deg, var(--pool-dark) var(--bar), var(--sand) var(--bar)); }
.living-cost-electric-row strong { color: var(--ink); text-align: right; }
.living-cost-electric-chart small { display: block; margin-top: 18px; color: var(--muted); font-size: .68rem; }
.living-cost-tradeoffs { display: grid; grid-template-columns: 1fr 1fr; }
.living-cost-tradeoffs article { padding: clamp(54px, 6vw, 90px); background: var(--sky); }
.living-cost-tradeoffs article:last-child { background: var(--mango); color: #102018; }
.living-cost-tradeoffs h2 { font-size: clamp(2.3rem, 4vw, 4.5rem); }
.living-cost-tradeoffs p:not(.living-cost-kicker) { max-width: 680px; }
.living-cost-tradeoffs article:last-child .living-cost-kicker, .living-cost-tradeoffs article:last-child .living-cost-sources span { color: #702c23; }
.living-cost-tradeoffs article:last-child .living-cost-sources a { color: #31463d; }
.living-cost-details { padding: 110px 0; }
.living-cost-details > h2 { max-width: 900px; margin-bottom: 48px; }
.living-cost-detail { border-top: 1px solid var(--line); }
.living-cost-detail:last-child { border-bottom: 1px solid var(--line); }
.living-cost-detail summary { padding: 26px 0; color: var(--ink); font-family: var(--font-display); font-size: 1.3rem; font-weight: 800; cursor: pointer; }
.living-cost-detail > p { max-width: 940px; padding: 0 0 22px; color: var(--muted); }
.living-cost-detail .living-cost-sources { padding-bottom: 28px; }
.living-cost-next { display: grid; grid-template-columns: 1fr .7fr auto; gap: 50px; align-items: end; padding: 76px 0; border-top: 8px solid var(--mango); }
.living-cost-next > p { margin: 0; color: var(--muted); }
.living-cost-next > a { color: var(--coral-text); font-weight: 850; white-space: nowrap; }
html.theme-dark .living-cost-scenario, html.theme-dark .living-cost-electric-chart, html.theme-dark .cost-tool-workspace { border-color: #45635c; }
html.theme-dark .living-cost-calculator .cost-tool-parts i, html.theme-dark .living-cost-electric-row i { background: linear-gradient(90deg, var(--pool) var(--share, var(--bar)), #294941 var(--share, var(--bar))); }
html.theme-dark .living-cost-tradeoffs article { background: #173f37; color: #f4fbf8; }
html.theme-dark .living-cost-tradeoffs article h2 { color: white; }
html.theme-dark .living-cost-tradeoffs article:last-child { background: #e7be47; color: #102018; }
html.theme-dark .living-cost-tradeoffs article:last-child h2 { color: #102018; }
html.theme-dark .living-cost-tradeoffs article:last-child p { color: #213c33; }
@media (max-width: 900px) {
  .living-cost-hero { grid-template-columns: 1fr; min-height: 700px; }
  .living-cost-hero-copy { padding-bottom: 18px; }
  .living-cost-hero-number { align-self: auto; margin: 0 36px 58px; padding: 20px 0 20px 24px; }
  .living-cost-opening, .living-cost-calculator > header { grid-template-columns: 1fr; gap: 18px; }
  .cost-tool-workspace, .living-cost-electric { grid-template-columns: 1fr; }
  .living-cost-calculator .cost-tool-form { padding-right: 0; border-right: 0; }
  .living-cost-calculator .cost-tool-result { padding-left: 0; }
  .living-cost-comparison > header { grid-template-columns: 1fr; }
  .living-cost-scenarios { grid-template-columns: 1fr; }
  .living-cost-scenario { border-right: 0; border-bottom: 1px solid var(--line); }
  .living-cost-driver { grid-template-columns: 36px 150px 1fr; }
  .living-cost-driver strong { grid-column: 3; }
  .living-cost-next { grid-template-columns: 1fr; gap: 22px; }
}
@media (max-width: 620px) {
  .living-cost-guide { margin-top: -10px; }
  .living-cost-hero { min-height: 650px; }
  .living-cost-hero-copy { padding: 48px 22px 18px; }
  .living-cost-hero h1 { font-size: clamp(3.25rem, 17vw, 4.6rem); }
  .living-cost-hero-number { margin: 0 22px 48px; }
  .living-cost-opening, .living-cost-calculator, .living-cost-comparison, .living-cost-electric, .living-cost-details { padding-top: 72px; padding-bottom: 72px; }
  .living-cost-calculator .form-grid { grid-template-columns: 1fr; }
  .living-cost-calculator .cost-tool-parts div { grid-template-columns: 120px 1fr auto; }
  .living-cost-driver { grid-template-columns: 32px 1fr; gap: 12px; padding: 22px 0; }
  .living-cost-driver p, .living-cost-driver strong { grid-column: 2; margin: 0; }
  .living-cost-electric-row { grid-template-columns: 105px 1fr 66px; gap: 10px; }
  .living-cost-tradeoffs { grid-template-columns: 1fr; }
  .living-cost-tradeoffs article { padding: 58px 22px; }
}

html { scroll-behavior: smooth; font-size: 16px; }
html.text-lg { font-size: 18px; }
html.text-xl { font-size: 20px; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-body); line-height: 1.6; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: var(--pool-dark); text-underline-offset: 3px; }
img { max-width: 100%; }
h1, h2, h3 { margin: 0; color: var(--midnight); font-family: var(--font-display); line-height: 1.08; letter-spacing: 0; }
p { margin: 0 0 1rem; }
:focus-visible { outline: 3px solid var(--mango); outline-offset: 3px; }
.skip-link { position: fixed; left: 12px; top: -80px; z-index: 10000; padding: 10px 14px; background: white; color: var(--midnight); }
.skip-link:focus { top: 12px; }
.muted { color: var(--muted); }
.small { font-size: .82rem; }
.empty { padding: 40px 0; color: var(--muted); }

/* Shared shell */
.site-header { position: relative; z-index: 80; background: var(--midnight); color: white; }
.site-header::before { display: block; height: 5px; background: linear-gradient(90deg, var(--pool) 0 35%, var(--mango) 35% 67%, var(--coral) 67%); content: ""; }
.site-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; width: min(var(--content), calc(100% - 48px)); min-height: 82px; margin: 0 auto; }
.brand { display: grid; color: white; text-decoration: none; }
.brand-kicker { color: var(--mango); font-size: .68rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.brand-name { font-family: var(--font-display); font-size: clamp(1.25rem, 2.2vw, 1.8rem); font-weight: 700; line-height: 1.1; }
.header-utility { display: flex; align-items: center; gap: 18px; }
.header-library-link { color: white; font-size: .86rem; font-weight: 700; text-decoration: none; }
.header-library-link:hover { color: var(--mango); }
.textsize-host, .textsize, .theme-switch { display: flex; align-items: center; gap: 4px; }
.textsize { padding-right: 8px; border-right: 1px solid rgba(255,255,255,.2); }
.textsize button, .theme-switch button { min-width: 34px; min-height: 34px; padding: 6px 8px; border: 1px solid rgba(255,255,255,.28); border-radius: 4px; background: transparent; color: white; cursor: pointer; }
.theme-switch button { display: inline-flex; gap: 5px; align-items: center; }
.textsize button[aria-pressed="true"], .theme-switch button[aria-pressed="true"] { border-color: var(--mango); background: var(--mango); color: var(--midnight); }
.site-command { position: sticky; top: 0; z-index: 70; display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 380px); gap: 24px; align-items: center; padding: 0 max(24px, calc((100vw - var(--content)) / 2)); background: rgba(255,253,248,.97); border-bottom: 1px solid var(--line); backdrop-filter: blur(16px); }

/* Navigation */
nav#tabs { min-width: 0; }
.navdir, .navtoggle { display: none; }
.navbar { display: flex; align-items: center; gap: 2px; }
.navgroup { position: relative; display: flex; align-items: stretch; }
.navgroup-btn { display: flex; align-items: center; min-height: 58px; padding: 0 8px 0 13px; border: 0; background: transparent; color: var(--midnight); font-size: .76rem; font-weight: 700; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; cursor: pointer; }
.navgroup-plus { min-width: 30px; min-height: 58px; padding: 0 8px 0 4px; border: 0; background: transparent; color: var(--pool-dark); font-size: 1rem; font-weight: 850; cursor: pointer; }
.navgroup-btn:hover, .navgroup-plus:hover, .navgroup.is-open > .navgroup-btn, .navgroup.is-open > .navgroup-plus, .navgroup.is-current > .navgroup-btn { color: var(--coral); }
.navpanel { position: absolute; top: calc(100% - 1px); left: 0; z-index: 90; display: grid; grid-template-columns: repeat(2, minmax(190px, 1fr)); width: min(620px, calc(100vw - 32px)); max-height: 70vh; overflow: auto; padding: 18px; background: white; border: 1px solid var(--line); box-shadow: var(--shadow); }
.navpanel[hidden] { display: none; }
@media (min-width: 721px) {
  .navgroup:last-of-type .navpanel { right: 0; left: auto; width: min(500px, calc(100vw - 32px)); }
}
.navfam { display: grid; align-content: start; }
.navpanel a { padding: 9px 10px; border-bottom: 1px solid #edf0ef; color: var(--ink); font-size: .87rem; font-weight: 600; text-decoration: none; }
.navpanel a:hover, .navpanel a[aria-current="page"] { background: var(--sky); color: var(--pool-dark); }
.navpanel a.nav-child { padding-left: 22px; color: var(--muted); font-size: .82rem; }

/* Global search */
.search-host { min-width: 0; }
.gsearch { position: relative; }
.gsearch input { width: 100%; min-height: 40px; padding: 8px 42px 8px 15px; border: 1px solid #cbd4d5; border-radius: 999px; background: white; color: var(--ink); }
.gsearch::after { position: absolute; top: 8px; right: 15px; color: var(--pool-dark); content: "⌕"; font-size: 1.25rem; line-height: 1; }
.gsearch-results { position: absolute; top: calc(100% + 8px); right: 0; z-index: 100; display: none; width: min(520px, calc(100vw - 32px)); max-height: 65vh; overflow: auto; background: white; border: 1px solid var(--line); box-shadow: var(--shadow); }
.gsearch-results.open { display: block; }
.gsearch-item { display: grid; width: 100%; padding: 13px 16px; border: 0; border-bottom: 1px solid #edf0ef; background: white; color: var(--ink); text-align: left; cursor: pointer; }
.gsearch-item:hover { background: var(--sky); }
.gsearch-title { font-weight: 700; }
.gsearch-meta, .gsearch-empty { color: var(--muted); font-size: .78rem; }
.gsearch-empty { padding: 18px; }

main { min-height: 65vh; }
body:not(.home-route) main { width: min(var(--content), calc(100% - 48px)); margin: 0 auto; padding: 64px 0 100px; }
.site-footer { display: grid; grid-template-columns: 1fr auto; gap: 18px 40px; padding: 54px max(24px, calc((100vw - var(--content)) / 2)); background: var(--midnight); color: #b9c8d4; }
.footer-brand { color: white; font-family: var(--font-display); font-size: 1.35rem; font-weight: 700; }
.footer-links { display: flex; gap: 22px; }
.footer-links a { color: white; font-size: .85rem; font-weight: 700; text-decoration: none; }
.footer-disclaimer { max-width: 760px; margin: 0; font-size: .78rem; }
#status { justify-self: end; color: #7f94a4; font-size: .75rem; }

/* Homepage */
body.home-route main { overflow: hidden; }
.hero { position: relative; display: grid; align-content: end; min-height: calc(100svh - 145px); padding: 72px max(24px, calc((100vw - var(--content)) / 2)); overflow: hidden; background: linear-gradient(90deg, rgba(4,17,32,.94) 0%, rgba(4,17,32,.74) 40%, rgba(4,17,32,.14) 74%), linear-gradient(0deg, rgba(4,17,32,.58), transparent 50%), url("villages/lake-sumter-landing-1600.webp") center 50% / cover; color: white; }
.hero::after { position: absolute; inset: auto 0 0; height: 6px; background: linear-gradient(90deg, var(--pool), var(--mango), var(--coral)); content: ""; }
.hero-inner { position: relative; z-index: 2; width: min(690px, 100%); padding-bottom: 116px; animation: hero-in .75s ease-out both; }
.hero-eyebrow, .section-kicker { margin: 0 0 18px; color: var(--mango); font-size: .72rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.hero-title { max-width: 11ch; color: white; font-size: clamp(3.7rem, 7.5vw, 7.2rem); line-height: .9; }
.hero-sub { max-width: 570px; margin: 28px 0 0; color: #f4f8fa; font-size: clamp(1.15rem, 2vw, 1.5rem); line-height: 1.45; }
.hero-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.btn, .cta-btn, .home-action, .story-link-btn, .native-partner-primary, .native-partner-secondary { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 11px 18px; border: 1px solid var(--pool-dark); border-radius: 4px; background: var(--pool-dark); color: white; font-weight: 700; text-decoration: none; cursor: pointer; transition: transform .18s ease, background .18s ease, color .18s ease; }
.btn:hover, .cta-btn:hover, .home-action:hover, .story-link-btn:hover { transform: translateY(-2px); background: var(--midnight-2); }
.btn-ghost { border-color: rgba(255,255,255,.7); background: rgba(7,28,51,.2); color: white; backdrop-filter: blur(10px); }
.btn-ghost:hover { background: white; color: var(--midnight); }
.hero-tape { position: absolute; right: max(24px, calc((100vw - var(--content)) / 2)); bottom: 38px; left: max(24px, calc((100vw - var(--content)) / 2)); z-index: 3; display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid rgba(255,255,255,.4); }
.hero-tape-item { display: grid; gap: 2px; padding: 17px 18px 0 0; }
.hero-tape-item strong { color: white; font-family: var(--font-display); font-size: clamp(1.2rem, 2.1vw, 2rem); }
.hero-tape-item span { color: #c9d4dc; font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; }
@keyframes hero-in { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

.home-manifesto, .decision-journeys, .library-feature, .partner-lane, .image-credits { width: min(var(--content), calc(100% - 48px)); margin: 0 auto; }
.home-manifesto { display: grid; grid-template-columns: 1.35fr 1fr; gap: 8vw; padding: 110px 0; }
.home-manifesto h2 { max-width: 720px; font-size: clamp(2.5rem, 5vw, 5.2rem); }
.manifesto-copy { align-self: end; color: var(--muted); font-size: 1.05rem; }
.manifesto-actions { grid-column: 1 / -1; display: flex; gap: 26px; padding-top: 20px; border-top: 1px solid var(--line); }
.editorial-link { color: var(--midnight); font-size: .88rem; font-weight: 700; text-decoration: none; }
.editorial-link:hover { color: var(--coral); }
.section-heading { display: grid; grid-template-columns: 1fr 2fr; align-items: end; gap: 40px; margin-bottom: 50px; }
.section-heading h2 { max-width: 780px; font-size: clamp(2.4rem, 4.5vw, 4.6rem); }
.decision-journeys { padding: 100px 0; border-top: 1px solid var(--line); }
.journey-list { border-top: 2px solid var(--midnight); }
.journey-row { display: grid; grid-template-columns: 52px 1.1fr 1.6fr auto; gap: 28px; align-items: center; padding: 28px 0; border-bottom: 1px solid var(--line); transition: padding .2s ease, background .2s ease; }
.journey-row:hover { padding-right: 18px; padding-left: 18px; background: var(--sky); }
.journey-num { color: var(--coral-text); font-size: .72rem; font-weight: 700; }
.journey-row h3 { font-size: clamp(1.45rem, 2.3vw, 2.2rem); }
.journey-row p { margin: 0; color: var(--muted); }
.experience-feature { display: grid; grid-template-columns: 1.35fr .85fr; min-height: 680px; margin: 0; background: var(--midnight); color: white; }
.experience-image { min-height: 560px; background: url("villages/golf-carts.jpg") center / cover; }
.experience-copy { align-self: center; padding: 70px clamp(32px, 6vw, 100px); }
.experience-copy h2 { color: white; font-size: clamp(2.6rem, 5vw, 5rem); }
.experience-copy p:not(.section-kicker) { margin: 28px 0; color: #c9d4dc; font-size: 1.05rem; }
.experience-copy .editorial-link { color: var(--mango); }

/* Dynamic buyer planner */
.buyer-concierge { width: min(var(--content), calc(100% - 48px)); margin: 110px auto; padding: 0; scroll-margin-top: 90px; }
.concierge-shell { display: grid; grid-template-columns: .85fr 1.45fr; gap: 7vw; }
.concierge-intro h2 { font-size: clamp(2.5rem, 4vw, 4.3rem); }
.concierge-intro p { color: var(--muted); }
.concierge-stage, .concierge-results { padding: 30px 0; border-top: 1px solid var(--line); }
.concierge-stage h3, .concierge-results h3 { font-size: 1.55rem; }
.concierge-options, .concierge-priorities { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.concierge-option, .concierge-priority { padding: 10px 13px; border: 1px solid var(--line); border-radius: 999px; background: white; color: var(--ink); cursor: pointer; }
.concierge-option:hover, .concierge-option.is-selected, .concierge-priority:hover, .concierge-priority.is-selected { border-color: var(--pool); background: var(--sky); color: var(--pool-dark); }
.concierge-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.concierge-result-list { display: grid; gap: 1px; margin-top: 16px; background: var(--line); }
.concierge-result { display: grid; grid-template-columns: 1fr auto; gap: 18px; padding: 16px; background: white; }

.library-feature { margin-top: 80px; margin-bottom: 100px; padding: clamp(36px, 6vw, 80px); background: var(--midnight); color: white; }
.library-feature-head { display: grid; grid-template-columns: 1.3fr .7fr; gap: 60px; align-items: end; padding-bottom: 50px; }
.library-feature-head .section-kicker { grid-column: 1 / -1; }
.library-feature h2 { color: white; font-size: clamp(2.5rem, 4.7vw, 4.8rem); }
.library-feature-head > p:last-child { color: #b9c8d4; }
.library-shelves { border-top: 1px solid rgba(255,255,255,.25); }
.library-shelf { display: grid; grid-template-columns: 52px 1fr auto; gap: 24px; align-items: center; padding: 24px 0; border-bottom: 1px solid rgba(255,255,255,.18); }
.library-shelf > span { color: var(--mango); font-size: .72rem; }
.library-shelf h3 { color: white; font-size: 1.45rem; }
.library-shelf p { margin: 4px 0 0; color: #9fb0bd; font-size: .86rem; }
.library-shelf .editorial-link { color: white; }
.library-all { margin-top: 36px; background: var(--mango); border-color: var(--mango); color: var(--midnight); }
.library-all:hover { background: white; border-color: white; }
.place-triptych { display: grid; grid-template-columns: repeat(3, 1fr); min-height: 600px; }
.place-panel { position: relative; display: grid; align-content: end; min-height: 600px; padding: 34px; overflow: hidden; background-position: center; background-size: cover; color: white; isolation: isolate; }
.place-panel::before { position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(5,19,35,.9), rgba(5,19,35,.04) 68%); content: ""; transition: background .25s ease; }
.place-panel:hover::before { background: linear-gradient(0deg, rgba(5,19,35,.96), rgba(5,19,35,.12)); }
.place-panel-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.place-panel p { margin: 0 0 10px; color: var(--mango); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.place-panel h2 { color: white; font-size: clamp(1.7rem, 2.7vw, 3rem); }
.place-link { margin-top: 24px; color: white; font-weight: 700; text-decoration: none; }

.partner-lane { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; margin-top: 100px; margin-bottom: 100px; padding: 56px; background: var(--mango); }
.partner-copy h2 { font-size: clamp(2rem, 3.5vw, 3.5rem); }
.partner-copy p { color: #4d493c; }
.partner-kicker { color: var(--coral-text); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.partner-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.home-action-dark { background: var(--midnight); border-color: var(--midnight); }
.home-action-light { background: white; border-color: white; color: var(--midnight); }
.partner-slots { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; align-self: stretch; background: rgba(7,28,51,.2); }
.partner-slot { display: grid; gap: 5px; padding: 20px; border: 0; background: rgba(255,255,255,.55); color: var(--midnight); text-align: left; cursor: pointer; }
.partner-slot:hover { background: white; }
.partner-slot span { font-size: .76rem; }
.image-credits { margin-top: 0; margin-bottom: 70px; color: var(--muted); font-size: .75rem; }

/* Library and article pages */
.page-head { max-width: 920px; padding: 0 0 34px; border-bottom: 1px solid var(--line); }
.page-head-bar { display: block; width: 54px; height: 6px; margin-bottom: 22px; background: linear-gradient(90deg, var(--pool), var(--mango), var(--coral)); }
.page-head h1 { font-size: clamp(2.8rem, 6vw, 5.8rem); }
.knowledge-reviewed { margin: 16px 0 4px; color: var(--muted); font-size: .82rem; font-weight: 800; }
.story-head-hidden { display: none; }
.rel-up { max-width: var(--article); margin: 22px 0; color: var(--muted); font-size: .85rem; }
.block { max-width: var(--article); padding: 32px 0; border-bottom: 1px solid var(--line); }
.block:first-of-type { color: var(--midnight); font-size: 1.18rem; }
.block h2, .block h3 { margin-bottom: 14px; font-size: clamp(1.55rem, 2.4vw, 2.15rem); }
.block p { color: #334255; }
.block.callout { margin: 26px 0; padding: 28px; border: 0; border-left: 5px solid var(--mango); background: var(--sand); }
.callout-warn { border-left-color: var(--coral) !important; }
.cta-row, .story-cta-row, .native-partner-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
/* Citations are this site's whole claim to trust, so they should be the easiest
   thing on the page to tap — they were among the hardest. Measured on an
   iPhone 13: .cite 15px tall, .story-source-link 18px, some as small as 19x23.
   WCAG 2.5.8 (AA) wants 24px. Inline citations inside a sentence are technically
   exempt, but the readers here are 55+ and the exemption is not the point.
   Padding buys the height without changing the type size or breaking the line. */
.cite { display: inline-block; min-height: 24px; margin-left: 7px; padding: 3px 4px; color: var(--pool-dark); font-size: .78rem; line-height: 18px; }
.tablewrap { max-width: 100%; margin: 22px 0; overflow-x: auto; border-top: 2px solid var(--midnight); }
table.data { width: 100%; border-collapse: collapse; font-size: .86rem; }
/* The listings hub renders one table per village, in the site's existing
   .tablewrap scroller; on a phone they scroll sideways rather than squeezing
   five columns into 390px. */
.listings-table { min-width: 560px; }
.listings-table th[scope="row"] { font-weight: 600; text-align: left; }
.listings-village > h3 { margin-bottom: 8px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.listing-overview { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr); min-height: 390px; margin: 12px 0 22px; overflow: hidden; background: #102d28; border-bottom: 8px solid var(--mango); color: white; }
.listing-overview-copy { display: flex; flex-direction: column; justify-content: center; padding: 48px; }
.listing-overview h2 { max-width: 720px; margin: 6px 0 16px; color: white; font-size: clamp(2.6rem, 4.6vw, 4.8rem); line-height: .94; }
.listing-overview-copy > p:not(.eyebrow) { max-width: 660px; margin: 0; color: #d6e6e0; }
.listing-overview img { width: 100%; height: 100%; min-height: 390px; object-fit: cover; }
.listing-overview-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 34px 0 0; border-top: 1px solid rgba(255,255,255,.24); }
.listing-overview-stats > div { padding: 15px 12px 0 0; border-right: 1px solid rgba(255,255,255,.2); }
.listing-overview-stats > div:last-child { border-right: 0; }
.listing-overview-stats dt { color: #b8cec7; }
.listing-overview-stats dd { margin: 4px 0 0; color: var(--mango); font-family: var(--font-display); font-size: 1.45rem; font-weight: 800; }
.listing-scope { margin: 18px 0 26px; padding: 18px 22px; border-left: 6px solid var(--coral); background: var(--panel-2); }
.listing-scope-title { display: block; color: var(--ink); font-weight: 850; }
.listing-scope p { max-width: 900px; margin: 14px 0 0; color: var(--muted); font-size: .88rem; }
.listing-controls { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 28px 0 30px; padding: 24px; background: var(--panel-2); border-top: 5px solid var(--midnight); border-bottom: 1px solid var(--line); }
.listing-field { display: grid; gap: 7px; min-width: 0; color: var(--muted); font-family: var(--font-condensed); font-size: .75rem; text-transform: uppercase; }
.listing-field.is-search { grid-column: span 2; }
.listing-field input, .listing-field select { width: 100%; min-width: 0; border-radius: 0; background: var(--panel); color: var(--ink); font-family: var(--font-body); text-transform: none; }
.listing-action, .listing-reset { min-height: 46px; align-self: end; padding: 9px 12px; }
.listing-reset { border-color: var(--line); background: var(--panel); color: var(--ink); }
.listing-action:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.listing-search-alert { grid-column: 1 / -1; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--panel); }
.listing-search-alert > summary { min-height: 68px; padding: 15px 48px 15px 18px; color: var(--ink); cursor: pointer; }
.listing-search-alert > summary::marker { color: var(--pool-dark); }
.listing-search-alert > summary > span { display: flex; gap: 14px; align-items: baseline; justify-content: space-between; }
.listing-search-alert > summary strong { font-family: var(--font-display); font-size: 1.15rem; }
.listing-search-alert > summary span span { color: var(--muted); font-family: var(--font-condensed); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.listing-search-alert-form { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(260px, .9fr) auto; gap: 14px 18px; align-items: end; padding: 20px 18px 22px; border-top: 1px solid var(--line); }
.listing-search-alert-form > p:first-child { grid-column: 1 / -1; max-width: 850px; margin: 0; color: var(--muted); font-size: .84rem; }
.listing-search-alert-email { display: grid; gap: 6px; color: var(--muted); font-family: var(--font-condensed); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.listing-search-alert-email input { width: 100%; min-height: 46px; border-radius: 0; background: var(--surface); color: var(--ink); font-family: var(--font-body); text-transform: none; }
.listing-search-alert-consent { display: flex; min-height: 46px; gap: 8px; align-items: center; color: var(--muted); font-size: .76rem; }
.listing-search-alert-consent input { flex: 0 0 auto; width: 20px; min-height: 20px; accent-color: var(--pool-dark); }
.listing-search-alert-submit { min-height: 46px; white-space: nowrap; }
.listing-search-alert-status { grid-column: 1 / -1; margin: 0; color: var(--pool-dark); font-size: .8rem; font-weight: 800; }
html.theme-dark .listing-search-alert { background: var(--panel); }
html.theme-dark .listing-search-alert > summary::marker, html.theme-dark .listing-search-alert-status { color: var(--mango); }
.listing-count { display: flex; grid-column: 1 / -1; align-items: center; justify-content: flex-end; color: var(--muted); font-family: var(--font-condensed); font-size: .85rem; font-weight: 800; text-transform: uppercase; }
.listing-results { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.listing-result { display: flex; min-width: 0; flex-direction: column; overflow: hidden; background: var(--panel); border: 1px solid var(--line); border-top: 6px solid var(--pool); transition: transform .2s ease, box-shadow .2s ease; }
.listing-result:nth-child(3n + 2) { border-top-color: var(--mango); }
.listing-result:nth-child(3n + 3) { border-top-color: var(--coral); }
.listing-result:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(9,43,36,.12); }
.listing-photo-link, .listing-result .photobtn { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--panel-2); }
.listing-photo-link img, .listing-result .photobtn img { display: block; width: 100%; height: 100%; object-fit: cover; }
.listing-photo-source { position: absolute; right: 10px; bottom: 10px; padding: 6px 9px; background: rgba(7,31,26,.82); color: #fff; font-size: .68rem; font-weight: 800; }
.listing-photo-link:focus-visible { outline: 3px solid var(--mango); outline-offset: -3px; }
.top-picks > h2 { margin: 8px 0 4px; }
.top-picks > .muted.small { max-width: 900px; margin: 0 0 20px; }
.pickweights { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; max-width: none; padding: 16px; border: 1px solid var(--line); border-top: 5px solid var(--midnight); background: var(--panel-2); }
.pickrow { display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; align-items: center; min-width: 0; padding: 12px; background: var(--panel); border: 1px solid var(--line); }
.pickrow .calclabel { min-width: 0; color: var(--ink); font: 800 .76rem var(--font-condensed); text-transform: uppercase; }
.pickrow .calcunit { color: var(--pool-dark); font: 850 .76rem var(--font-condensed); }
.pickrange { grid-column: 1 / -1; width: 100%; accent-color: var(--pool-dark); }
.pickcheck { display: flex; align-items: center; grid-column: span 1; }
.pickcheck input { width: 22px; height: 22px; margin: 0; accent-color: var(--pool-dark); }
.top-picks .cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 22px; }
.pickcard { position: relative; min-width: 0; overflow: hidden; background: var(--panel); border: 1px solid var(--line); border-top: 6px solid var(--pool); box-shadow: 0 12px 28px rgba(9,43,36,.08); }
.pickcard:nth-child(3n + 2) { border-top-color: var(--mango); }
.pickcard:nth-child(3n + 3) { border-top-color: var(--coral); }
.pickcard .body { display: grid; gap: 10px; padding: 18px; }
.pickcard .price { color: var(--ink); font-family: var(--font-display); font-size: 1.65rem; font-weight: 850; }
.pickcard .badges { display: flex; flex-wrap: wrap; gap: 6px; }
.pickcard .badge { padding: 5px 7px; background: var(--sand); color: var(--muted); font-size: .68rem; font-weight: 750; }
.pickcard .badge.accent, .pickcard .badge.good { background: var(--sky); color: var(--pool-dark); }
.pickscore { position: absolute; top: 16px; right: 10px; z-index: 1; padding: 7px 10px; background: var(--mango); color: #102018; font: 850 .76rem var(--font-condensed); box-shadow: 0 3px 10px rgba(7,31,26,.18); }
@media (max-width: 900px) {
  .listing-search-alert-form { grid-template-columns: 1fr 1fr; }
  .listing-search-alert-submit { grid-column: 2; }
  .pickweights, .top-picks .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .listing-search-alert > summary > span { display: grid; gap: 3px; }
  .listing-search-alert-form { grid-template-columns: 1fr; }
  .listing-search-alert-submit { grid-column: 1; width: 100%; }
  .pickweights, .top-picks .cards { grid-template-columns: 1fr; }
  .pickweights { padding: 10px; }
  .pickrow { padding: 10px; }
}
.listing-result .body { display: flex; flex: 1; flex-direction: column; gap: 12px; padding: 22px; }
.listing-result .pricerow { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.listing-result .price { color: var(--ink); font-family: var(--font-display); font-size: 1.75rem; font-weight: 850; }
.listing-result .fav { min-height: 34px; padding: 6px 9px; border: 1px solid var(--line); background: var(--panel-2); color: var(--ink); font-weight: 800; cursor: pointer; }
.listing-result .fav[aria-pressed="true"] { border-color: var(--mango); background: var(--mango); color: #102018; }
.listing-result .badges { display: flex; flex-wrap: wrap; gap: 6px; }
.listing-result .badge { padding: 5px 7px; background: var(--sand); color: var(--muted); font-size: .68rem; font-weight: 750; }
.listing-result .badge.accent { background: var(--sky); color: var(--pool-dark); }
.listing-result .badge.good { background: #dff3df; color: #245d32; }
.listing-result .badge.warn { background: #fff0bc; color: #705400; }
.listing-result .cite { display: inline-block; margin-left: 0; overflow-wrap: anywhere; font-size: .82rem; font-weight: 800; }
.photo-at-source { display: flex; min-height: 148px; align-items: center; justify-content: center; gap: 10px; padding: 22px; background: #dff4ef; color: var(--accent-ink); font-weight: 850; text-align: center; text-decoration: none; }
.photo-at-source:hover { background: var(--mango); color: #102018; }
.pas-icon { font-size: 1.6rem; }
.listing-personal, .listing-result .records, .listing-result .listing-desc, .listing-result .cost { margin-top: 2px; padding-top: 10px; border-top: 1px solid var(--line); }
.listing-personal summary, .listing-result .records summary, .listing-result .listing-desc summary, .listing-result .cost summary { color: var(--pool-dark); font-size: .8rem; font-weight: 800; cursor: pointer; }
.listing-personal .checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 12px; }
.listing-personal .checks label { display: flex; gap: 7px; align-items: start; color: var(--muted); font-size: .72rem; }
.listing-personal input[type="checkbox"] { width: 16px; min-height: 16px; margin-top: 2px; }
.listing-personal textarea { min-height: 76px; margin-top: 12px; }
.listing-result .printbtn { width: 100%; min-height: 40px; margin-top: auto; padding: 8px 10px; }
.listing-result .sinkprox { padding: 10px; background: var(--panel-2); border-left: 4px solid var(--pool); font-size: .78rem; }
.listing-result .sinkprox-detail, .listing-result .sinkprox-note { margin-top: 4px; }
html.theme-dark .listing-overview { background: #173f36; }
html.theme-dark .listing-scope, html.theme-dark .listing-controls, html.theme-dark .listing-result, html.theme-dark .photo-at-source, html.theme-dark .listing-result .fav, html.theme-dark .listing-result .sinkprox { background: var(--panel); }
html.theme-dark .listing-scope summary, html.theme-dark .listing-result .price { color: var(--ink); }
html.theme-dark .photo-at-source, html.theme-dark .listing-personal summary, html.theme-dark .listing-result .records summary, html.theme-dark .listing-result .listing-desc summary, html.theme-dark .listing-result .cost summary { color: var(--mango); }
html.theme-dark .listing-result .badge { background: #303a32; color: #d7ded7; }
html.theme-dark .listing-result .badge.accent { background: #234d43; color: #8ce9d8; }
html.theme-dark .listing-result .badge.good { background: #29452f; color: #a9e5b5; }
html.theme-dark .listing-result .badge.warn { background: #52471f; color: #ffe48a; }

/* Buyer shortlist: a dense decision surface, not another listing-card grid. */
.buyer-workspace { margin: 12px 0 70px; }
.workspace-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: end; padding: 42px 46px; border-bottom: 8px solid var(--mango); background: var(--midnight); color: white; }
.workspace-head .eyebrow, .workspace-toolbar .eyebrow, .workspace-notes .eyebrow, .workspace-services .eyebrow, .workspace-empty .eyebrow { margin: 0 0 8px; color: var(--mango); }
.workspace-head h2 { max-width: 800px; margin: 0 0 12px; color: white; font-size: clamp(2.6rem, 5vw, 5rem); line-height: .94; }
.workspace-head-copy > p:last-child { max-width: 760px; margin: 0; color: #d5e5df; }
.workspace-privacy { display: grid; min-width: 225px; gap: 5px; padding: 18px 0 2px 22px; border-left: 2px solid var(--pool); }
.workspace-privacy strong { color: var(--pool); font-family: var(--font-condensed); font-size: .9rem; text-transform: uppercase; }
.workspace-privacy span { max-width: 210px; color: #d5e5df; font-size: .75rem; }
.workspace-search { position: relative; z-index: 4; display: grid; grid-template-columns: minmax(0, 1fr); padding: 24px 28px; border-bottom: 1px solid var(--line); background: var(--mango); color: #102018; }
.workspace-search > label { display: grid; grid-template-columns: 180px minmax(0, 660px); gap: 18px; align-items: center; font-family: var(--font-condensed); font-size: .76rem; font-weight: 850; text-transform: uppercase; }
.workspace-search input { width: 100%; min-height: 48px; border: 2px solid #102018; border-radius: 0; background: white; color: #102018; font: 700 .95rem var(--font-body); text-transform: none; }
.workspace-search-results { position: absolute; top: calc(100% - 12px); left: 226px; width: min(660px, calc(100% - 254px)); border: 1px solid #102018; background: white; box-shadow: var(--shadow); }
.workspace-search-results:empty { display: none; }
.workspace-search-result { display: flex; min-height: 62px; gap: 16px; align-items: center; justify-content: space-between; padding: 10px 12px 10px 16px; border-bottom: 1px solid #d7dfda; color: #102018; }
.workspace-search-result:last-child { border-bottom: 0; }
.workspace-search-result > span, .workspace-saved-home label > span { display: grid; gap: 3px; min-width: 0; }
.workspace-search-result strong, .workspace-saved-home strong { overflow-wrap: anywhere; font-size: .8rem; }
.workspace-search-result small, .workspace-saved-home small { color: #53645d; font-size: .68rem; }
.workspace-add { min-width: 74px; min-height: 40px; border: 0; background: var(--pool-dark); color: white; font-weight: 850; }
.workspace-add:disabled { background: #e4e8e5; color: #526159; }
.workspace-search-empty { margin: 0; padding: 18px; color: #47564f; font-size: .8rem; }
.workspace-layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); min-height: 560px; border-bottom: 1px solid var(--line); }
.workspace-rail { padding: 26px 20px 34px 0; border-right: 1px solid var(--line); }
.workspace-rail-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; font-family: var(--font-condensed); font-size: .78rem; font-weight: 850; text-transform: uppercase; }
.workspace-rail-head strong { display: grid; width: 34px; height: 34px; place-items: center; background: var(--coral); color: #102018; }
.workspace-saved-home { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; align-items: center; padding: 13px 0; border-top: 1px solid var(--line); }
.workspace-saved-home label { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 9px; align-items: start; cursor: pointer; }
.workspace-saved-home input { width: 18px; min-height: 18px; margin: 2px 0 0; accent-color: var(--pool-dark); }
.workspace-remove { min-height: 34px; padding: 6px; border: 0; background: transparent; color: var(--coral-text); font-size: .66rem; font-weight: 800; text-decoration: underline; }
.workspace-limit, .workspace-rail-empty { color: var(--muted); font-size: .7rem; }
.workspace-limit { padding-top: 14px; border-top: 3px solid var(--midnight); font-weight: 800; }
.workspace-main { min-width: 0; padding: 36px 0 0 34px; }
.workspace-toolbar { display: grid; grid-template-columns: minmax(210px, .65fr) minmax(460px, 1.35fr); gap: 30px; align-items: end; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.workspace-toolbar .eyebrow, .workspace-notes .eyebrow { color: var(--coral-text); }
.workspace-toolbar h2 { margin: 0; font-size: clamp(1.9rem, 3vw, 3rem); }
.workspace-assumptions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.workspace-assumptions label { color: var(--muted); font-family: var(--font-condensed); font-size: .7rem; font-weight: 850; text-transform: uppercase; }
.workspace-assumptions label > span { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; margin-top: 6px; border: 1px solid var(--line); background: var(--panel); }
.workspace-assumptions input { width: 100%; min-width: 0; min-height: 44px; border: 0; border-radius: 0; background: transparent; color: var(--ink); font-weight: 800; }
.workspace-assumptions label > span > span { padding: 0 10px; color: var(--muted); font-size: .72rem; text-transform: none; }
.workspace-actions { display: flex; flex-wrap: wrap; gap: 9px 12px; align-items: center; margin: 22px 0 0; }
.workspace-primary, .workspace-secondary { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 10px 16px; border: 2px solid var(--midnight); border-radius: 0; font-weight: 850; text-decoration: none; cursor: pointer; }
.workspace-primary { background: var(--midnight); color: white; }
.workspace-secondary { background: transparent; color: var(--ink); }
.workspace-status { flex: 1 1 250px; color: var(--muted); font-size: .72rem; }
.workspace-tablewrap { max-width: 100%; margin: 18px 0 0; overflow-x: auto; border-top: 5px solid var(--midnight); }
.workspace-table { width: 100%; min-width: 840px; border-collapse: collapse; color: var(--ink); }
.workspace-table th, .workspace-table td { width: 20%; padding: 14px 16px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.workspace-table tr > *:last-child { border-right: 0; }
.workspace-table th:first-child { width: 20%; }
.workspace-table thead th { min-width: 180px; padding-top: 19px; padding-bottom: 19px; background: var(--midnight); color: white; }
.workspace-table thead th:first-child { min-width: 150px; color: var(--mango); font-family: var(--font-condensed); font-size: .76rem; text-transform: uppercase; }
.workspace-address { display: block; overflow-wrap: anywhere; font-size: .82rem; }
.workspace-source { display: inline-flex; min-height: 24px; align-items: center; margin-top: 7px; color: var(--pool); font-size: .68rem; }
.workspace-evidence-open { display: block; min-height: 32px; margin-top: 8px; padding: 6px 9px; border: 1px solid var(--mango); background: transparent; color: white; font-size: .66rem; font-weight: 850; cursor: pointer; }
.workspace-evidence-open:hover { background: var(--mango); color: #102018; }
.workspace-table tbody th { color: var(--muted); font-family: var(--font-condensed); font-size: .7rem; text-transform: uppercase; }
.workspace-table tbody td { font-size: .77rem; font-weight: 750; }
.workspace-table tbody tr:nth-child(even) { background: var(--panel-2); }
.workspace-table td.is-anchor { box-shadow: inset 4px 0 var(--pool); }
.workspace-disclosure { max-width: 920px; margin: 14px 0 0; color: var(--muted); font-size: .68rem; }
.workspace-alerts { display: grid; grid-template-columns: minmax(240px, .78fr) minmax(360px, 1.22fr); gap: 48px; margin-top: 54px; padding: 34px 36px; border-top: 7px solid var(--mango); background: var(--midnight); color: white; }
.workspace-alerts .eyebrow { margin: 0 0 8px; color: var(--mango); }
.workspace-alerts h2 { margin: 0 0 10px; color: white; font-size: clamp(1.9rem, 3vw, 3rem); }
.workspace-alert-copy > p:last-child { max-width: 520px; margin: 0; color: #d5e5df; font-size: .82rem; }
.workspace-alert-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-content: center; }
.workspace-alert-email { color: white; font-family: var(--font-condensed); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.workspace-alert-email input { display: block; width: 100%; min-height: 48px; margin-top: 6px; border: 2px solid white; border-radius: 0; background: white; color: #102018; font: 750 .9rem var(--font-body); text-transform: none; }
.workspace-alert-consent { grid-column: 1 / -1; display: flex; gap: 9px; align-items: start; color: #d5e5df; font-size: .7rem; line-height: 1.45; }
.workspace-alert-consent input { flex: 0 0 auto; width: 18px; min-height: 18px; margin-top: 1px; accent-color: var(--mango); }
.workspace-alert-submit { align-self: end; min-height: 48px; padding: 10px 16px; border: 2px solid var(--mango); border-radius: 0; background: var(--mango); color: #102018; font-weight: 900; cursor: pointer; }
.workspace-alert-submit:hover { border-color: white; background: white; }
.workspace-alert-submit:disabled { opacity: .65; cursor: wait; }
.workspace-alert-status { grid-column: 1 / -1; min-height: 1.2em; margin: 0; color: #bcefe5; font-size: .72rem; font-weight: 750; }
.workspace-notes { margin-top: 58px; padding-top: 38px; border-top: 1px solid var(--line); }
.workspace-notes > header { display: grid; grid-template-columns: .55fr 1fr; gap: 6px 30px; margin-bottom: 25px; }
.workspace-notes > header .eyebrow { grid-column: 1 / -1; }
.workspace-notes h2 { margin: 0; font-size: clamp(1.9rem, 3vw, 3.1rem); }
.workspace-notes > header > p:last-child { margin: 5px 0 0; color: var(--muted); }
.workspace-notes-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 4px solid var(--midnight); }
.workspace-note { padding: 24px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.workspace-note:nth-child(even) { border-right: 0; }
.workspace-note h3 { min-height: 48px; margin-bottom: 14px; overflow-wrap: anywhere; font-size: 1rem; }
.workspace-check { display: flex; gap: 9px; align-items: start; min-height: 34px; color: var(--muted); font-size: .75rem; }
.workspace-check input { width: 18px; min-height: 18px; margin: 0; accent-color: var(--pool-dark); }
.workspace-note-label { display: grid; gap: 7px; margin-top: 8px; color: var(--muted); font-family: var(--font-condensed); font-size: .7rem; font-weight: 850; text-transform: uppercase; }
.workspace-note textarea { min-height: 92px; resize: vertical; border-radius: 0; background: var(--panel-2); color: var(--ink); font-family: var(--font-body); text-transform: none; }
.workspace-services { display: grid; grid-template-columns: minmax(240px, .8fr) minmax(380px, 1.2fr); gap: 40px; align-items: end; margin-top: 60px; padding: 34px; background: var(--pool); color: #102018; }
.workspace-services .eyebrow { color: #244840; }
.workspace-services h2 { margin: 0 0 8px; color: #102018; font-size: clamp(1.9rem, 3vw, 3.1rem); }
.workspace-services p:last-child { margin: 0; color: #244840; }
.workspace-service-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 2px solid #102018; }
.workspace-service { display: flex; min-height: 54px; align-items: center; justify-content: space-between; padding: 10px 12px; border-right: 1px solid rgba(16,32,24,.4); border-bottom: 1px solid rgba(16,32,24,.4); color: #102018; font-weight: 850; text-decoration: none; }
.workspace-service::after { content: ">"; }
.workspace-service:hover { background: var(--mango); }
.workspace-empty { min-height: 430px; padding: 70px 8vw; background: var(--panel-2); }
.workspace-empty h2 { max-width: 680px; font-size: clamp(2.5rem, 5vw, 5rem); }
.workspace-empty > p:not(.eyebrow) { max-width: 620px; color: var(--muted); }
.buyer-workspace-static { max-width: 1020px; margin: 20px 0 70px; padding: 58px; border-bottom: 8px solid var(--mango); background: var(--midnight); color: white; }
.buyer-workspace-static .eyebrow { color: var(--mango); }
.buyer-workspace-static h2 { max-width: 820px; color: white; font-size: clamp(2.8rem, 5vw, 5.4rem); }
.buyer-workspace-static > p { max-width: 760px; color: #d5e5df; }
.workspace-static-steps { display: grid; grid-template-columns: repeat(3, 1fr); margin: 34px 0; border-top: 1px solid rgba(255,255,255,.3); }
.workspace-static-steps span { display: flex; gap: 12px; align-items: center; padding: 18px 12px 0 0; color: white; font-weight: 750; }
.workspace-static-steps strong { display: grid; width: 30px; height: 30px; place-items: center; background: var(--coral); color: #102018; }
.workspace-static-note { font-size: .75rem; }
html.theme-dark .workspace-search-results, html.theme-dark .workspace-search-result { background: #fff; color: #102018; }
html.theme-dark .workspace-search-result small { color: #53645d; }
html.theme-dark .workspace-alert-email input { background: white; color: #102018; }
html.theme-dark .workspace-assumptions label > span, html.theme-dark .workspace-note textarea, html.theme-dark .workspace-empty { background: var(--panel); color: var(--ink); }
html.theme-dark .workspace-table td.is-anchor { box-shadow: inset 4px 0 #67dfcc; }

.evidence-dialog { width: min(1100px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 0; border: 0; border-top: 8px solid var(--mango); border-radius: 0; background: var(--paper); color: var(--ink); box-shadow: 0 24px 80px rgba(0,0,0,.4); }
.evidence-dialog::backdrop { background: rgba(4,25,21,.82); }
.evidence-controls { position: sticky; top: 0; z-index: 2; display: flex; justify-content: flex-end; gap: 10px; padding: 12px 24px; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 94%, transparent); }
.evidence-packet { padding: 0 42px 42px; }
.evidence-head { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 36px; align-items: end; padding: 44px 0 32px; border-bottom: 5px solid var(--midnight); }
.evidence-head:not(:has(img)) { grid-template-columns: 1fr; }
.evidence-head .eyebrow { color: var(--coral-text); }
.evidence-head h2 { max-width: 760px; margin: 4px 0 10px; overflow-wrap: anywhere; font-size: clamp(2.2rem, 5vw, 4.8rem); line-height: .95; }
.evidence-head p:last-child { margin: 0; color: var(--muted); font-weight: 750; }
.evidence-head img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--panel-2); }
.evidence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-left: 1px solid var(--line); }
.evidence-grid > section { min-width: 0; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.evidence-packet h3 { margin: 0 0 18px; color: var(--ink); font-size: 1.35rem; }
.evidence-rows { margin: 0; }
.evidence-rows > div { display: grid; grid-template-columns: minmax(120px, .8fr) minmax(0, 1.2fr); gap: 18px; padding: 9px 0; border-top: 1px solid var(--line); }
.evidence-rows dt { color: var(--muted); font-family: var(--font-condensed); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.evidence-rows dd { margin: 0; overflow-wrap: anywhere; font-size: .78rem; font-weight: 750; }
.evidence-note { margin: 18px 0 0; padding-top: 14px; border-top: 3px solid var(--mango); color: var(--muted); font-size: .72rem; }
.evidence-checklist { padding: 32px 30px; background: var(--mango); color: #102018; }
.evidence-checklist h3 { color: #102018; }
.evidence-checklist ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px 34px; margin: 0; padding-left: 22px; }
.evidence-checklist li { padding-left: 5px; font-size: .78rem; font-weight: 750; }
.evidence-sources { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; padding: 32px 30px; border: 1px solid var(--line); border-top: 0; }
.evidence-sources ul { margin: 0; padding-left: 20px; }
.evidence-sources li { margin: 7px 0; font-size: .78rem; }
.evidence-sources a { color: var(--pool-dark); font-weight: 850; }
.evidence-packet footer { padding: 28px 0 0; color: var(--muted); font-size: .7rem; }
.evidence-packet footer strong { color: var(--ink); font-family: var(--font-condensed); text-transform: uppercase; }
.evidence-packet footer p { max-width: 850px; margin: 5px 0 0; }
html.theme-dark .evidence-dialog { background: var(--paper); color: var(--ink); }
html.theme-dark .evidence-sources a { color: var(--mango); }

@media (max-width: 980px) {
  .workspace-head { grid-template-columns: 1fr; }
  .workspace-privacy { padding: 14px 0 0; border-top: 1px solid rgba(255,255,255,.24); border-left: 0; }
  .workspace-layout { grid-template-columns: 240px minmax(0, 1fr); }
  .workspace-toolbar { grid-template-columns: 1fr; }
  .workspace-assumptions { grid-template-columns: repeat(3, minmax(120px, 1fr)); }
  .workspace-alerts { grid-template-columns: 1fr; }
  .workspace-services { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .workspace-head { gap: 26px; padding: 34px 20px; }
  .workspace-head h2 { font-size: 3rem; }
  .workspace-search { padding: 18px; }
  .workspace-search > label { grid-template-columns: 1fr; gap: 7px; }
  .workspace-search-results { position: static; width: 100%; margin-top: 8px; }
  .workspace-layout { grid-template-columns: 1fr; }
  .workspace-rail { max-height: 360px; overflow-y: auto; padding: 24px 18px; border-right: 0; border-bottom: 1px solid var(--line); }
  .workspace-main { padding: 28px 0 0; }
  .workspace-toolbar { padding: 0 18px 22px; }
  .workspace-assumptions { grid-template-columns: 1fr; }
  .workspace-actions { padding: 0 18px; }
  .workspace-tablewrap { outline-offset: 3px; }
  .workspace-disclosure { padding: 0 18px; }
  .workspace-alerts { margin-top: 46px; padding: 30px 18px; }
  .workspace-alert-form { grid-template-columns: 1fr; }
  .workspace-alert-consent, .workspace-alert-status { grid-column: 1; }
  .workspace-notes { padding: 32px 18px 0; }
  .workspace-notes > header, .workspace-notes-grid { grid-template-columns: 1fr; }
  .workspace-note { padding: 22px 0; border-right: 0; }
  .workspace-note h3 { min-height: 0; }
  .workspace-services { margin-top: 46px; padding: 30px 18px; }
  .workspace-service-actions { grid-template-columns: 1fr; }
  .workspace-service { border-right: 0; }
  .workspace-empty { min-height: 360px; padding: 54px 20px; }
  .buyer-workspace-static { padding: 38px 22px; }
  .workspace-static-steps { grid-template-columns: 1fr; }
  .evidence-dialog { width: 100vw; max-width: none; max-height: 100vh; margin: 0; }
  .evidence-controls { padding: 10px 14px; }
  .evidence-packet { padding: 0 18px 28px; }
  .evidence-head { grid-template-columns: 1fr; gap: 20px; padding: 30px 0 24px; }
  .evidence-head h2 { font-size: 2.6rem; }
  .evidence-head img { max-width: 320px; }
  .evidence-grid, .evidence-checklist ol, .evidence-sources { grid-template-columns: 1fr; }
  .evidence-grid > section, .evidence-checklist, .evidence-sources { padding: 24px 0; }
  .evidence-grid { border-left: 0; }
  .evidence-grid > section { border-right: 0; }
}
}
table.data th { padding: 12px; background: var(--sand); color: var(--midnight); text-align: left; }
table.data td { min-width: 120px; padding: 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.rel-cards { max-width: 920px; margin: 60px 0 0; padding-top: 30px; border-top: 2px solid var(--midnight); }
.rel-cards h3 { margin-bottom: 18px; font-size: 1.6rem; }
.rel-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--line); }
.rel-card { display: grid; gap: 4px; padding: 20px; background: white; color: var(--midnight); text-decoration: none; }
.rel-card:hover { background: var(--sky); }
.rel-card-title { font-weight: 700; }
.rel-card-sub, .rel-also { color: var(--muted); font-size: .8rem; }
.rel-also { margin-top: 18px; }

/* Editorial story template */
.story-hero { position: relative; min-height: 620px; margin: -64px calc((100vw - min(var(--content), calc(100vw - 48px))) / -2) 0; padding: 100px max(24px, calc((100vw - var(--content)) / 2)) 64px; display: grid; grid-template-columns: 1.25fr .75fr; align-items: end; gap: 60px; background: linear-gradient(90deg, rgba(5,20,38,.96), rgba(5,20,38,.7) 52%, rgba(5,20,38,.16)), var(--story-image) center / cover; color: white; }
.story-kicker, .story-evidence-label { margin: 0 0 18px; color: var(--mango); font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.story-evidence-label { color: #725500; }
.story-hero h1 { max-width: 850px; color: white; font-size: clamp(3.2rem, 6.5vw, 6.7rem); }
.story-deck { max-width: 690px; margin: 24px 0 0; color: #edf3f6; font-size: 1.22rem; }
.story-thesis { max-width: 690px; color: #b9c8d4; }
.story-meta { display: flex; flex-wrap: wrap; gap: 12px 22px; margin-top: 24px; color: #b9c8d4; font-size: .72rem; text-transform: uppercase; }
.story-facts { display: grid; gap: 1px; background: rgba(255,255,255,.22); }
.story-fact { display: grid; padding: 18px; background: rgba(7,28,51,.72); backdrop-filter: blur(12px); }
.story-fact strong { color: var(--mango); font-family: var(--font-display); font-size: 1.7rem; }
.story-fact span { color: #d9e3e9; font-size: .76rem; }
.story-brief { display: grid; grid-template-columns: .6fr 1.4fr; gap: 60px; padding: 70px 0; border-bottom: 1px solid var(--line); }
.story-brief h2 { font-size: 2.4rem; }
.story-brief-grid { display: grid; gap: 0; }
.story-brief-item { display: grid; grid-template-columns: 150px 1fr; gap: 24px; padding: 18px 0; border-top: 1px solid var(--line); }
.story-brief-item span { color: #a43d37; font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.story-brief-item p { margin: 0; }
.story-action-note { grid-column: 2; color: var(--muted); font-size: .85rem; }
.story-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 80px; padding-top: 70px; }
.story-main, .story-section { min-width: 0; }
.story-summary { padding-bottom: 35px; border-bottom: 2px solid var(--midnight); }
.story-summary h2 { margin-bottom: 12px; font-size: 2rem; }
.story-summary p { font-size: 1.08rem; }
.story-section { position: relative; padding: 44px 0 44px 56px; border-bottom: 1px solid var(--line); }
.story-section-num { position: absolute; top: 49px; left: 0; color: #a43d37; font-size: .72rem; font-weight: 700; }
.story-section h2 { margin-bottom: 18px; font-size: clamp(1.65rem, 2.7vw, 2.45rem); }
.story-section-body { color: #334255; }
.story-evidence { position: sticky; top: 100px; align-self: start; max-height: calc(100vh - 130px); overflow: auto; padding: 24px 0; border-top: 2px solid var(--midnight); }
.story-evidence > strong { display: block; font-family: var(--font-display); font-size: 1.6rem; }
.story-evidence > p { color: var(--muted); font-size: .8rem; }
.story-source-list { margin: 20px 0 0; padding: 0; list-style: none; counter-reset: sources; }
.story-source-list li { display: grid; gap: 3px; padding: 12px 0; border-top: 1px solid var(--line); counter-increment: sources; }
.story-source-list li::before { color: #a43d37; content: counter(sources, decimal-leading-zero); font-size: .68rem; }
.story-source-list strong { font-size: .78rem; }
.story-source-list span, .story-source-list em, .story-source-link { color: var(--muted); font-size: .7rem; }
.story-source-link { display: inline-block; min-height: 24px; padding: 4px 0; line-height: 16px; }
/* Every remaining sub-24px target, measured on an iPhone 13 rather than guessed
   at: citation disclosures (20px), image credits (19px), the related-reading
   line (15px), the editorial links on the home page (23px) and the whole footer
   nav (22px). Each gets height from padding, so nothing resizes visually. */
.story-evidence summary,
.geo-listing-more > summary,
details.block > summary,
details.story-cites > summary,
details.image-credits > summary,
details.cost > summary,
details.listing-personal > summary,
details.records > summary { min-height: 24px; padding: 4px 0; }

/* One rule instead of a list of selectors that kept growing every time a new
   page was measured. Any link sitting in running text, a list, a definition or
   a sources row gets a 24px hit box (WCAG 2.5.8 AA) from padding alone, so
   nothing changes size visually. Buttons, cards and nav items are excluded —
   they set their own generous targets already. */
main p a,
main li a,
main dd a,
main summary,
main [class*="sources"] a,
main [class*="sources"] span,
.dining-opening-grid article a,
.healthcare-directory .alert a,
.rel-also a,
.rel-up a,
.editorial-link,
.footer-nav a,
.advertise-category,
.geo-listing-card h3 a,
.geo-breadcrumb a { display: inline-block; min-height: 24px; padding: 4px 0; }
.story-cites { margin-top: 18px; }
.story-cites summary { color: var(--pool-dark); font-size: .78rem; font-weight: 700; cursor: pointer; }
.rumor-ledger { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 28px; }
.rumor-card { min-width: 0; padding: 20px; border: 1px solid var(--line); border-top: 4px solid var(--mango); background: var(--paper); }
.rumor-claim { margin: 0 0 12px; color: var(--midnight); font-family: var(--font-display); font-size: 1.14rem; font-weight: 700; line-height: 1.15; }
.rumor-verdict { display: inline-block; margin: 0 0 12px; padding: 5px 8px; border: 1px solid var(--coral); color: #8a302b; font-family: var(--font-condensed); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.rumor-record { margin: 0; color: var(--ink); font-size: .86rem; line-height: 1.55; }
.rumor-toc { margin: 34px 0 8px; padding: 26px; border: 1px solid var(--line); border-left: 5px solid var(--pool); background: var(--mist); }
.rumor-toc h2 { margin-bottom: 18px; font-size: 1.45rem; }
.rumor-toc > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px 22px; }
.rumor-toc a { display: grid; grid-template-columns: 28px 1fr; gap: 8px; padding: 10px 0; border-bottom: 1px solid var(--line); color: var(--midnight); font-size: .78rem; font-weight: 700; line-height: 1.3; }
.rumor-toc a span { color: #a43d37; font-family: var(--font-condensed); }
.rumor-card, .story-section { scroll-margin-top: 110px; }

/* Browse index */
.browse-group { display: grid; grid-template-columns: 230px 1fr; gap: 50px; padding: 46px 0; border-top: 1px solid var(--line); }
.browse-group h2 { font-size: 2rem; }
.browse-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; margin: 0; padding: 0; list-style: none; }
.browse-list li { display: grid; padding: 15px 0; border-bottom: 1px solid var(--line); }
.browse-list a { color: var(--midnight); font-weight: 700; text-decoration: none; }
.browse-list a:hover { color: var(--coral); }
.browse-desc { color: var(--muted); font-size: .78rem; }
.browse-child { padding-left: 18px !important; }

/* Forms and operational tools */
.form-grid, .directory-controls, .dining-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.form-row { display: grid; gap: 6px; }
label { color: var(--midnight); font-size: .82rem; font-weight: 700; }
input, select, textarea { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid #c7d0d1; border-radius: 4px; background: white; color: var(--ink); }
textarea { resize: vertical; }
.consumer-report-panel, .marketplace-submit { display: grid; grid-template-columns: .7fr 1.3fr; gap: 70px; margin: 70px 0; padding: 50px 0; border-top: 2px solid var(--midnight); border-bottom: 1px solid var(--line); }
.consumer-report-panel h2 { font-size: 2.4rem; }
.consumer-consent { display: flex; gap: 10px; align-items: flex-start; }
.consumer-consent input { width: auto; min-height: auto; margin-top: 5px; }
.hp-field { position: absolute; left: -9999px; }
.form-status { color: var(--muted); font-size: .8rem; }

/* Directories, dining, listings and map-based tools */
.directory-intro, .dining-library-hero { margin: 40px 0; padding: 44px; background: var(--midnight); color: white; }
.directory-intro h2, .dining-library-hero h2 { color: white; font-size: clamp(2rem, 4vw, 4rem); }
.directory-intro p, .dining-library-hero p { color: #c7d4dc; }
.directory-controls, .dining-filters { margin: 24px 0; padding: 22px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.directory-grid, .dining-card-grid, .area-compare-grid, .village-grid, .listing-grid, .fsbo-grid, .cart-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); }
.directory-card, .dining-card, .area-compare-card, .village-card, .listing-card, .fsbo-card, .cart-card { display: flex; flex-direction: column; min-width: 0; padding: 24px; background: white; }
.directory-card h2, .directory-card h3, .dining-card h3 { margin: 12px 0 8px; font-size: 1.35rem; }
.directory-card p, .dining-card p { color: var(--muted); font-size: .85rem; }
.directory-card-actions, .directory-footer, .directory-results-bar, .directory-modes, .dining-area-rail { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.directory-intro-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.provider-facts { display: grid; gap: 10px; margin: 12px 0 22px; }
.provider-card .directory-card-top { display: grid; justify-content: start; gap: 4px; }
.provider-card .directory-style { color: var(--muted); font-size: .76rem; }

/* Resident marketplace: an exchange surface, not another article stack. */
.marketplace-directory { margin-top: 64px; padding-top: 42px; border-top: 2px solid var(--midnight); }
.marketplace-updated { align-self: end; margin: 0; text-align: right; }
.marketplace-controls { grid-template-columns: minmax(240px, 1fr) auto; align-items: end; }
.marketplace-controls label { display: grid; gap: 8px; font-weight: 750; }
.marketplace-categories { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 24px; }
.marketplace-category.is-active { color: var(--surface); background: var(--midnight); border-color: var(--midnight); }
.marketplace-card { position: relative; overflow: visible; }
.marketplace-description { min-height: 4.5em; }
.marketplace-contact { margin-top: 18px; }
.marketplace-contact > summary { display: inline-flex; cursor: pointer; list-style: none; }
.marketplace-contact > summary::-webkit-details-marker { display: none; }
.marketplace-contact[open] > summary { margin-bottom: 18px; }
.marketplace-contact-form { display: grid; gap: 14px; padding: 20px; border: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 94%, var(--sun)); }
.marketplace-contact-form label { display: grid; gap: 6px; color: var(--text); font-size: .84rem; font-weight: 760; }
.marketplace-contact-form input, .marketplace-contact-form textarea { width: 100%; }
.marketplace-contact-form .cta-btn { justify-self: start; }
.marketplace-privacy { margin-top: 15px; }
.marketplace-empty { grid-column: 1 / -1; padding: 34px; border-left: 4px solid var(--aqua); }

@media (max-width: 680px) {
  .marketplace-updated { text-align: left; }
  .marketplace-controls { grid-template-columns: 1fr; }
  .marketplace-controls .marketplace-clear { justify-self: start; }
  .marketplace-description { min-height: 0; }
  .marketplace-contact-form { padding: 16px; }
}

/* Source-backed scam advisories, visually distinct from private allegations. */
.scam-alert-center { margin-top: 58px; padding-top: 42px; border-top: 2px solid var(--midnight); }
.scam-alert-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 36px; align-items: end; padding: 40px 44px; border-left: 8px solid var(--coral); background: var(--midnight); }
.scam-alert-head .eyebrow, .scam-alert-head h2 { color: #fffdf7 !important; }
.scam-alert-head h2 { margin: 7px 0 8px; font-size: clamp(2.2rem, 4.7vw, 4.8rem); }
.scam-alert-head p { max-width: 56rem; color: rgba(255, 253, 247, .8) !important; }
.scam-alert-status { display: grid; justify-items: end; min-width: 150px; color: #fffdf7; }
.scam-alert-status .scam-alert-total { color: var(--sun); font: 800 clamp(2.8rem, 6vw, 5.8rem)/.9 var(--font-display); }
.scam-alert-status .muted { color: rgba(255, 253, 247, .68); }
.scam-alert-center .directory-toolbar { display: grid; grid-template-columns: minmax(240px, .8fr) 1.8fr auto; align-items: end; gap: 20px; margin: 30px 0 24px; padding-block: 20px; border-block: 1px solid var(--line); }
.scam-alert-center .directory-toolbar .form-row { margin: 0; }
.scam-alert-feed { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.scam-alert-card { display: flex; flex-direction: column; min-width: 0; padding: 26px; border: 1px solid var(--line); border-top: 5px solid var(--coral); background: var(--panel); }
.scam-alert-card:nth-child(3n + 2) { border-top-color: var(--sun); }
.scam-alert-card:nth-child(3n + 3) { border-top-color: var(--aqua); }
.scam-alert-card-top { display: flex; justify-content: space-between; gap: 14px; align-items: start; }
.scam-alert-labels { display: flex; flex-wrap: wrap; gap: 7px; }
.scam-alert-labels .directory-category { padding: 5px 8px; color: var(--midnight); background: var(--sun); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.scam-alert-labels .directory-style, .alert-checked { color: var(--muted); font-size: .74rem; }
.scam-alert-card > h3 { margin: 18px 0 10px; font-size: 1.75rem; }
.alert-summary { flex: 1; }
.scam-alert-details { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.scam-alert-details > summary { cursor: pointer; }
.scam-alert-detail-body { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 20px; }
.alert-detail-section h4 { margin: 0 0 8px; font-size: 1rem; }
.alert-detail-list { margin: 0; padding-left: 19px; }
.alert-detail-list li + li { margin-top: 7px; }
.alert-source { grid-column: 1 / -1; display: grid; gap: 5px; padding-top: 16px; border-top: 1px solid var(--line); }
.alert-source .eyebrow { color: var(--muted); }
.scam-alert-empty { grid-column: 1 / -1; }

@media (max-width: 900px) {
  .scam-alert-center .directory-toolbar { grid-template-columns: 1fr; }
  .scam-alert-feed { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .scam-alert-center { margin-top: 36px; padding-top: 28px; }
  .scam-alert-head { grid-template-columns: 1fr; padding: 28px 22px; }
  .scam-alert-status { justify-items: start; }
  .scam-alert-card { padding: 22px 18px; }
  .scam-alert-card-top { display: grid; }
  .scam-alert-detail-body { grid-template-columns: 1fr; }
}

/* Community board: calm conversation UI with strong moderation states. */
.community-board { margin-top: 58px; padding-top: 42px; border-top: 2px solid var(--midnight); }
.community-board-head { padding: 38px 44px; border-left: 7px solid var(--aqua); background: var(--midnight); color: var(--surface); }
.community-board-head .eyebrow, .community-board-head h2 { color: #fffdf7 !important; }
.community-board-head h2 { font-size: clamp(2.1rem, 4.2vw, 4.4rem); }
.community-board-head p { max-width: 54rem; color: rgba(255, 253, 247, .82) !important; }
.community-compose { margin: 28px 0; padding: 30px; border: 1px solid var(--line); background: color-mix(in srgb, var(--panel) 93%, var(--sun)); }
.community-compose h3 { margin-top: 0; }
.community-board .directory-toolbar { display: grid; grid-template-columns: minmax(240px, 1fr) 1.6fr auto; align-items: end; gap: 20px; margin: 30px 0 20px; padding: 20px 0; border-block: 1px solid var(--line); }
.community-board .directory-toolbar .form-row { margin: 0; }
.directory-filter-list { display: flex; flex-wrap: wrap; gap: 7px; }
.filter-chip { min-height: 40px; padding: 8px 13px; border: 1px solid var(--line-strong); background: var(--surface); color: var(--text); font: inherit; font-size: .8rem; font-weight: 800; cursor: pointer; }
.filter-chip.active { color: #fffdf7 !important; background: var(--midnight) !important; border-color: var(--midnight) !important; }
html.theme-dark .filter-chip.active { color: #102018 !important; background: var(--mango) !important; border-color: var(--mango) !important; }
.community-feed { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.community-feed > .block { grid-column: 1 / -1; }
.community-post { display: flex; flex-direction: column; min-height: 280px; padding: 26px; border-top: 4px solid var(--coral); }
.community-post:nth-child(3n + 2) { border-top-color: var(--aqua); }
.community-post:nth-child(3n + 3) { border-top-color: var(--sun); }
.community-post > h3 { font-size: 1.65rem; }
.community-post-meta { flex-wrap: wrap; letter-spacing: 0; }
.community-post-meta span:first-child { color: var(--text); }
.community-post .text-link { align-self: flex-start; margin-top: auto; padding-top: 18px; }
.community-replies { margin: 20px 0 0; padding: 16px 0; border-top: 1px solid var(--line); }
.community-reply-item + .community-reply-item { margin-top: 12px; }
.community-reply-item p { margin: 0; }
.community-reply-item time { font-size: .75rem; }
.community-reply { margin-top: 14px; padding-top: 16px; border-top: 1px solid var(--line); }

@media (max-width: 860px) {
  .community-board .directory-toolbar { grid-template-columns: 1fr; align-items: stretch; }
  .community-feed { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .community-board { margin-top: 36px; padding-top: 28px; }
  .community-board-head { padding: 26px 22px; }
  .community-board-head h2 { font-size: 2.5rem; }
  .community-compose { padding: 22px 18px; }
  .community-post { min-height: 0; padding: 21px 18px; }
}
.provider-facts > div { display: grid; grid-template-columns: 76px 1fr; gap: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.provider-card.is-sponsored { border-top: 5px solid var(--mango); }
.provider-disclosure { margin: 16px 0 0 !important; padding-top: 12px; border-top: 1px solid var(--line); font-size: .72rem !important; font-weight: 700; }
.directory-save, .directory-mode, .directory-saved-toggle, .dining-area-btn, .chip { min-height: 36px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 999px; background: white; color: var(--ink); font-weight: 700; cursor: pointer; }
.directory-save:hover, .directory-mode.is-active, .dining-area-btn.is-active, .chip:hover { border-color: var(--pool); background: var(--sky); color: var(--pool-dark); }
.dining-area-summary { padding: 28px 0 12px; border-bottom: 2px solid var(--midnight); }
.dining-area-summary h3 { font-size: 2rem; }
.dining-area-link { display: inline-flex; align-items: center; gap: 8px; margin: 4px 0 16px; color: var(--pool-dark); font-weight: 800; text-decoration-color: var(--coral); text-decoration-thickness: 2px; }
.dining-area-link:hover { color: var(--coral); }
.directory-facts { padding: 28px 0; border-top: 2px solid var(--midnight); border-bottom: 1px solid var(--line); }
.directory-facts dl, .dining-card dl { display: grid; gap: 8px; }
.directory-facts dl > div, .dining-card dl > div { display: grid; grid-template-columns: 110px 1fr; gap: 12px; }
.dining-menu-guide, .dining-nearby { padding: 28px 0; border-bottom: 1px solid var(--line); }
.dining-menu-guide h2, .dining-nearby h2 { margin-top: 0; }
.dining-menu-guide ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 34px; margin: 18px 0; padding-left: 20px; }
.dining-menu-guide li::marker { color: var(--coral); }
.dining-nearby > p { color: var(--muted); }
.dining-nearby ul { margin: 18px 0 0; padding: 0; border-top: 2px solid var(--midnight); list-style: none; }
.dining-nearby li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.dining-nearby li a { font-weight: 800; }
.dining-nearby li span { color: var(--muted); font-size: .78rem; text-align: right; }
.dining-profile-link { display: inline-flex; align-items: center; gap: 8px; width: max-content; margin-top: auto; padding-top: 20px; color: var(--pool-dark); font-weight: 800; text-decoration-thickness: 2px; text-decoration-color: var(--coral); }
.dining-profile-link:hover { color: var(--coral); }
dt { color: var(--muted); font-size: .72rem; font-weight: 700; text-transform: uppercase; }
dd { margin: 0; }
@media (max-width: 620px) {
  .dining-menu-guide ul { grid-template-columns: 1fr; }
  .dining-nearby li { grid-template-columns: 1fr; gap: 3px; }
  .dining-nearby li span { text-align: left; }
}
.directory-area-art img { display: block; width: 100%; max-height: 430px; object-fit: cover; }
.directory-area-art figcaption { color: var(--muted); font-size: .75rem; }
.map-shell, .mapwrap, .geo-map, .sinkhole-map { min-height: 480px; overflow: hidden; background: #e4f1ee; border: 1px solid var(--line); }
.map-legend, .geo-legend { padding: 14px; background: white; font-size: .78rem; }
.listing-toolbar, .filters { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0; padding: 20px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.stat, .snapshot .stat { padding: 18px 0; border-top: 2px solid var(--pool); }

/* Sponsor and native placements */
.native-partner-slot { display: grid; grid-template-columns: 1fr 260px; gap: 50px; margin: 80px 0; padding: 44px; background: var(--mango); }
.native-partner-slot:not(.is-filled) { color: #102018; }
.native-partner-copy h2 { font-size: clamp(2rem, 4vw, 3.7rem); }
.native-partner-slot:not(.is-filled) .native-partner-copy h2 { color: #102018; }
.native-partner-eyebrow { color: #872c2a; font-size: .72rem; font-weight: 700; text-transform: uppercase; }
.native-partner-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.native-partner-chips span { padding: 5px 9px; border: 1px solid rgba(7,28,51,.25); border-radius: 999px; font-size: .72rem; }
.native-partner-primary { background: var(--midnight); border-color: var(--midnight); }
.native-partner-actions [hidden] { display: none; }
.native-partner-secondary { background: white; border-color: white; color: var(--midnight); }
.native-partner-proof { align-self: end; padding: 24px; border: 1px solid rgba(7,28,51,.24); }
.native-partner-proof span { display: block; font-size: .78rem; }
.native-partner-slot.is-filled { position: relative; overflow: hidden; background: var(--sky); border-top: 5px solid var(--pool); }
.native-partner-slot.is-filled::after { position: absolute; right: 0; bottom: 0; width: 34%; height: 6px; background: linear-gradient(90deg, var(--mango), var(--coral)); content: ""; }
.native-partner-slot.is-filled .native-partner-eyebrow { color: var(--coral); }
.native-partner-slot.is-filled .native-partner-proof { background: rgba(255,255,255,.5); }
html.theme-dark .native-partner-slot.is-filled { background: #102f3d; }
html.theme-dark .native-partner-slot.is-filled .native-partner-proof { background: rgba(3,15,28,.34); }
.sponsor-intro-form { margin-top: 24px; padding-top: 22px; border-top: 1px solid rgba(7,28,51,.22); }
.sponsor-intro-form[hidden] { display: none; }
.sponsor-intro-form button[hidden] { display: none; }
.sponsor-intro-form h3 { margin: 0; font-size: 1.4rem; }
.sponsor-intro-note { margin: 5px 0 16px; font-size: .82rem; }
.sponsor-intro-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.sponsor-intro-field { display: grid; gap: 5px; color: var(--muted); font-size: .74rem; font-weight: 700; }
.sponsor-intro-field.is-wide { grid-column: 1 / -1; }
.sponsor-intro-field input, .sponsor-intro-field textarea { width: 100%; min-width: 0; padding: 11px 12px; border: 1px solid rgba(7,28,51,.28); border-radius: 4px; background: rgba(255,255,255,.86); color: #071c33; font: inherit; }
.sponsor-intro-field textarea { min-height: 96px; resize: vertical; }
.sponsor-intro-consent { display: flex; gap: 9px; align-items: flex-start; margin: 14px 0; font-size: .76rem; line-height: 1.4; }
.sponsor-intro-consent input { width: auto; min-height: auto; margin-top: 3px; }
.sponsor-intro-form .form-status { margin: 10px 0 0; }
.sponsor-intro-form .form-error { color: #8e2323; }
.sponsor-intro-form .form-success { color: #075c45; font-weight: 700; }
html.theme-dark .sponsor-intro-form { border-color: rgba(255,255,255,.22); }
html.theme-dark .sponsor-intro-field { color: #c3d5dc; }

/* Sponsor kit and rate card */
.kit-page { display: grid; gap: 52px; }
.kit-hero { position: relative; display: grid; align-items: end; min-height: 540px; margin: -64px calc((var(--content) - min(var(--content), calc(100vw - 48px))) / -2) 0; padding: 72px max(24px, calc((100vw - var(--content)) / 2)); overflow: hidden; background: linear-gradient(90deg, rgba(4,17,32,.94), rgba(4,17,32,.66) 50%, rgba(4,17,32,.16)), var(--kit-image) center / cover; color: white; }
.kit-hero::after { position: absolute; right: 0; bottom: 0; left: 0; height: 6px; background: linear-gradient(90deg, var(--pool), var(--mango), var(--coral)); content: ""; }
.kit-hero-copy { position: relative; z-index: 1; width: min(720px, 100%); }
.advertise-kicker { margin: 0 0 12px; color: var(--coral-text); font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.kit-hero .advertise-kicker { color: var(--mango); }
.kit-hero-copy h1 { color: white; font-size: clamp(3rem, 7vw, 6.4rem); line-height: .92; }
.kit-hero-copy > p:not(.advertise-kicker) { max-width: 650px; margin: 22px 0 0; color: #eef5f7; font-size: 1.2rem; }
.advertise-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.advertise-primary, .advertise-secondary, .advertise-package-action { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 10px 17px; border: 1px solid var(--coral); border-radius: 4px; background: var(--coral); color: #102018; font-weight: 700; line-height: 1.1; text-align: center; text-decoration: none; cursor: pointer; }
/* Was background: rgba(7,28,51,.38) — over the cream page that composites to
   about #a1a8ae, putting white text at 2.41:1. Two sponsor CTAs ("Claim a
   category lane", "Send me the kit") were the least readable text on the site.
   Solid midnight keeps the dark-button look at 15.19:1. */
.advertise-secondary { border-color: rgba(255,255,255,.74); background: var(--midnight); color: white; }
.advertise-primary:hover, .advertise-secondary:hover, .advertise-package-action:hover { transform: translateY(-2px); }
.kit-proof-line { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 2px solid var(--midnight); border-bottom: 1px solid var(--line); }
.kit-proof-line > div { padding: 25px 25px 25px 0; }
.kit-proof-line strong, .kit-proof-line span { display: block; }
.kit-proof-line strong { color: var(--midnight); font-family: var(--font-display); font-size: 1.35rem; }
.kit-proof-line span { margin-top: 6px; color: var(--muted); font-size: .88rem; }
.kit-section { display: grid; gap: 22px; }
.kit-section h2 { font-size: clamp(2.2rem, 5vw, 4.5rem); }
.kit-section p { color: var(--muted); }
.kit-two-col, .kit-form-panel, .kit-process { grid-template-columns: .7fr 1.3fr; gap: 50px; align-items: start; }
.kit-category-rail { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 2px solid var(--midnight); }
.kit-category { display: grid; gap: 14px; min-height: 126px; padding: 18px 0; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--ink); text-align: left; cursor: pointer; }
.kit-category:nth-child(odd) { padding-right: 18px; }
.kit-category:nth-child(even) { padding-left: 18px; border-left: 1px solid var(--line); }
.kit-category strong { color: var(--midnight); font-family: var(--font-display); font-size: 1.25rem; }
.kit-category span { color: var(--muted); font-size: .88rem; }
.kit-section-head { display: grid; grid-template-columns: .75fr 1.25fr; gap: 40px; align-items: end; }
.kit-section-head .advertise-kicker { grid-column: 1 / -1; margin-bottom: -28px; }
.rate-table-wrap { overflow-x: auto; border-top: 2px solid var(--midnight); border-bottom: 1px solid var(--line); }
.rate-table { width: 100%; min-width: 760px; border-collapse: collapse; }
.rate-table th, .rate-table td { padding: 18px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.rate-table th { color: var(--muted); font-size: .72rem; text-transform: uppercase; }
.rate-table td:first-child strong, .rate-table td:first-child span { display: block; }
.rate-table td:first-child strong { color: var(--midnight); font-family: var(--font-display); font-size: 1.25rem; }
.rate-table td:first-child span { margin-top: 4px; color: var(--muted); font-size: .83rem; }
.rate-table td:nth-child(2) { color: var(--coral-text); font-family: var(--font-display); font-size: 1.7rem; font-weight: 700; white-space: nowrap; }
.rate-table button, .kit-package button { min-height: 40px; padding: 8px 12px; border: 1px solid var(--midnight); border-radius: 4px; background: var(--midnight); color: white; font-weight: 700; cursor: pointer; }
.kit-packages { grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 2px solid var(--midnight); }
.kit-package { display: grid; gap: 16px; align-content: start; padding: 24px 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--panel); }
.kit-package:last-child { border-right: 0; }
.kit-package span { color: var(--coral-text); font-size: .7rem; font-weight: 700; text-transform: uppercase; }
.kit-package strong { display: block; margin-top: 6px; color: var(--midnight); font-family: var(--font-display); font-size: 1.45rem; line-height: 1.05; }
.kit-package p { margin-top: 10px; font-size: .86rem; }
.kit-package b { color: var(--coral); font-family: var(--font-display); font-size: 2rem; }
.kit-package ul { display: grid; gap: 8px; margin: 0; padding-left: 18px; font-size: .84rem; }
.kit-package button { align-self: end; width: 100%; }
.kit-process { padding: 40px; background: var(--mango); }
/* --muted on mango is 3.29:1; this panel needs its own darker label ink. */
.kit-process .advertise-kicker { color: #3d4a43; }
.kit-process ol { display: grid; gap: 18px; margin: 0; padding: 0; list-style: none; }
.kit-process li { display: grid; grid-template-columns: 180px 1fr; gap: 18px; padding-bottom: 18px; border-bottom: 1px solid rgba(7,28,51,.24); }
.kit-process li:last-child { border: 0; }
.kit-process strong { color: var(--midnight); }
.kit-process span { color: #334052; }
.kit-form-panel { padding: 44px; background: var(--midnight); color: white; }
.kit-form-panel h2, .kit-form-panel p, .kit-form-panel .advertise-kicker { color: white; }
.sponsor-lead-form { display: grid; gap: 14px; }
.kit-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.sponsor-lead-form label { display: grid; gap: 5px; color: #d9e6eb; font-size: .78rem; font-weight: 700; }
.sponsor-lead-form input, .sponsor-lead-form select, .sponsor-lead-form textarea { width: 100%; border: 1px solid #526a7d; border-radius: 3px; background: white; color: #13243a; }
.sponsor-lead-form input, .sponsor-lead-form select { min-height: 42px; padding: 8px; }
.sponsor-lead-form textarea { padding: 10px; resize: vertical; }
.kit-form-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.kit-form-note, .kit-form-status { margin: 0; color: #b9c8d4 !important; font-size: .76rem; }
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Dark theme */
html.theme-dark { color-scheme: dark; --paper: #111512; --ink: #f4f1e8; --muted: #b7bcae; --line: #3a4438; --panel: #1b211c; --panel-2: #222a23; --sand: #20271f; --midnight: #101b18; --midnight-2: #182722; --pool: #57d6c1; --pool-dark: #79e1ce; --mango: #ffd166; --coral: #ff7465; --sky: #26352a; }
html.theme-dark body { background: var(--paper); color: var(--ink); }
html.theme-dark .site-header, html.theme-dark .site-footer { background: #0b110e; }
html.theme-dark .site-command { background: rgba(17,21,18,.97); }
html.theme-dark .brand-name, html.theme-dark .header-library-link, html.theme-dark .navgroup-btn, html.theme-dark .navgroup-plus { color: white; }
html.theme-dark .navpanel, html.theme-dark .gsearch-results, html.theme-dark .gsearch-item, html.theme-dark input, html.theme-dark select, html.theme-dark textarea, html.theme-dark .block, html.theme-dark .rel-card, html.theme-dark .directory-card, html.theme-dark .dining-card, html.theme-dark .area-compare-card, html.theme-dark .village-card, html.theme-dark .listing-card, html.theme-dark .fsbo-card, html.theme-dark .cart-card, html.theme-dark .concierge-option, html.theme-dark .concierge-priority, html.theme-dark .concierge-result, html.theme-dark .map-legend, html.theme-dark .geo-legend { background: var(--panel); color: var(--ink); }
html.theme-dark h1, html.theme-dark h2, html.theme-dark h3, html.theme-dark .page-head h1, html.theme-dark .navpanel a, html.theme-dark .editorial-link, html.theme-dark label, html.theme-dark .browse-list a { color: #f3f7f8; }
html.theme-dark .hero h1, html.theme-dark .experience-feature h2, html.theme-dark .library-feature h2, html.theme-dark .library-feature h3, html.theme-dark .place-panel h2, html.theme-dark .story-hero h1 { color: white; }
html.theme-dark .home-manifesto, html.theme-dark .decision-journeys, html.theme-dark .block, html.theme-dark .story-section, html.theme-dark .browse-group { border-color: var(--line); }
html.theme-dark .block p, html.theme-dark .story-section-body, html.theme-dark table.data th { color: var(--ink); }
html.theme-dark .story-fact { background: rgba(11,17,14,.84); }
html.theme-dark .rumor-card { border-color: #4b5b50; border-top-color: var(--mango); background: #1c251f; }
html.theme-dark .rumor-claim, html.theme-dark .rumor-record { color: #f3f7f8; }
html.theme-dark .rumor-verdict { border-color: var(--coral); color: #ffb8ad; }
html.theme-dark .rumor-toc { border-color: #4b5b50; border-left-color: var(--pool); background: #18211b; }
html.theme-dark .rumor-toc a { border-color: #3c4b40; color: #f3f7f8; }
html.theme-dark .rumor-toc a span { color: var(--coral); }
html.theme-dark .navpanel a, html.theme-dark .gsearch-item { border-color: var(--line); }
html.theme-dark .navgroup-btn:hover,
html.theme-dark .navgroup-plus:hover,
html.theme-dark .navgroup.is-open > .navgroup-btn,
html.theme-dark .navgroup.is-open > .navgroup-plus,
html.theme-dark .navgroup.is-current > .navgroup-btn { background: var(--mango); color: #172019; }
html.theme-dark .navpanel a:hover, html.theme-dark .gsearch-item:hover, html.theme-dark .journey-row:hover, html.theme-dark .rel-card:hover { background: #2a332b; color: var(--ink); }
html.theme-dark .navpanel a[aria-current="page"] { background: var(--mango); color: #172019; }
html.theme-dark .concierge-option, html.theme-dark .concierge-priority,
html.theme-dark .directory-save, html.theme-dark .directory-mode, html.theme-dark .directory-saved-toggle,
html.theme-dark .dining-area-btn, html.theme-dark .chip { border-color: var(--line); background: var(--panel); color: var(--ink); }
html.theme-dark .concierge-option:hover, html.theme-dark .concierge-priority:hover,
html.theme-dark .directory-save:hover, html.theme-dark .directory-saved-toggle:hover,
html.theme-dark .directory-mode:hover, html.theme-dark .dining-area-btn:hover, html.theme-dark .chip:hover { border-color: var(--mango); background: #2a332b; color: var(--ink); }
html.theme-dark .concierge-option.is-selected, html.theme-dark .concierge-priority.is-selected,
html.theme-dark .directory-mode.is-active, html.theme-dark .directory-saved-toggle.is-active,
html.theme-dark .directory-save.is-saved, html.theme-dark .dining-area-btn.is-active { border-color: var(--mango); background: var(--mango); color: #172019; }
html.theme-dark .story-hero, html.theme-dark .experience-feature, html.theme-dark .library-feature { background-color: #0b110e; }
html.theme-dark .native-partner-slot.is-filled { background: #1f2d24; }
html.theme-dark .sponsor-intro-form .form-error { color: #ff9b91; }
html.theme-dark .sponsor-intro-form .form-success { color: #7be4b8; }
html.theme-dark .kit-form-panel { background: #0b110e; }
html.theme-dark .kit-form-panel .sponsor-lead-form input,
html.theme-dark .kit-form-panel .sponsor-lead-form select,
html.theme-dark .kit-form-panel .sponsor-lead-form textarea { border-color: #71806f; background: var(--panel-2); color: var(--ink); }
html.theme-dark .kit-package { background: var(--panel); }
html.theme-dark .kit-proof-line strong, html.theme-dark .kit-category strong, html.theme-dark .rate-table td:first-child strong, html.theme-dark .kit-package strong { color: var(--ink); }
html.theme-dark .rate-table button, html.theme-dark .kit-package button { border-color: var(--coral); background: var(--coral); }

/* Motion */
.motion-ready .reveal-motion { opacity: 0; transform: translateY(28px); transition: opacity .72s ease var(--reveal-delay, 0ms), transform .72s cubic-bezier(.2,.72,.2,1) var(--reveal-delay, 0ms); }
.motion-ready .reveal-motion.is-visible { opacity: 1; transform: none; }
.rhythm-stop img, .place-panel { transition: transform .45s cubic-bezier(.2,.72,.2,1), filter .45s ease; }
.rhythm-stop:hover img { transform: translateY(-7px) scale(1.018); filter: saturate(1.08); }
.place-panel:hover { z-index: 1; transform: scale(1.012); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .motion-ready .reveal-motion { opacity: 1 !important; transform: none !important; }
}

@media (max-width: 980px) {
  .site-command { grid-template-columns: 1fr; gap: 0; padding-bottom: 10px; }
  .navbar { overflow-x: auto; }
  .navgroup-btn, .navgroup-plus { min-height: 48px; white-space: nowrap; }
  .search-host { width: 100%; }
  .hero { min-height: 760px; }
  .hero-tape { grid-template-columns: repeat(3, 1fr); }
  .home-manifesto, .experience-feature, .concierge-shell, .library-feature-head, .partner-lane, .consumer-report-panel, .native-partner-slot { grid-template-columns: 1fr; }
  .experience-image { min-height: 480px; }
  .place-triptych { grid-template-columns: 1fr; }
  .place-panel { min-height: 440px; }
  .story-hero { grid-template-columns: 1fr; }
  .story-facts { grid-template-columns: repeat(3, 1fr); }
  .story-layout { grid-template-columns: 1fr; }
  .story-evidence { position: static; max-height: none; }
  .kit-two-col, .kit-form-panel, .kit-process, .kit-section-head { grid-template-columns: 1fr; }
  .kit-section-head .advertise-kicker { margin-bottom: 0; }
  .kit-packages { grid-template-columns: repeat(2, 1fr); }
  .directory-grid, .dining-card-grid, .area-compare-grid, .village-grid, .listing-grid, .fsbo-grid, .cart-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 720px) {
  html { font-size: 16px; }
  .site-header-inner { align-items: flex-start; width: calc(100% - 32px); padding: 16px 0; }
  .brand-kicker { font-size: .58rem; }
  .brand-name { max-width: 250px; font-size: 1.25rem; }
  /* .textsize was hidden here until 2026-08-18. The A / A+ / A++ control is the
     one accommodation this site's readers most need, and it disappeared exactly
     on the screen where text is smallest — visible on an iPad, gone on every
     phone. It was hidden for room, so the fix is room: the header wraps and the
     controls take their own line, at full 44px targets. The library link and
     the "Light"/"Dark" word still go; both are duplicated elsewhere. */
  .header-library-link, .theme-label { display: none; }
  .site-header-inner { flex-wrap: wrap; row-gap: 10px; }
  .brand { flex: 1 1 100%; }
  .textsize-host { flex: 1 1 100%; justify-content: flex-start; gap: 8px; }
  .textsize { padding-right: 10px; }
  .textsize button, .theme-switch button { min-width: 44px; min-height: 44px; }
  .site-command { position: relative; padding: 0 16px 12px; }
  nav#tabs { width: calc(100vw - 32px); overflow-x: auto; }
  .navgroup-btn { padding: 0 5px 0 10px; font-size: .68rem; }
  .navgroup-plus { min-width: 26px; padding: 0 7px 0 2px; }
  .navpanel { position: fixed; top: 132px; right: 16px !important; left: 16px !important; grid-template-columns: 1fr; width: auto; max-height: calc(100vh - 150px); }
  body:not(.home-route) main { width: calc(100% - 36px); padding: 42px 0 70px; }
  .hero { min-height: 720px; padding: 52px 20px 36px; background-position: 64% center; }
  .hero-inner { padding-bottom: 185px; }
  .hero-title { font-size: clamp(3.2rem, 16vw, 5.3rem); }
  .hero-sub { font-size: 1.08rem; }
  .hero-cta { display: grid; }
  .hero-tape { right: 20px; bottom: 28px; left: 20px; grid-template-columns: repeat(2, 1fr); }
  .hero-tape-item:nth-child(n+5) { display: none; }
  .home-manifesto, .decision-journeys, .library-feature, .partner-lane, .buyer-concierge, .image-credits { width: calc(100% - 36px); }
  .home-manifesto { grid-template-columns: 1fr; gap: 34px; padding: 74px 0; }
  .home-manifesto h2 { font-size: 2.65rem; }
  .manifesto-actions { grid-column: 1; flex-direction: column; align-items: flex-start; }
  .section-heading { grid-template-columns: 1fr; gap: 12px; }
  .decision-journeys { padding: 72px 0; }
  .journey-row { grid-template-columns: 38px 1fr; gap: 10px 16px; align-items: start; }
  .journey-row p, .journey-row .editorial-link { grid-column: 2; }
  .journey-row:hover { padding-right: 8px; padding-left: 8px; }
  .experience-feature { display: flex; flex-direction: column; min-height: 0; }
  .experience-image { min-height: 420px; }
  .experience-copy { padding: 54px 24px; }
  .buyer-concierge { margin-top: 74px; margin-bottom: 74px; }
  .library-feature { margin-top: 50px; padding: 36px 22px; }
  .library-feature-head { gap: 18px; }
  .library-shelf { grid-template-columns: 32px 1fr; }
  .library-shelf .editorial-link { grid-column: 2; }
  .place-panel { min-height: 390px; padding: 26px 20px; }
  .partner-lane { gap: 30px; margin-top: 70px; margin-bottom: 70px; padding: 34px 22px; }
  .partner-slots { grid-template-columns: 1fr; }
  .site-footer { grid-template-columns: 1fr; }
  #status { justify-self: start; }
  .page-head h1 { font-size: 2.9rem; }
  .story-hero { min-height: 620px; margin: -42px -18px 0; padding: 70px 20px 36px; }
  .story-hero h1 { font-size: 3.25rem; }
  .story-facts { grid-template-columns: 1fr; }
  .story-brief { grid-template-columns: 1fr; gap: 24px; }
  .story-action-note { grid-column: 1; }
  .story-brief-item { grid-template-columns: 1fr; gap: 5px; }
  .story-layout { padding-top: 36px; }
  .story-section { padding: 34px 0 34px 36px; }
  .story-section-num { top: 38px; }
  .rumor-ledger { grid-template-columns: 1fr; }
  .rumor-toc { padding: 20px; }
  .rumor-toc > div { grid-template-columns: 1fr; }
  .browse-group { grid-template-columns: 1fr; gap: 20px; }
  .browse-list, .form-grid, .directory-controls, .dining-filters, .directory-grid, .dining-card-grid, .area-compare-grid, .village-grid, .listing-grid, .fsbo-grid, .cart-grid { grid-template-columns: 1fr; }
  .rel-list { grid-template-columns: 1fr; }
  .consumer-report-panel, .marketplace-submit { gap: 26px; padding: 34px 0; }
  .native-partner-slot { gap: 24px; padding: 30px 22px; }
  .sponsor-intro-fields { grid-template-columns: 1fr; }
  .sponsor-intro-field.is-wide { grid-column: 1; }
  .kit-page { gap: 40px; }
  .kit-hero { min-height: 520px; margin: -42px -18px 0; padding: 48px 20px; }
  .kit-hero-copy h1 { font-size: 3.4rem; }
  .kit-proof-line, .kit-category-rail, .kit-packages, .kit-form-grid { grid-template-columns: 1fr; }
  .kit-proof-line > div { padding: 18px 0; border-bottom: 1px solid var(--line); }
  .kit-category:nth-child(odd), .kit-category:nth-child(even) { padding-right: 0; padding-left: 0; border-left: 0; }
  .rate-table { min-width: 0; }
  .rate-table thead { display: none; }
  .rate-table tr { display: grid; gap: 8px; padding: 17px 0; border-bottom: 1px solid var(--line); }
  .rate-table td { display: block; padding: 0; border: 0; }
  .rate-table td:nth-child(2)::before, .rate-table td:nth-child(3)::before { display: block; color: var(--muted); font: 700 .68rem/1 var(--font-body); text-transform: uppercase; }
  .rate-table td:nth-child(2)::before { content: "Pilot rate"; }
  .rate-table td:nth-child(3)::before { content: "Term"; }
  .rate-table button { width: 100%; margin-top: 4px; }
  .kit-package { border-right: 0; }
  .kit-process, .kit-form-panel { gap: 28px; padding: 28px 20px; }
  .kit-process li { grid-template-columns: 1fr; gap: 4px; }
  .kit-form-actions, .kit-form-actions .advertise-primary, .kit-form-actions .advertise-secondary { width: 100%; }
}

/* Destination Edition: shared production visual system */
.site-header { background: var(--midnight); }
.site-header::before { height: 7px; background: linear-gradient(90deg, var(--pool) 0 68%, var(--mango) 68% 84%, var(--coral) 84%); }
.site-header-inner { min-height: 88px; }
.brand-kicker, .footer-kicker { color: var(--mango); font-family: var(--font-condensed); font-size: .76rem; letter-spacing: .08em; }
.brand-name { font-size: clamp(1.45rem, 2.4vw, 2rem); font-weight: 800; }
.header-library-link { display: inline-flex; min-height: 42px; align-items: center; padding: 0 16px; border: 1px solid rgba(255,255,255,.3); color: white; }
.header-library-link:hover { border-color: var(--mango); background: var(--mango); color: var(--midnight); }
.site-command { grid-template-columns: minmax(0, 1fr) minmax(250px, 360px); background: rgba(255,253,246,.98); border-bottom: 2px solid var(--midnight); backdrop-filter: blur(18px); }
.navbar { gap: 0; }
.navgroup-btn { min-height: 60px; padding: 0 15px; font-family: var(--font-condensed); font-size: .92rem; letter-spacing: .04em; }
.navgroup-plus { min-height: 60px; color: currentColor; }
.navgroup-btn:hover, .navgroup-plus:hover, .navgroup.is-open > .navgroup-btn, .navgroup.is-open > .navgroup-plus, .navgroup.is-current > .navgroup-btn { background: var(--mango); color: var(--midnight); }
.navpanel { padding: 0; border: 2px solid var(--midnight); box-shadow: 12px 12px 0 rgba(11,33,28,.16); }
.navfam { padding: 12px 14px; }
.navpanel a { border-color: var(--line); }
.navpanel a:hover, .navpanel a[aria-current="page"] { background: var(--mango); color: var(--midnight); }
.gsearch input { min-height: 44px; border: 1px solid var(--midnight); border-radius: 0; }
.gsearch-results { border: 2px solid var(--midnight); box-shadow: 10px 10px 0 rgba(11,33,28,.14); }

.site-footer { grid-template-columns: 1fr 1.35fr; gap: 48px 80px; padding-top: 74px; padding-bottom: 34px; background: var(--midnight); color: #c8d7d1; border-top: 8px solid var(--mango); }
.footer-intro { max-width: 430px; }
.footer-intro p { margin-top: 16px; color: #aebfb8; }
.footer-brand { margin-top: 4px; font-size: 2rem; line-height: 1.05; }
.footer-nav { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.footer-nav div { display: grid; align-content: start; gap: 8px; }
.footer-nav strong { color: var(--mango); font-family: var(--font-condensed); font-size: .86rem; letter-spacing: .08em; text-transform: uppercase; }
.footer-nav a { color: white; font-size: .86rem; text-decoration: none; }
.footer-nav a:hover { color: var(--mango); }
.footer-disclaimer { grid-column: 1 / -1; max-width: none; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.15); }
#status { align-self: end; color: #8da39a; }

/* Destination homepage */
body.home-route main { background: var(--paper); }
.hero { min-height: min(850px, calc(100svh - 152px)); padding-top: 84px; background: linear-gradient(90deg, rgba(5,24,20,.95) 0%, rgba(5,24,20,.76) 38%, rgba(5,24,20,.12) 76%), linear-gradient(0deg, rgba(5,24,20,.7), transparent 46%), url("villages/lake-sumter-landing-1600.webp") 58% 50% / cover; }
.hero::before { position: absolute; top: 0; right: 0; width: 38%; height: 10px; background: var(--mango); content: ""; }
.hero::after { height: 10px; background: linear-gradient(90deg, var(--pool) 0 70%, var(--mango) 70% 86%, var(--coral) 86%); }
.hero-inner { width: min(830px, 100%); padding-bottom: 148px; }
.hero-eyebrow, .section-kicker { font-family: var(--font-condensed); font-size: .86rem; letter-spacing: .09em; }
.hero-title { max-width: 820px; font-size: clamp(4rem, 8.6vw, 8rem); line-height: .88; text-wrap: balance; }
.hero-sub { max-width: 720px; margin-top: 28px; color: #f5fff9; font-size: clamp(1.05rem, 1.8vw, 1.35rem); line-height: 1.5; }
.btn { min-height: 52px; padding: 13px 20px; border: 2px solid var(--pool); border-radius: 0; background: var(--pool); color: var(--midnight); font-weight: 800; }
.hero .btn:not(.btn-ghost) { border-color: var(--coral); background: var(--coral); color: #102018; }
.btn:hover { transform: translateY(-3px); background: white; border-color: white; }
.btn-ghost { border-color: white; background: rgba(5,24,20,.45); color: white; }
.hero-tape { right: 0; bottom: 10px; left: 0; grid-template-columns: repeat(5, minmax(0, 1fr)); padding: 0 max(24px, calc((100vw - var(--content)) / 2)); background: rgba(5,24,20,.94); border-top: 1px solid rgba(255,255,255,.24); }
.hero-tape-item { min-height: 110px; align-content: center; padding: 14px 20px; border-right: 1px solid rgba(255,255,255,.16); }
.hero-tape-item:first-child { border-left: 1px solid rgba(255,255,255,.16); }
.hero-tape-item strong { font-family: var(--font-condensed); font-size: clamp(1.45rem, 2.3vw, 2.25rem); }
.hero-tape-item span { color: #b9cbc4; }

.home-live-lineup { padding: 54px max(24px, calc((100vw - var(--content)) / 2)); background: var(--coral); color: #102018; border-bottom: 8px solid var(--mango); }
.home-lineup-heading { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 40px; align-items: end; }
.home-lineup-heading .section-kicker { color: #102018; }
.home-lineup-heading h2 { margin-top: 5px; color: #102018; font-size: 3.5rem; line-height: .95; }
/* On the coral band these were 3.92:1 and 3.23:1. Darkened to 4.91:1 and
   5.57:1 — the band keeps its colour, the words become readable. */
.home-lineup-heading > p { max-width: 500px; margin: 0; color: #1a2b26; }
.home-lineup-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 34px; border-top: 3px solid #102018; border-bottom: 1px solid rgba(16,32,24,.45); }
.home-lineup-event { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 16px; min-height: 116px; padding: 22px 20px 22px 0; border-right: 1px solid rgba(16,32,24,.35); }
.home-lineup-event:last-child { border-right: 0; padding-left: 20px; }
.home-lineup-event:nth-child(2) { padding-left: 20px; }
.home-lineup-event time { color: #102018; font: 800 1rem/1.25 var(--font-condensed); }
.home-lineup-event h3 { color: #102018; font-size: 1.22rem; line-height: 1.1; }
.home-lineup-event p { margin: 7px 0 0; color: #12201c; font-size: .82rem; }
.home-lineup-link { display: inline-block; margin-top: 24px; color: #102018; font-weight: 900; text-decoration: underline; text-decoration-thickness: 2px; }
.home-lineup-link:hover { color: #fff; }

.destination-pulse { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); gap: 50px 90px; width: min(var(--content), calc(100% - 48px)); margin: 0 auto; padding: 120px 0; }
.pulse-intro h2 { max-width: 900px; font-size: clamp(3.3rem, 6.4vw, 6.8rem); line-height: .94; }
.pulse-intro > p:last-child { max-width: 800px; margin-top: 28px; color: var(--muted); font-size: 1.18rem; }
.pulse-notes { display: grid; align-self: end; border-top: 4px solid var(--midnight); }
.pulse-notes span { display: grid; grid-template-columns: 72px 1fr; gap: 18px; padding: 18px 0; border-bottom: 1px solid var(--line); font-weight: 700; }
.pulse-notes b { color: #a43d37; font-family: var(--font-condensed); font-size: 1.05rem; }
.pulse-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 28px; }
.editorial-link { color: var(--midnight); font-weight: 800; text-decoration-thickness: 2px; text-decoration-color: var(--coral); }
.editorial-link:hover { color: var(--coral); }

.activity-rhythm { padding: 110px max(24px, calc((100vw - var(--content)) / 2)); background: var(--sky); }
.section-heading { display: grid; grid-template-columns: 1.25fr .75fr; gap: 60px; align-items: end; }
.section-heading h2 { font-size: clamp(3rem, 5.5vw, 5.8rem); }
.section-heading > p { color: var(--muted); font-size: 1.05rem; }
.rhythm-track { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 70px; }
.rhythm-track::before { position: absolute; top: 25px; right: 0; left: 0; height: 3px; background: var(--midnight); content: ""; }
.rhythm-stop { position: relative; min-width: 0; }
.rhythm-stop:nth-child(1) { border-bottom: 7px solid var(--pool); }
.rhythm-stop:nth-child(2) { border-bottom: 7px solid var(--coral); }
.rhythm-stop:nth-child(3) { border-bottom: 7px solid var(--mango); }
.rhythm-stop:nth-child(4) { border-bottom: 7px solid var(--midnight-2); }
.rhythm-time { position: relative; z-index: 1; display: inline-flex; align-items: baseline; justify-content: center; min-width: 54px; height: 54px; margin-bottom: 20px; background: var(--midnight); color: var(--mango); font: 700 1.45rem/54px var(--font-condensed); }
.rhythm-time small { font-size: .72rem; }
.rhythm-stop img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .35s ease; }
.rhythm-stop:hover img { transform: translateY(-6px); }
.rhythm-stop h3 { margin: 22px 18px 0; font-size: 1.55rem; }
.rhythm-stop p { margin-right: 18px; margin-left: 18px; color: var(--muted); font-size: .9rem; }

.decision-journeys { width: auto; margin: 0; padding: 115px max(24px, calc((100vw - var(--content)) / 2)); background: var(--midnight); color: white; }
.decision-journeys h2, .decision-journeys h3, .decision-journeys .editorial-link { color: white; }
.decision-journeys .section-heading > p { color: #aec0b8; }
.journey-list { margin-top: 70px; border-top: 1px solid rgba(255,255,255,.22); }
.journey-row { display: grid; grid-template-columns: 75px minmax(220px, .7fr) minmax(0, 1.3fr) 190px; gap: 24px; align-items: center; padding: 32px 10px; border-bottom: 1px solid rgba(255,255,255,.2); transition: background .2s ease, padding .2s ease; }
.journey-row:hover { padding-right: 20px; padding-left: 20px; background: rgba(255,216,77,.1); }
.journey-num { color: var(--mango); font: 700 1.25rem/1 var(--font-condensed); }
.journey-row h3 { font-size: 1.55rem; }
.journey-row p { margin: 0; color: #b9cac3; }
.journey-row .editorial-link { justify-self: end; text-align: right; text-decoration-color: var(--mango); }

.buyer-concierge { width: min(var(--content), calc(100% - 48px)); margin: 110px auto; }
body:not(.home-route) .buyer-concierge { width: 100%; margin: 48px 0 90px; }
.concierge-copy { display: grid; grid-template-columns: 1.1fr .9fr; gap: 24px 70px; align-items: end; margin-bottom: 36px; }
.concierge-copy .path-kicker { grid-column: 1 / -1; margin: 0; color: #a43d37; font-family: var(--font-condensed); font-size: .84rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.concierge-copy h2 { font-size: clamp(3rem, 5.2vw, 5.4rem); }
.concierge-copy > p:last-child { margin: 0; color: var(--muted); font-size: 1.04rem; }
.concierge-workbench { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(330px, .65fr); border: 3px solid var(--midnight); box-shadow: 14px 14px 0 var(--mango); }
.concierge-form { display: grid; gap: 32px; padding: 42px; background: var(--panel); }
.concierge-group { display: grid; gap: 12px; }
.concierge-group h3 { font-family: var(--font-condensed); font-size: 1rem; letter-spacing: .03em; text-transform: uppercase; }
.concierge-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.concierge-choices-many { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.concierge-choice { display: grid; gap: 3px; min-height: 64px; padding: 10px 12px; border: 1px solid var(--line); background: var(--panel-2); color: var(--ink); text-align: left; cursor: pointer; }
.concierge-choice strong { font-size: .84rem; }
.concierge-choice span { color: var(--muted); font-size: .7rem; line-height: 1.25; }
.concierge-choice:hover { border-color: var(--pool-dark); background: var(--sky); }
.concierge-choice, .concierge-build, .home-action { border-radius: 0 !important; }
.concierge-choice[aria-pressed="true"], .concierge-choice.is-selected { border-color: var(--mango); background: var(--mango); color: var(--midnight); }
.concierge-choice[aria-pressed="true"] span { color: #3e493f; }
.concierge-build { min-height: 52px; border: 0; background: var(--coral); color: #102018; font-weight: 800; cursor: pointer; }
.concierge-build:hover { background: #e9474d; }
.concierge-result { display: grid; align-content: start; gap: 18px; padding: 42px 34px; background: var(--midnight); color: white; }
.concierge-result h3 { color: white; font-size: 2rem; }
.concierge-badge { width: max-content; margin: 0; padding: 4px 8px; background: var(--mango); color: var(--midnight); font: 700 .78rem/1.2 var(--font-condensed); letter-spacing: .06em; text-transform: uppercase; }
.concierge-summary { color: #bed0c8; font-size: .88rem; }
.concierge-route { display: grid; border-top: 1px solid rgba(255,255,255,.2); }
.concierge-link { display: grid; gap: 3px; padding: 13px 0; border: 0; border-bottom: 1px solid rgba(255,255,255,.16); background: transparent; color: white; text-align: left; cursor: pointer; }
.concierge-link:hover strong { color: var(--mango); }
.concierge-link span { color: #9fb5ac; font-size: .72rem; }
.concierge-signals { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; color: #9fb5ac; font-size: .7rem; }
.concierge-signals b { padding: 4px 7px; border: 1px solid rgba(255,255,255,.25); color: white; }
.concierge-actions { display: grid; gap: 8px; }
.concierge-actions .home-action { width: 100%; min-height: 43px; font-size: .78rem; }
.concierge-actions .home-action-light { border-color: white; background: white; color: var(--midnight); }
.concierge-actions .home-action-dark { border-color: var(--pool); background: transparent; color: white; }

.library-feature { width: auto; margin: 0; padding: 115px max(24px, calc((100vw - var(--content)) / 2)); background: var(--pool); color: var(--midnight); }
.library-feature-head { display: grid; grid-template-columns: 1.2fr .8fr; gap: 70px; align-items: end; }
.library-feature h2 { color: var(--midnight); font-size: clamp(3rem, 5.5vw, 5.8rem); }
.library-feature-head > p { color: #173f38; font-size: 1.02rem; }
.library-shelves { margin-top: 70px; border-top: 4px solid var(--midnight); }
.library-shelf { display: grid; grid-template-columns: 64px 1fr 160px; gap: 24px; align-items: center; padding: 26px 6px; border-bottom: 1px solid rgba(11,33,28,.28); }
.library-shelf > span { color: #702220; font: 700 1.2rem/1 var(--font-condensed); }
.library-shelf h3 { font-size: 1.55rem; }
.library-shelf p { margin: 4px 0 0; color: #204c44; }
.library-shelf .editorial-link { justify-self: end; }
.library-all { margin-top: 40px; border-color: var(--midnight); background: var(--midnight); color: white; }

.place-triptych { display: grid; grid-template-columns: 1.12fr .88fr 1fr; }
.place-panel { position: relative; min-height: 620px; padding: 34px; background-position: center; background-size: cover; color: white; }
.place-panel::before { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(5,24,20,.94), rgba(5,24,20,.05) 70%); content: ""; }
.place-panel > * { position: relative; z-index: 1; }
.place-panel > div { align-self: end; }
.place-panel p { color: var(--mango); font: 700 .86rem/1 var(--font-condensed); letter-spacing: .08em; text-transform: uppercase; }
.place-panel h2 { max-width: 420px; color: white; font-size: clamp(2.35rem, 4vw, 4.7rem); }
.place-panel span { display: block; max-width: 390px; margin-top: 12px; color: #e4eee9; }
.place-link { align-self: end; margin-top: 28px; color: white; text-decoration-color: var(--mango); }

.partner-lane { width: auto; margin: 0; padding: 105px max(24px, calc((100vw - var(--content)) / 2)); background: var(--coral); color: var(--midnight); }
.partner-lane h2 { color: var(--midnight); font-size: clamp(2.8rem, 5vw, 5.2rem); }
.partner-slot { border-color: rgba(11,33,28,.35); background: rgba(255,255,255,.48); }
.partner-slot:hover { background: white; transform: translateY(-4px); }
.image-credits { width: min(var(--content), calc(100% - 48px)); margin: 34px auto; }

/* Interior publication and tool family */
body:not(.home-route) main { padding-top: 78px; }
.page-head { max-width: 1040px; padding-bottom: 42px; border-bottom: 4px solid var(--midnight); }
.page-head-bar { width: 88px; height: 9px; background: linear-gradient(90deg, var(--pool) 0 62%, var(--mango) 62% 82%, var(--coral) 82%); }
.page-head h1 { font-size: clamp(3.4rem, 6.7vw, 7rem); line-height: .93; }
.block { border-radius: 0; }
.browse-group { grid-template-columns: 280px 1fr; padding: 58px 0; border-top: 2px solid var(--midnight); }
.browse-group h2 { font-size: 2.5rem; }
.browse-list a { font-size: 1.02rem; }
.browse-list li { min-height: 86px; align-content: center; }
.directory-intro, .dining-library-hero { margin: 48px 0; padding: 58px; background: var(--midnight); border-left: 10px solid var(--mango); }
.directory-intro h2, .dining-library-hero h2 { font-size: clamp(2.8rem, 5vw, 5.4rem); }
.directory-controls, .dining-filters, .listing-toolbar, .filters { padding: 26px 0; border-top: 3px solid var(--midnight); }
.directory-grid, .dining-card-grid, .area-compare-grid, .village-grid, .listing-grid, .fsbo-grid, .cart-grid { gap: 0; border-top: 3px solid var(--midnight); background: transparent; }
.directory-card, .dining-card, .area-compare-card, .village-card, .listing-card, .fsbo-card, .cart-card { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--panel); transition: background .2s ease, transform .2s ease; }
.directory-card:hover, .dining-card:hover, .area-compare-card:hover, .village-card:hover, .listing-card:hover, .fsbo-card:hover, .cart-card:hover { z-index: 1; background: var(--sky); transform: translateY(-3px); }

/* Golf cart marketplace: image-led local inventory, not a bulletin board. */
.cart-marketplace { margin-top: 18px; }
.cart-marketplace-hero { position: relative; min-height: 560px; overflow: hidden; background: var(--midnight); color: white; }
.cart-marketplace-hero::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4, 30, 25, .96) 0%, rgba(4, 30, 25, .82) 43%, rgba(4, 30, 25, .12) 78%); content: ""; }
.cart-marketplace-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .7s ease; }
.cart-marketplace-hero:hover > img { transform: scale(1.025); }
.cart-marketplace-hero-copy { position: relative; z-index: 1; display: flex; min-height: 560px; max-width: 720px; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(44px, 7vw, 92px); }
.cart-marketplace-kicker { margin: 0 0 12px; color: var(--coral-text); font-family: var(--font-condensed); font-size: .76rem; font-weight: 800; letter-spacing: 0; text-transform: uppercase; }
.cart-marketplace-hero .cart-marketplace-kicker { color: var(--mango); }
.cart-marketplace-hero h2 { max-width: 650px; margin: 0; color: white; font-size: clamp(3rem, 6vw, 6.4rem); line-height: .94; }
.cart-marketplace-hero-copy > p:not(.cart-marketplace-kicker) { max-width: 580px; margin: 24px 0 28px; color: #e2eeea; font-size: 1.02rem; line-height: 1.62; }
.cart-marketplace-actions { display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; }
.cart-marketplace-actions > a:not(.btn) { color: white; font-weight: 700; text-decoration: underline; text-decoration-color: var(--mango); text-underline-offset: 5px; }
.cart-marketplace-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--line); background: var(--midnight); color: white; }
.cart-marketplace-stats > div { min-width: 0; padding: 24px 28px; border-right: 1px solid rgba(255, 255, 255, .16); }
.cart-marketplace-stats > div:last-child { border-right: 0; }
.cart-marketplace-stats strong, .cart-marketplace-stats span { display: block; }
.cart-marketplace-stats strong { color: var(--mango); font-family: var(--font-display); font-size: clamp(1.45rem, 2.6vw, 2.4rem); line-height: 1; }
.cart-marketplace-stats span { margin-top: 7px; color: #cbdcd6; font-family: var(--font-condensed); font-size: .72rem; font-weight: 700; letter-spacing: 0; text-transform: uppercase; }
.cart-marketplace-owner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 42px; align-items: center; padding: clamp(42px, 6vw, 78px) 0; border-bottom: 1px solid var(--line); }
.cart-marketplace-owner > div { max-width: 820px; }
.cart-marketplace-owner h2, .cart-marketplace-inventory h2 { margin: 0; font-size: clamp(2.4rem, 4.4vw, 4.8rem); line-height: .98; }
.cart-marketplace-owner p:not(.cart-marketplace-kicker) { max-width: 720px; margin: 18px 0 0; color: var(--muted); line-height: 1.65; }
.cart-marketplace > .callout { margin: 36px 0 0; }
.cart-marketplace-inventory { padding: clamp(54px, 7vw, 92px) 0 42px; }
.cart-marketplace-inventory > header { display: grid; grid-template-columns: minmax(0, .8fr) minmax(320px, 1fr); gap: 18px 72px; align-items: end; margin-bottom: 34px; }
.cart-marketplace-inventory > header .cart-marketplace-kicker { grid-column: 1 / -1; margin-bottom: 0; }
.cart-marketplace-inventory > header > p:last-child { max-width: 640px; margin: 0; color: var(--muted); line-height: 1.62; }
.cart-marketplace-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 4px solid var(--midnight); }
.cart-marketplace-card { min-width: 0; overflow: hidden; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--panel); transition: transform .2s ease, box-shadow .2s ease; }
.cart-marketplace-card:nth-child(4n + 1) { border-left: 1px solid var(--line); }
.cart-marketplace-card:hover { z-index: 1; transform: translateY(-4px); box-shadow: 0 18px 38px rgba(9, 43, 36, .15); }
.cart-marketplace-card > a { display: flex; height: 100%; flex-direction: column; color: inherit; text-decoration: none; }
.cart-marketplace-card-media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--sky); }
.cart-marketplace-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.cart-marketplace-card:hover .cart-marketplace-card-media img { transform: scale(1.045); }
.cart-marketplace-card-media.no-photo { display: grid; place-items: center; background: var(--sky); }
.cart-marketplace-card-media.no-photo span { color: var(--muted); font-family: var(--font-condensed); font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.cart-marketplace-card-body { display: flex; min-height: 230px; flex: 1; flex-direction: column; align-items: flex-start; padding: 20px; }
.cart-marketplace-source { color: var(--pool-dark); font-family: var(--font-condensed); font-size: .7rem; font-weight: 700; letter-spacing: 0; text-transform: uppercase; }
.cart-marketplace-price { margin-top: 12px; color: var(--coral-text); font-family: var(--font-display); font-size: 2rem; line-height: 1; }
.cart-marketplace-card h3 { margin: 10px 0 0; font-family: var(--font-body); font-size: 1rem; line-height: 1.35; }
.cart-marketplace-card-body > p { margin: 8px 0 0; color: var(--muted); font-size: .8rem; line-height: 1.35; }
.cart-marketplace-link { margin-top: auto; padding-top: 20px; color: var(--pool-dark); font-size: .78rem; font-weight: 700; line-height: 1.4; text-decoration: underline; text-underline-offset: 4px; }
.cart-marketplace-disclaimer { max-width: 920px; margin: 0 0 48px; padding-top: 24px; border-top: 1px solid var(--line); line-height: 1.55; }
.cart-marketplace-buying { padding: clamp(52px, 7vw, 88px) 0; border-top: 1px solid var(--line); }
.cart-marketplace-buying > header { display: grid; grid-template-columns: minmax(0, .8fr) minmax(320px, 1fr); gap: 14px 72px; align-items: end; margin-bottom: 34px; }
.cart-marketplace-buying > header .cart-marketplace-kicker { grid-column: 1 / -1; margin: 0; }
.cart-marketplace-buying > header h2 { max-width: 660px; margin: 0; font-size: clamp(2.5rem, 4.6vw, 5rem); line-height: .98; }
.cart-marketplace-buying > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 4px solid var(--midnight); }
.cart-marketplace-buying article { padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--panel); }
.cart-marketplace-buying article:first-child { border-left: 1px solid var(--line); }
.cart-marketplace-buying article h3 { margin: 0; font-size: 1.05rem; }
.cart-marketplace-buying article p { margin: 12px 0 0; color: var(--muted); font-size: .88rem; line-height: 1.6; }
.cart-marketplace-buying > p { margin: 24px 0 0; }
.cart-marketplace-recruit { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 36px; align-items: center; margin-bottom: 48px; padding: clamp(34px, 5vw, 58px); background: var(--coral); color: var(--midnight); }
.cart-marketplace-recruit .cart-marketplace-kicker { color: var(--midnight); }
.cart-marketplace-recruit h2 { max-width: 760px; margin: 0; color: var(--midnight); font-size: clamp(2.3rem, 4vw, 4.4rem); line-height: .98; }
.cart-marketplace-recruit p:not(.cart-marketplace-kicker) { max-width: 680px; margin: 16px 0 0; color: var(--midnight); }
.cart-marketplace-recruit .btn { border-color: var(--midnight); background: var(--midnight); color: white; }

.cart-seller { margin-top: 18px; }
.cart-seller-hero { position: relative; display: grid; min-height: 540px; overflow: hidden; background: var(--midnight); color: white; }
.cart-seller-hero::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4, 30, 25, .96), rgba(4, 30, 25, .78) 52%, rgba(4, 30, 25, .12)); content: ""; }
.cart-seller-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cart-seller-hero > div { position: relative; z-index: 1; display: flex; max-width: 780px; min-height: 540px; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(42px, 7vw, 88px); }
.cart-seller-hero h2 { margin: 0; color: white; font-size: clamp(2.8rem, 5.4vw, 5.8rem); line-height: .96; }
.cart-seller-hero p:not(.cart-marketplace-kicker) { max-width: 620px; margin: 22px 0 28px; color: #e2eeea; line-height: 1.65; }
.cart-seller-proof { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: var(--midnight); color: white; }
.cart-seller-proof > div { padding: 25px 30px; border-right: 1px solid rgba(255, 255, 255, .17); }
.cart-seller-proof > div:last-child { border-right: 0; }
.cart-seller-proof strong, .cart-seller-proof span { display: block; }
.cart-seller-proof strong { color: var(--mango); font-family: var(--font-display); font-size: clamp(1.5rem, 2.8vw, 2.5rem); line-height: 1; }
.cart-seller-proof span { margin-top: 7px; color: #cbdcd6; font-family: var(--font-condensed); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.cart-seller-steps { padding: clamp(54px, 7vw, 92px) 0; }
.cart-seller-steps > header { display: grid; grid-template-columns: minmax(0, .8fr) minmax(320px, 1fr); gap: 14px 72px; align-items: end; margin-bottom: 34px; }
.cart-seller-steps > header .cart-marketplace-kicker { grid-column: 1 / -1; margin: 0; }
.cart-seller-steps h2, .cart-seller-form-head h2 { margin: 0; font-size: clamp(2.5rem, 4.6vw, 5rem); line-height: .98; }
.cart-seller-steps ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 4px solid var(--midnight); list-style: none; }
.cart-seller-steps li { display: grid; grid-template-columns: auto 1fr; gap: 18px; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--panel); }
.cart-seller-steps li:first-child { border-left: 1px solid var(--line); }
.cart-seller-steps li > span { color: var(--coral-text); font-family: var(--font-display); font-size: 1.7rem; }
.cart-seller-steps h3 { margin: 3px 0 0; font-size: 1rem; }
.cart-seller-steps li p { margin: 10px 0 0; color: var(--muted); font-size: .86rem; line-height: 1.55; }
.cart-seller-form-head { max-width: 840px; padding: 10px 0 28px; border-bottom: 4px solid var(--midnight); }
.cart-seller-form-head > p:last-child { color: var(--muted); }
#cart-listing-fields { max-width: 840px; margin-top: 30px; }
html.theme-dark .cart-marketplace-kicker, html.theme-dark .cart-marketplace-price { color: var(--mango); }
/* The coral recruit panel stays light in both themes, so all of its copy keeps
   dark ink instead of inheriting the global dark-theme heading and kicker colors. */
html.theme-dark .cart-marketplace-recruit .cart-marketplace-kicker,
html.theme-dark .cart-marketplace-recruit h2,
html.theme-dark .cart-marketplace-recruit p:not(.cart-marketplace-kicker) { color: var(--midnight); }
html.theme-dark .cart-marketplace-card { background: var(--panel); }
html.theme-dark .cart-marketplace-source, html.theme-dark .cart-marketplace-link { color: var(--pool); }

@media (max-width: 980px) {
  .cart-marketplace-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cart-marketplace-card:nth-child(4n + 1) { border-left: 0; }
  .cart-marketplace-card:nth-child(3n + 1) { border-left: 1px solid var(--line); }
  .cart-marketplace-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cart-marketplace-stats > div:nth-child(2) { border-right: 0; }
  .cart-marketplace-stats > div:nth-child(-n + 2) { border-bottom: 1px solid rgba(255, 255, 255, .16); }
}
@media (max-width: 720px) {
  .cart-marketplace-hero, .cart-marketplace-hero-copy { min-height: 530px; }
  .cart-marketplace-hero::after { background: rgba(4, 30, 25, .8); }
  .cart-marketplace-hero-copy { padding: 38px 24px; }
  .cart-marketplace-owner, .cart-marketplace-inventory > header { grid-template-columns: 1fr; }
  .cart-marketplace-buying > header, .cart-seller-steps > header { grid-template-columns: 1fr; }
  .cart-marketplace-owner { gap: 28px; }
  .cart-marketplace-owner > .btn { width: max-content; }
  .cart-marketplace-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cart-marketplace-card:nth-child(3n + 1) { border-left: 0; }
  .cart-marketplace-card:nth-child(2n + 1) { border-left: 1px solid var(--line); }
  .cart-marketplace-buying > div, .cart-seller-steps ol { grid-template-columns: 1fr; }
  .cart-marketplace-buying article, .cart-seller-steps li { border-left: 1px solid var(--line); }
  .cart-marketplace-recruit { grid-template-columns: 1fr; }
  .cart-marketplace-recruit .btn { width: max-content; }
}
@media (max-width: 480px) {
  .cart-marketplace-stats, .cart-marketplace-grid { grid-template-columns: 1fr; }
  .cart-marketplace-stats > div { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .16); }
  .cart-marketplace-card, .cart-marketplace-card:nth-child(n) { border-left: 1px solid var(--line); }
  .cart-marketplace-card-body { min-height: 190px; }
  .cart-seller-hero, .cart-seller-hero > div { min-height: 560px; }
  .cart-seller-hero::after { background: rgba(4, 30, 25, .82); }
  .cart-seller-hero > div { padding: 38px 24px; }
  .cart-seller-proof { grid-template-columns: 1fr; }
  .cart-seller-proof > div { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .17); }
}
.directory-save, .directory-mode, .directory-saved-toggle, .dining-area-btn, .chip { border-radius: 0; }
.directory-mode.is-active, .directory-saved-toggle.is-active, .dining-area-btn.is-active, .directory-save.is-saved { border-color: var(--midnight); background: var(--mango); color: var(--midnight); }
.map-shell, .mapwrap, .geo-map, .sinkhole-map { border: 3px solid var(--midnight); box-shadow: 12px 12px 0 var(--mango); }
.sinkhole-map-block { overflow: hidden; }
.sinkhole-map-lede { max-width: 68rem; color: var(--muted); }
.mapzoom { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 18px 0; }
.mapzoom-label { margin-right: 4px; color: var(--muted); font-family: var(--font-condensed); font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.zoombtn { min-height: 38px; padding: 7px 13px; border: 1px solid var(--line); border-radius: 0; background: var(--panel); color: var(--ink); font-weight: 700; cursor: pointer; }
.zoombtn:hover, .zoombtn[aria-pressed="true"] { border-color: var(--midnight); background: var(--mango); color: var(--midnight); }
.sinkhole-map-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(230px, 280px); gap: 28px; align-items: stretch; }
.sinkhole-map-stage { min-width: 0; }
.sinkhole-map-stage svg.map { display: block; width: 100%; height: auto; margin: 0; border: 2px solid var(--midnight); background: var(--sky); }
.sinkhole-map-stage .map-bg { fill: #e4f5ef; stroke: var(--pool-dark); stroke-width: 1; }
.sinkhole-map-stage .map-grid line { stroke: var(--pool-dark); stroke-width: .6; opacity: .24; }
.map-scale line { stroke: var(--ink); stroke-width: 1.4; }
.map-scale text, .map-compass text, .map-title { fill: var(--ink); font-family: var(--font-condensed); font-size: 11px; font-weight: 700; }
.map-compass path { fill: var(--ink); }
.map-landmarks .lm-dot { fill: var(--midnight); stroke: white; stroke-width: 1.3; }
.map-landmarks .lm-flag { fill: var(--coral); stroke: var(--midnight); stroke-width: 1.4; }
.map-landmarks .lm-label { fill: var(--midnight); stroke: #e4f5ef; stroke-width: 3.5; paint-order: stroke; font-size: 10.5px; font-weight: 700; }
.sinkhole-hotspot { stroke: white; stroke-width: 1.2; }
.sinkhole-hotspot.has-damage { stroke: var(--coral); stroke-width: 2.2; }
.map-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 10px; color: var(--muted); font-size: .78rem; }
.map-legend-item { display: inline-flex; align-items: center; gap: 6px; }
.map-legend-swatch { display: inline-block; width: 11px; height: 11px; border: 1px solid var(--line); border-radius: 50%; }
.sinkhole-map-insight { display: flex; flex-direction: column; gap: 16px; padding-left: 24px; border-left: 2px solid var(--line); }
.sinkhole-map-insight > strong { color: var(--midnight); font-family: var(--font-display); font-size: 1.35rem; line-height: 1.15; }
.sinkhole-map-metric { padding-top: 12px; border-top: 1px solid var(--line); }
.sinkhole-map-metric strong { display: block; color: var(--coral); font-family: var(--font-display); font-size: 1.8rem; line-height: 1; }
.sinkhole-map-metric span, .sinkhole-map-metric em { display: block; margin-top: 4px; color: var(--muted); font-size: .78rem; font-style: normal; line-height: 1.35; }
html.theme-dark .sinkhole-map-stage svg.map { border-color: var(--mango); background: #102b24; }
html.theme-dark .sinkhole-map-stage .map-bg { fill: #102b24; stroke: var(--pool); }
html.theme-dark .sinkhole-map-stage .map-grid line { stroke: var(--pool); opacity: .28; }
html.theme-dark .map-scale line { stroke: #d9eee7; }
html.theme-dark .map-scale text, html.theme-dark .map-compass text, html.theme-dark .map-title { fill: #d9eee7; }
html.theme-dark .map-compass path { fill: #d9eee7; }
html.theme-dark .map-landmarks .lm-dot { fill: var(--mango); stroke: var(--midnight); }
html.theme-dark .map-landmarks .lm-label { fill: white; stroke: #102b24; }
html.theme-dark .sinkhole-hotspot { stroke: #102b24; }
html.theme-dark .sinkhole-hotspot.has-damage { stroke: var(--mango); }
html.theme-dark .sinkhole-map-insight > strong { color: var(--ink); }
.story-hero { min-height: 700px; background: linear-gradient(90deg, rgba(5,24,20,.97), rgba(5,24,20,.68) 52%, rgba(5,24,20,.08)), var(--story-image) center / cover; }
.story-hero::after, .kit-hero::after { height: 10px; background: linear-gradient(90deg, var(--pool) 0 68%, var(--mango) 68% 84%, var(--coral) 84%); }
.story-hero h1 { font-size: clamp(3.6rem, 7vw, 7.4rem); line-height: .92; }
.story-section { padding-top: 54px; padding-bottom: 54px; }
.story-section-num, .story-source-list li::before { color: #a43d37; font-family: var(--font-condensed); }
.story-evidence { border-top-width: 4px; }
.healthcare-directory { margin: 42px 0 86px; }
.emergency-banner { display: block; margin: 0 0 22px; padding: 18px 22px; border: 0; border-left: 8px solid var(--midnight); background: var(--coral); color: #102018; font-size: 1rem; }
.emergency-banner strong { margin-right: 4px; font-family: var(--font-condensed); font-size: 1.08rem; text-transform: uppercase; }
.emergency-banner a { color: #102018; font-weight: 900; text-decoration-thickness: 2px; }
.healthcare-directory .directory-intro { position: relative; overflow: hidden; margin-top: 0; }
.healthcare-directory .directory-intro::after { position: absolute; right: 44px; bottom: -38px; color: rgba(255,255,255,.08); font: 900 11rem/1 var(--font-condensed); content: "+"; pointer-events: none; }
.healthcare-directory .directory-controls { display: grid; grid-template-columns: minmax(240px, 1.5fr) repeat(2, minmax(170px, 1fr)); gap: 16px; margin: 24px 0 16px; }
.healthcare-directory .directory-controls label { display: grid; gap: 7px; color: var(--muted); font-family: var(--font-condensed); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.healthcare-directory .directory-controls input, .healthcare-directory .directory-controls select { width: 100%; min-height: 48px; padding: 10px 12px; background: var(--panel); color: var(--ink); font: 600 .92rem/1.2 var(--font-body); }
.healthcare-directory .directory-count { margin: 0; color: var(--ink); font-family: var(--font-condensed); font-size: .88rem; font-weight: 800; text-transform: uppercase; }
.healthcare-card { border-top: 6px solid var(--pool); }
.healthcare-card.is-urgent-care { border-top-color: var(--mango); }
.healthcare-card.is-emergency-care { border-top-color: var(--coral); }
.healthcare-card .directory-kicker { color: var(--pool-dark); }
.healthcare-card.is-urgent-care .directory-kicker { color: #896800; }
.healthcare-card.is-emergency-care .directory-kicker { color: #a43d37; }
.healthcare-card .provider-facts { margin-top: 18px; }
.healthcare-card .provider-facts > div { grid-template-columns: 92px minmax(0, 1fr); }
.healthcare-card .provider-facts dt { color: var(--muted); font-family: var(--font-condensed); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.healthcare-card .provider-facts dd { margin: 0; color: var(--ink); font-size: .78rem; line-height: 1.45; }
.healthcare-card .directory-card-actions { justify-content: flex-start; align-items: flex-start; padding-top: 16px; border-top: 1px solid var(--line); }
.healthcare-card .directory-card-actions a { min-height: 38px; padding: 9px 10px; border: 1px solid var(--line); background: var(--panel-2); color: var(--ink); font-size: .74rem; }
.healthcare-card .directory-card-actions a:hover { border-color: var(--pool-dark); background: var(--sky); text-decoration: none; }
.healthcare-directory .directory-footer { justify-content: space-between; margin-top: 28px; padding: 20px 0; border-top: 3px solid var(--midnight); }
input, select, textarea { border-radius: 0; border-color: #aebbb5; }
input:focus, select:focus, textarea:focus { border-color: var(--pool-dark); outline: 3px solid color-mix(in srgb, var(--pool) 26%, transparent); outline-offset: 1px; }
.kit-hero { background: linear-gradient(90deg, rgba(5,24,20,.96), rgba(5,24,20,.66) 52%, rgba(5,24,20,.08)), var(--kit-image) center / cover; }
.kit-process { background: var(--mango); }
.kit-form-panel { background: var(--midnight); border-top: 8px solid var(--coral); }
.rate-table-wrap, .kit-category-rail, .kit-packages { border-top-width: 4px; }

html.theme-dark { --paper: #101411; --ink: #f6f3e9; --muted: #b4beb5; --line: #3d4940; --line-2: #2c352e; --panel: #1a211c; --panel-2: #222b24; --sand: #202720; --midnight: #0a1814; --midnight-2: #17332a; --pool: #53ddcc; --pool-dark: #83ecdf; --mango: #ffdc55; --coral: #ff716c; --sky: #203128; --accent-ink: #ff8d87; --accent-soft: #3a2523; --warn: #ffbe55; --good: #53ddcc; }
html.theme-dark .site-command { background: rgba(16,20,17,.98); border-bottom-color: var(--mango); }
html.theme-dark { --command-bg: #101411; }
html.theme-dark .navgroup-btn, html.theme-dark .navgroup-plus { color: #f7f5ec; }
html.theme-dark .navgroup-btn:hover, html.theme-dark .navgroup-plus:hover, html.theme-dark .navgroup.is-open > .navgroup-btn, html.theme-dark .navgroup.is-open > .navgroup-plus, html.theme-dark .navgroup.is-current > .navgroup-btn { background: var(--mango); color: #102018; }
html.theme-dark .gsearch input { border-color: #69776d; background: #1c251f; }
html.theme-dark .destination-pulse { background: var(--paper); }
html.theme-dark .activity-rhythm { background: #193027; }
html.theme-dark .home-live-lineup { background: #ff716c; color: #102018; }
html.theme-dark .library-feature { background: #3bcdbb; color: #102018; }
html.theme-dark .library-feature h2, html.theme-dark .library-feature h3, html.theme-dark .library-feature .editorial-link { color: #102018; }
html.theme-dark .library-feature p { color: #34443c; }
html.theme-dark .partner-lane { background: #ec645e; color: #102018; }
html.theme-dark .partner-lane h2, html.theme-dark .partner-slot { color: #102018; }
html.theme-dark .partner-slot { background: rgba(255,255,255,.7); }
html.theme-dark .concierge-form { background: var(--panel); }
html.theme-dark .concierge-choice { border-color: var(--line); background: var(--panel-2); color: var(--ink); }
html.theme-dark .concierge-choice:hover { background: #29392f; }
html.theme-dark .concierge-choice[aria-pressed="true"] { border-color: var(--mango); background: var(--mango); color: #102018; }
html.theme-dark .concierge-choice[aria-pressed="true"] span { color: #39483f; }
html.theme-dark .directory-card:hover, html.theme-dark .dining-card:hover, html.theme-dark .area-compare-card:hover, html.theme-dark .village-card:hover, html.theme-dark .listing-card:hover { background: #26372d; }
html.theme-dark .directory-mode.is-active, html.theme-dark .directory-saved-toggle.is-active, html.theme-dark .dining-area-btn.is-active, html.theme-dark .directory-save.is-saved { background: var(--mango); color: #102018; }
html.theme-dark .emergency-banner { border-left-color: var(--mango); background: #ff847f; color: #101713; }
html.theme-dark .emergency-banner a { color: #101713; }
html.theme-dark .healthcare-directory .directory-controls input, html.theme-dark .healthcare-directory .directory-controls select { border-color: #647168; background: #1c251f; color: #f8f5ec; color-scheme: dark; }
html.theme-dark .healthcare-card.is-urgent-care .directory-kicker { color: var(--mango); }
html.theme-dark .healthcare-card.is-emergency-care .directory-kicker { color: var(--coral); }
html.theme-dark .story-evidence-label { color: var(--mango); }
/* On the dark canvas the bright coral is already 5.03:1; the darkened text
   variant is only needed against the cream page. */
html.theme-dark .advertise-kicker,
html.theme-dark .journey-num,
html.theme-dark .partner-kicker,
html.theme-dark .rate-table td:nth-child(2),
html.theme-dark .kit-package span { color: var(--coral); }
html.theme-dark .story-brief-item span, html.theme-dark .story-section-num, html.theme-dark .story-source-list li::before { color: var(--coral); }
html.theme-dark .healthcare-card .directory-card-actions a { border-color: #56645a; background: #222b24; color: #f8f5ec; }
html.theme-dark .healthcare-card .directory-card-actions a:hover { border-color: var(--mango); background: #303c32; }
.recreation-finder { width: min(1180px, calc(100% - 40px)); margin: 34px auto 86px; }
.recreation-finder-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 220px; min-height: 390px; overflow: hidden; align-items: end; padding: 46px; background: #102d28 url("villages/pool-960.webp") center 44% / cover no-repeat; color: #fff; border-bottom: 9px solid #f2c946; isolation: isolate; }
.recreation-finder-hero::before { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(5,33,29,.94) 0%, rgba(5,33,29,.72) 58%, rgba(5,33,29,.2) 100%); content: ""; }
.recreation-finder-hero > div:first-child { max-width: 690px; }
.recreation-finder-hero .eyebrow { color: #f2c946; }
.recreation-finder-hero h2 { margin: 8px 0 14px; color: #fff; font-size: 4rem; line-height: .94; }
.recreation-finder-hero p { margin: 0; color: #e8f2ee; font-size: 1.04rem; }
.recreation-finder-metric { display: grid; align-content: center; min-height: 150px; padding: 22px; background: #ee5d55; color: #102018; border: 3px solid #fffdf4; text-align: center; }
.recreation-finder-metric strong { font-size: 4.2rem; line-height: .82; }
.recreation-finder-metric span { margin-top: 10px; font-family: var(--font-condensed); font-size: .75rem; font-weight: 900; text-transform: uppercase; }
.pool-type-guide { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 2px solid var(--midnight); }
.pool-type-guide article { min-height: 175px; padding: 25px 28px; border-right: 1px solid rgba(16,32,24,.35); background: #53ddcc; color: #102018; }
.pool-type-guide article:nth-child(2) { background: #f2c946; }
.pool-type-guide article:nth-child(3) { border-right: 0; background: #ff8d87; }
.pool-type-guide span { color: #34443c; font-family: var(--font-condensed); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.pool-type-guide h3 { margin: 7px 0 10px; color: #102018; font-size: 1.45rem; }
.pool-type-guide strong { color: #102018; font-size: .82rem; }
.pool-type-guide p { margin: 7px 0 0; color: #34443c; font-size: .86rem; }
.recreation-controls { display: grid; grid-template-columns: minmax(240px, 1.5fr) repeat(2, minmax(170px, .8fr)); gap: 16px; align-items: end; padding: 30px 0 18px; border-bottom: 4px solid var(--midnight); }
.recreation-controls label { display: grid; gap: 7px; color: var(--muted); font-family: var(--font-condensed); font-size: .76rem; font-weight: 850; text-transform: uppercase; }
.recreation-controls input, .recreation-controls select { min-height: 52px; width: 100%; padding: 10px 14px; border: 2px solid var(--midnight); background: var(--panel); color: var(--ink); font-size: .95rem; }
.recreation-count { margin: 0; color: var(--ink); font-family: var(--font-condensed); font-size: .78rem; font-weight: 850; text-transform: uppercase; }
.recreation-controls .recreation-count { grid-column: 1 / -1; }
.recreation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 30px; }
.recreation-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 22px; align-content: start; padding: 30px 0; border-bottom: 1px solid var(--line); }
.recreation-card-kicker { grid-column: 1 / -1; color: var(--coral-text); font-family: var(--font-condensed); font-size: .7rem; font-weight: 900; text-transform: uppercase; }
.recreation-card h3 { margin: 0; color: var(--ink); font-size: 1.55rem; line-height: 1; }
.recreation-address { margin: 1px 0 0; color: var(--muted); font-size: .85rem; text-align: right; }
.recreation-facts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); margin: 6px 0 0; }
.recreation-facts div { padding: 12px 14px 12px 0; border-top: 1px solid var(--line); }
.recreation-facts dt { color: var(--muted); font-family: var(--font-condensed); font-size: .66rem; font-weight: 850; text-transform: uppercase; }
.recreation-facts dd { margin: 4px 0 0; color: var(--ink); font-size: .84rem; font-weight: 700; }
.recreation-feature-label { grid-column: 1 / -1; margin: 2px 0 -2px; color: var(--muted); font-family: var(--font-condensed); font-size: .66rem; font-weight: 850; text-transform: uppercase; }
.recreation-amenities { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.recreation-amenities li { padding: 5px 8px; background: var(--soft); color: var(--muted); font-size: .7rem; }
.recreation-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 4px; }
.recreation-actions a { min-height: 28px; color: var(--pool-dark); font-size: .8rem; font-weight: 850; }
.recreation-actions a:hover { color: var(--coral); }
.recreation-source { display: flex; justify-content: space-between; gap: 24px; padding: 24px 0; border-top: 4px solid var(--midnight); }
.recreation-source p { margin: 0; color: var(--muted); }
.recreation-source a { color: var(--pool-dark); font-weight: 800; white-space: nowrap; }
.recreation-empty { grid-column: 1 / -1; padding: 50px 0; color: var(--muted); }
.recreation-more { display: block; min-height: 52px; width: min(360px, 100%); margin: 28px auto 36px; border: 2px solid var(--midnight); background: var(--mango); color: #102018; font-weight: 900; cursor: pointer; }
.recreation-more:hover { background: var(--midnight); color: #fff; }
.recreation-more[hidden] { display: none; }
html.theme-dark .recreation-more { border-color: var(--mango); background: var(--mango); color: #102018; }
html.theme-dark .recreation-more:hover { background: var(--coral); border-color: var(--coral); }
html.theme-dark .recreation-finder-hero h2 { color: #fff; }
html.theme-dark .pool-type-guide h3,
html.theme-dark .pool-type-guide p { color: #102018; }
html.theme-dark .recreation-controls input,
html.theme-dark .recreation-controls select { border-color: #667269; background: #1c251f; color: #f8f5ec; color-scheme: dark; }
html.theme-dark .recreation-actions a,
html.theme-dark .recreation-source a { color: var(--mango); }
.golf-course-finder { width: min(1180px, calc(100% - 40px)); margin: 34px auto 86px; }
.golf-course-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 210px; min-height: 430px; overflow: hidden; align-items: end; padding: 50px; background: #123b44 url("villages/country-club-dining-official.jpg") center 47% / cover no-repeat; color: #fff; border-bottom: 9px solid #d7f052; isolation: isolate; }
.golf-course-hero::before { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(8,31,35,.96) 0%, rgba(8,31,35,.8) 48%, rgba(8,31,35,.16) 100%); content: ""; }
.golf-course-hero > div:first-child { max-width: 700px; }
.golf-course-hero .eyebrow { color: #d7f052; }
.golf-course-hero h1 { margin: 9px 0 16px; color: #fff; font-size: 4.5rem; line-height: .92; }
.golf-course-hero p { max-width: 630px; margin: 0; color: #edf6f4; font-size: 1.08rem; }
.golf-course-metric { display: grid; align-content: center; min-height: 155px; padding: 22px; border: 3px solid #fff; background: #ff705f; color: #102018; text-align: center; }
.golf-course-metric strong { font-size: 4.5rem; line-height: .8; }
.golf-course-metric span { margin-top: 12px; font-family: var(--font-condensed); font-size: .76rem; font-weight: 900; text-transform: uppercase; }
.golf-type-guide { display: grid; grid-template-columns: repeat(2, 1fr); border-bottom: 2px solid var(--midnight); }
.golf-type-guide article { min-height: 190px; padding: 29px 32px; background: #52dfd0; color: #102018; }
.golf-type-guide article + article { background: #f2c946; }
.golf-type-guide span { color: #314a42; font-family: var(--font-condensed); font-size: .7rem; font-weight: 900; text-transform: uppercase; }
.golf-type-guide h2 { margin: 6px 0 12px; color: #102018; font-size: 1.8rem; }
.golf-type-guide strong { display: block; color: #102018; font-size: .9rem; }
.golf-type-guide p { max-width: 500px; margin: 8px 0 0; color: #314a42; font-size: .88rem; }
.golf-course-controls { display: grid; grid-template-columns: minmax(230px, 1.4fr) repeat(3, minmax(155px, .8fr)); gap: 15px; align-items: end; padding: 30px 0 18px; border-bottom: 4px solid var(--midnight); }
.golf-course-controls label { display: grid; gap: 7px; color: var(--muted); font-family: var(--font-condensed); font-size: .75rem; font-weight: 850; text-transform: uppercase; }
.golf-course-controls input, .golf-course-controls select { width: 100%; min-height: 52px; padding: 10px 13px; border: 2px solid var(--midnight); background: var(--panel); color: var(--ink); font-size: .93rem; }
.golf-course-count { grid-column: 1 / -1; margin: 0; color: var(--ink); font-family: var(--font-condensed); font-size: .78rem; font-weight: 850; text-transform: uppercase; }
.golf-course-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; }
.golf-course-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 20px; align-content: start; padding: 30px 0; border-bottom: 1px solid var(--line); }
.golf-course-kicker { grid-column: 1 / -1; color: #8a3b37; font-family: var(--font-condensed); font-size: .7rem; font-weight: 900; text-transform: uppercase; }
.golf-course-card h3 { margin: 0; color: var(--ink); font-size: 1.6rem; line-height: 1; }
.golf-course-address { margin: 1px 0 0; color: var(--muted); font-size: .83rem; text-align: right; }
.golf-course-facts { grid-column: 1 / -1; display: grid; grid-template-columns: .6fr 1.2fr 1.2fr; margin: 6px 0 0; }
.golf-course-facts div { padding: 12px 13px 12px 0; border-top: 1px solid var(--line); }
.golf-course-facts dt { color: var(--muted); font-family: var(--font-condensed); font-size: .65rem; font-weight: 850; text-transform: uppercase; }
.golf-course-facts dd { margin: 4px 0 0; color: var(--ink); font-size: .82rem; font-weight: 700; }
.golf-course-access { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: .82rem; }
.golf-course-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 10px 18px; }
.golf-course-actions a { min-height: 28px; color: var(--pool-dark); font-size: .8rem; font-weight: 850; }
.golf-course-actions a:hover { color: var(--coral); }
.golf-course-source { display: flex; justify-content: space-between; gap: 24px; padding: 24px 0; border-top: 4px solid var(--midnight); }
.golf-course-source p { margin: 0; color: var(--muted); }
.golf-course-source a { color: var(--pool-dark); font-weight: 800; white-space: nowrap; }
.golf-course-empty { grid-column: 1 / -1; padding: 50px 0; color: var(--muted); }
.golf-course-more { display: block; width: min(360px, 100%); min-height: 52px; margin: 28px auto 36px; border: 2px solid var(--midnight); background: #d7f052; color: #102018; font-weight: 900; cursor: pointer; }
.golf-course-more:hover { background: var(--midnight); color: #fff; }
.golf-course-more[hidden] { display: none; }
html.theme-dark .golf-course-hero h1 { color: #fff; }
html.theme-dark .golf-type-guide h2, html.theme-dark .golf-type-guide p { color: #102018; }
html.theme-dark .golf-course-controls input, html.theme-dark .golf-course-controls select { border-color: #667269; background: #1c251f; color: #f8f5ec; color-scheme: dark; }
html.theme-dark .golf-course-kicker { color: var(--coral); }
html.theme-dark .golf-course-actions a, html.theme-dark .golf-course-source a { color: var(--mango); }
html.theme-dark .golf-course-more { border-color: #d7f052; background: #d7f052; color: #102018; }
html.theme-dark .golf-course-more:hover { border-color: var(--coral); background: var(--coral); }
html.theme-dark .cta-btn, html.theme-dark .story-link-btn { color: #102018; }
html.theme-dark .cta-btn:hover, html.theme-dark .story-link-btn:hover { border-color: var(--mango); background: var(--mango); color: #102018; }
html.theme-dark .badges .badge { background: #ffffff; }
html.theme-dark .pulse-notes b, html.theme-dark .concierge-copy .path-kicker { color: var(--coral); }
.events-desk { width: min(1180px, calc(100% - 40px)); margin: 34px auto 84px; }
.events-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr); min-height: 390px; overflow: hidden; background: #102d28; color: #fff; border-bottom: 8px solid var(--mango); }
.events-hero > div { display: flex; flex-direction: column; justify-content: center; padding: 54px; }
.events-hero h2 { max-width: 650px; margin: 8px 0 18px; color: #fff; font-size: 4.4rem; line-height: .94; }
.events-hero p { max-width: 610px; margin: 0; color: #d8e7e2; font-size: 1.08rem; }
.events-hero img { width: 100%; height: 100%; min-height: 390px; object-fit: cover; }
.day-builder { display: grid; grid-template-columns: minmax(220px, .72fr) minmax(460px, 1.28fr); gap: 32px 44px; padding: 34px 38px; background: #f2c946; color: #102018; border-bottom: 7px solid #ee5d55; }
.day-builder-copy { align-self: center; }
.day-builder-copy .eyebrow { color: #71352d; }
.day-builder-copy h3 { margin: 6px 0 10px; color: #102018; font-size: 2rem; line-height: 1; }
.day-builder-copy p { margin: 0; color: #34443c; font-size: .94rem; }
.day-builder-controls { display: grid; grid-template-columns: minmax(170px, .9fr) minmax(250px, 1.3fr) max-content; gap: 14px; align-items: end; }
.day-builder-controls label, .day-builder-controls fieldset { display: grid; gap: 7px; margin: 0; padding: 0; border: 0; color: #34443c; font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.day-builder-controls select { width: 100%; min-height: 52px; padding: 0 12px; border: 2px solid #102018; background: #fffdf4; color: #102018; font-weight: 750; }
.itinerary-pace { display: grid; grid-template-columns: repeat(3, 1fr); }
.itinerary-pace button { min-height: 52px; padding: 6px 10px; border: 2px solid #102018; border-right-width: 0; background: transparent; color: #102018; font-weight: 850; cursor: pointer; }
.itinerary-pace button:last-child { border-right-width: 2px; }
.itinerary-pace button small { display: block; margin-top: 2px; color: #46534b; font-size: .62rem; font-weight: 750; }
.itinerary-pace button.is-active { background: #102018; color: #fff; }
.itinerary-pace button.is-active small { color: #f2c946; }
.day-builder-submit { min-height: 52px; padding: 0 18px; border: 2px solid #102018; background: #ee5d55; color: #102018; font-weight: 900; white-space: nowrap; cursor: pointer; }
.day-builder-submit:hover { background: #102018; color: #fff; }
.day-builder-output { grid-column: 1 / -1; min-height: 54px; border-top: 1px solid rgba(16,32,24,.35); }
.day-builder-output > p { margin: 18px 0 0; color: #46534b; }
.day-builder-output > header { display: flex; justify-content: space-between; gap: 16px; padding: 18px 0 12px; color: #34443c; }
.day-builder-output > header strong { color: #102018; }
.day-itinerary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.day-itinerary > li { display: grid; grid-template-columns: auto 1fr; gap: 11px 13px; align-content: start; padding: 18px; border: 2px solid #102018; background: #fffdf4; }
.itinerary-stop { display: grid; width: 48px; height: 48px; place-items: center; background: #102018; color: #fff; font-size: .66rem; font-weight: 900; text-align: center; text-transform: uppercase; }
.day-itinerary time { color: #8a3b37; font-size: .74rem; font-weight: 900; text-transform: uppercase; }
.day-itinerary h4 { margin: 4px 0; color: #102018; font-size: 1.05rem; line-height: 1.08; }
.day-itinerary p { margin: 0; color: #46534b; font-size: .78rem; }
.day-itinerary .event-row-actions { grid-column: 1 / -1; grid-template-columns: repeat(2, max-content); justify-content: start; justify-items: start; margin-top: 6px; }
.day-itinerary .event-row-actions a { color: #8a3b37; }
.day-itinerary .event-row-actions a:last-child { grid-column: 1 / -1; }
.event-controls { display: grid; grid-template-columns: minmax(0, 1fr) 230px; gap: 26px; align-items: end; padding: 30px 0 20px; border-bottom: 2px solid var(--midnight); }
.event-day-rail { display: grid; grid-template-columns: repeat(7, minmax(88px, 1fr)); gap: 6px; overflow-x: auto; }
.event-day { min-height: 74px; padding: 10px 8px; border: 1px solid var(--line); background: var(--panel); color: var(--ink); text-align: left; cursor: pointer; }
.event-day span, .event-day strong { display: block; }
.event-day span { color: var(--muted); font-size: .75rem; text-transform: uppercase; }
.event-day strong { margin-top: 5px; font-size: .92rem; }
.event-day:hover { border-color: var(--coral); }
.event-day.is-active { border-color: var(--mango); background: var(--mango); color: #102018; box-shadow: inset 0 -4px 0 #102018; }
.event-day.is-active span { color: #34443c; }
.event-controls label { display: grid; gap: 7px; color: var(--muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.event-controls select { min-height: 48px; width: 100%; border: 1px solid var(--line); background: var(--panel); color: var(--ink); }
.event-status { display: flex; justify-content: space-between; gap: 20px; padding: 23px 0; color: var(--muted); border-bottom: 1px solid var(--line); }
.event-status strong { color: var(--ink); }
.event-list { display: grid; }
.event-row { display: grid; grid-template-columns: 116px minmax(0, 1fr) auto; gap: 26px; align-items: center; min-height: 128px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.event-row time { display: grid; gap: 3px; border-right: 1px solid var(--line); }
.event-row time strong { font-size: 1.15rem; color: var(--ink); }
.event-row time span, .event-row-copy p { color: var(--muted); font-size: .86rem; }
.event-row-copy h3 { margin: 3px 0 7px; color: var(--ink); font-size: 1.35rem; }
.event-row-copy p { margin: 0; }
.event-kind { color: #8a3b37; font-size: .7rem; font-weight: 900; text-transform: uppercase; }
.event-row-actions { display: grid; justify-items: end; gap: 7px; }
.event-row-actions a { color: var(--pool-dark); font-size: .78rem; font-weight: 850; white-space: nowrap; }
.event-row-actions a:last-child { font-size: .9rem; }
.event-row-actions a:hover { color: var(--coral); }
.events-note { display: grid; grid-template-columns: 130px 1fr; gap: 24px; margin-top: 34px; padding: 24px 0; border-top: 4px solid var(--midnight); }
.events-note p { margin: 0; color: var(--muted); }
.event-static-day > h2 { margin: 44px 0 0; padding-bottom: 14px; border-bottom: 4px solid var(--midnight); font-size: 1.65rem; }
.event-empty { padding: 54px 0; }
html.theme-dark .events-hero { background: #194a3d; }
html.theme-dark .day-builder { background: #f2c946; color: #102018; }
html.theme-dark .day-builder-copy h3,
html.theme-dark .day-builder-controls label,
html.theme-dark .day-builder-controls legend { color: #102018; }
html.theme-dark .day-itinerary .event-row-actions a { color: #8a3b37; }
html.theme-dark .day-builder .event-empty h4, html.theme-dark .day-builder .event-empty p { color: #102018; }
html.theme-dark .event-day { border-color: #59685e; background: #202a23; }
html.theme-dark .event-day:hover { border-color: var(--mango); }
html.theme-dark .event-day.is-active { border-color: var(--mango); background: var(--mango); color: #102018; }
html.theme-dark .event-kind { color: var(--coral); }
html.theme-dark .event-row-actions a { color: var(--mango); }
.weekend-planner { width: min(1180px, calc(100% - 40px)); margin: 34px auto 84px; }
.weekend-hero { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); min-height: 480px; overflow: hidden; background: #ee5d55; color: #102018; border-bottom: 10px solid #ffd84a; }
.weekend-hero > div { display: flex; flex-direction: column; justify-content: center; padding: 58px; }
.weekend-hero .eyebrow { color: #102018; }
.weekend-hero h2 { max-width: 620px; margin: 10px 0 22px; color: #102018; font-size: 4.9rem; line-height: .9; }
.weekend-hero p { max-width: 590px; margin: 0; color: #203b32; font-size: 1.08rem; }
.weekend-hero img { width: 100%; height: 100%; min-height: 480px; object-fit: cover; }
.weekend-score { display: grid; grid-template-columns: repeat(3, minmax(96px, .5fr)) minmax(230px, 1.5fr); align-items: stretch; background: #102d28; color: #fff; }
.weekend-score > span, .weekend-score > a { display: flex; min-height: 92px; align-items: center; padding: 18px 24px; border-right: 1px solid rgba(255,255,255,.2); }
.weekend-score > span { gap: 8px; font-family: var(--font-condensed); text-transform: uppercase; }
.weekend-score strong { color: #ffd84a; font-size: 2rem; line-height: 1; }
.weekend-score > a { justify-content: flex-end; color: #fff; font-weight: 850; text-align: right; }
.weekend-score > a:hover { background: #ffd84a; color: #102018; text-decoration: none; }
.weekend-day { margin-top: 64px; }
.weekend-day > header { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: 22px; align-items: baseline; padding-bottom: 16px; border-bottom: 5px solid var(--midnight); }
.weekend-day > header span { color: #a43d37; font-family: var(--font-condensed); font-size: .78rem; font-weight: 900; text-transform: uppercase; }
.weekend-day > header h2 { margin: 0; color: var(--ink); font-size: 2rem; line-height: 1; }
.weekend-day > header strong { color: var(--muted); font-family: var(--font-condensed); font-size: .8rem; text-transform: uppercase; }
html.theme-dark .weekend-hero { background: #ff716c; }
html.theme-dark .weekend-score { background: #f2c946; color: #102018; }
html.theme-dark .weekend-score strong, html.theme-dark .weekend-score > a { color: #102018; }
html.theme-dark .weekend-score > span, html.theme-dark .weekend-score > a { border-right-color: rgba(16,32,24,.25); }
html.theme-dark .weekend-score > a:hover { background: #53ddcc; }
html.theme-dark .weekend-day > header { border-bottom-color: var(--mango); }
html.theme-dark .weekend-day > header span { color: var(--coral); }
.destination-pulse .section-kicker, .activity-rhythm .section-kicker, .library-feature .section-kicker { color: #725500; }
html.theme-dark .destination-pulse .section-kicker, html.theme-dark .activity-rhythm .section-kicker { color: var(--mango); }
@media (max-width: 980px) {
  .site-command { grid-template-columns: 1fr; gap: 0; padding-bottom: 10px; }
  .site-footer { grid-template-columns: 1fr; }
  .destination-pulse, .section-heading, .library-feature-head { grid-template-columns: 1fr; }
  .home-lineup-heading { grid-template-columns: 1fr; }
  .home-lineup-list { grid-template-columns: 1fr; }
  .home-lineup-event, .home-lineup-event:nth-child(2), .home-lineup-event:last-child { padding: 20px 0; border-right: 0; border-bottom: 1px solid rgba(16,32,24,.35); }
  .home-lineup-event:last-child { border-bottom: 0; }
  .pulse-actions { grid-column: 1; }
  .rhythm-track { grid-template-columns: repeat(2, 1fr); }
  .journey-row { grid-template-columns: 58px 1fr; }
  .journey-row p, .journey-row .editorial-link { grid-column: 2; justify-self: start; text-align: left; }
  .place-triptych { grid-template-columns: 1fr; }
  .place-panel { min-height: 480px; }
  .concierge-copy, .concierge-workbench { grid-template-columns: 1fr; }
  .concierge-choices-many { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sinkhole-map-panel { grid-template-columns: 1fr; }
  .sinkhole-map-insight { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 22px 0 0; border-top: 2px solid var(--line); border-left: 0; }
  .sinkhole-map-insight > .story-evidence-label, .sinkhole-map-insight > strong { grid-column: 1 / -1; }
  .events-hero { grid-template-columns: 1fr; }
  .events-hero img { min-height: 280px; max-height: 360px; }
  .day-builder { grid-template-columns: 1fr; }
  .day-builder-controls { grid-template-columns: 1fr 1.4fr; }
  .day-builder-submit { grid-column: 1 / -1; }
  .day-itinerary { grid-template-columns: 1fr; }
  .listing-overview { grid-template-columns: 1fr; }
  .listing-overview img { min-height: 280px; max-height: 360px; }
  .listing-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .listing-results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .weekend-hero { grid-template-columns: 1fr; }
  .weekend-hero img { min-height: 300px; max-height: 390px; }
  .weekend-score { grid-template-columns: repeat(3, 1fr); }
  .weekend-score > a { grid-column: 1 / -1; justify-content: center; min-height: 64px; border-top: 1px solid rgba(255,255,255,.2); text-align: center; }
  .event-controls { grid-template-columns: 1fr; }
  .event-day-rail { grid-template-columns: repeat(7, 104px); }
}

@media (max-width: 720px) {
  .site-header-inner { min-height: 78px; }
  .header-library-link { display: none; }
  .site-command { border-bottom-width: 1px; }
  nav#tabs { width: 100%; max-width: 100%; overflow: visible; }
  .navbar { width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; }
  .navbar > .navgroup { flex: 0 0 auto; }
  .hero { min-height: 760px; padding-top: 48px; background-position: 66% center; }
  .hero { background-image: linear-gradient(90deg, rgba(5,24,20,.95) 0%, rgba(5,24,20,.76) 38%, rgba(5,24,20,.12) 76%), linear-gradient(0deg, rgba(5,24,20,.7), transparent 46%), url("villages/lake-sumter-landing-960.webp"); }
  .hero-inner { padding-bottom: 210px; }
  .hero-title { font-size: clamp(3.25rem, 16vw, 5.15rem); }
  .hero-sub { font-size: 1rem; }
  .hero-tape { right: 0; bottom: 10px; left: 0; padding: 0 20px; }
  .hero-tape-item { min-height: 88px; padding: 10px; }
  .destination-pulse { width: calc(100% - 36px); gap: 36px; padding: 82px 0; }
  .home-live-lineup { padding: 44px 18px; }
  .home-lineup-heading h2 { font-size: 2.85rem; }
  .home-lineup-event { grid-template-columns: 74px minmax(0, 1fr); min-height: 0; }
  .pulse-intro h2, .section-heading h2, .library-feature h2 { font-size: 3rem; }
  .pulse-notes span { grid-template-columns: 58px 1fr; }
  .activity-rhythm, .decision-journeys, .library-feature, .partner-lane { padding: 80px 18px; }
  .rhythm-track { grid-template-columns: 1fr; gap: 44px; }
  .rhythm-track::before { display: none; }
  .rhythm-stop img { aspect-ratio: 16 / 10; }
  .journey-list { margin-top: 44px; }
  .journey-row { grid-template-columns: 42px 1fr; padding: 26px 0; }
  .journey-row:hover { padding-right: 8px; padding-left: 8px; }
  .library-shelf { grid-template-columns: 40px 1fr; }
  .library-shelf .editorial-link { grid-column: 2; justify-self: start; }
  .place-panel { min-height: 430px; }
  .buyer-concierge { width: calc(100% - 36px); margin: 80px auto; }
  .concierge-copy { grid-template-columns: 1fr; gap: 16px; }
  .concierge-copy .path-kicker { grid-column: 1; }
  .concierge-copy h2 { font-size: 3rem; }
  .concierge-workbench { box-shadow: 8px 8px 0 var(--mango); }
  .concierge-form, .concierge-result { padding: 28px 20px; }
  .concierge-choices, .concierge-choices-many { grid-template-columns: 1fr; }
  .site-footer { padding: 58px 18px 28px; }
  .footer-nav { grid-template-columns: 1fr 1fr; }
  .directory-intro, .dining-library-hero { padding: 36px 22px; border-left-width: 6px; }
  .page-head h1 { max-width: 100%; overflow-wrap: anywhere; font-size: 2.8rem; }
  .browse-group { grid-template-columns: 1fr; }
  .story-section-body, .block p { overflow-wrap: anywhere; }
  .sinkhole-map-insight { grid-template-columns: 1fr; }
  .zoombtn { flex: 1 1 140px; }
  .healthcare-directory .directory-controls { grid-template-columns: 1fr; }
  .emergency-banner { padding: 16px; border-left-width: 6px; }
  .events-desk { width: calc(100% - 28px); margin-top: 20px; }
  .events-hero { min-height: 0; }
  .events-hero > div { padding: 38px 22px; }
  .events-hero h2 { font-size: 3.15rem; }
  .events-hero img { min-height: 220px; }
  .day-builder { gap: 24px; padding: 30px 18px; }
  .day-builder-copy h3 { font-size: 1.7rem; }
  .day-builder-controls { grid-template-columns: 1fr; }
  .day-builder-submit { grid-column: 1; }
  .day-builder-output > header { display: grid; gap: 4px; }
  .listing-overview { min-height: 0; margin-top: 4px; }
  .listing-overview-copy { padding: 36px 22px; }
  .listing-overview h2 { font-size: 2.8rem; }
  .listing-overview img { min-height: 220px; }
  .listing-overview-stats { grid-template-columns: repeat(2, 1fr); }
  .listing-overview-stats > div { padding: 14px 8px 10px 0; border-bottom: 1px solid rgba(255,255,255,.2); }
  .listing-scope { padding: 16px; }
  .listing-controls { grid-template-columns: 1fr; padding: 18px; }
  .listing-field.is-search { grid-column: 1; }
  .listing-count { justify-content: flex-start; }
  .listing-results { grid-template-columns: 1fr; }
  .listing-result .body { padding: 20px 18px; }
  .weekend-planner { width: calc(100% - 28px); margin-top: 20px; }
  .weekend-hero { min-height: 0; }
  .weekend-hero > div { padding: 40px 22px; }
  .weekend-hero h2 { font-size: 3.35rem; }
  .weekend-hero img { min-height: 235px; }
  .weekend-score > span { display: grid; min-height: 82px; justify-items: center; padding: 14px 6px; text-align: center; }
  .weekend-score strong { font-size: 1.75rem; }
  .weekend-day { margin-top: 48px; }
  .weekend-day > header { grid-template-columns: 1fr auto; gap: 8px 16px; }
  .weekend-day > header span { grid-column: 1 / -1; }
  .weekend-day > header h2 { font-size: 1.55rem; }
  .event-status { display: grid; gap: 6px; }
  .event-row { grid-template-columns: 82px minmax(0, 1fr); gap: 16px; }
  .event-row-actions { grid-column: 2; grid-template-columns: repeat(2, max-content); justify-content: start; justify-items: start; gap: 9px 16px; }
  .event-row-actions a:last-child { grid-column: 1 / -1; }
  .events-note { grid-template-columns: 1fr; gap: 8px; }
}

/* Villages and areas market explorer */
.geo-index { margin-top: 48px; }
.geo-index figure { margin: 0; }
.geo-index-hero { display: grid; grid-template-columns: minmax(0, .88fr) minmax(440px, 1.12fr); min-height: 520px; overflow: hidden; border-bottom: 10px solid var(--mango); background: var(--coral); color: #102018; }
.geo-index-hero-copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(38px, 5vw, 72px); }
.geo-index-eyebrow, .geo-index-number { margin: 0 0 13px; color: #71352d; font-family: var(--font-condensed); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.geo-index-hero h2 { max-width: 620px; color: #102018; font-size: clamp(3.3rem, 5.7vw, 6.2rem); line-height: .9; }
.geo-index-hero-copy > p:not(.geo-index-eyebrow) { max-width: 570px; margin: 24px 0 28px; color: #203b32; font-size: 1.08rem; }
.geo-index-hero figure, .geo-index-region figure { position: relative; min-width: 0; overflow: hidden; }
.geo-index-hero img, .geo-index-region img { display: block; width: 100%; height: 100%; object-fit: cover; }
.geo-index figcaption { position: absolute; right: 14px; bottom: 12px; padding: 5px 9px; background: rgba(9, 43, 36, .88); color: white; font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.geo-index-overview { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; border-bottom: 1px solid var(--line); background: var(--midnight); color: white; }
.geo-index-overview .geo-stat { min-height: 112px; padding: 24px 28px; border-right: 1px solid rgba(255,255,255,.2); }
.geo-index-overview .geo-stat:last-child { border-right: 0; }
.geo-index-overview dt, .geo-index-metrics dt { color: inherit; font-family: var(--font-condensed); font-size: .72rem; font-weight: 700; text-transform: uppercase; }
.geo-index-overview dd { margin: 6px 0 0; color: var(--mango); font-family: var(--font-display); font-size: 2rem; font-weight: 700; line-height: 1; }
.village-compare { margin: 0 calc(50% - 50vw); padding: 84px max(24px, calc((100vw - var(--content)) / 2)); background: #f8d255; color: #102018; border-bottom: 10px solid var(--pool); scroll-margin-top: 90px; }
.village-compare > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 36px; align-items: end; }
.village-compare > header h2 { max-width: 800px; color: #102018; font-size: clamp(3rem, 5vw, 5.4rem); }
.village-compare > header p:not(.geo-index-eyebrow) { max-width: 710px; color: #34473f; }
.village-compare > header > a { display: inline-flex; align-items: center; min-height: 28px; color: #075d51; font-weight: 850; }
.village-compare-controls { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 44px; background: rgba(16,32,24,.28); border: 1px solid rgba(16,32,24,.28); }
.village-compare-controls label { display: block; padding: 18px; background: #fff8dc; }
.village-compare-controls label span { display: block; margin-bottom: 7px; color: #5b4630; font-family: var(--font-condensed); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.village-compare-controls select { width: 100%; min-height: 46px; margin: 0; border-color: #75683f; background: white; color: #102018; font-weight: 750; }
.village-compare-tablewrap { max-width: 100%; overflow-x: auto; margin-top: 24px; border-top: 5px solid #102018; background: #fffdf4; }
.village-compare-table { width: 100%; min-width: 820px; border-collapse: collapse; color: #102018; }
.village-compare-table th, .village-compare-table td { width: 26%; padding: 15px 18px; border-right: 1px solid #d7cfb4; border-bottom: 1px solid #d7cfb4; text-align: left; vertical-align: top; }
.village-compare-table th:first-child { width: 22%; }
.village-compare-table tr > *:last-child { border-right: 0; }
.village-compare-table thead th { padding-top: 22px; padding-bottom: 22px; background: #102018; color: white; font-family: var(--font-display); font-size: 1.2rem; }
.village-compare-table thead th:first-child { color: #f8d255; font-family: var(--font-condensed); font-size: .76rem; text-transform: uppercase; }
.village-compare-table thead a { display: inline-flex; align-items: center; min-height: 24px; color: #73e0ce; }
.village-compare-table tbody th { color: #5c5d50; font-family: var(--font-condensed); font-size: .72rem; text-transform: uppercase; }
.village-compare-table td { font-size: .84rem; font-weight: 700; }
.village-compare-table tbody tr:nth-child(even) { background: #f4f0df; }
.village-compare-actions { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; margin-top: 20px; }
.village-compare-actions button { min-height: 42px; margin: 0; border: 2px solid #102018; background: transparent; color: #102018; font-weight: 850; }
.village-compare-actions button:first-child { background: #102018; color: white; }
.village-compare-actions [role="status"] { color: #34473f; font-size: .78rem; font-weight: 750; }
.village-compare > footer { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 30px; margin-top: 24px; padding-top: 24px; border-top: 2px solid #102018; }
.village-compare > footer strong { font-family: var(--font-display); font-size: 1.15rem; }
.village-compare > footer p { margin: 0; color: #495b53; font-size: .78rem; }
.geo-index-jumps { display: grid; grid-template-columns: repeat(6, 1fr); margin: 0; border-bottom: 1px solid var(--line); }
.geo-index-jumps a { display: grid; grid-template-rows: auto 1fr auto; min-width: 0; min-height: 136px; padding: 19px 15px; border-right: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.geo-index-jumps a:last-child { border-right: 0; }
.geo-index-jumps a:hover { background: var(--mango); color: #102018; }
.geo-index-jumps span { color: var(--coral-text); font-family: var(--font-condensed); font-size: .72rem; font-weight: 800; }
.geo-index-jumps strong { align-self: center; font-family: var(--font-display); font-size: 1.05rem; line-height: 1.1; }
.geo-index-jumps small { color: var(--muted); font-size: .72rem; }
.geo-index-jumps a:hover span, .geo-index-jumps a:hover small { color: #34443c; }
.geo-index-intro { display: grid; grid-template-columns: .55fr 1.2fr .8fr; gap: 38px; align-items: end; padding: 110px 0 64px; }
.geo-index-intro .geo-index-eyebrow { align-self: start; }
.geo-index-intro h2 { font-size: clamp(2.6rem, 4.5vw, 4.8rem); }
.geo-index-intro > p:last-child { margin: 0; color: var(--muted); }
.geo-index-region { padding: 76px 0; border-top: 5px solid var(--midnight); scroll-margin-top: 86px; }
.geo-index-region-lead { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(390px, .9fr); min-height: 430px; }
.geo-index-region-copy { display: flex; flex-direction: column; justify-content: center; padding: 48px 7vw 48px 0; }
.geo-index-region h2 { font-size: clamp(2.8rem, 5vw, 5.2rem); }
.geo-index-region h2 a { color: inherit; text-decoration: none; }
.geo-index-region h2 a:hover { color: var(--coral-text); }
.geo-index-region-copy > p:not(.geo-index-number) { max-width: 630px; margin: 20px 0 4px; color: var(--muted); font-size: 1.02rem; }
.geo-index-region figure { min-height: 390px; box-shadow: 14px 14px 0 var(--mango); }
.geo-index-metrics { display: grid; grid-template-columns: repeat(4, 1fr); margin: 30px 0 24px; border-block: 1px solid var(--line); }
.geo-index-metrics .geo-stat { padding: 16px 14px 16px 0; }
.geo-index-metrics dt { color: var(--muted); }
.geo-index-metrics dd { margin: 5px 0 0; color: var(--ink); font-family: var(--font-display); font-size: 1.2rem; font-weight: 700; line-height: 1.1; }
.geo-index-area-link { align-self: flex-start; color: var(--pool-dark); font-weight: 800; }
.geo-index-list-head { display: flex; justify-content: space-between; gap: 24px; align-items: end; margin-top: 58px; padding-bottom: 14px; border-bottom: 2px solid var(--midnight); }
.geo-index-list-head h3 { font-size: 1.45rem; }
.geo-index-list-head span { color: var(--muted); font-size: .72rem; }
.geo-index-villages { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.geo-index-village-row { display: grid; grid-template-columns: minmax(150px, 1.5fr) .6fr .8fr .65fr; gap: 12px; align-items: center; min-height: 66px; padding: 12px 16px 12px 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.geo-index-village-row:nth-child(even) { padding-left: 16px; border-right: 0; }
.geo-index-village-row strong { min-width: 0; color: var(--ink); font-size: .9rem; }
.geo-index-village-row strong a { color: var(--pool-dark); }
.geo-index-village-row span { color: var(--muted); font-size: .72rem; text-align: right; }
.geo-index-more { margin-top: 22px; border: 1px solid var(--line); }
.geo-index-more > summary { padding: 16px 18px; background: var(--panel-2); color: var(--ink); font-weight: 800; cursor: pointer; }
.geo-index-more > p { margin: 0; padding: 18px 18px 4px; color: var(--muted); font-size: .84rem; }
.geo-index-villages-small { padding: 0 18px 18px; }
.geo-index-note { display: grid; grid-template-columns: 220px minmax(0, 1fr) auto; gap: 32px; align-items: start; margin-top: 24px; padding: 36px 0; border-top: 5px solid var(--mango); }
.geo-index-note strong { font-family: var(--font-display); font-size: 1.2rem; }
.geo-index-note p { margin: 0; color: var(--muted); }
.geo-index-note a { font-weight: 800; white-space: nowrap; }
html.theme-dark .geo-index-hero { background: #ff7465; }
html.theme-dark .geo-index-hero h2, html.theme-dark .geo-index-hero .geo-index-eyebrow { color: #102018; }
html.theme-dark .geo-index-overview { background: #0b110e; }
html.theme-dark .village-compare { background: #d8ae31; color: #102018; border-bottom-color: #24bba3; }
html.theme-dark .village-compare .geo-index-eyebrow { color: #6d211b; }
html.theme-dark .village-compare > header > a { color: #102018; text-decoration: underline; }
html.theme-dark .village-compare-controls label { background: #fff4ce; }
html.theme-dark .village-compare-tablewrap { background: #fffdf4; }
html.theme-dark .village-compare > footer p { color: #102018; }
html.theme-dark .village-compare-actions [role="status"] { color: #102018; }
html.theme-dark .geo-index-jumps a:hover { background: var(--mango); color: #102018; }
html.theme-dark .geo-index-jumps a:hover strong { color: #102018; }
html.theme-dark .geo-index-jumps span, html.theme-dark .geo-index-number, html.theme-dark .geo-index-eyebrow { color: var(--coral); }
html.theme-dark .geo-index-area-link, html.theme-dark .geo-index-village-row strong a { color: var(--mango); }
html.theme-dark .geo-index-more > summary { background: var(--panel-2); color: var(--ink); }

@media (max-width: 980px) {
  .geo-index-hero, .geo-index-region-lead { grid-template-columns: 1fr; }
  .geo-index-hero figure { min-height: 360px; }
  .geo-index-jumps { grid-template-columns: repeat(3, 1fr); }
  .village-compare > header { grid-template-columns: 1fr; }
  .geo-index-jumps a:nth-child(3) { border-right: 0; }
  .geo-index-jumps a:nth-child(-n+3) { border-bottom: 1px solid var(--line); }
  .geo-index-intro { grid-template-columns: 1fr 1fr; }
  .geo-index-intro .geo-index-eyebrow { grid-column: 1 / -1; }
  .geo-index-region-copy { padding-right: 0; }
  .geo-index-region figure { min-height: 360px; }
  .geo-index-villages { grid-template-columns: 1fr; }
  .geo-index-village-row, .geo-index-village-row:nth-child(even) { padding-right: 0; padding-left: 0; border-right: 0; }
  .geo-index-note { grid-template-columns: 180px 1fr; }
  .geo-index-note a { grid-column: 2; }
}

@media (max-width: 720px) {
  .geo-index { margin-top: 26px; }
  .geo-index-hero { min-height: 0; }
  .geo-index-hero-copy { padding: 40px 22px; }
  .geo-index-hero h2 { font-size: 3.4rem; }
  .geo-index-hero figure { min-height: 240px; }
  .geo-index-overview { grid-template-columns: repeat(2, 1fr); }
  .geo-index-overview .geo-stat { min-height: 94px; padding: 18px; border-bottom: 1px solid rgba(255,255,255,.2); }
  .geo-index-overview dd { font-size: 1.55rem; }
  .village-compare { padding-top: 64px; padding-bottom: 64px; }
  .village-compare > header h2 { font-size: 3rem; }
  .village-compare-controls { grid-template-columns: 1fr; }
  .village-compare-controls label { padding: 14px; }
  .village-compare-tablewrap { outline-offset: 3px; }
  .village-compare > footer { grid-template-columns: 1fr; gap: 8px; }
  .geo-index-jumps a { min-height: 116px; padding: 14px 10px; }
  .geo-index-jumps strong { min-width: 0; overflow-wrap: anywhere; font-size: .96rem; }
  .geo-index-intro { grid-template-columns: 1fr; gap: 20px; padding: 76px 0 48px; }
  .geo-index-intro .geo-index-eyebrow { grid-column: 1; }
  .geo-index-intro h2 { font-size: 3rem; }
  .geo-index-region { padding: 54px 0; }
  .geo-index-region-copy { padding: 24px 0 38px; }
  .geo-index-region h2 { overflow-wrap: anywhere; font-size: 2.85rem; }
  .geo-index-region figure { min-height: 260px; box-shadow: 8px 8px 0 var(--mango); }
  .geo-index-metrics { grid-template-columns: repeat(2, 1fr); }
  .geo-index-list-head { display: block; margin-top: 44px; }
  .geo-index-list-head span { display: none; }
  .geo-index-village-row { grid-template-columns: minmax(130px, 1.3fr) .7fr .8fr; gap: 8px; }
  .geo-index-village-row span:last-child { grid-column: 2 / -1; margin-top: -8px; }
  .geo-index-note { grid-template-columns: 1fr; gap: 12px; }
  .geo-index-note a { grid-column: 1; white-space: normal; }
}

/* Regional market reports */
.area-report { margin-top: -18px; }
.area-report figure { position: relative; margin: 0; overflow: hidden; }
.area-report-hero { display: grid; grid-template-columns: minmax(0, .9fr) minmax(440px, 1.1fr); min-height: 540px; overflow: hidden; border-bottom: 10px solid var(--mango); background: var(--midnight); color: white; }
.area-report-hero-copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(42px, 6vw, 78px); }
.area-report-kicker { margin: 0 0 12px; color: var(--coral); font-family: var(--font-condensed); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.area-report-hero h1 { max-width: 700px; color: white; font-size: clamp(4rem, 7vw, 7.4rem); line-height: .88; }
.area-report-hero-copy > p:not(.area-report-kicker) { max-width: 580px; margin: 25px 0 28px; color: #d8e6e1; font-size: 1.08rem; }
.area-report-actions { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; }
.area-report-actions > a:not(.btn) { color: var(--mango); font-weight: 800; }
.area-report-hero img { display: block; width: 100%; height: 100%; object-fit: cover; }
.area-report figcaption { position: absolute; right: 14px; bottom: 12px; padding: 5px 9px; background: rgba(9,43,36,.88); color: white; font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.area-report-overview { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; background: var(--mango); color: #102018; }
.area-report-overview .geo-stat { min-height: 116px; padding: 24px 28px; border-right: 1px solid rgba(16,32,24,.24); }
.area-report-overview .geo-stat:last-child { border-right: 0; }
.area-report-overview dt { font-family: var(--font-condensed); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.area-report-overview dd { margin: 7px 0 0; font-family: var(--font-display); font-size: clamp(1.25rem, 2vw, 2rem); font-weight: 800; line-height: 1.05; }
.area-report-read { display: grid; grid-template-columns: minmax(300px, .85fr) minmax(0, 1.15fr); gap: 8vw; align-items: start; padding: 100px 0; border-bottom: 1px solid var(--line); }
.area-report-read h2 { max-width: 600px; font-size: clamp(2.8rem, 4.6vw, 5rem); }
.area-report-read > div:last-child { padding-top: 28px; color: var(--muted); font-size: 1.03rem; }
.area-report-read > div:last-child strong { color: var(--ink); }
.area-report-directory { padding: 94px 0 60px; }
.area-report-directory > header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .55fr); gap: 7vw; align-items: end; margin-bottom: 44px; }
.area-report-directory h2 { font-size: clamp(2.7rem, 4.5vw, 4.8rem); }
.area-report-directory > header > p { margin: 0; color: var(--muted); }
.area-report-table-head, .area-report-village { display: grid; grid-template-columns: minmax(190px, 1.35fr) .65fr .8fr .8fr; gap: 20px; align-items: center; }
.area-report-table-head { min-height: 46px; padding: 0 16px; border-bottom: 3px solid var(--midnight); color: var(--muted); font-family: var(--font-condensed); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.area-report-villages { margin: 0; padding: 0; list-style: none; }
.area-report-village { min-height: 78px; padding: 14px 16px; border-bottom: 1px solid var(--line); transition: background .18s ease, padding .18s ease; }
.area-report-village:hover { padding-right: 22px; padding-left: 22px; background: var(--sky); }
.area-report-village strong { min-width: 0; font-family: var(--font-display); font-size: 1.2rem; }
.area-report-village strong a { color: var(--pool-dark); }
.area-report-village span { color: var(--muted); font-size: .84rem; }
.area-report-more { margin-top: 28px; border: 1px solid var(--line); }
.area-report-more > summary { padding: 18px 20px; background: var(--panel-2); color: var(--ink); font-weight: 800; cursor: pointer; }
.area-report-more > p { margin: 0; padding: 20px 20px 6px; color: var(--muted); font-size: .86rem; }
.area-report-more .area-report-villages { padding: 0 20px 20px; }
.area-report-note { display: grid; grid-template-columns: 190px minmax(0, 1fr) auto; gap: 30px; align-items: start; padding: 36px 0; border-top: 5px solid var(--midnight); }
.area-report-note strong { font-family: var(--font-display); font-size: 1.2rem; }
.area-report-note p { margin: 0; color: var(--muted); }
.area-report-note a { font-weight: 800; white-space: nowrap; }
html.theme-dark .area-report-hero { background: #0b110e; }
html.theme-dark .area-report-kicker { color: var(--coral); }
html.theme-dark .area-report-overview { background: var(--mango); color: #102018; }
html.theme-dark .area-report-village strong a { color: var(--mango); }
html.theme-dark .area-report-village:hover { background: #26352a; }
html.theme-dark .area-report-more > summary { background: var(--panel-2); color: var(--ink); }

@media (max-width: 980px) {
  .area-report-hero { grid-template-columns: 1fr; }
  .area-report-hero figure { min-height: 380px; }
  .area-report-read { gap: 5vw; }
  .area-report-directory > header { grid-template-columns: 1fr; gap: 22px; }
  .area-report-note { grid-template-columns: 160px 1fr; }
  .area-report-note a { grid-column: 2; }
}

@media (max-width: 720px) {
  .area-report { margin-top: -34px; }
  .area-report-hero { min-height: 0; }
  .area-report-hero-copy { padding: 46px 22px; }
  .area-report-hero h1 { overflow-wrap: anywhere; font-size: 2.5rem; }
  .area-report-hero figure { min-height: 245px; }
  .area-report-actions { align-items: flex-start; }
  .area-report-overview { grid-template-columns: repeat(2, 1fr); }
  .area-report-overview .geo-stat { min-height: 100px; padding: 18px; border-bottom: 1px solid rgba(16,32,24,.24); }
  .area-report-overview dd { font-size: 1.35rem; }
  .area-report-read { grid-template-columns: 1fr; gap: 16px; padding: 72px 0; }
  .area-report-read h2, .area-report-directory h2 { font-size: 3rem; }
  .area-report-read > div:last-child { padding-top: 0; }
  .area-report-directory { padding: 70px 0 46px; }
  .area-report-table-head { display: none; }
  .area-report-village { grid-template-columns: minmax(135px, 1.2fr) .8fr .9fr; gap: 8px; min-height: 82px; padding-right: 0; padding-left: 0; }
  .area-report-village:hover { padding-right: 7px; padding-left: 7px; }
  .area-report-village strong { font-size: 1.02rem; }
  .area-report-village span { font-size: .72rem; text-align: right; }
  .area-report-village span:last-child { grid-column: 2 / -1; margin-top: -9px; }
  .area-report-more .area-report-villages { padding: 0 12px 12px; }
  .area-report-note { grid-template-columns: 1fr; gap: 12px; }
  .area-report-note a { grid-column: 1; white-space: normal; }
}

/* Individual village neighborhood dossiers */
.village-dossier { margin-top: -18px; }
.village-dossier figure { position: relative; margin: 0; overflow: hidden; }
.village-dossier-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(440px, 1fr); min-height: 560px; overflow: hidden; border-bottom: 10px solid var(--pool); background: var(--coral); color: #102018; }
.village-dossier-hero-copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(42px, 6vw, 80px); }
/* 3.09:1 on the coral band. #4d1a14 keeps the burnt-red look at 4.72:1. */
.village-dossier-kicker { margin: 0 0 12px; color: #4d1a14; font-family: var(--font-condensed); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.village-dossier-hero h1 { max-width: 760px; color: #102018; font-size: clamp(3.7rem, 6.3vw, 6.8rem); line-height: .88; }
/* 4.01:1 on coral — the line carrying the price and days-on-market. 4.91:1. */
.village-dossier-hero-copy > p:not(.village-dossier-kicker) { max-width: 600px; margin: 26px 0 30px; color: #1a2b26; font-size: 1.08rem; }
.village-dossier-actions { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; }
.village-dossier-actions > a:not(.btn) { color: #102018; font-weight: 850; }
.village-dossier-hero img { display: block; width: 100%; height: 100%; object-fit: cover; }
.village-dossier figcaption { position: absolute; right: 14px; bottom: 12px; padding: 5px 9px; background: rgba(9,43,36,.88); color: white; font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.village-dossier-overview { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; background: var(--midnight); color: white; }
.village-dossier-overview .geo-stat { min-height: 116px; padding: 24px 28px; border-right: 1px solid rgba(255,255,255,.2); }
.village-dossier-overview .geo-stat:last-child { border-right: 0; }
.village-dossier-overview dt { color: #c8d7d2; font-family: var(--font-condensed); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.village-dossier-overview dd { margin: 7px 0 0; color: var(--mango); font-family: var(--font-display); font-size: clamp(1.25rem, 2vw, 2rem); font-weight: 800; line-height: 1.05; }
.village-dossier > .callout { margin: 28px 0 0; }
.village-dossier-read { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(0, 1.1fr); gap: 8vw; padding: 100px 0; border-bottom: 1px solid var(--line); }
.village-dossier-read h2, .village-dossier-checks h2, .village-dossier-inventory > header h2 { font-size: clamp(2.7rem, 4.5vw, 4.8rem); }
.village-dossier-read > div:last-child { padding-top: 28px; color: var(--muted); font-size: 1.03rem; }
.village-dossier-read strong { color: var(--ink); }
.village-dossier-location { margin: 0 calc(50% - 50vw); padding: 92px max(24px, calc((100vw - var(--content)) / 2)); background: #e8f6f1; color: #102018; border-top: 10px solid var(--pool); border-bottom: 10px solid var(--mango); }
.village-dossier-location > header { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .55fr); gap: clamp(36px, 7vw, 110px); align-items: end; }
.village-dossier-location > header h2 { max-width: 760px; color: #102018; font-size: clamp(2.9rem, 5vw, 5.6rem); }
.village-dossier-location > header p:not(.village-dossier-kicker) { max-width: 680px; color: #40544e; }
.village-dossier-location > header aside { padding: 0 0 8px 28px; border-left: 5px solid #f05d4f; }
.village-dossier-location > header aside span, .village-dossier-location > header aside strong, .village-dossier-location > header aside b { display: block; }
.village-dossier-location > header aside span { color: #50645e; font-family: var(--font-condensed); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.village-dossier-location > header aside strong { margin: 8px 0 4px; color: #102018; font-family: var(--font-display); font-size: 1.55rem; line-height: 1.05; }
.village-dossier-location > header aside b { margin-bottom: 10px; color: #9d2d24; font-size: 1.05rem; }
.village-dossier-location a { display: inline-flex; align-items: center; min-height: 24px; color: #075d51; font-weight: 850; }
.village-dossier-location-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 64px; border-top: 5px solid #102018; }
.village-dossier-location-grid > article { min-width: 0; padding: 30px 30px 24px 0; border-right: 1px solid #b8cec7; }
.village-dossier-location-grid > article + article { padding-left: 30px; }
.village-dossier-location-grid > article:last-child { border-right: 0; }
.location-section-number { color: #9d2d24; font-family: var(--font-condensed); font-size: .75rem; font-weight: 900; }
.village-dossier-location-grid h3 { margin: 8px 0; color: #102018; font-size: 1.65rem; }
.village-dossier-location-grid article > p { min-height: 50px; margin: 0 0 18px; color: #50645e; font-size: .84rem; }
.village-dossier-location-grid ul { min-height: 174px; margin: 0 0 20px; padding: 0; list-style: none; border-top: 1px solid #b8cec7; }
.village-dossier-location-grid li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: start; padding: 14px 0; border-bottom: 1px solid #b8cec7; }
.village-dossier-location-grid li strong, .village-dossier-location-grid li span { display: block; }
.village-dossier-location-grid li strong { color: #102018; font-size: .85rem; }
.village-dossier-location-grid li span { margin-top: 3px; color: #5b6d67; font-size: .7rem; }
.village-dossier-location-grid li > div:last-child { display: flex; flex-wrap: wrap; gap: 4px 10px; justify-content: flex-end; text-align: right; }
.village-dossier-location-grid li b { flex-basis: 100%; color: #102018; font-size: .85rem; }
.village-dossier-location-grid li a { font-size: .69rem; }
.location-directory-link { font-size: .78rem; }
.village-dossier-location > footer { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 30px; align-items: center; margin-top: 34px; padding: 26px 0; border-top: 2px solid #102018; border-bottom: 2px solid #102018; }
.village-dossier-location > footer strong { color: #102018; font-family: var(--font-display); font-size: 1.15rem; }
.village-dossier-location > footer p { margin: 4px 0 0; color: #50645e; font-size: .82rem; }
.village-dossier-method { max-width: 920px; margin: 22px 0 0; color: #5b6d67; font-size: .72rem; }
.village-dossier-location-empty > header { align-items: start; }
.village-dossier-location-empty > a { display: inline-block; margin-top: 24px; }
.village-dossier-checks { padding: 94px 0; }
.village-dossier-checks > header { display: grid; grid-template-columns: .45fr 1fr .65fr; gap: 40px; align-items: end; margin-bottom: 48px; }
.village-dossier-checks > header .village-dossier-kicker { align-self: start; }
.village-dossier-checks > header > p:last-child { margin: 0; color: var(--muted); }
.village-dossier-check-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 4px solid var(--midnight); }
.village-dossier-check-grid > article { min-width: 0; padding: 30px 30px 8px 0; border-right: 1px solid var(--line); }
.village-dossier-check-grid > article + article { padding-left: 30px; }
.village-dossier-check-grid > article:last-child { border-right: 0; }
.village-dossier-check-grid > article > span { color: var(--coral-text); font-family: var(--font-condensed); font-size: .75rem; font-weight: 800; }
.village-dossier-check-grid h3 { margin: 12px 0 18px; font-size: 1.45rem; }
.village-dossier-check-grid p, .village-dossier-check-grid li { color: var(--muted); font-size: .85rem; }
.village-dossier-check-grid .block { margin: 0; padding: 0; border: 0; background: transparent; }
.village-dossier-check-grid .block h3 { display: none; }
.village-dossier-check-grid ul { padding-left: 18px; }
.village-dossier-inventory { padding: 88px 0; border-top: 10px solid var(--mango); }
.village-dossier-inventory > header { display: grid; grid-template-columns: .4fr 1fr .65fr; gap: 38px; align-items: end; margin-bottom: 46px; }
.village-dossier-inventory > header .village-dossier-kicker { align-self: start; }
.village-dossier-inventory > header > p:last-child { margin: 0; color: var(--muted); }
.village-dossier-inventory > h2 { display: none; }
.village-dossier-inventory > .cards, .village-dossier-inventory .geo-listing-more .cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 3px solid var(--midnight); }
.village-dossier-inventory .geo-listing-card { display: grid; grid-template-columns: minmax(0, 1.35fr) .55fr .8fr; gap: 18px; align-items: center; min-height: 90px; padding: 18px; border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); border-radius: 0; box-shadow: none; }
.village-dossier-inventory .geo-listing-card:nth-child(even) { border-right: 0; }
.village-dossier-inventory .geo-listing-card h3 { font-family: var(--font-body); font-size: .9rem; }
.village-dossier-inventory .geo-listing-card .listing-price, .village-dossier-inventory .geo-listing-card .listing-spec { margin: 0; text-align: right; }
.village-dossier-inventory .geo-listing-card .listing-price { color: var(--ink); font-family: var(--font-display); font-size: 1.15rem; font-weight: 800; }
.village-dossier-inventory .geo-listing-card .listing-spec { color: var(--muted); font-size: .75rem; }
.village-dossier-inventory .geo-listing-more { margin-top: 26px; }
.village-dossier-note { display: grid; grid-template-columns: 190px minmax(0, 1fr) auto; gap: 30px; padding: 36px 0; border-top: 5px solid var(--midnight); }
.village-dossier-note strong { font-family: var(--font-display); font-size: 1.2rem; }
.village-dossier-note p { margin: 0; color: var(--muted); }
.village-dossier-note a { font-weight: 800; white-space: nowrap; }
html.theme-dark .village-dossier-hero { background: #ff7465; }
html.theme-dark .village-dossier-kicker { color: var(--coral); }
html.theme-dark .village-dossier-hero h1, html.theme-dark .village-dossier-hero .village-dossier-kicker { color: #102018; }
html.theme-dark .village-dossier-overview { background: #0b110e; }
html.theme-dark .village-dossier-check-grid > article > span { color: var(--coral); }
html.theme-dark .village-dossier-inventory .geo-listing-card { background: var(--panel); }
html.theme-dark .village-dossier-inventory .geo-listing-card h3 a { color: var(--mango); }
html.theme-dark .village-dossier-location { background: #112b25; color: #f4fbf8; border-top-color: #25bba4; }
html.theme-dark .village-dossier-location > header h2, html.theme-dark .village-dossier-location > header aside strong, html.theme-dark .village-dossier-location-grid h3, html.theme-dark .village-dossier-location-grid li strong, html.theme-dark .village-dossier-location-grid li b, html.theme-dark .village-dossier-location > footer strong { color: #f4fbf8; }
html.theme-dark .village-dossier-location > header p:not(.village-dossier-kicker), html.theme-dark .village-dossier-location > header aside span, html.theme-dark .village-dossier-location-grid article > p, html.theme-dark .village-dossier-location-grid li span, html.theme-dark .village-dossier-location > footer p, html.theme-dark .village-dossier-method { color: #bdd3cc; }
html.theme-dark .village-dossier-location a { color: #69e0cd; }
html.theme-dark .village-dossier-location > header aside b, html.theme-dark .location-section-number { color: #ff978b; }
html.theme-dark .village-dossier-location-grid, html.theme-dark .village-dossier-location > footer { border-color: #f4fbf8; }
html.theme-dark .village-dossier-location-grid > article, html.theme-dark .village-dossier-location-grid ul, html.theme-dark .village-dossier-location-grid li { border-color: #34544c; }

@media (max-width: 980px) {
  .village-dossier-hero { grid-template-columns: 1fr; }
  .village-dossier-hero figure { min-height: 380px; }
  .village-dossier-checks > header, .village-dossier-inventory > header { grid-template-columns: 1fr 1fr; }
  .village-dossier-location-grid { grid-template-columns: 1fr; }
  .village-dossier-location-grid > article, .village-dossier-location-grid > article + article { padding: 28px 0; border-right: 0; border-bottom: 1px solid #b8cec7; }
  html.theme-dark .village-dossier-location-grid > article { border-bottom-color: #34544c; }
  .village-dossier-location-grid ul { min-height: 0; }
  .village-dossier-checks > header .village-dossier-kicker, .village-dossier-inventory > header .village-dossier-kicker { grid-column: 1 / -1; }
  .village-dossier-check-grid { grid-template-columns: 1fr; }
  .village-dossier-check-grid > article, .village-dossier-check-grid > article + article { padding: 28px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .village-dossier-note { grid-template-columns: 160px 1fr; }
  .village-dossier-note a { grid-column: 2; }
}

@media (max-width: 720px) {
  .village-dossier { margin-top: -34px; }
  .village-dossier-hero { min-height: 0; }
  .village-dossier-hero-copy { padding: 46px 22px; }
  .village-dossier-hero h1 { overflow-wrap: anywhere; font-size: 2.7rem; }
  .village-dossier-hero figure { min-height: 245px; }
  .village-dossier-overview { grid-template-columns: repeat(2, 1fr); }
  .village-dossier-overview .geo-stat { min-height: 100px; padding: 18px; border-bottom: 1px solid rgba(255,255,255,.2); }
  .village-dossier-overview dd { font-size: 1.3rem; }
  .village-dossier-read { grid-template-columns: 1fr; gap: 14px; padding: 72px 0; }
  .village-dossier-read h2, .village-dossier-checks h2, .village-dossier-inventory > header h2 { font-size: 2.8rem; }
  .village-dossier-read > div:last-child { padding-top: 0; }
  .village-dossier-location { padding-top: 66px; padding-bottom: 66px; }
  .village-dossier-location > header { grid-template-columns: 1fr; gap: 30px; }
  .village-dossier-location > header h2 { font-size: 2.8rem; }
  .village-dossier-location > header aside { padding-left: 18px; }
  .village-dossier-location-grid { margin-top: 44px; }
  .village-dossier-location > footer { grid-template-columns: 1fr; gap: 16px; }
  .village-dossier-checks > header, .village-dossier-inventory > header { grid-template-columns: 1fr; gap: 16px; }
  .village-dossier-checks > header .village-dossier-kicker, .village-dossier-inventory > header .village-dossier-kicker { grid-column: 1; }
  .village-dossier-inventory > .cards, .village-dossier-inventory .geo-listing-more .cards { grid-template-columns: 1fr; }
  .village-dossier-inventory .geo-listing-card { grid-template-columns: minmax(0, 1fr) auto; border-right: 0; }
  .village-dossier-inventory .geo-listing-card .listing-spec { grid-column: 1 / -1; text-align: left; }
  .village-dossier-note { grid-template-columns: 1fr; gap: 12px; }
  .village-dossier-note a { grid-column: 1; white-space: normal; }
}

/* Home types and series decision guide */
.home-types-guide { margin-top: -18px; }
.home-types-guide figure { position: relative; margin: 0; overflow: hidden; }
.home-types-kicker { margin: 0 0 12px; color: var(--coral-text); font-family: var(--font-condensed); font-size: .78rem; font-weight: 850; text-transform: uppercase; }
.home-types-hero { display: grid; grid-template-columns: minmax(0, .95fr) minmax(440px, 1.05fr); min-height: 560px; overflow: hidden; border-bottom: 10px solid var(--mango); background: var(--midnight); color: white; }
.home-types-hero > div { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(44px, 6vw, 82px); }
.home-types-hero .home-types-kicker { color: var(--coral); }
.home-types-hero h1 { max-width: 700px; color: white; font-size: clamp(3.8rem, 6.5vw, 7rem); line-height: .88; }
.home-types-hero > div > p:not(.home-types-kicker) { max-width: 600px; margin: 26px 0 30px; color: #d8e6e1; font-size: 1.08rem; }
.home-types-hero img { display: block; width: 100%; height: 100%; object-fit: cover; }
.home-types-guide figcaption { position: absolute; right: 14px; bottom: 12px; padding: 5px 9px; background: rgba(9,43,36,.88); color: white; font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.home-types-guide figcaption a { color: white; }
.home-types-tape { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; background: var(--mango); color: #102018; }
.home-types-tape > div { min-height: 112px; padding: 24px 28px; border-right: 1px solid rgba(16,32,24,.24); }
.home-types-tape > div:last-child { border-right: 0; }
.home-types-tape dt { font-family: var(--font-condensed); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.home-types-tape dd { margin: 7px 0 0; font-family: var(--font-display); font-size: 1.75rem; font-weight: 800; line-height: 1.05; }
.home-types-intro { display: grid; grid-template-columns: .45fr 1fr .75fr; gap: 42px; align-items: end; padding: 104px 0; border-bottom: 1px solid var(--line); }
.home-types-intro .home-types-kicker { align-self: start; }
.home-types-intro h2, .home-types-compare h2, .home-types-profiles > header h2, .home-types-decisions > header h2, .home-types-turnkey h2 { font-size: clamp(2.8rem, 4.6vw, 5rem); }
.home-types-intro > p:last-child { margin: 0; color: var(--muted); }
.home-types-compare { padding: 94px 0; }
.home-types-compare > header { display: grid; grid-template-columns: 1fr .55fr; gap: 7vw; align-items: end; margin-bottom: 46px; }
.home-types-compare > header > p { margin: 0; color: var(--muted); }
.home-types-rows { border-top: 5px solid var(--midnight); }
.home-types-row { display: grid; grid-template-columns: 46px 250px minmax(0, 1fr); gap: 24px; align-items: center; min-height: 136px; padding: 22px 0; border-bottom: 1px solid var(--line); transition: padding .18s ease, background .18s ease; }
.home-types-row:hover { padding-right: 16px; padding-left: 16px; background: var(--sky); }
.home-types-row-num { color: var(--coral-text); font-family: var(--font-condensed); font-size: .75rem; font-weight: 850; }
.home-types-row-name h3 { font-size: 1.6rem; }
.home-types-row-name p { margin: 6px 0 0; color: var(--muted); font-size: .8rem; }
.home-types-row dl { display: grid; grid-template-columns: 1.2fr 1fr .65fr 1fr 1fr; margin: 0; }
.home-types-row dl > div { min-width: 0; padding: 8px 14px; border-left: 1px solid var(--line); }
.home-types-row dt { color: var(--muted); font-family: var(--font-condensed); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.home-types-row dd { margin: 6px 0 0; color: var(--ink); font-size: .82rem; font-weight: 700; line-height: 1.25; }
.home-types-method { margin-top: 26px; border: 1px solid var(--line); }
.home-types-method > summary { padding: 18px 20px; background: var(--panel-2); color: var(--ink); font-weight: 850; cursor: pointer; }
.home-types-method > p { padding: 22px 22px 0; color: var(--muted); }
.home-types-sources { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 16px 22px 22px; }
.home-types-sources span { color: var(--muted); font-family: var(--font-condensed); font-size: .7rem; font-weight: 850; text-transform: uppercase; }
.home-types-sources a { font-size: .74rem; font-weight: 750; }
.home-types-profiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 90px 0; border-top: 10px solid var(--pool); }
.home-types-profiles > header { grid-column: 1 / -1; display: grid; grid-template-columns: .4fr 1fr; gap: 36px; margin-bottom: 50px; }
.home-types-profiles > article { padding: 34px 42px 26px 0; border-top: 1px solid var(--line); }
.home-types-profiles > article:nth-of-type(even) { padding-right: 0; padding-left: 42px; border-left: 1px solid var(--line); }
.home-types-profiles > article > span, .home-types-decisions article > span { color: var(--coral-text); font-family: var(--font-condensed); font-size: .72rem; font-weight: 850; }
.home-types-profiles h3 { margin: 12px 0 16px; font-size: 1.7rem; }
.home-types-profiles article > p { color: var(--muted); }
.home-types-profiles .home-types-sources { padding: 8px 0 0; }
.home-types-decisions { margin-right: calc(50% - 50vw); margin-left: calc(50% - 50vw); padding: 92px max(24px, calc((100vw - var(--content)) / 2)); background: var(--coral); color: #102018; }
.home-types-decisions > header { display: grid; grid-template-columns: .45fr 1fr; gap: 36px; margin-bottom: 48px; }
.home-types-decisions .home-types-kicker, .home-types-decisions article > span { color: #612b27; }
.home-types-decisions h2, .home-types-decisions h3 { color: #102018; }
.home-types-decisions > div { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 4px solid #102018; }
.home-types-decisions article { padding: 30px 30px 0 0; border-right: 1px solid rgba(16,32,24,.3); }
.home-types-decisions article + article { padding-left: 30px; }
.home-types-decisions article:last-child { border-right: 0; }
.home-types-decisions h3 { margin: 12px 0 16px; font-size: 1.55rem; }
.home-types-decisions article > p { color: #213a32; }
.home-types-decisions .home-types-sources { padding: 10px 0 0; }
.home-types-decisions .home-types-sources span, .home-types-decisions .home-types-sources a { color: #102018; }
.home-types-turnkey { display: grid; grid-template-columns: .85fr 1.15fr; gap: 8vw; padding: 100px 0; }
.home-types-turnkey > div:last-child { padding-top: 28px; color: var(--muted); }
.home-types-turnkey .home-types-sources { padding: 8px 0 0; }
.home-types-note { display: grid; grid-template-columns: 260px minmax(0, 1fr) auto; gap: 30px; padding: 36px 0; border-top: 5px solid var(--midnight); }
.home-types-note strong { font-family: var(--font-display); font-size: 1.2rem; }
.home-types-note p { margin: 0; color: var(--muted); }
.home-types-note a { font-weight: 850; white-space: nowrap; }
html.theme-dark .home-types-kicker, html.theme-dark .home-types-row-num, html.theme-dark .home-types-profiles > article > span { color: var(--coral); }
html.theme-dark .home-types-hero { background: #0b110e; }
html.theme-dark .home-types-tape { background: var(--mango); color: #102018; }
html.theme-dark .home-types-method > summary { background: var(--panel-2); color: var(--ink); }
html.theme-dark .home-types-row:hover { background: #26352a; }

@media (max-width: 980px) {
  .home-types-hero { grid-template-columns: 1fr; }
  .home-types-hero figure { min-height: 380px; }
  .home-types-row { grid-template-columns: 40px 210px minmax(0, 1fr); }
  .home-types-row dl { grid-template-columns: repeat(3, 1fr); }
  .home-types-decisions > div { grid-template-columns: 1fr; }
  .home-types-decisions article, .home-types-decisions article + article { padding: 28px 0; border-right: 0; border-bottom: 1px solid rgba(16,32,24,.3); }
  .home-types-note { grid-template-columns: 210px 1fr; }
  .home-types-note a { grid-column: 2; }
}

@media (max-width: 720px) {
  .home-types-guide { margin-top: -34px; }
  .home-types-hero { min-height: 0; }
  .home-types-hero > div { padding: 46px 22px; }
  .home-types-hero h1 { overflow-wrap: anywhere; font-size: 3.1rem; }
  .home-types-hero figure { min-height: 245px; }
  .home-types-tape { grid-template-columns: repeat(2, 1fr); }
  .home-types-tape > div { min-height: 96px; padding: 18px; border-bottom: 1px solid rgba(16,32,24,.24); }
  .home-types-tape dd { font-size: 1.35rem; }
  .home-types-intro { grid-template-columns: 1fr; gap: 18px; padding: 72px 0; }
  .home-types-intro h2, .home-types-compare h2, .home-types-profiles > header h2, .home-types-decisions > header h2, .home-types-turnkey h2 { font-size: 2.85rem; }
  .home-types-compare > header, .home-types-profiles > header, .home-types-decisions > header { grid-template-columns: 1fr; gap: 18px; }
  .home-types-row { grid-template-columns: 32px minmax(0, 1fr); gap: 12px; padding: 24px 0; }
  .home-types-row dl { grid-column: 2; grid-template-columns: repeat(2, 1fr); }
  .home-types-row dl > div { padding: 9px 10px; }
  .home-types-profiles { grid-template-columns: 1fr; }
  .home-types-profiles > article, .home-types-profiles > article:nth-of-type(even) { padding: 28px 0; border-left: 0; }
  .home-types-decisions { padding-right: 18px; padding-left: 18px; }
  .home-types-turnkey { grid-template-columns: 1fr; gap: 18px; padding: 72px 0; }
  .home-types-turnkey > div:last-child { padding-top: 0; }
  .home-types-note { grid-template-columns: 1fr; gap: 12px; }
  .home-types-note a { grid-column: 1; white-space: normal; }
}

/* Taxes and fees parcel ledger */
.tax-desk { margin-top: -18px; }
.tax-desk-kicker { margin: 0 0 12px; color: var(--coral-text); font-family: var(--font-condensed); font-size: .76rem; font-weight: 850; text-transform: uppercase; }
.tax-desk-hero { position: relative; display: grid; grid-template-columns: 1.25fr .75fr; min-height: 600px; overflow: hidden; background: linear-gradient(90deg, rgba(7,30,50,.96), rgba(7,30,50,.76) 48%, rgba(7,30,50,.2)), url("/assets/villages/brownwood-bridge.jpg") center/cover; color: white; }
.tax-desk-hero::after { position: absolute; inset: auto 0 0; height: 9px; background: linear-gradient(90deg, var(--pool) 0 48%, var(--mango) 48% 78%, var(--coral) 78%); content: ""; }
.tax-desk-hero-copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(52px, 7vw, 100px); }
.tax-desk-hero .tax-desk-kicker { color: var(--mango); }
.tax-desk-hero h1 { color: white; font-size: clamp(5rem, 10vw, 10rem); line-height: .82; }
.tax-desk-hero-copy > p:not(.tax-desk-kicker) { max-width: 500px; margin: 26px 0 30px; color: #e4eeeb; font-size: 1.08rem; }
.tax-desk-hero-stamp { align-self: end; margin: 0 7vw 76px 0; padding: 30px 0 30px 30px; border-left: 2px solid var(--mango); }
.tax-desk-hero-stamp span, .tax-desk-hero-stamp small { display: block; max-width: 220px; color: #d4e1dd; }
.tax-desk-hero-stamp span { font-family: var(--font-condensed); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.tax-desk-hero-stamp strong { display: block; margin: 5px 0; color: var(--mango); font-family: var(--font-display); font-size: clamp(4rem, 8vw, 8rem); line-height: 1; }
.tax-layer-intro { display: grid; grid-template-columns: .9fr 1.15fr; gap: 7vw; align-items: start; padding: 100px 0 52px; }
.tax-layer-intro h2, .tax-estimator-band h2, .tax-location-compare h2, .tax-component-band h2, .tax-city-band h2, .tax-bond-band h2, .tax-desk-details h2, .tax-offer-check h2 { font-size: clamp(2.8rem, 4.8vw, 5.2rem); }
.tax-layer-intro > p { margin: 0; color: var(--muted); }
.tax-desk-sources { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 20px; }
.tax-desk-sources span { color: var(--coral-text); font-family: var(--font-condensed); font-size: .66rem; font-weight: 850; text-transform: uppercase; }
.tax-desk-sources a { color: var(--muted); font-size: .68rem; text-decoration: underline; text-underline-offset: 3px; }
.tax-layer-intro > .tax-desk-sources { grid-column: 2; }
.tax-layer-tape { display: grid; grid-template-columns: repeat(4, 1fr); margin-bottom: 100px; border-top: 5px solid var(--midnight); border-bottom: 1px solid var(--line); }
.tax-layer-tape article { min-height: 190px; padding: 28px 24px; border-right: 1px solid var(--line); }
.tax-layer-tape article:last-child { border-right: 0; }
.tax-layer-tape span { color: var(--coral-text); font-family: var(--font-condensed); font-size: .68rem; font-weight: 850; }
.tax-layer-tape h3 { margin: 30px 0 10px; font-size: 1.4rem; }
.tax-layer-tape p { color: var(--muted); font-size: .8rem; }
.tax-estimator-band { padding: 100px 0; background: var(--sky); box-shadow: 50vw 0 var(--sky), -50vw 0 var(--sky); }
.tax-estimator-band > header { display: grid; grid-template-columns: .42fr 1fr .7fr; gap: 38px; align-items: end; margin-bottom: 44px; }
.tax-estimator-band > header > p:last-child { margin: 0; color: var(--muted); }
.tax-estimator-fallback { padding: 36px; background: var(--panel); }
.tax-estimator { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); border-top: 5px solid var(--midnight); }
.tax-estimator-form { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px 24px; padding: 36px 38px 36px 0; border-right: 1px solid #b7d3cc; }
.tax-estimator-form label { color: var(--muted); font-family: var(--font-condensed); font-size: .7rem; font-weight: 850; text-transform: uppercase; }
.tax-estimator-form input, .tax-estimator-form select { display: block; width: 100%; min-height: 48px; margin-top: 7px; border: 1px solid #b7d3cc; border-radius: 0; background: var(--panel); color: var(--ink); font: 700 .92rem var(--font-body); }
.tax-estimator-form input:focus, .tax-estimator-form select:focus { border-color: var(--pool-dark); outline: 3px solid color-mix(in srgb, var(--pool) 28%, transparent); }
.tax-estimator-result { padding: 36px 0 36px 38px; }
.tax-estimator-total { padding-bottom: 25px; border-bottom: 1px solid #b7d3cc; }
.tax-estimator-total span, .tax-estimator-total small { display: block; color: var(--muted); }
.tax-estimator-total span { font-family: var(--font-condensed); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.tax-estimator-total strong { display: block; margin: 8px 0; color: var(--coral-text); font-family: var(--font-display); font-size: clamp(4rem, 6vw, 6.7rem); line-height: 1; }
.tax-estimator-result dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }
.tax-estimator-result dl > div { padding: 13px 12px 13px 0; border-bottom: 1px solid #b7d3cc; }
.tax-estimator-result dt { color: var(--muted); font-size: .68rem; }
.tax-estimator-result dd { margin: 4px 0 0; color: var(--ink); font-weight: 850; }
.tax-estimator-note { grid-column: 1 / -1; max-width: 860px; margin: 18px 0 0; color: var(--muted); font-size: .7rem; }
.tax-location-compare { padding: 110px 0; }
.tax-location-compare > header { display: grid; grid-template-columns: 1fr .8fr; gap: 7vw; align-items: end; margin-bottom: 48px; }
.tax-location-compare > header > p:last-child { margin: 0; color: var(--muted); }
.tax-location-rows { border-top: 5px solid var(--midnight); }
.tax-location-row { display: grid; grid-template-columns: 40px 2fr 1.2fr 100px 140px; gap: 24px; align-items: center; min-height: 112px; border-bottom: 1px solid var(--line); }
.tax-location-row > span { color: var(--coral-text); font-family: var(--font-condensed); font-size: .68rem; font-weight: 850; }
.tax-location-row h3 { font-size: 1.2rem; }
.tax-location-row small { display: block; color: var(--muted); font-size: .65rem; font-weight: 600; }
.tax-location-row i { height: 10px; background: linear-gradient(90deg, var(--pool-dark) var(--rate), var(--sand) var(--rate)); }
.tax-location-row > strong { color: var(--ink); font-family: var(--font-display); font-size: 1.4rem; }
.tax-location-row > b { color: var(--coral-text); font-size: 1rem; text-align: right; }
.tax-location-row > strong small, .tax-location-row > b small { display: inline; }
.tax-component-band { display: grid; grid-template-columns: .8fr 1.2fr; gap: 7vw; padding: 100px 0; background: var(--midnight); color: white; box-shadow: 50vw 0 var(--midnight), -50vw 0 var(--midnight); }
.tax-component-band h2 { color: white; }
.tax-component-band .tax-desk-kicker { color: var(--mango); }
/* A dark band: the darkened red would be 3.05:1 here. */
.tax-component-band .tax-desk-sources span { color: var(--coral); }
.tax-component-band > div:first-child > p:not(.tax-desk-kicker) { color: #c9d9d4; }
.tax-component-band .tax-desk-sources a { color: #c9d9d4; }
.tax-component-table { overflow-x: auto; }
.tax-component-table table { width: 100%; border-collapse: collapse; color: white; font-size: .78rem; }
.tax-component-table th, .tax-component-table td { padding: 15px 12px; border-bottom: 1px solid rgba(255,255,255,.18); text-align: left; }
.tax-component-table thead th { color: var(--mango); font-family: var(--font-condensed); text-transform: uppercase; }
.tax-component-table tbody th { color: white; }
.tax-component-table td { color: #c9d9d4; }
.tax-city-band { display: grid; grid-template-columns: .8fr 1.2fr; gap: 7vw; padding: 100px 0; border-bottom: 1px solid var(--line); }
.tax-city-band > p { margin: 0; color: var(--muted); }
.tax-city-band > .tax-desk-sources { grid-column: 2; }
.tax-bond-band { padding: 110px 0; }
.tax-bond-band > header { display: grid; grid-template-columns: 1fr .9fr; gap: 7vw; align-items: end; }
.tax-bond-band > header > p:not(.tax-desk-kicker) { margin: 0; color: var(--muted); }
.tax-bond-band > header > .tax-desk-sources { grid-column: 2; }
.tax-bond-steps { display: grid; grid-template-columns: repeat(3, 1fr); margin: 50px 0; border-top: 5px solid var(--midnight); border-bottom: 1px solid var(--line); }
.tax-bond-steps article { padding: 30px; border-right: 1px solid var(--line); }
.tax-bond-steps article:last-child { border-right: 0; }
.tax-bond-steps span { display: grid; place-items: center; width: 38px; height: 38px; background: var(--mango); color: #102018; font-weight: 900; }
.tax-bond-steps h3 { margin: 22px 0 8px; }
.tax-bond-steps p { color: var(--muted); font-size: .82rem; }
.tax-bond-lookup { display: grid; grid-template-columns: 1fr auto; gap: 7vw; align-items: end; padding: 56px; background: var(--sky); }
.tax-bond-lookup h2 { font-size: clamp(2.2rem, 3.6vw, 4rem); }
.tax-bond-lookup p { max-width: 850px; color: var(--muted); }
.tax-recurring { display: grid; grid-template-columns: 1fr 1fr; }
.tax-recurring article { padding: clamp(54px, 6vw, 90px); background: var(--mango); color: #102018; }
.tax-recurring article:last-child { background: var(--sky); }
.tax-recurring h2 { font-size: clamp(2.5rem, 4vw, 4.5rem); }
.tax-recurring article > p:not(.tax-desk-kicker) { max-width: 680px; }
.tax-recurring article:first-child .tax-desk-kicker, .tax-recurring article:first-child .tax-desk-sources span { color: #702c23; }
.tax-recurring article:first-child .tax-desk-sources a { color: #31463d; }
.tax-desk-details { padding: 110px 0; }
.tax-desk-details > h2 { max-width: 880px; margin-bottom: 48px; }
.tax-desk-detail { border-top: 1px solid var(--line); }
.tax-desk-detail:last-child { border-bottom: 1px solid var(--line); }
.tax-desk-detail summary { padding: 26px 0; color: var(--ink); font-family: var(--font-display); font-size: 1.25rem; font-weight: 800; cursor: pointer; }
.tax-desk-detail > p { max-width: 960px; padding-bottom: 24px; color: var(--muted); }
.tax-desk-detail .tax-desk-sources { padding-bottom: 28px; }
.tax-offer-check { display: grid; grid-template-columns: 1fr .7fr auto; gap: 48px; align-items: end; padding: 76px 0; border-top: 8px solid var(--mango); }
.tax-offer-check > p { margin: 0; color: var(--muted); }
.tax-offer-check > a { color: var(--coral-text); font-weight: 850; white-space: nowrap; }
html.theme-dark .tax-estimator-band, html.theme-dark .tax-bond-lookup { background: #163f37; box-shadow: 50vw 0 #163f37, -50vw 0 #163f37; }
html.theme-dark .tax-estimator-form { border-color: #45635c; }
html.theme-dark .tax-estimator-form input, html.theme-dark .tax-estimator-form select { border-color: #45635c; background: #102f29; color: #f4fbf8; }
html.theme-dark .tax-location-row i { background: linear-gradient(90deg, var(--pool) var(--rate), #294941 var(--rate)); }
html.theme-dark .tax-recurring article { background: #e7be47; color: #102018; }
html.theme-dark .tax-recurring article h2 { color: #102018; }
html.theme-dark .tax-recurring article:last-child { background: #173f37; color: #f4fbf8; }
html.theme-dark .tax-recurring article:last-child h2 { color: white; }
html.theme-dark .tax-recurring article:last-child p { color: #d4e1dd; }
@media (max-width: 900px) {
  .tax-desk-hero { grid-template-columns: 1fr; min-height: 690px; }
  .tax-desk-hero-copy { padding-bottom: 16px; }
  .tax-desk-hero-stamp { margin: 0 36px 58px; }
  .tax-layer-intro, .tax-estimator-band > header, .tax-location-compare > header, .tax-component-band, .tax-city-band, .tax-bond-band > header { grid-template-columns: 1fr; gap: 20px; }
  .tax-layer-intro > .tax-desk-sources, .tax-city-band > .tax-desk-sources, .tax-bond-band > header > .tax-desk-sources { grid-column: 1; }
  .tax-layer-tape { grid-template-columns: repeat(2, 1fr); }
  .tax-estimator { grid-template-columns: 1fr; }
  .tax-estimator-form { padding-right: 0; border-right: 0; }
  .tax-estimator-result { padding-left: 0; }
  .tax-location-row { grid-template-columns: 34px 1fr 90px 130px; }
  .tax-location-row i { grid-column: 2 / -1; grid-row: 2; }
  .tax-bond-lookup, .tax-offer-check { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 620px) {
  .tax-desk { margin-top: -10px; }
  .tax-desk-hero-copy { padding: 50px 22px 16px; }
  .tax-desk-hero h1 { font-size: 4.4rem; }
  .tax-desk-hero-stamp { margin: 0 22px 48px; }
  .tax-layer-intro, .tax-estimator-band, .tax-location-compare, .tax-component-band, .tax-city-band, .tax-bond-band, .tax-desk-details { padding-top: 72px; padding-bottom: 72px; }
  .tax-layer-tape { grid-template-columns: 1fr; }
  .tax-layer-tape article { min-height: 150px; border-right: 0; border-bottom: 1px solid var(--line); }
  .tax-estimator-form { grid-template-columns: 1fr; }
  .tax-location-row { grid-template-columns: 28px 1fr auto; gap: 12px; padding: 22px 0; }
  .tax-location-row > strong { grid-column: 2; }
  .tax-location-row > b { grid-column: 3; grid-row: 2; }
  .tax-location-row i { grid-column: 2 / -1; grid-row: 3; }
  .tax-bond-steps { grid-template-columns: 1fr; }
  .tax-bond-steps article { border-right: 0; border-bottom: 1px solid var(--line); }
  .tax-bond-lookup { padding: 36px 22px; }
  .tax-recurring { grid-template-columns: 1fr; }
  .tax-recurring article { padding: 58px 22px; }
}

/* Dining destination visibility and area navigation */
.dining-destinations { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 48px 0 42px; border-top: 5px solid var(--midnight); }
.dining-destinations > a { position: relative; min-height: 250px; overflow: hidden; border-right: 1px solid var(--paper); border-bottom: 1px solid var(--paper); background: var(--midnight); color: white; text-decoration: none; }
.dining-destinations > a:nth-child(4n) { border-right: 0; }
.dining-destinations img { display: block; width: 100%; height: 100%; min-height: 250px; object-fit: cover; opacity: .72; transition: transform .3s ease, opacity .3s ease; }
.dining-destinations > a::after { position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgba(5,27,23,.96)); content: ""; }
.dining-destinations > a:hover img { opacity: .9; transform: scale(1.035); }
.dining-destinations > a > span { position: absolute; right: 22px; bottom: 20px; left: 22px; z-index: 1; }
.dining-destinations strong, .dining-destinations small { display: block; color: white; }
.dining-destinations strong { font-family: var(--font-display); font-size: 1.45rem; line-height: 1.05; }
.dining-destinations small { margin-top: 7px; color: #d9e7e2; font-size: .7rem; font-weight: 750; }
.dining-area-rail { padding: 18px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.dining-coverage { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 780px; margin: 34px 0 0; border-top: 1px solid rgba(255,255,255,.3); }
.dining-coverage > div { padding: 20px 18px 4px 0; }
.dining-coverage dt { color: var(--mango); font: 800 2.15rem/1 var(--font-display); }
.dining-coverage dd { margin: 7px 0 0; color: #e2ebe7; font: 750 .7rem/1.2 var(--font-condensed); text-transform: uppercase; }
.dining-library-hero .dining-freshness { margin-top: 22px; color: #d5e1dc; font-size: .72rem; }
.dining-planner { display: grid; grid-template-columns: minmax(180px, .35fr) 1fr; gap: 28px; align-items: end; margin: 58px 0 0; padding: 28px 0; border-top: 5px solid var(--mango); }
.dining-planner h3 { margin: 3px 0 0; font-size: clamp(1.8rem, 3vw, 3rem); }
.dining-quick-meals { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.dining-quick-meals button { min-height: 44px; padding: 9px 15px; border: 1px solid var(--line); background: var(--panel); color: var(--ink); font: 800 .75rem var(--font-condensed); cursor: pointer; }
.dining-quick-meals button:hover { border-color: var(--pool-dark); background: var(--sky); }
.dining-quick-meals button.is-active { border-color: var(--midnight); background: var(--mango); color: #102018; }
.dining-direct-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); }
.dining-direct-actions a { min-height: 38px; padding: 9px 11px; border: 1px solid var(--line); color: var(--ink); font: 800 .72rem var(--font-condensed); text-decoration: none; }
.dining-direct-actions a:hover { border-color: var(--pool-dark); background: var(--sky); }
.dining-visit-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 32px; padding: 18px 0; border-top: 2px solid var(--midnight); border-bottom: 1px solid var(--line); }
.dining-visit-actions a { min-height: 42px; padding: 10px 13px; border: 1px solid var(--line); background: var(--panel-2); color: var(--ink); font: 800 .75rem var(--font-condensed); text-decoration: none; }
.dining-visit-actions a:hover { border-color: var(--pool-dark); background: var(--sky); }
.directory-meals { color: var(--pool-dark) !important; font: 750 .72rem var(--font-condensed); text-transform: uppercase; }
.directory-card-actions { margin-top: auto; padding-top: 15px; border-top: 1px solid var(--line); }
html.theme-dark .dining-coverage dt { color: var(--mango); }
html.theme-dark .dining-coverage dd, html.theme-dark .dining-library-hero .dining-freshness { color: #d5e1dc; }
html.theme-dark .dining-quick-meals button, html.theme-dark .dining-direct-actions a { border-color: #5c695f; background: var(--panel-2); color: var(--ink); }
html.theme-dark .dining-visit-actions { border-top-color: var(--mango); }
html.theme-dark .dining-visit-actions a { border-color: #5c695f; background: var(--panel-2); color: var(--ink); }
html.theme-dark .dining-quick-meals button.is-active { border-color: var(--mango); background: var(--mango); color: #102018; }
.dining-static-index { display: grid; grid-template-columns: repeat(4, 1fr); margin: 42px 0 70px; border-top: 4px solid var(--midnight); }
.dining-static-index a { display: flex; justify-content: space-between; gap: 16px; padding: 18px 14px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--ink); font-weight: 800; text-decoration: none; }
.dining-static-index a:hover { background: var(--sky); color: var(--pool-dark); }
.dining-static-index span { color: var(--coral-text); }
.dining-static-area { scroll-margin-top: 90px; padding-top: 42px; }
.dining-static-area > h2 { font-size: clamp(2.4rem, 4vw, 4.4rem); }
.directory-card-top { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: baseline; }
.directory-card-top .directory-style { color: var(--muted); }
html.theme-dark .dining-destinations { border-color: var(--mango); }
html.theme-dark .dining-static-index a { color: var(--ink); }
html.theme-dark .dining-static-index a:hover { background: #26372d; color: var(--mango); }
@media (max-width: 900px) {
  .dining-destinations, .dining-static-index { grid-template-columns: repeat(2, 1fr); }
  .dining-destinations > a:nth-child(4n) { border-right: 1px solid var(--paper); }
  .dining-destinations > a:nth-child(2n) { border-right: 0; }
}
@media (max-width: 560px) {
  .dining-destinations { grid-template-columns: 1fr; }
  .dining-destinations > a { min-height: 220px; border-right: 0; }
  .dining-destinations img { min-height: 220px; }
  .dining-static-index { grid-template-columns: 1fr; }
  .dining-coverage { grid-template-columns: repeat(2, 1fr); }
  .dining-planner { grid-template-columns: 1fr; }
  .dining-quick-meals { justify-content: flex-start; }
}

/* Dining opening pipeline */
.dining-opening-pipeline { margin: 80px 0 28px; padding: 52px 0 0; border-top: 8px solid var(--mango); }
.dining-opening-pipeline[hidden] { display: none; }
.dining-opening-pipeline > header { display: grid; grid-template-columns: .35fr 1fr 1fr; gap: 28px; align-items: end; margin-bottom: 30px; }
.dining-opening-pipeline > header .eyebrow { color: var(--coral-text, #c8402f); }
.dining-opening-pipeline > header h2, .dining-opening-pipeline > header h3 { margin: 0; font-size: clamp(2rem, 3.7vw, 4rem); }
.dining-opening-pipeline > header p { margin: 0; color: var(--muted); }
.dining-opening-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 4px solid var(--midnight); }
.dining-opening-grid article { min-width: 0; padding: 26px 24px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--panel); }
.dining-opening-grid article:nth-child(3n) { border-right: 0; }
.dining-opening-grid article > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 14px; }
.dining-opening-grid article span { color: var(--coral-text, #c8402f); font-family: var(--font-condensed); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.dining-opening-grid article small { color: var(--muted); font-size: .68rem; font-weight: 700; }
.dining-opening-grid article h3, .dining-opening-grid article h4 { margin: 24px 0 10px; color: var(--ink); font-family: var(--font-display); font-size: 1.35rem; }
.dining-opening-grid article p { color: var(--muted); font-size: .78rem; }
.dining-opening-grid article a { color: var(--pool-dark); font-size: .72rem; font-weight: 850; }
.dining-status-watch { margin-top: 56px; padding-top: 34px; border-top: 8px solid var(--aqua); }
.dining-status-watch > header { display: grid; grid-template-columns: .35fr 1fr 1fr; gap: 28px; align-items: end; margin-bottom: 30px; }
.dining-status-watch > header h2, .dining-status-watch > header h3 { margin: 0; font-size: clamp(2rem, 3.7vw, 4rem); }
.dining-status-watch > header p { margin: 0; color: var(--muted); }
html.theme-dark .dining-opening-grid { border-color: var(--mango); }
html.theme-dark .dining-opening-grid article a { color: var(--mango); }
@media (max-width: 900px) {
  .dining-opening-pipeline > header { grid-template-columns: 1fr 1.5fr; }
  .dining-opening-pipeline > header p { grid-column: 2; }
  .dining-status-watch > header { grid-template-columns: 1fr 1.5fr; }
  .dining-status-watch > header p { grid-column: 2; }
  .dining-opening-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dining-opening-grid article:nth-child(3n) { border-right: 1px solid var(--line); }
  .dining-opening-grid article:nth-child(2n) { border-right: 0; }
}
@media (max-width: 560px) {
  .dining-opening-pipeline { margin-top: 56px; padding-top: 36px; }
  .dining-opening-pipeline > header { grid-template-columns: 1fr; gap: 12px; }
  .dining-opening-pipeline > header p { grid-column: 1; }
  .dining-status-watch > header { grid-template-columns: 1fr; gap: 12px; }
  .dining-status-watch > header p { grid-column: 1; }
  .dining-opening-grid { grid-template-columns: 1fr; }
  .dining-opening-grid article { border-right: 0; }
}

/* --- Sponsor showcase ------------------------------------------------------
   A booked advertiser, rendered in the advertiser's own colours on a dark
   instrument panel. It deliberately does not look like the guide: the reader
   should be able to tell advertising from editorial at a glance, and the
   advertiser gets an identity rather than a beige card with their name on it.
   Palette and mark are FinancialAIguru's own; every pairing below clears
   WCAG AA on the #0b1120 panel (cyan 8.79:1, indigo 6.31:1, body 15.27:1). */
.sponsor-showcase {
  --sponsor-bg: #0b1120;
  --sponsor-bg-2: #131c31;
  --sponsor-cyan: #38bdf8;
  --sponsor-indigo: #818cf8;
  --sponsor-text: #e2e8f0;
  --sponsor-muted: #94a3b8;
  max-width: 920px;
  margin: 64px 0 0;
}

/* The seam. The label sits on the join between the cream page and the dark
   panel so "Advertisement" and the ownership note are read on the way in. */
.sponsor-seam {
  display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline;
  margin: 0; padding: 10px 18px;
  border-top: 3px solid var(--sponsor-cyan);
  background: var(--sand);
}
.sponsor-seam-tag {
  font-family: var(--font-condensed); font-size: .74rem; font-weight: 800;
  letter-spacing: .18em; text-transform: uppercase; color: var(--midnight);
}
.sponsor-seam-note { color: var(--muted); font-size: .78rem; }

.sponsor-panel {
  display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 40px;
  align-items: center; padding: 44px 40px;
  background:
    radial-gradient(120% 140% at 8% 0%, #16223c 0%, transparent 60%),
    var(--sponsor-bg);
}

/* The signature: the advertiser's own mark at display size, lit from behind. */
.sponsor-mark { position: relative; display: grid; place-items: center; }
.sponsor-mark::before {
  content: ""; position: absolute; width: 86%; aspect-ratio: 1; border-radius: 50%;
  background: radial-gradient(circle, rgba(56,189,248,.30) 0%, transparent 68%);
}
.sponsor-lens { position: relative; width: 100%; max-width: 280px; height: auto; }

/* The one animated thing on the page: the candles inside the iris breathe, so
   the advertiser's logo reads as an instrument rather than a sticker. Nothing
   else moves — see the reduced-motion block at the end. */
.sponsor-candle { transform-box: fill-box; transform-origin: center; animation: sponsor-candle-breathe 4.2s ease-in-out infinite; }
/* Stagger in CSS rather than style="" so the CSP can refuse inline styles. */
.sponsor-candle:nth-of-type(1) { animation-delay: 0ms; }
.sponsor-candle:nth-of-type(2) { animation-delay: 280ms; }
.sponsor-candle:nth-of-type(3) { animation-delay: 560ms; }
.sponsor-candle:nth-of-type(4) { animation-delay: 840ms; }
@keyframes sponsor-candle-breathe {
  0%, 100% { transform: scaleY(1); opacity: .92; }
  50% { transform: scaleY(1.16); opacity: 1; }
}

.sponsor-copy { color: var(--sponsor-text); }
.sponsor-name {
  margin: 0; font-family: var(--font-condensed); font-size: 1.02rem; font-weight: 800;
  letter-spacing: .16em; text-transform: uppercase; color: var(--sponsor-cyan);
}
/* The advertiser's line, set as the display type of this unit. Condensed and
   uppercase rather than the guide's serif — a different voice, on purpose. */
.sponsor-tagline {
  margin: 10px 0 0; font-family: var(--font-condensed); font-size: clamp(2.1rem, 4.4vw, 3.1rem);
  font-weight: 700; line-height: .98; letter-spacing: .005em; color: #fff;
}
.sponsor-body { margin: 18px 0 0; max-width: 52ch; color: var(--sponsor-text); font-size: .97rem; line-height: 1.55; }

/* Four peers, not four steps — a grid, not a numbered list. */
.sponsor-pillars { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 26px 0 0; padding: 1px; list-style: none; background: rgba(148,163,184,.22); }
.sponsor-pillars li { display: grid; gap: 3px; padding: 14px 16px; background: var(--sponsor-bg-2); }
.sponsor-pillars strong { color: #fff; font-size: .92rem; }
.sponsor-pillars span { color: var(--sponsor-muted); font-size: .8rem; line-height: 1.4; }

.sponsor-cta {
  display: inline-flex; gap: 10px; align-items: center; min-height: 48px;
  margin-top: 26px; padding: 12px 22px; border-radius: 3px;
  background: linear-gradient(90deg, var(--sponsor-cyan), var(--sponsor-indigo));
  color: #0b1120; font-weight: 800; text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease;
}
.sponsor-cta:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(56,189,248,.32); }
.sponsor-cta:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.sponsor-cta-arrow { transition: transform .18s ease; }
.sponsor-cta:hover .sponsor-cta-arrow { transform: translateX(4px); }

.sponsor-risk { margin: 0; padding: 14px 18px; border-top: 1px solid var(--line); background: var(--sand); color: var(--muted); font-size: .78rem; line-height: 1.5; }

@media (max-width: 720px) {
  .sponsor-showcase { margin-top: 44px; }
  .sponsor-panel { grid-template-columns: 1fr; gap: 26px; padding: 30px 20px; }
  .sponsor-lens { max-width: 150px; }
  .sponsor-pillars { grid-template-columns: 1fr; }
  .sponsor-cta { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .sponsor-candle { animation: none; }
  .sponsor-cta, .sponsor-cta-arrow { transition: none; }
  .sponsor-cta:hover { transform: none; }
}


/* --- Mobile nav: say that the menu scrolls ---------------------------------
   The nav strip is overflow-x: auto, so Homes and More are reachable by
   swiping — but it cut off clean at the viewport edge with nothing to suggest
   that. On an iPhone 13 it ended after MONEY, on an SE after LIVING, and the
   two most commercial menus simply looked absent. A 70-year-old has no reason
   to guess that a menu scrolls sideways.

   The fade ends in the bar's own colour so it reads as "continues", and the
   chevron says which way. Both are pointer-events: none — this is a hint, not
   a control, and a tap in that corner must still reach the nav item under it.
   Edges appear only when there is actually something to scroll to. */
nav#tabs { position: relative; }

nav#tabs::before,
nav#tabs::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 2;
  width: 54px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}

nav#tabs::before {
  left: 0;
  background: linear-gradient(90deg, var(--command-bg) 42%, transparent);
}

nav#tabs::after {
  content: "\203A";
  right: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 4px;
  background: linear-gradient(270deg, var(--command-bg) 42%, transparent);
  color: var(--midnight);
  font-family: var(--font-condensed);
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1;
}

html.theme-dark nav#tabs::after { color: var(--ink); }

nav#tabs.nav-scroll-start::before { opacity: 1; }
nav#tabs.nav-scroll-end::after { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  nav#tabs::before, nav#tabs::after { transition: none; }
}

/* --- Dark theme contrast corrections ---------------------------------------
   These were invisible until 2026-08-19 because the test harness set the wrong
   localStorage key ("vbg-theme" instead of "villages:theme"), so every "dark
   theme" run was actually a second light-theme run. Once dark was really
   exercised, five pages failed. A test that silently checks the wrong thing is
   worse than no test: it reports success.

   In dark mode --coral brightens to #ff716c, which is a FILL, not ink. Light
   text on it is 2.48:1. Dark ink on it is 6.31:1, exactly as in light theme. */
html.theme-dark .home-lineup-heading h2,
html.theme-dark .home-lineup-heading > p,
html.theme-dark .home-lineup-event h3,
html.theme-dark .home-lineup-event p,
html.theme-dark .home-lineup-event time,
html.theme-dark .home-lineup-link { color: #102018; }

html.theme-dark .rate-table button,
html.theme-dark .kit-package button { color: #102018; }

/* --coral-text is calibrated for LIGHT surfaces (5.47:1 on cream). On the dark
   canvas it is 3.37:1 — every kicker and source label that used it failed.
   On dark, coral as ink wants the bright value: 6.93:1. */
html.theme-dark { --coral-text: #ff716c; }

/* A white badge with dark-theme muted text is 1.37:1 — the override set the
   background light and left the foreground following the dark palette. */
html.theme-dark .badges .badge { background: var(--panel-2); color: var(--ink); }

/* Coral ink on the dark teal layer panels is 4.35:1 — just under. --accent-ink
   is the same family one step brighter, 5.23:1. */
html.theme-dark .tax-desk-kicker,
html.theme-dark .tax-desk-sources span { color: var(--accent-ink); }

/* .kit-process keeps its mango fill in dark mode, so the ink must stay dark
   there: the dark palette had turned the heading near-white (1.24:1) and the
   kicker coral (1.99:1) on a bright yellow panel. */
html.theme-dark .kit-process,
html.theme-dark .kit-process h2,
html.theme-dark .kit-process p,
html.theme-dark .kit-process li,
html.theme-dark .kit-process strong { color: #102018; }
html.theme-dark .kit-process .advertise-kicker { color: #3d4a43; }

/* --- Ink on brand fills ----------------------------------------------------
   A full-site sweep (1017 renders, every page, both themes) found 134 contrast
   failures, and nearly all were one mistake repeated: a panel painted in a
   bright brand fill — mango or coral — whose text colour came from the theme
   palette. In light theme --muted on mango is 3.29:1; in dark theme the palette
   flips the ink near-white and the same panel becomes 1.42:1. The fill does not
   change between themes, so its ink must not either.

   #102018 clears AA on every fill this site uses: mango 10.66/12.58, coral
   5.60/6.31, the weekend hero 5.10, pool 10.13/11.89. One token, pinned in both
   themes, instead of an override per panel per theme. */
:root, html.theme-dark { --ink-on-fill: #102018; }

/* SCOPED TO THE FILL, not to the component. The first attempt listed component
   classes — but .geo-stat and .concierge-* also appear on DARK panels, so
   pinning dark ink on them put #102018 on #092b24 and took the site from 134
   contrast failures to 1555. A fill's ink may only be pinned where the fill is
   actually painted, which is the parent that sets the background. */
.home-types-tape dt, .home-types-tape dd,
.home-types-decisions h2, .home-types-decisions p,
.home-types-decisions span, .home-types-decisions .home-types-kicker,
.geo-index-hero-copy p, .geo-index-hero-copy .geo-index-eyebrow,
.weekend-hero h2, .weekend-hero p { color: var(--ink-on-fill); }

/* Coral used as INK on the light page is 2.99:1 — that is what --coral-text is
   for (5.47:1). See the note beside its definition. */
.area-report-kicker, .area-report-read .area-report-kicker,
.area-report-directory .area-report-kicker,
.sinkhole-map-metric strong { color: var(--coral-text); }

/* ...and on a DARK panel the darkened red is far too dark (2.75:1). The bright
   accent is the right ink there. */
html.theme-dark .living-cost-kicker,
html.theme-dark .living-cost-sources span,
html.theme-dark .living-cost-drivers .living-cost-sources span,
html.theme-dark .area-report-kicker,
html.theme-dark .sinkhole-map-metric strong { color: var(--accent-ink); }

/* The sponsor seam used --midnight on --sand. Both flip in dark mode, and they
   flip to nearly the same colour: 1.18:1. My own bug, from assuming two tokens
   that contrast in one theme still contrast in the other. */
html.theme-dark .sponsor-seam { background: #202720; }
html.theme-dark .sponsor-seam-tag { color: #e2e8f0; }
html.theme-dark .sponsor-seam-note { color: #b4beb5; }
html.theme-dark .sponsor-risk { background: #202720; color: #b4beb5; }

/* Remaining sub-24px tap targets found by the full sweep: the event lists
   (243 of them), heading links, carousel dots and image credits. */
.event-row-actions a,
.h3 a, h3 a.event-link,
.figcaption a { display: inline-block; min-height: 24px; padding: 4px 0; }
.dots button.dot { min-width: 24px; min-height: 24px; }

/* --- The remaining 114, each scoped to the surface it sits on --------------- */

/* The area-report overview band is painted mango, so its stat labels need the
   fill ink in BOTH themes — the dark palette was turning them near-white on
   yellow (1.42:1). .geo-stat itself must not be touched: the same class sits on
   dark panels elsewhere, which is what broke the site a moment ago. */
.area-report-overview .geo-stat dt,
.area-report-overview .geo-stat dd { color: var(--ink-on-fill); }

/* The decisions band is a coral fill. The dark palette re-inked its headings
   near-white (2.48:1), and its kicker red was 4.15:1 even in light. */
html.theme-dark .home-types-decisions h2,
html.theme-dark .home-types-decisions h3,
html.theme-dark .home-types-decisions p { color: var(--ink-on-fill); }
.home-types-decisions .home-types-kicker,
.home-types-decisions article > span,
html.theme-dark .home-types-decisions .home-types-kicker,
html.theme-dark .home-types-decisions article > span { color: #4d1a14; }

/* .living-cost-drivers is a dark panel in BOTH themes, so the darkened coral
   was 2.75:1 in light mode too — a theme-scoped override could never fix it.
   The surface decides the ink, not the theme. */
.living-cost-drivers .living-cost-sources span { color: var(--accent-ink); }

/* Concierge chips: --muted on a near-white chip is 4.36:1, just under. */
.concierge-option span, .concierge-priority span,
button[data-concierge-value] span { color: var(--ink); }

/* --- Fixed surfaces get fixed ink ------------------------------------------
   The last of them, and all one lesson: these panels keep the SAME background
   in both themes, so any theme-aware token used as their ink is wrong by
   construction — it will be right in one theme and fail in the other. Pin the
   value. --accent-ink in particular is dark teal in light mode (#05685e) and
   bright coral in dark, so on a permanently-dark panel it fails in light. */
.area-report-hero-copy .area-report-kicker,
html.theme-dark .area-report-hero-copy .area-report-kicker { color: #ff8d87; }

.living-cost-drivers .living-cost-sources span,
html.theme-dark .living-cost-drivers .living-cost-sources span { color: #ff8d87; }

/* Coral bands: every descendant, both themes. */
.home-types-decisions article p,
html.theme-dark .home-types-decisions article p,
.geo-index-hero-copy p,
html.theme-dark .geo-index-hero-copy p,
.weekend-hero h2, .weekend-hero p,
html.theme-dark .weekend-hero h2,
html.theme-dark .weekend-hero p { color: var(--ink-on-fill); }

/* .home-types-profiles articles are coral in light mode and a dark panel in
   dark mode — a theme-AWARE surface, the opposite of the ones above. Pinning
   dark ink on it put #102018 on #101411. Only the light case needs help. */
html:not(.theme-dark) .home-types-profiles > article p { color: var(--ink-on-fill); }

/* Higher specificity than the hero's own paragraph rule. */
.geo-index-hero .geo-index-hero-copy p,
html.theme-dark .geo-index-hero .geo-index-hero-copy p { color: var(--ink-on-fill); }

/* A pool-coloured action tile: near-white ink on it is 1.38:1. */
/* This tile INVERTS between themes: dark teal on the light page, bright pool on
   the dark one. So its ink has to invert too — the one case in this file where
   a theme-aware colour is the correct answer rather than the bug. */
html:not(.theme-dark) .home-action:not(.home-action-dark),
html:not(.theme-dark) .home-action:not(.home-action-dark) strong { color: #ffffff; }
html.theme-dark .home-action:not(.home-action-dark),
html.theme-dark .home-action:not(.home-action-dark) strong { color: var(--ink-on-fill); }
/* The dark tile keeps light ink — it is a different surface wearing the same
   class, which is exactly the trap this whole block exists to avoid. */
.home-action-dark, html.theme-dark .home-action-dark,
.home-action-dark strong, html.theme-dark .home-action-dark strong { color: #f3f7f8; }

/* The last two: card-heading links (23px) and an image credit inside a
   <figcaption> (13px). Both a pixel or two under the 24px WCAG 2.5.8 floor. */
article.card h3 a,
figure figcaption a { display: inline-block; min-height: 24px; padding: 3px 0; }

@media (max-width: 900px) {
  .golf-course-hero { grid-template-columns: 1fr; gap: 24px; }
  .golf-course-metric { width: 190px; min-height: 120px; }
  .golf-course-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .golf-course-count { grid-column: 1 / -1; }
  .golf-course-grid { grid-template-columns: 1fr; }
  .recreation-finder-hero { grid-template-columns: 1fr; gap: 24px; }
  .recreation-finder-metric { width: 190px; min-height: 120px; }
  .recreation-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .golf-course-finder { width: calc(100% - 28px); margin-top: 20px; }
  .golf-course-hero { min-height: 530px; padding: 34px 20px; background-position: 64% center; }
  .golf-course-hero::before { background: linear-gradient(180deg, rgba(8,31,35,.92) 0%, rgba(8,31,35,.77) 66%, rgba(8,31,35,.45) 100%); }
  .golf-course-hero h1 { font-size: 3.15rem; }
  .golf-course-metric { width: 160px; min-height: 105px; padding: 16px; }
  .golf-course-metric strong { font-size: 3.5rem; }
  .golf-type-guide, .golf-course-controls { grid-template-columns: 1fr; }
  .golf-type-guide article { min-height: 0; }
  .golf-course-count { grid-column: 1; }
  .golf-course-card { grid-template-columns: 1fr; }
  .golf-course-address { text-align: left; }
  .golf-course-facts { grid-template-columns: 1fr; }
  .golf-course-source { display: grid; }
  .golf-course-source a { white-space: normal; }
  .recreation-finder { width: calc(100% - 28px); margin-top: 20px; }
  .recreation-finder-hero { min-height: 500px; padding: 34px 20px; background-position: 60% center; }
  .recreation-finder-hero::before { background: linear-gradient(180deg, rgba(5,33,29,.9) 0%, rgba(5,33,29,.72) 67%, rgba(5,33,29,.42) 100%); }
  .recreation-finder-hero h2 { font-size: 3rem; }
  .recreation-finder-metric { width: 160px; min-height: 105px; padding: 16px; }
  .recreation-finder-metric strong { font-size: 3.4rem; }
  .pool-type-guide { grid-template-columns: 1fr; }
  .pool-type-guide article { min-height: 0; border-right: 0; border-bottom: 1px solid rgba(16,32,24,.35); }
  .recreation-controls { grid-template-columns: 1fr; align-items: start; }
  .recreation-controls .recreation-count { grid-column: 1; }
  .recreation-card { grid-template-columns: 1fr; }
  .recreation-address { text-align: left; }
  .recreation-facts { grid-template-columns: 1fr; }
  .recreation-source { display: grid; }
  .recreation-source a { white-space: normal; }
}

/* The library feature band is a bright teal fill and the path kicker sits on
   coral. Both arrived after the site-wide contrast pass and both repeat the
   same mistake it existed to fix: palette ink on a fixed brand fill. Caught by
   scripts/check-a11y.mjs, which is the whole reason that gate now runs. */
.library-feature-head .section-kicker,
.library-feature-head p,
.library-feature-head h2,
.library-shelf h3,
.library-shelf p,
.path-kicker,
html.theme-dark .library-feature-head .section-kicker,
html.theme-dark .library-feature-head p,
html.theme-dark .library-feature-head h2,
html.theme-dark .library-shelf h3,
html.theme-dark .library-shelf p,
html.theme-dark .path-kicker { color: var(--ink-on-fill); }
html:not(.theme-dark) .library-feature-head > p:last-child,
html.theme-dark .partner-copy > p { color: var(--ink-on-fill); }
html:not(.theme-dark) .library-shelf .editorial-link { color: var(--ink-on-fill); }

/* Market pulse: direct-label explanatory charts, shared by static and live UI. */
.market-pulse { margin-top: -18px; }
.market-pulse .section-kicker { color: #725500; }
.market-pulse-intro .section-kicker, html.theme-dark .market-pulse .section-kicker { color: var(--mango); }
.market-pulse figure { position: relative; margin: 0; overflow: hidden; }
.market-pulse-intro { display: grid; grid-template-columns: minmax(0,.95fr) minmax(420px,1.05fr); min-height: 470px; border-bottom: 9px solid var(--coral); background: var(--midnight); color: white; }
.market-pulse-intro > div { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(38px,5vw,70px); }
.market-pulse-intro h2 { max-width: 650px; color: white; font-size: clamp(3rem,5vw,5.8rem); line-height: .92; }
.market-pulse-intro > div > p:not(.section-kicker) { max-width: 610px; margin: 24px 0; color: #d8e6e1; }
.market-pulse-intro img { display: block; width: 100%; height: 100%; object-fit: cover; }
.market-pulse-intro figcaption { position: absolute; right: 12px; bottom: 12px; padding: 5px 8px; background: rgba(9,43,36,.9); color: white; font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.market-pulse-actions { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.market-pulse-actions > a:not(.btn) { color: var(--mango); font-weight: 850; }
.market-pulse-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin: 0; background: var(--mango); color: #102018; }
.market-pulse-metrics > div { min-height: 124px; padding: 24px 26px; border-right: 1px solid rgba(16,32,24,.22); }
.market-pulse-metrics > div:last-child { border-right: 0; }
.market-pulse-metrics dt, .market-observation dt { font-family: var(--font-condensed); font-size: .7rem; font-weight: 850; text-transform: uppercase; }
.market-pulse-metrics dd, .market-observation dd { margin: 7px 0 4px; font-family: var(--font-display); font-size: clamp(1.5rem,2.4vw,2.2rem); font-weight: 800; line-height: 1; }
.market-pulse-metrics dt, .market-pulse-metrics dd, .market-pulse-metrics small { color: #102018; }
.market-pulse-metrics small { display: block; margin-top: 5px; font-family: var(--font-body); color: #102018; font-size: .72rem; font-weight: 500; line-height: 1.35; }
.market-pulse-split { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(290px,.75fr); gap: 8vw; padding: 92px 0; border-bottom: 1px solid var(--line); }
.market-pulse-split h2, .market-series h2, .market-regions h2, .market-villages h2, .market-observation h2, .market-evidence h2 { font-size: clamp(2.7rem,4.5vw,4.8rem); }
.market-pulse-split > div > p:not(.section-kicker), .market-series header > p, .market-regions header > p, .market-villages header > p, .market-observation > div > p, .market-evidence header > p { color: var(--muted); }
.market-price-bands { display: grid; gap: 21px; margin: 38px 0 0; padding: 0; list-style: none; }
.market-price-bands li > div { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 7px; }
.market-price-bands li strong { font-family: var(--font-display); font-size: 1.08rem; }
.market-price-bands li span { color: var(--muted); font-size: .78rem; font-weight: 750; }
.market-pulse-track { display: block; width: 100%; height: 13px; overflow: hidden; background: var(--line-2); }
.market-pulse-track i { display: block; height: 100%; background: var(--pool); }
.market-mix { align-self: start; padding: 30px; border-top: 7px solid var(--coral); background: var(--panel-2); }
.market-mix dl { margin: 24px 0; }
.market-mix dl > div { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.market-mix dt { color: var(--muted); font-size: .82rem; font-weight: 750; }
.market-mix dd { margin: 0; font-family: var(--font-display); font-size: 1.65rem; font-weight: 800; }
.market-mix > p:last-child { color: var(--muted); font-size: .84rem; }
.market-series { padding: 92px 0; border-bottom: 1px solid var(--line); }
.market-series > header { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.65fr); gap: 8vw; align-items: end; margin-bottom: 42px; }
.market-series > header > p { margin: 0; }
.market-series-head, .market-series li { display: grid; grid-template-columns: minmax(190px,1.25fr) repeat(3,minmax(125px,.7fr)); gap: 18px; align-items: center; }
.market-series-head { min-height: 44px; padding: 0 14px; border-bottom: 3px solid var(--midnight); color: var(--muted); font-family: var(--font-condensed); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.market-series ul { margin: 0; padding: 0; list-style: none; }
.market-series li { min-height: 80px; padding: 14px; border-bottom: 1px solid var(--line); }
.market-series li a, .market-series li strong { display: block; color: var(--ink); font-family: var(--font-display); font-size: 1.02rem; font-weight: 800; }
.market-series li a:hover { color: var(--coral-text); }
.market-series li span { display: block; margin-top: 3px; color: var(--muted); font-size: .71rem; }
.market-series-warning, .market-series-complete { max-width: 780px; margin: 28px 0 0; padding-left: 15px; border-left: 5px solid var(--mango); color: var(--muted); font-size: .82rem; }
.market-series-warning a { color: var(--coral-text); font-weight: 850; }
html.theme-dark .market-series li a:hover, html.theme-dark .market-series-warning a { color: var(--coral); }
.market-regions { padding: 92px 0; border-bottom: 1px solid var(--line); }
.market-regions > header { display: grid; grid-template-columns: minmax(0,1fr) minmax(260px,.55fr); gap: 8vw; align-items: end; margin-bottom: 42px; }
.market-regions > header > p { margin: 0; }
.market-region-head, .market-regions li { display: grid; grid-template-columns: minmax(190px,1fr) minmax(190px,1.3fr) minmax(130px,.7fr) minmax(130px,.7fr); gap: 22px; align-items: center; }
.market-region-head { min-height: 44px; padding: 0 14px; border-bottom: 3px solid var(--midnight); color: var(--muted); font-family: var(--font-condensed); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.market-regions ul { margin: 0; padding: 0; list-style: none; }
.market-regions li { min-height: 86px; padding: 16px 14px; border-bottom: 1px solid var(--line); }
.market-regions li strong { display: block; font-family: var(--font-display); font-size: 1.05rem; }
.market-regions li span, .market-regions li small { display: block; margin-top: 3px; color: var(--muted); font-size: .72rem; }
.market-region-bar > span { display: block; height: 10px; margin: 0 0 7px; overflow: hidden; background: var(--line-2); }
.market-region-bar > span i { display: block; height: 100%; background: var(--coral); }
.market-villages { padding: 92px 0; border-bottom: 1px solid var(--line); }
.market-villages > header { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.55fr); gap: 8vw; align-items: end; margin-bottom: 42px; }
.market-villages > header > p { margin: 0; }
.market-village-head, .market-villages li { display: grid; grid-template-columns: minmax(180px,1.25fr) repeat(4,minmax(115px,.7fr)); gap: 18px; align-items: center; }
.market-village-head { min-height: 44px; padding: 0 14px; border-bottom: 3px solid var(--midnight); color: var(--muted); font-family: var(--font-condensed); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.market-villages ul { margin: 0; padding: 0; list-style: none; }
.market-villages li { min-height: 80px; padding: 14px; border-bottom: 1px solid var(--line); }
.market-villages li a, .market-villages li strong { display: block; color: var(--ink); font-family: var(--font-display); font-size: 1.02rem; font-weight: 800; }
.market-villages li a:hover { color: var(--coral); }
.market-villages li span { display: block; margin-top: 3px; color: var(--muted); font-size: .71rem; }
.market-village-note { max-width: 760px; margin: 28px 0 22px; color: var(--muted); font-size: .82rem; }
.market-observation { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 8vw; padding: 92px 0; }
.market-period { font-size: .8rem; font-weight: 750; }
.market-observation dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; border-top: 4px solid var(--midnight); }
.market-observation dl > div { min-height: 145px; padding: 23px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.market-observation dl > div:nth-child(even) { border-right: 0; }
.market-observation small { display: block; margin-top: 5px; font-family: var(--font-body); color: var(--muted); font-size: .72rem; font-weight: 500; line-height: 1.35; }
.market-observation-actions { grid-column: 2; display: flex; flex-wrap: wrap; gap: 10px 22px; }
.market-observation-actions a { color: var(--coral-text); font-weight: 850; }
html.theme-dark .market-observation-actions a { color: var(--coral); }
.market-evidence { padding: 92px 0; border-top: 1px solid var(--line); }
.market-evidence > header { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.65fr); gap: 8vw; align-items: end; margin-bottom: 42px; }
.market-evidence > header > p { margin: 0; }
.market-evidence ul { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 0; padding: 0; border-top: 4px solid var(--midnight); list-style: none; }
.market-evidence li { display: flex; justify-content: space-between; gap: 20px; min-height: 108px; padding: 22px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.market-evidence li:nth-child(3n) { border-right: 0; }
.market-evidence li.is-degraded { border-top: 5px solid var(--coral); }
.market-evidence li strong, .market-evidence li span { display: block; }
.market-evidence li strong { color: var(--ink); font-family: var(--font-display); font-size: 1rem; }
.market-evidence li span { margin-top: 5px; color: var(--muted); font-size: .7rem; }
.market-evidence li > div:last-child { flex: 0 0 auto; text-align: right; }
.market-pulse-note { display: grid; grid-template-columns: 160px minmax(0,1fr) auto; gap: 28px; align-items: start; padding: 34px 0; border-top: 6px solid var(--midnight); }
.market-pulse-note strong { font-family: var(--font-display); font-size: 1.16rem; }
.market-pulse-note p { margin: 0; color: var(--muted); }
.market-pulse-note span { color: var(--muted); font-size: .74rem; font-weight: 800; white-space: nowrap; }
html.theme-dark .market-pulse-intro { background: #0b110e; }
html.theme-dark .market-pulse-metrics { background: var(--mango); color: #102018; }
html.theme-dark .market-pulse-metrics dt, html.theme-dark .market-pulse-metrics dd, html.theme-dark .market-pulse-metrics small { color: #102018; }
html.theme-dark .market-mix { background: var(--panel-2); }
html.theme-dark .market-pulse-track, html.theme-dark .market-region-bar > span { background: #35443e; }

@media(max-width:900px) {
  .market-pulse-intro { grid-template-columns: 1fr; }
  .market-pulse-intro figure { min-height: 340px; }
  .market-pulse-split, .market-observation { grid-template-columns: 1fr; gap: 48px; }
  .market-observation-actions { grid-column: 1; }
  .market-series > header, .market-regions > header, .market-villages > header, .market-evidence > header { grid-template-columns: 1fr; gap: 18px; }
  .market-evidence ul { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .market-evidence li:nth-child(3n) { border-right: 1px solid var(--line); }
  .market-evidence li:nth-child(2n) { border-right: 0; }
}
@media(max-width:640px) {
  .market-pulse { margin-top: -34px; }
  .market-pulse-intro { min-height: 0; }
  .market-pulse-intro > div { padding: 44px 22px; }
  .market-pulse-intro h2 { font-size: 2.8rem; overflow-wrap: anywhere; }
  .market-pulse-intro figure { min-height: 240px; }
  .market-pulse-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .market-pulse-metrics > div { min-height: 108px; padding: 18px; border-bottom: 1px solid rgba(16,32,24,.22); }
  .market-pulse-metrics dd { font-size: 1.4rem; }
  .market-pulse-split, .market-series, .market-regions, .market-villages, .market-observation, .market-evidence { padding: 68px 0; }
  .market-pulse-split h2, .market-series h2, .market-regions h2, .market-villages h2, .market-observation h2, .market-evidence h2 { font-size: 2.75rem; }
  .market-price-bands li > div { align-items: end; }
  .market-series-head { display: none; }
  .market-series li { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; padding: 20px 0; }
  .market-series li > div:first-child { grid-column: 1 / -1; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
  .market-series li > div:nth-child(3) { text-align: center; }
  .market-series li > div:nth-child(4) { text-align: right; }
  .market-region-head { display: none; }
  .market-regions li { grid-template-columns: minmax(0,1fr) minmax(105px,.7fr); gap: 13px; padding: 18px 0; }
  .market-region-bar { grid-column: 1 / -1; grid-row: 2; }
  .market-regions li > div:nth-child(3), .market-regions li > div:nth-child(4) { text-align: right; }
  .market-village-head { display: none; }
  .market-villages li { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; padding: 20px 0; }
  .market-villages li > div:first-child { grid-column: 1 / -1; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
  .market-villages li > div:nth-child(even) { text-align: right; }
  .market-observation dl > div { min-height: 125px; padding: 18px; }
  .market-observation dd { font-size: 1.45rem; }
  .market-evidence ul { grid-template-columns: 1fr; }
  .market-evidence li, .market-evidence li:nth-child(2n), .market-evidence li:nth-child(3n) { min-height: 0; padding: 18px 0; border-right: 0; }
  .market-pulse-note { grid-template-columns: 1fr; gap: 10px; }
  .market-pulse-note span { white-space: normal; }
}
/* Higher specificity than the two rules that set these directly. */
.library-feature-head > p:last-child,
html.theme-dark .library-feature-head > p:last-child,
.partner-copy p, html.theme-dark .partner-copy p,
.library-shelf > span, .library-shelf h3, .library-shelf p,
.library-shelf .editorial-link { color: var(--ink-on-fill); }

/* Fixed-fill workspace regions keep fixed-fill ink in both themes. */
.workspace-empty .eyebrow { color: var(--coral-text); }
html.theme-dark .workspace-search > label { color: #102018; }

@media print {
  html.print-evidence-packet,
  html.print-evidence-packet body { height: auto !important; min-height: 0 !important; overflow: visible !important; }
  html.print-evidence-packet body > *:not(.evidence-dialog) { display: none !important; }
  html.print-evidence-packet body * { visibility: hidden !important; }
  html.print-evidence-packet .evidence-dialog,
  html.print-evidence-packet .evidence-dialog * { visibility: visible !important; }
  html.print-evidence-packet .evidence-dialog { position: static; display: block; width: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: white !important; color: black !important; box-shadow: none; }
  html.print-evidence-packet .evidence-controls { display: none !important; }
  html.print-evidence-packet .evidence-packet { padding: 0; }
  html.print-evidence-packet .evidence-head { grid-template-columns: 1fr 180px; padding: 0 0 18px; border-color: black; }
  html.print-evidence-packet .evidence-head h2 { color: black !important; font-size: 30px; }
  html.print-evidence-packet .evidence-head img { max-height: 135px; }
  html.print-evidence-packet .evidence-grid { border-color: #999; }
  html.print-evidence-packet .evidence-grid > section { padding: 16px; break-inside: avoid; border-color: #999; }
  html.print-evidence-packet .evidence-packet h3,
  html.print-evidence-packet .evidence-packet dt,
  html.print-evidence-packet .evidence-packet dd,
  html.print-evidence-packet .evidence-packet p,
  html.print-evidence-packet .evidence-packet li,
  html.print-evidence-packet .evidence-packet strong { color: black !important; }
  html.print-evidence-packet .evidence-checklist { padding: 18px 16px; background: #eee !important; break-inside: avoid; }
  html.print-evidence-packet .evidence-sources { padding: 18px 16px; border-color: #999; break-inside: avoid; }
  html.print-evidence-packet .evidence-sources a { color: black !important; }
  html.print-evidence-packet .evidence-packet footer { padding-top: 16px; }

  html.print-buyer-workspace body * { visibility: hidden !important; }
  html.print-buyer-workspace .workspace-main,
  html.print-buyer-workspace .workspace-main * { visibility: visible !important; }
  html.print-buyer-workspace .workspace-main { position: absolute; inset: 0 auto auto 0; width: 100%; margin: 0; padding: 18px; background: white !important; color: black !important; }
  html.print-buyer-workspace .workspace-actions,
  html.print-buyer-workspace .workspace-alerts,
  html.print-buyer-workspace .workspace-notes,
  html.print-buyer-workspace .workspace-services { display: none !important; }
  html.print-buyer-workspace .workspace-toolbar { grid-template-columns: 1fr; }
  html.print-buyer-workspace .workspace-assumptions { display: none !important; }
  html.print-buyer-workspace .workspace-tablewrap { overflow: visible; border-color: black; }
  html.print-buyer-workspace .workspace-table { min-width: 0; font-size: 9px; }
  html.print-buyer-workspace .workspace-table th,
  html.print-buyer-workspace .workspace-table td { padding: 6px; color: black !important; }
  html.print-buyer-workspace .workspace-table thead th { background: white !important; border-top: 2px solid black; }
  html.print-buyer-workspace .workspace-source { display: none !important; }
  html.print-village-compare body * { visibility: hidden !important; }
  html.print-village-compare .village-compare,
  html.print-village-compare .village-compare * { visibility: visible !important; }
  html.print-village-compare .village-compare { position: absolute; inset: 0 auto auto 0; width: 100%; margin: 0; padding: 24px; border: 0; background: white !important; color: black !important; }
  html.print-village-compare .village-compare-controls,
  html.print-village-compare .village-compare-actions,
  html.print-village-compare .village-compare > header > a { display: none !important; }
  html.print-village-compare .village-compare-tablewrap { overflow: visible; border-color: black; }
  html.print-village-compare .village-compare-table { min-width: 0; }
  html.print-village-compare .village-compare-table thead th { background: white !important; color: black !important; border-top: 2px solid black; }
  html.print-village-compare .village-compare-table a,
  html.print-village-compare .village-compare > footer p { color: black !important; }
}

/* ---- Broker-authorized MLS partnership proposal ---- */
.broker-page {
  display: grid;
  gap: clamp(42px, 7vw, 82px);
}

.broker-proposal {
  display: grid;
  gap: clamp(28px, 5vw, 54px);
}

.broker-hero {
  position: relative;
  min-height: min(610px, calc(100svh - 170px));
  display: grid;
  align-items: end;
  overflow: hidden;
  margin-inline: calc(50% - 50vw);
  padding: clamp(30px, 7vw, 78px) max(clamp(24px, 7vw, 78px), calc((100vw - 1180px) / 2));
  background:
    linear-gradient(90deg, rgba(4, 42, 34, .96) 0%, rgba(4, 42, 34, .83) 43%, rgba(4, 42, 34, .2) 76%),
    var(--broker-image) center / cover no-repeat;
  color: #fff8de;
  isolation: isolate;
}

.broker-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, transparent 55%, rgba(2, 24, 20, .58));
  pointer-events: none;
}

.broker-hero-copy {
  max-width: 760px;
  animation: brokerRise .72s cubic-bezier(.22, .61, .36, 1) both;
}

@keyframes brokerRise {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

.broker-kicker {
  margin: 0 0 10px;
  color: var(--accent-ink);
  font: 900 .76rem/1.1 var(--font-sans);
  letter-spacing: .14em;
  text-transform: uppercase;
}

.broker-hero .broker-kicker,
.broker-proposal-close .broker-kicker {
  color: #f4c542;
}

.broker-hero h1 {
  max-width: 740px;
  margin: 0;
  color: #fff8de;
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 7.4vw, 6rem);
  line-height: .94;
  letter-spacing: -.025em;
}

.broker-hero-copy > p:not(.broker-kicker) {
  max-width: 660px;
  margin: 22px 0 0;
  color: rgba(255, 248, 222, .9);
  font-size: clamp(1rem, 2vw, 1.2rem);
  line-height: 1.55;
}

.broker-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 26px;
}

.broker-hero-note {
  position: absolute;
  right: max(clamp(24px, 7vw, 78px), calc((100vw - 1180px) / 2));
  bottom: clamp(28px, 7vw, 76px);
  max-width: 190px;
  margin: 0;
  color: rgba(255, 248, 222, .76);
  font-size: .75rem;
  font-weight: 800;
  line-height: 1.35;
  text-align: right;
  text-transform: uppercase;
}

.broker-source-model,
.broker-partnership-grid,
.broker-proposal-close,
.broker-outreach {
  display: grid;
  gap: clamp(22px, 4vw, 44px);
}

.broker-source-model {
  grid-template-columns: minmax(240px, .42fr) minmax(0, 1fr);
  align-items: start;
}

.broker-section-intro h2,
.broker-partnership-grid h2,
.broker-proposal-close h2,
.broker-outreach h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(2rem, 4.8vw, 4.15rem);
  line-height: .98;
}

.broker-source-list {
  border-top: 1px solid var(--line);
}

.broker-source-list article {
  display: grid;
  grid-template-columns: 120px minmax(150px, .38fr) minmax(0, 1fr);
  gap: 18px;
  align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
  transition: padding-left .18s ease, border-color .18s ease;
}

.broker-source-list article:hover {
  padding-left: 8px;
  border-color: var(--fairway);
}

.broker-source-list span {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.broker-source-list h3,
.broker-outreach h3 {
  margin: 0;
  color: var(--accent-ink);
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2.5vw, 1.85rem);
  line-height: 1;
}

.broker-source-list p,
.broker-partnership-grid p,
.broker-partnership-grid li,
.broker-role-sheet dd,
.broker-proposal-close p,
.broker-outreach p,
.broker-outreach li {
  margin: 0;
  color: var(--muted);
  line-height: 1.52;
}

.broker-partnership-grid {
  grid-template-columns: minmax(0, .92fr) minmax(320px, 1.08fr);
  align-items: start;
  padding: clamp(26px, 5vw, 52px) 0;
  border-block: 1px solid var(--line);
}

.broker-partnership-grid > div:first-child > p:not(.broker-kicker) {
  margin-top: 18px;
}

.broker-partnership-grid ul {
  display: grid;
  gap: 10px;
  margin: 20px 0 0;
  padding-left: 20px;
}

.broker-role-sheet {
  padding: clamp(20px, 4vw, 34px);
  border-radius: 8px;
  background: color-mix(in srgb, var(--panel), var(--fairway) 8%);
}

.broker-role-sheet dl {
  margin: 0;
}

.broker-role-sheet dl > div {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
}

.broker-role-sheet dl > div:last-child {
  border-bottom: 0;
}

.broker-role-sheet dt {
  color: var(--accent-ink);
  font-weight: 900;
}

.broker-proposal-close {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  padding: clamp(28px, 5vw, 52px);
  border-radius: 8px;
  background: #06443d;
  color: #fff8de;
}

.broker-proposal-close h2,
.broker-proposal-close p {
  color: #fff8de;
}

.broker-proposal-close > div > p:not(.broker-kicker) {
  max-width: 740px;
  margin-top: 14px;
  color: rgba(255, 248, 222, .82);
}

.broker-fine-print {
  grid-column: 1 / -1;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 248, 222, .24);
  color: rgba(255, 248, 222, .65) !important;
  font-size: .74rem;
}

.broker-outreach {
  padding-bottom: clamp(30px, 6vw, 66px);
}

.broker-outreach > header {
  max-width: 760px;
}

.broker-outreach > header > p:not(.broker-kicker) {
  margin-top: 14px;
}

.broker-outreach > header > .advertise-primary {
  width: fit-content;
  margin-top: 18px;
}

.broker-outreach-tools {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.broker-outreach-tools > section {
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
}

.broker-outreach-tools > section:last-child {
  grid-column: 1 / -1;
}

.broker-tool-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  margin-bottom: 18px;
}

.broker-tool-head button {
  min-height: 38px;
  padding: 0 13px;
  border: 1px solid var(--fairway);
  border-radius: 6px;
  background: transparent;
  color: var(--accent-ink);
  cursor: pointer;
  font-weight: 900;
  transition: background .16s ease, color .16s ease, transform .16s ease;
}

.broker-tool-head button:hover,
.broker-tool-head button:focus-visible {
  transform: translateY(-2px);
  background: var(--fairway-deep);
  color: #fff;
}

.broker-outreach pre {
  max-height: 420px;
  overflow: auto;
  margin: 0;
  white-space: pre-wrap;
  color: var(--ink);
  font: 500 .88rem/1.55 var(--font-sans);
}

.broker-outreach ol {
  display: grid;
  gap: 10px;
  margin: 18px 0 0;
  padding-left: 24px;
}

.broker-copy-status {
  min-height: 1.5em;
  color: var(--accent-ink) !important;
  font-weight: 800;
}

@media (max-width: 900px) {
  .broker-source-model,
  .broker-partnership-grid,
  .broker-proposal-close {
    grid-template-columns: 1fr;
  }

  .broker-hero-note {
    display: none;
  }
}

@media (max-width: 660px) {
  .broker-hero {
    min-height: 590px;
    padding: 30px 22px;
    background-position: 58% center;
  }

  .broker-source-list article,
  .broker-role-sheet dl > div,
  .broker-outreach-tools {
    grid-template-columns: 1fr;
  }

  .broker-source-list article {
    gap: 7px;
  }

  .broker-outreach-tools > section:last-child {
    grid-column: auto;
  }

  .broker-actions,
  .broker-actions > *,
  .broker-proposal-close > .advertise-primary {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .broker-hero-copy { animation: none; }
  .broker-source-list article,
  .broker-tool-head button { transition: none; }
}

@media print {
  @page { size: letter portrait; margin: .38in; }

  .broker-outreach,
  .broker-actions {
    display: none !important;
  }

  main,
  #view {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .broker-page,
  .broker-proposal {
    display: block !important;
  }

  .broker-proposal {
    color: #111 !important;
    font-size: 8.6pt;
  }

  .broker-hero {
    min-height: 0;
    display: grid !important;
    margin: 0 0 13px;
    padding: 14px 16px;
    color: #111 !important;
    background: #eef4e9 !important;
  }

  .broker-hero-copy {
    max-width: none;
    animation: none;
  }

  .broker-hero h1 {
    max-width: none;
    color: #103e2c !important;
    font-size: 24pt;
    line-height: .98;
  }

  .broker-hero-copy > p:not(.broker-kicker) {
    max-width: none;
    margin: 7px 0 0;
    color: #263e31 !important;
    font-size: 9pt;
    line-height: 1.32;
  }

  .broker-hero .broker-kicker,
  .broker-proposal-close .broker-kicker,
  .broker-kicker {
    margin-bottom: 5px;
    color: #1b633d !important;
    font-size: 6.8pt;
  }

  .broker-hero-note {
    display: block;
    position: static;
    max-width: none;
    margin-top: 7px;
    color: #526457 !important;
    font-size: 6.5pt;
    text-align: left;
  }

  .broker-source-model,
  .broker-partnership-grid,
  .broker-proposal-close {
    display: grid !important;
    break-inside: avoid;
  }

  .broker-source-model {
    grid-template-columns: 155px 1fr;
    gap: 14px;
    margin-bottom: 12px;
  }

  .broker-section-intro h2,
  .broker-partnership-grid h2,
  .broker-proposal-close h2 {
    color: #103e2c !important;
    font-size: 16pt;
  }

  .broker-source-list article {
    grid-template-columns: 78px 112px 1fr;
    gap: 8px;
    padding: 6px 0;
  }

  .broker-source-list h3 {
    font-size: 10.5pt;
  }

  .broker-source-list span {
    font-size: 5.8pt;
  }

  .broker-source-list p,
  .broker-partnership-grid p,
  .broker-partnership-grid li,
  .broker-role-sheet dd,
  .broker-proposal-close p {
    color: #33493a !important;
    line-height: 1.28;
  }

  .broker-partnership-grid {
    grid-template-columns: .9fr 1.1fr;
    gap: 14px;
    margin-bottom: 12px;
    padding: 10px 0;
  }

  .broker-partnership-grid > div:first-child > p:not(.broker-kicker) {
    margin-top: 6px;
  }

  .broker-partnership-grid ul {
    gap: 3px;
    margin-top: 6px;
  }

  .broker-role-sheet {
    padding: 7px 10px;
    background: #f6f8f3 !important;
  }

  .broker-role-sheet dl > div {
    grid-template-columns: 70px 1fr;
    gap: 8px;
    padding: 5px 0;
  }

  .broker-proposal-close {
    grid-template-columns: 1fr;
    gap: 5px;
    padding: 10px 14px;
    background: #eef4e9 !important;
  }

  .broker-proposal-close h2 {
    color: #103e2c !important;
  }

  .broker-proposal-close > div > p:not(.broker-kicker) {
    margin-top: 5px;
    color: #33493a !important;
  }

  .broker-proposal-close > .advertise-primary {
    display: none !important;
  }

  .broker-fine-print {
    padding-top: 5px;
    color: #5b695f !important;
    font-size: 6pt;
  }
}

/* Bond schedule directory (/bond-schedules.html).
   The unit links reuse .chip, which site.css already sizes to a 36px minimum —
   but .chip never sets `display`, and .cluster-links is defined only in
   styles.css, which this page does not load. Left alone the container stayed
   `block` and the links stayed `inline`, so 39 of the 356 labels broke across
   two lines mid-chip ("Unit / 78") and every one carried the default underline.
   The release gate did not catch it: its accessibility sweep samples 20 pages
   and this is not one of them. A browser was. */
.bond-schedule-directory .cluster-links { display: flex; flex-wrap: wrap; gap: 8px; }
.bond-schedule-directory a.chip {
  display: inline-flex; align-items: center; white-space: nowrap;
  text-decoration: none; font-variant-numeric: tabular-nums;
}
.bond-schedule-directory h4 { margin: 18px 0 8px; font-size: var(--fs-sm); letter-spacing: .04em; text-transform: uppercase; }
.bond-schedule-directory .bond-county { margin-bottom: 28px; }
