/* ==========================================================================
   Brenda Bendis Real Estate — design system
   Deliberate choice: base font-size 17px, minimum tap target 48px, and a
   4.5:1 contrast floor everywhere. Her core market is a 55+ community.
   Accessibility here is not compliance theatre, it is conversion work.
   ========================================================================== */

:root {
  /* Photo-led luxury palette: chalk, carbon and one brokerage-adjacent cabernet. */
  --color-paper:#FAF9F7; --color-canvas:#EFEEEB; --color-ink:#111110;
  --color-ink-2:#4F4D49; --color-ink-3:#64615C;
  --color-rule:#C9C5BF; --color-rule-soft:#E1DED9;
  --color-evergreen:#6D1938; --color-evergreen-deep:#4B0E27; --color-evergreen-soft:#E9D9DF;
  --feature-bg:#120E10; --feature-fg:#FAF8F4; --feature-muted:#D7CFD1; --feature-rule:#66515A;
  --feature-positive:#E6B6C7; --feature-negative:#F0B8A9;
  --hero-fg:#FFFFFF; --hero-muted:#E4DEDD; --hero-rule:rgba(255,255,255,.35);
  --hero-scrim:linear-gradient(90deg,rgba(8,7,7,.88) 0%,rgba(8,7,7,.64) 46%,rgba(8,7,7,.12) 78%),linear-gradient(0deg,rgba(8,7,7,.52),transparent 55%);
  --hero-panel:rgba(12,10,10,.66); --hero-header:rgba(10,9,9,.34);

  /* Semantic color aliases used by every component. */
  --paper:var(--color-paper); --ground:var(--color-canvas); --ink:var(--color-ink);
  --ink-2:var(--color-ink-2); --ink-3:var(--color-ink-3);
  --line:var(--color-rule); --line-2:var(--color-rule-soft);
  --pine:var(--color-evergreen); --pine-ink:var(--color-evergreen-deep);
  --pine-soft:var(--color-evergreen-soft); --sage:var(--color-evergreen); --sage-soft:var(--color-evergreen-soft);
  --warn:#8A5A00; --warn-bg:#FDF1D8; --warn-line:#E7C687;
  /* --ok flips light-on-dark between themes, so the ink that sits on it has to
     flip too — white on the dark-theme green measures 2:1. */
  --ok:#1F6B45; --ok-ink:#FFFFFF;
  --bg:var(--ground); --fg:var(--ink); --fg-2:var(--ink-2); --fg-3:var(--ink-3);
  --card:var(--paper); --edge:var(--line); --edge-2:var(--line-2); --accent:var(--pine);
  --accent-ink:var(--pine-ink); --accent-soft:var(--pine-soft);
  --shadow:none; --shadow-lg:none;
  --shadow-float:0 24px 64px -28px rgba(25,26,23,.34);

  /* Bodoni supplies a fashion-editorial silhouette; Manrope keeps the working UI direct. */
  --font-display:'Bodoni Moda', Didot, 'Times New Roman', serif;
  --font-body:'Manrope', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-data:'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  --serif:var(--font-display); --sans:var(--font-body); --mono:var(--font-data);
  --type-caption:.72rem; --type-label:.76rem; --type-small:.88rem; --type-body:1.0625rem;
  --type-lede:clamp(1.04rem,1.2vw,1.22rem); --type-h3:clamp(1.35rem,1.8vw,1.65rem);
  --type-h2:clamp(2.25rem,4vw,3.75rem); --type-hero:clamp(3.35rem,6vw,6.2rem);
  --leading-body:1.68; --leading-display:.9; --tracking-display:-.055em; --tracking-label:.2em;

  /* Uneven section rhythm: a compact working interval and a generous editorial interval. */
  --space-1:1.25rem; --space-2:2rem; --space-3:3.25rem; --space-4:4.5rem;
  --space-section:clamp(4.75rem,8vw,8rem); --space-section-tight:clamp(3.75rem,6vw,5.75rem);
  --space-hero:clamp(4.5rem,8vw,7rem);
  --wrap:1200px; --wrap-wide:1360px; --wrap-footer:1480px; --gut:clamp(1.15rem,4vw,3rem);
  --footer-bg:#171314; --footer-fg:#F7F2EF; --footer-muted:#C9C0BE; --footer-rule:#51464A;
  --sun-hero-min:clamp(36rem,57vw,46rem); --sun-grid-gap:clamp(.85rem,1.5vw,1.25rem);
  --sun-column-gap:clamp(2.5rem,6vw,6.5rem); --sun-copy-width:64ch;
  --sun-hero-height:clamp(39rem,calc(100svh - 5rem),46rem);
  --sun-hero-type:clamp(3.2rem,14vw,4.35rem);
  --sun-plan-action-height:48px; --sun-plan-sheet-ratio:4/3;

  /* Almost-square surfaces; curves are reserved for native circular controls. */
  --radius-0:0; --radius-1:2px; --radius-2:4px; --radius-round:999px;
  --r:var(--radius-1); --r-sm:var(--radius-1); --r-lg:var(--radius-2);

  /* Slow, settled motion. */
  --duration-fast:420ms; --duration-slow:520ms;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --t:var(--duration-fast) var(--ease-out); --t-slow:var(--duration-slow) var(--ease-out);

  /* A single grade keeps mixed representative photography in one visual register. */
  --image-grade:saturate(.82) contrast(1.06) brightness(.9);
  --image-grade-hover:saturate(.96) contrast(1.04) brightness(.96);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg:#0C0B0B; --fg:#F4F1ED; --fg-2:#C3BCB8; --fg-3:#938B87;
    --card:#171414; --edge:#3A3335; --edge-2:#282325;
    --paper:var(--card); --ground:var(--bg);
    --accent:#D08AA4; --accent-ink:#E1A8BC; --accent-soft:#2B141D;
    --sage-soft:#2B141D;
    --feature-bg:#0B090A; --feature-fg:#F4F1ED; --feature-muted:#C9C0C2; --feature-rule:#55464C;
    --feature-positive:#E6B6C7; --feature-negative:#F0B8A9;
    --warn:#F0C480; --warn-bg:#2C2314; --warn-line:#5A4520;
    --ok:#5FCB94; --ok-ink:#0E1013;
    --shadow:none; --shadow-lg:none; --shadow-float:0 28px 72px -30px rgba(0,0,0,.78);
    --hero-panel:rgba(8,7,7,.76); --hero-header:rgba(8,7,7,.58);
    --image-grade:saturate(.7) contrast(1.04) brightness(.68);
    --image-grade-hover:saturate(.85) contrast(1.03) brightness(.75);
    --footer-bg:#050505; --footer-fg:#F4F1ED; --footer-muted:#BDB5B2; --footer-rule:#3A3434;
  }
}
:root[data-theme="dark"] {
  --bg:#0C0B0B; --fg:#F4F1ED; --fg-2:#C3BCB8; --fg-3:#938B87;
  --card:#171414; --edge:#3A3335; --edge-2:#282325;
  --paper:var(--card); --ground:var(--bg);
  --accent:#D08AA4; --accent-ink:#E1A8BC; --accent-soft:#2B141D;
  --sage-soft:#2B141D; --warn:#F0C480; --warn-bg:#2C2314; --warn-line:#5A4520; --ok:#5FCB94; --ok-ink:#0E1013;
  --feature-bg:#0B090A; --feature-fg:#F4F1ED; --feature-muted:#C9C0C2; --feature-rule:#55464C;
  --feature-positive:#E6B6C7; --feature-negative:#F0B8A9;
  --shadow:none; --shadow-lg:none; --shadow-float:0 28px 72px -30px rgba(0,0,0,.78);
  --hero-panel:rgba(8,7,7,.76); --hero-header:rgba(8,7,7,.58);
  --image-grade:saturate(.7) contrast(1.04) brightness(.68);
  --image-grade-hover:saturate(.85) contrast(1.03) brightness(.75);
  --footer-bg:#050505; --footer-fg:#F4F1ED; --footer-muted:#BDB5B2; --footer-rule:#3A3434;
}

*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
body {
  margin:0; background:var(--bg); color:var(--fg);
  font:400 var(--type-body)/var(--leading-body) var(--font-body);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video { max-width:100%; display:block; }
a { color:inherit; }
:where(a,button,input,select,textarea,summary,details):focus-visible {
  outline:3px solid var(--accent); outline-offset:2px; border-radius:4px;
}
.sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.skip {
  position:absolute; left:50%; translate:-50% -120%; z-index:200; background:var(--fg); color:var(--bg);
  padding:.75rem 1.25rem; border-radius:0 0 var(--r-sm) var(--r-sm); font-weight:600; text-decoration:none;
}
.skip:focus { translate:-50% 0; }

/* ---- type ---- */
h1,h2,h3,h4 { font-family:var(--font-display); font-weight:500; line-height:var(--leading-display); letter-spacing:var(--tracking-display); margin:0 0 .5em; text-wrap:balance; }
h1 { font-size:var(--type-hero); }
h2 { font-size:var(--type-h2); }
h3 { font-size:var(--type-h3); }
p { margin:0 0 1.1em; text-wrap:pretty; }
:where(p, li, dd, td, h1, h2, h3, h4) { overflow-wrap:break-word; }
a[href^="mailto:"], .ph, .foot__contact a, .legal__brokerage { overflow-wrap:anywhere; }
.lede { font-size:var(--type-lede); color:var(--fg-2); line-height:1.6; max-width:62ch; }
.eyebrow {
  font:600 var(--type-label)/1.3 var(--font-body); letter-spacing:var(--tracking-label); text-transform:uppercase;
  color:var(--accent-ink); margin:0 0 1rem;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .eyebrow { color:var(--accent); } }
:root[data-theme="dark"] .eyebrow { color:var(--accent); }

/* ---- layout ---- */
.wrap { width:min(var(--wrap), 100%); margin-inline:auto; padding-inline:var(--gut); }

/* Grid and flex children default to min-width:auto, which lets a wide table or a long
   unbroken string push a column past the viewport. Every multi-column container here is
   allowed to shrink; anything genuinely too wide scrolls inside its own box instead. */
.split > *, .srch > *, .hero__in > *, .foot__top > *, .band__in > *,
.grid > *, .quotes > *, .stack > * { min-width:0; }
.wrap--narrow { width:min(760px, 100%); }
.wrap--mid { width:min(960px, 100%); }
.sect { padding-block:var(--space-section); }
.sect--tight { padding-block:var(--space-section-tight); }
.sect--alt { background:var(--card); border-block:1px solid var(--edge); }
.shead { margin-bottom:clamp(2rem, 4vw, 3rem); max-width:64ch; }
.shead.center { margin-inline:auto; text-align:center; }
.shead.center .lede { margin-inline:auto; }

/* ---- buttons ---- */
.btn {
  --bh:52px;
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  min-height:var(--bh); padding:0 1.5rem; border-radius:var(--r-sm); border:1.5px solid transparent;
  font:600 1rem/1.25 var(--sans); text-decoration:none; cursor:pointer; text-align:center; max-width:100%;
  transition:background var(--t), color var(--t), border-color var(--t), transform var(--t), box-shadow var(--t);
}
.btn--solid { background:var(--fg); color:var(--bg); }
.btn--solid:hover { background:var(--accent-ink); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .btn--solid:hover { background:var(--accent); color:#101216; } }
:root[data-theme="dark"] .btn--solid:hover { background:var(--accent); color:#101216; }
.btn--ghost { border-color:var(--edge); background:transparent; color:var(--fg); }
.btn--ghost:hover { border-color:var(--fg); background:var(--card); }
.btn--lg { --bh:58px; padding:0 1.9rem; font-size:1.05rem; }
.btn--block { width:100%; }

/* ---- demo bar ---- */
.demo-bar {
  background:var(--warn-bg); border-bottom:1px solid var(--warn-line); color:var(--warn);
  display:flex; flex-wrap:wrap; gap:.6rem 1.2rem; align-items:center; justify-content:center;
  padding:.6rem var(--gut); font-size:.87rem; text-align:center;
}
.demo-bar p { margin:0; }
.demo-bar__btn {
  min-height:38px; padding:0 .95rem; border-radius:999px; cursor:pointer;
  border:1.5px solid var(--warn-line); background:transparent; color:inherit;
  font:600 .83rem/1 var(--sans);
}
.demo-bar__btn[aria-pressed="true"] { background:var(--warn); color:var(--warn-bg); border-color:var(--warn); }

/* placeholder highlighting — off until the toggle turns it on */
.ph, [data-ph] { font-style:normal; }
body.show-ph .ph, body.show-ph [data-ph] {
  background:var(--warn-bg); outline:2px dashed var(--warn-line); outline-offset:2px;
  border-radius:3px; color:var(--warn);
}
.chip--demo { display:inline-flex; }

/* ---- header ---- */
.hdr { position:sticky; top:0; z-index:100; background:color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter:blur(14px) saturate(1.4); border-bottom:1px solid transparent; transition:border-color var(--t), background var(--t); }
.hdr[data-stuck] { border-bottom-color:var(--edge); background:color-mix(in srgb, var(--bg) 96%, transparent); }
.hdr__in { display:flex; align-items:center; gap:1.25rem; min-height:74px; flex-wrap:nowrap; width:min(1320px,100%); }
.brand { display:inline-flex; align-items:center; gap:.7rem; text-decoration:none; flex:0 0 auto; }
.brand__mark {
  display:grid; place-items:center; width:42px; height:42px; border-radius:var(--r-lg);
  background:var(--fg); color:var(--bg); font:700 .92rem/1 var(--serif); letter-spacing:.02em;
}
.brand__txt { display:flex; flex-direction:column; line-height:1.15; }
.brand__txt b { font:600 1.07rem/1.2 var(--serif); letter-spacing:-.01em; white-space:nowrap; }
.brand__txt i { font-style:normal; font-size:.72rem; color:var(--fg-3); letter-spacing:.02em; }
.nav { margin-inline:auto; min-width:0; }
.nav ul { display:flex; gap:.15rem; list-style:none; margin:0; padding:0; }
.nav a {
  display:block; padding:.55rem .68rem; border-radius:8px; text-decoration:none;
  font-size:.93rem; font-weight:500; color:var(--fg-2); white-space:nowrap;
  transition:color var(--t), background var(--t);
}
.nav a:hover { color:var(--fg); background:var(--card); }
.nav a[aria-current="page"] { color:var(--fg); font-weight:600; }
.hdr__cta { display:flex; gap:.6rem; align-items:center; flex:0 0 auto; }
.hdr__call { --bh:46px; padding:0 1rem; font-size:.93rem; font-variant-numeric:tabular-nums; }
.hdr__cta .btn--solid { --bh:46px; font-size:.93rem; }
.burger { display:none; width:48px; height:48px; border:0; background:transparent; cursor:pointer; padding:12px; }
.burger span { display:block; height:2px; background:var(--fg); border-radius:2px; transition:transform var(--t), opacity var(--t); }
.burger span + span { margin-top:5px; }
.burger[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.mobnav { display:none; border-top:1px solid var(--edge); background:var(--bg); padding:1rem var(--gut) 1.6rem; }
.mobnav ul { list-style:none; margin:0 0 1.1rem; padding:0; }
.mobnav a { display:block; padding:.95rem .25rem; font-size:1.12rem; font-weight:500; text-decoration:none; border-bottom:1px solid var(--edge-2); }
.mobnav__cta { display:grid; gap:.6rem; }

@media (max-width: 1140px) {
  .nav, .hdr__cta { display:none; }
  .burger { display:block; margin-left:auto; }
  .mobnav[data-open] { display:block; }
}

/* ---- hero ---- */
.hero { position:relative; padding-block:clamp(3rem, 7vw, 5.5rem) clamp(3rem, 6vw, 5rem); overflow:hidden; }
.hero::after {
  content:''; position:absolute; inset:auto -20% -55% 40%; height:70%; z-index:-1;
  background:radial-gradient(closest-side, color-mix(in srgb, var(--accent) 16%, transparent), transparent);
}
.hero__in { display:grid; gap:clamp(2rem,4vw,3.5rem); grid-template-columns:1.05fr .95fr; align-items:center; }
.hero__kicker {
  display:inline-flex; align-items:center; gap:.55rem; margin-bottom:1.4rem;
  padding:.42rem .9rem .42rem .5rem; border-radius:var(--r-sm);
  background:var(--sage-soft); border:1px solid var(--edge);
  font:600 .8rem/1 var(--sans); color:var(--fg-2);
}
.hero__kicker b { background:var(--fg); color:var(--bg); padding:.28rem .55rem; border-radius:var(--r-sm); font-size:.72rem; letter-spacing:.05em; }
.hero h1 em { font-style:italic; color:var(--accent-ink); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .hero h1 em { color:var(--accent); } }
:root[data-theme="dark"] .hero h1 em { color:var(--accent); }
.hero__btns { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:2rem; }
.hero__trust { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; margin-top:2.2rem; padding-top:1.6rem; border-top:1px solid var(--edge); list-style:none; padding-inline:0; font-size:.9rem; color:var(--fg-3); }
.hero__trust li { display:flex; align-items:center; gap:.45rem; }
.hero__trust svg { color:var(--accent-ink); flex:0 0 auto; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .hero__trust svg { color:var(--accent); } }
:root[data-theme="dark"] .hero__trust svg { color:var(--accent); }
/* The hero panel: live inventory in place of a decorative house. */
.hero__panel { background:var(--card); border:1px solid var(--edge); border-radius:var(--r-lg); padding:1.25rem; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.hero__panel-top { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.hero__panel-h { font:600 .95rem/1 var(--sans); display:flex; align-items:center; gap:.5rem; margin:0; }
.hero__live { width:.5rem; height:.5rem; border-radius:50%; background:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); flex:0 0 auto; }
.hero__panel-n { font:600 .82rem/1 var(--sans); color:var(--fg-3); white-space:nowrap; }
.hero__anchor {
  display:grid; grid-template-columns:1fr auto; align-items:center; column-gap:.9rem;
  padding:.85rem 1rem; border-radius:var(--r); text-decoration:none; color:var(--fg);
  background:var(--accent-soft); border:1px solid color-mix(in srgb, var(--accent) 32%, transparent);
  transition:border-color var(--t);
}
.hero__anchor:hover { border-color:var(--accent); }
.hero__anchor-tag { grid-column:1; font:700 .66rem/1 var(--sans); letter-spacing:.09em; text-transform:uppercase; color:var(--accent-ink); margin-bottom:.28rem; }
.hero__anchor-name { grid-column:1; font:600 1.05rem/1.15 var(--serif); }
.hero__anchor b { grid-column:2; grid-row:1/3; display:flex; flex-direction:column; align-items:center; font:600 1.7rem/1 var(--serif); }
.hero__anchor b span { font:700 .58rem/1 var(--sans); letter-spacing:.07em; text-transform:uppercase; color:var(--fg-3); margin-top:.3rem; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .hero__anchor-tag { color:var(--accent); } }
:root[data-theme="dark"] .hero__anchor-tag { color:var(--accent); }
.hero__towns { list-style:none; margin:.9rem 0 0; padding:0; }
.hero__towns li + li { border-top:1px solid var(--edge); }
.hero__towns a { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:44px; padding:.55rem .25rem; text-decoration:none; color:var(--fg); }
.hero__towns a:hover { color:var(--accent-ink); }
.hero__towns b { font-weight:600; color:var(--fg-2); font-variant-numeric:tabular-nums; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .hero__towns a:hover { color:var(--accent); } }
:root[data-theme="dark"] .hero__towns a:hover { color:var(--accent); }
.hero__panel-foot { margin:1rem 0 0; padding-top:1rem; border-top:1px solid var(--edge); font-size:.82rem; color:var(--fg-3); }
.hero__panel-foot b { font:600 1.05rem/1 var(--serif); color:var(--fg); }
.hero__panel-foot .up { color:var(--accent-ink); font-weight:600; }
.hero__panel-foot .muted { display:block; margin-top:.3rem; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .hero__panel-foot .up { color:var(--accent); } }
:root[data-theme="dark"] .hero__panel-foot .up { color:var(--accent); }
@media (max-width: 900px) { .hero__in { grid-template-columns:1fr; } }

/* ---- quick search ---- */
.qsearch {
  background:var(--card); border:1px solid var(--edge); border-radius:var(--r-lg);
  padding:clamp(1.1rem,2.5vw,1.6rem); margin-top:-2rem; position:relative; z-index:2;
}
.qsearch__grid { display:grid; gap:.7rem; grid-template-columns:2fr 1fr 1fr auto; align-items:end; }
.qsearch h2 { font-size:1.15rem; margin-bottom:.9rem; }
@media (max-width: 860px) { .qsearch__grid { grid-template-columns:1fr 1fr; } .qsearch__grid > :last-child { grid-column:1/-1; } }
@media (max-width: 560px) { .qsearch__grid { grid-template-columns:1fr; } }

/* ---- forms ---- */
.fld { display:block; margin-bottom:.9rem; }
.fld > span { display:block; font:600 .86rem/1.4 var(--sans); margin-bottom:.35rem; color:var(--fg-2); }
.fld > span i { font-style:normal; font-weight:400; color:var(--fg-3); }
.fld input[type=text], .fld input[type=email], .fld input[type=tel], .fld select, .fld textarea {
  width:100%; min-height:52px; padding:.8rem .95rem; font:400 1rem/1.4 var(--sans);
  color:var(--fg); background:var(--bg); border:1.5px solid var(--edge); border-radius:var(--r-sm);
  transition:border-color var(--t), box-shadow var(--t);
}
.fld textarea { min-height:auto; resize:vertical; }
.fld select { appearance:none; background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%); background-position:calc(100% - 20px) 55%, calc(100% - 14px) 55%; background-size:6px 6px; background-repeat:no-repeat; padding-right:2.6rem; }
.fld :is(input,select,textarea):focus { border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent); outline:none; }
.fld :is(input,select,textarea):user-invalid { border-color:#B4342A; }
.fld--check { display:flex; gap:.7rem; align-items:flex-start; font-size:.88rem; color:var(--fg-2); line-height:1.5; }
.fld--check input { width:24px; height:24px; margin-top:.1rem; flex:0 0 auto; accent-color:var(--accent-ink); }
.lead { background:var(--card); border:1px solid var(--edge); border-radius:var(--r-lg); padding:clamp(1.3rem,3vw,2rem); }
.lead--sm { padding:1.2rem; }
.lead__h { font-size:1.5rem; margin-bottom:.3rem; }
.lead__lede { color:var(--fg-2); font-size:.96rem; margin-bottom:1.3rem; }
.lead__fine { font-size:.79rem; color:var(--fg-3); margin:.9rem 0 0; line-height:1.5; }
.lead__ok { margin-top:1rem; padding:1rem 1.1rem; border-radius:var(--r-sm); background:var(--sage-soft); border:1px solid var(--edge); font-size:.93rem; }
.lead__ok b { display:block; color:var(--ok); margin-bottom:.3rem; }
.lead__ok ul { margin:.6rem 0 0; padding-left:1.1rem; color:var(--fg-2); font-size:.87rem; }

/* ---- cards / grids ---- */
.card { background:var(--card); border:1px solid var(--edge); border-radius:var(--r); overflow:hidden; }
.grid { display:grid; gap:clamp(1rem,2.2vw,1.5rem); }
.grid--3 { grid-template-columns:repeat(auto-fill, minmax(min(300px,100%), 1fr)); }
.grid--2 { grid-template-columns:repeat(auto-fit, minmax(min(320px,100%), 1fr)); }
.grid--4 { grid-template-columns:repeat(auto-fill, minmax(min(230px,100%), 1fr)); }

/* listing card */
.lst { display:flex; flex-direction:column; transition:transform var(--t), box-shadow var(--t), border-color var(--t); }
.lst:hover { border-color:var(--fg-2); }
.lst__media { position:relative; aspect-ratio:4/2.7; background:var(--edge-2); }
.lst__media .art { width:100%; height:100%; }
.chip {
  position:absolute; top:.7rem; left:.7rem; display:inline-flex; align-items:center;
  padding:.32rem .7rem; border-radius:var(--r-sm); font:600 .72rem/1 var(--sans);
  letter-spacing:.03em; text-transform:uppercase; background:var(--card); color:var(--fg); border:1px solid var(--edge);
}
.chip--active { background:var(--ok); color:var(--ok-ink); border-color:transparent; }
.chip--pending { background:var(--warn); color:var(--warn-bg); border-color:transparent; }
.chip--sold { background:var(--fg); color:var(--bg); border-color:transparent; }
.chip--55 { left:auto; right:.7rem; background:var(--sage); color:#fff; border-color:transparent; }
.chip--demo { top:auto; bottom:.7rem; left:.7rem; background:var(--warn-bg); color:var(--warn); border-color:var(--warn-line); }
.lst__body { padding:1.1rem 1.2rem 1.3rem; display:flex; flex-direction:column; flex:1; }
.lst__price { font:600 1.5rem/1 var(--serif); margin:0 0 .4rem; font-variant-numeric:tabular-nums; }
.lst__addr { font-size:1.02rem; font-family:var(--sans); font-weight:600; letter-spacing:0; margin:0 0 .7rem; }
.lst__addr span { display:block; font-weight:400; font-size:.84rem; color:var(--fg-3); margin-top:.15rem; }
.lst__specs { display:flex; flex-wrap:wrap; gap:.4rem .9rem; list-style:none; margin:0 0 .8rem; padding:0; font-size:.87rem; color:var(--fg-2); }
.lst__specs b { font-weight:600; color:var(--fg); }
.lst__model { color:var(--accent-ink); font-weight:600; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .lst__model{ color:var(--accent);} }
:root[data-theme="dark"] .lst__model { color:var(--accent); }
.lst__hl { font-size:.89rem; color:var(--fg-2); margin:0 0 1rem; }
.lst__link { margin-top:auto; font-weight:600; font-size:.92rem; text-decoration:none; color:var(--accent-ink); }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .lst__link{ color:var(--accent);} }
:root[data-theme="dark"] .lst__link { color:var(--accent); }
.lst__link:hover { text-decoration:underline; }
.lst--sm .lst__media { aspect-ratio:4/2.3; }
.lst__foot { margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:.5rem .9rem; flex-wrap:wrap; }
.lst__foot .lst__link { margin-top:0; }

/* ---- save to shortlist ----
   One control writes to the browser-held favorites list. Renders hidden; site.js reveals it,
   so JavaScript-off shows no dead button. The pressed state is set by site.js, never in HTML,
   so the built pages an audit sees always carry the unsaved (outline) state. */
.fav {
  display:inline-flex; align-items:center; justify-content:center; gap:.45rem;
  min-height:44px; padding:.4rem .85rem; border:1px solid var(--edge); border-radius:var(--r-sm);
  background:var(--card); color:var(--fg-2); cursor:pointer;
  font:600 .82rem/1 var(--sans); letter-spacing:.01em; white-space:nowrap;
  transition:border-color var(--t), color var(--t), background var(--t);
}
.fav:hover { border-color:var(--fg-2); color:var(--fg); }
.fav__i { flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.7; }
.fav[aria-pressed="true"] { border-color:var(--accent); color:var(--accent-ink); background:var(--accent-soft); }
.fav[aria-pressed="true"] .fav__i { fill:currentColor; stroke:currentColor; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .fav[aria-pressed="true"]{ color:var(--accent); } }
:root[data-theme="dark"] .fav[aria-pressed="true"] { color:var(--accent); }

.mdl__foot .fav { margin-top:.85rem; }
.mdl__foot .mdl__cmp { margin-left:auto; }
.lstp__save { margin:0 0 1.3rem; }

/* ---- saved-list page ---- */
.favempty { text-align:center; padding:3.5rem 1.2rem; border:1px dashed var(--edge); color:var(--fg-2); }
.favempty svg { color:var(--fg-3); margin-bottom:.5rem; }
.favempty p { margin:.35rem 0; }
.favlist { display:grid; gap:.8rem; }
.favc { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem;
  background:var(--card); border:1px solid var(--edge); padding:1.1rem 1.2rem; }
.favc > * { min-width:0; }
.favc__kind { font:600 .64rem/1 var(--mono); letter-spacing:.11em; text-transform:uppercase;
  color:var(--fg-3); margin:0 0 .5rem; }
.favc__title { font:600 1.12rem/1.2 var(--serif); margin:0 0 .25rem; }
.favc__title a { color:var(--fg); text-decoration:none; }
.favc__title a:hover { text-decoration:underline; }
.favc__sub { font-size:.9rem; color:var(--fg-2); margin:0 0 .3rem; }
.favc__meta { font-size:.85rem; color:var(--fg-3); margin:0; font-variant-numeric:tabular-nums; }
.favc__rm { min-height:44px; flex:0 0 auto; font-size:.82rem; padding:0 .9rem; }
.favbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  margin:1.4rem 0; padding-top:1.3rem; border-top:1px solid var(--edge); }
.favbar__n { margin:0; font:600 .95rem/1.3 var(--sans); color:var(--fg-2); }
.favmail { max-width:520px; }

/* ---- stats ---- */
.stats { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(160px,100%),1fr)); gap:1px; margin:0; background:var(--edge); border:1px solid var(--edge); border-radius:var(--r); overflow:hidden; }
.stats__i { background:var(--card); padding:1.4rem 1.2rem; }
.stats__i dt { font-size:.83rem; color:var(--fg-3); margin-bottom:.4rem; }
.stats__i dd { margin:0; font:600 clamp(1.6rem,3vw,2.2rem)/1 var(--serif); font-variant-numeric:tabular-nums; }

/* ---- steps ---- */
.steps { list-style:none; counter-reset:s; margin:0; padding:0; display:grid; gap:1.5rem; }
.steps__i { display:grid; grid-template-columns:auto 1fr; gap:1.2rem; align-items:start; padding-bottom:1.5rem; border-bottom:1px solid var(--edge); }
.steps__i:last-child { border-bottom:0; padding-bottom:0; }
.steps__n { font:600 .95rem/1 var(--sans); color:var(--accent-ink); background:var(--accent-soft); border-radius:999px; width:42px; height:42px; display:grid; place-items:center; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .steps__n{ color:var(--accent);} }
:root[data-theme="dark"] .steps__n { color:var(--accent); }
.steps__i h3 { margin-bottom:.35rem; font-family:var(--sans); font-size:1.1rem; font-weight:600; }
.steps__i p { margin:0; color:var(--fg-2); font-size:.96rem; }

/* ---- faq ---- */
.faq { border-top:1px solid var(--edge); }
.faq__i { border-bottom:1px solid var(--edge); }
.faq__i summary { list-style:none; cursor:pointer; display:flex; gap:1rem; align-items:center; justify-content:space-between; padding:1.25rem 0; font:600 1.06rem/1.4 var(--sans); }
.faq__i summary::-webkit-details-marker { display:none; }
.faq__i summary i { flex:0 0 auto; width:22px; height:22px; position:relative; }
.faq__i summary i::before, .faq__i summary i::after { content:''; position:absolute; inset:50% 0 auto 0; height:2px; background:var(--accent-ink); transition:transform var(--t); }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .faq__i summary i::before,:root:not([data-theme="light"]) .faq__i summary i::after{ background:var(--accent);} }
:root[data-theme="dark"] .faq__i summary i::before, :root[data-theme="dark"] .faq__i summary i::after { background:var(--accent); }
.faq__i summary i::after { transform:rotate(90deg); }
.faq__i[open] summary i::after { transform:rotate(0); opacity:0; }
.faq__a { padding-bottom:1.4rem; color:var(--fg-2); max-width:68ch; }
.faq__a p:last-child { margin-bottom:0; }

/* ---- band ---- */
.band { background:var(--fg); color:var(--bg); padding-block:clamp(2.8rem,6vw,4.5rem); }
.band__in { display:flex; flex-wrap:wrap; gap:1.8rem; align-items:center; justify-content:space-between; }
.band h2 { margin-bottom:.4rem; max-width:20ch; }
.band p { margin:0; opacity:.78; max-width:52ch; }
.band__btns { display:flex; flex-wrap:wrap; gap:.7rem; }
.band .btn--solid { background:var(--bg); color:var(--fg); }
.band .btn--solid:hover { background:var(--accent); color:#16191E; }
.band .btn--ghost { border-color:color-mix(in srgb, currentColor 35%, transparent); color:var(--bg); }
.band .btn--ghost:hover { background:color-mix(in srgb, currentColor 12%, transparent); border-color:currentColor; }

/* ---- agent mini ---- */
.amini { display:flex; gap:1rem; align-items:center; background:var(--card); border:1px solid var(--edge); border-radius:var(--r); padding:1.1rem; }
.amini__ph { width:76px; height:76px; flex:0 0 auto; color:var(--fg); border-radius:50%; overflow:hidden; }
.amini__n { font:600 1.1rem/1.2 var(--serif); margin:0 0 .15rem; }
.amini__t { font-size:.85rem; color:var(--fg-2); margin:0 0 .1rem; }
.amini__l { font-size:.78rem; color:var(--fg-3); margin:0 0 .6rem; }
.amini .btn { --bh:44px; font-size:.88rem; padding:0 .95rem; }

/* ---- testimonials ---- */
.quotes { display:grid; gap:1.3rem; grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr)); }
.quote { background:var(--card); border:1px solid var(--edge); border-radius:var(--r); padding:1.6rem; display:flex; flex-direction:column; }
.quote__mark { font:700 2.6rem/1 var(--serif); color:var(--accent); opacity:.4; margin-bottom:.4rem; }
.quote p { font-size:1.01rem; line-height:1.6; margin-bottom:1.2rem; }
.quote footer { margin-top:auto; font-size:.85rem; color:var(--fg-3); border-top:1px solid var(--edge-2); padding-top:.9rem; }
.quote footer b { display:block; color:var(--fg); font-size:.92rem; }

/* ---- community cards ---- */
.comm { display:block; text-decoration:none; overflow:hidden; transition:transform var(--t), box-shadow var(--t), border-color var(--t); }
.comm:hover { border-color:var(--fg-2); }
.comm__media { aspect-ratio:16/9; }
.comm__media .art { width:100%; height:100%; }
.comm__body { padding:1.2rem 1.3rem 1.4rem; }
.comm__body h3 { margin-bottom:.2rem; }
.comm__kind { font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color:var(--accent-ink); font-weight:600; margin:0 0 .6rem; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .comm__kind{ color:var(--accent);} }
:root[data-theme="dark"] .comm__kind { color:var(--accent); }
.comm__body p { font-size:.92rem; color:var(--fg-2); margin-bottom:.9rem; }
.comm__meta { display:flex; justify-content:space-between; align-items:center; font-size:.85rem; color:var(--fg-3); border-top:1px solid var(--edge-2); padding-top:.8rem; }
.comm__meta b { color:var(--fg); font-weight:600; }

/* ---- search page ---- */
.srch { display:grid; grid-template-columns:minmax(0,300px) minmax(0,1fr); gap:clamp(1.2rem,2.5vw,2rem); align-items:start; }
.filters { position:sticky; top:96px; background:var(--card); border:1px solid var(--edge); border-radius:var(--r); padding:1.3rem; }
.filters h2 { font-size:1.12rem; margin-bottom:1rem; }
.filters__row { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.filters__reset { background:none; border:0; color:var(--accent-ink); font:600 .86rem var(--sans); cursor:pointer; padding:.4rem 0; text-decoration:underline; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .filters__reset{ color:var(--accent);} }
:root[data-theme="dark"] .filters__reset { color:var(--accent); }
.srch__bar { display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; justify-content:space-between; margin-bottom:1.3rem; }
.srch__count { font-weight:600; margin:0; }
.srch__count span { color:var(--fg-3); font-weight:400; font-size:.9rem; }
.srch__sort { display:flex; align-items:center; gap:.5rem; font-size:.88rem; color:var(--fg-2); }
.srch__sort select { min-height:44px; padding:.4rem .7rem; border:1.5px solid var(--edge); border-radius:var(--r-sm); background:var(--card); color:var(--fg); font:500 .9rem var(--sans); }
.srch__empty { text-align:center; padding:3.5rem 1rem; border:1px dashed var(--edge); border-radius:var(--r); color:var(--fg-3); }
.idxnote { background:var(--warn-bg); border:1px solid var(--warn-line); color:var(--warn); border-radius:var(--r); padding:1rem 1.2rem; font-size:.9rem; margin-bottom:1.4rem; }
.idxnote b { display:block; margin-bottom:.25rem; }
.idxnote p { margin:0; }
.mapbox { position:relative; aspect-ratio:16/8; border-radius:var(--r); overflow:hidden; border:1px solid var(--edge); background:var(--sage-soft); margin-bottom:1.4rem; display:grid; place-items:center; text-align:center; padding:1.5rem; }
.mapbox p { margin:0; font-size:.9rem; color:var(--fg-2); max-width:44ch; }
.mapbox svg { position:absolute; inset:0; width:100%; height:100%; opacity:.5; }
.mapbox > * { position:relative; }
@media (max-width: 900px) { .srch { grid-template-columns:1fr; } .filters { position:static; } }

/* ---- market table ---- */
.mtable { width:100%; border-collapse:collapse; font-size:.95rem; }
.mtable th, .mtable td { text-align:left; padding:.95rem 1rem; border-bottom:1px solid var(--edge); }
.mtable th { font:600 .8rem/1 var(--sans); letter-spacing:.06em; text-transform:uppercase; color:var(--fg-3); }
.mtable td:nth-child(2) { font-weight:600; font-variant-numeric:tabular-nums; }
.mtable .down { color:#B4342A; } .mtable .up { color:var(--ok); }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .mtable .down{ color:#F09A90;} }
:root[data-theme="dark"] .mtable .down { color:#F09A90; }
.tscroll { overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--edge); border-radius:var(--r); background:var(--card); }
.tscroll .mtable tr:last-child td { border-bottom:0; }

/* ---- prose ---- */
.prose { max-width:70ch; }
.prose h2 { margin-top:2.4rem; }
.prose h3 { margin-top:1.8rem; font-family:var(--sans); font-size:1.15rem; }
.prose ul, .prose ol { padding-left:1.3rem; margin-bottom:1.2rem; color:var(--fg-2); }
.prose li { margin-bottom:.5rem; }
.prose blockquote { margin:1.6rem 0; padding-left:1.3rem; border-left:3px solid var(--accent); font-family:var(--serif); font-size:1.15rem; font-style:italic; color:var(--fg-2); }
.prose a { color:var(--accent-ink); }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .prose a{ color:var(--accent);} }
:root[data-theme="dark"] .prose a { color:var(--accent); }

/* two-col split */
.split { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,4vw,3.5rem); align-items:start; }
.split--rev > :first-child { order:2; }
@media (max-width: 900px) { .split, .split--rev { grid-template-columns:1fr; } .split--rev > :first-child { order:0; } }

.figcard { border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--edge); background:var(--card); }
.figcard .art { width:100%; aspect-ratio:4/3; }
.figcard figcaption { padding:.9rem 1.1rem; font-size:.83rem; color:var(--fg-3); border-top:1px solid var(--edge); }

.pills { display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; margin:0 0 1.5rem; padding:0; }
.pills li { padding:.42rem .9rem; border-radius:var(--r-sm); border:1px solid var(--edge); background:var(--card); font-size:.85rem; color:var(--fg-2); }
.pills a { text-decoration:none; }

.factgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(130px,100%),1fr)); gap:1px; background:var(--edge); border:1px solid var(--edge); border-radius:var(--r); overflow:hidden; margin-bottom:1.5rem; }
.factgrid div { background:var(--card); padding:1rem; }
.factgrid dt { font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; color:var(--fg-3); margin-bottom:.3rem; }
.factgrid dd { margin:0; font:600 1.05rem/1.2 var(--sans); }

/* checklist */
.chk { list-style:none; padding:0; margin:0; display:grid; gap:.85rem; }
.chk li { display:grid; grid-template-columns:auto 1fr; gap:.8rem; align-items:start; font-size:.98rem; color:var(--fg-2); }
.chk li::before {
  content:'\2713'; width:22px; height:22px; margin-top:.1rem;
  display:grid; place-items:center; border:1px solid var(--edge); color:var(--accent-ink);
  font:600 .8rem/1 var(--font-body);
}

/* breadcrumbs */
.crumbs { font-size:.85rem; color:var(--fg-3); padding-top:1.4rem; }
.crumbs ol { list-style:none; display:flex; flex-wrap:wrap; gap:.4rem; margin:0; padding:0; }
.crumbs li::after { content:'/'; margin-left:.4rem; opacity:.5; }
.crumbs li:last-child::after { content:''; }
.crumbs a { text-decoration:none; }
.crumbs a:hover { text-decoration:underline; }

/* page header */
.phead { padding-block:clamp(2.2rem,5vw,3.6rem) clamp(1.6rem,3vw,2.4rem); border-bottom:1px solid var(--edge); }
.phead h1 { font-size:clamp(2.1rem,4.6vw,3.4rem); margin-bottom:.5rem; }
.phead .lede { font-size:clamp(1.02rem,1.5vw,1.18rem); }

/* posts */
.post { display:flex; flex-direction:column; text-decoration:none; }
.post__media { aspect-ratio:16/9; }
.post__media .art { width:100%; height:100%; }
.post__body { padding:1.2rem 1.3rem 1.4rem; display:flex; flex-direction:column; flex:1; }
.post__date { font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color:var(--fg-3); margin:0 0 .5rem; }
.post__body h3 { font-size:1.15rem; margin-bottom:.5rem; }
.post__body p { font-size:.92rem; color:var(--fg-2); margin-bottom:1rem; }
.post__more { margin-top:auto; font-weight:600; font-size:.9rem; color:var(--accent-ink); }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .post__more{ color:var(--accent);} }
:root[data-theme="dark"] .post__more { color:var(--accent); }

/* ---- footer ---- */
.foot { background:var(--card); border-top:1px solid var(--edge); padding-block:clamp(3rem,6vw,4.5rem) 2rem; margin-top:0; }
.foot__top { display:grid; grid-template-columns:1.15fr 2fr; gap:clamp(2rem,4vw,3.5rem); padding-bottom:2.5rem; border-bottom:1px solid var(--edge); }
.brand--foot .brand__mark { background:var(--accent-ink); }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .brand--foot .brand__mark{ background:var(--accent); color:#101216;} }
:root[data-theme="dark"] .brand--foot .brand__mark { background:var(--accent); color:#101216; }
.foot__blurb { margin:1.1rem 0; color:var(--fg-2); font-size:.94rem; max-width:38ch; }
.foot__contact { font-size:.95rem; line-height:1.9; }
.foot__contact a { text-decoration:none; font-weight:500; }
.foot__contact a:hover { text-decoration:underline; }
.social { display:flex; gap:.5rem; list-style:none; padding:0; margin:1.2rem 0 0; }
.social a { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; border:1px solid var(--edge); color:var(--fg-2); transition:color var(--t), border-color var(--t); }
.social a:hover { color:var(--fg); border-color:var(--fg); }
.fnav { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr)); gap:2rem; }
.fnav h3 { font:600 .78rem/1 var(--sans); letter-spacing:.12em; text-transform:uppercase; color:var(--fg-3); margin-bottom:1rem; }
.fnav ul { list-style:none; margin:0; padding:0; }
.fnav li { margin-bottom:.7rem; }
.fnav a { text-decoration:none; font-size:.93rem; color:var(--fg-2); }
.fnav a:hover { color:var(--fg); text-decoration:underline; }
.foot__legal { padding-top:2rem; font-size:.8rem; color:var(--fg-3); line-height:1.65; }
.legal__logos { display:grid; grid-template-columns:auto 1fr; gap:1.1rem; align-items:start; margin-bottom:1.4rem; }
.eho { width:46px; height:46px; flex:0 0 auto; color:var(--fg-2); }
.legal__logos p { margin:0 0 .6rem; max-width:88ch; }
.legal__note { font-style:italic; }
.legal__brokerage, .legal__idx { margin:0 0 1rem; max-width:92ch; }
.legal__brokerage a { color:inherit; }
.legal__idx em { display:block; margin-top:.35rem; color:var(--warn); font-style:normal; font-weight:600; }
.legal__row { display:flex; flex-wrap:wrap; gap:.4rem 1.3rem; padding-top:1.2rem; border-top:1px solid var(--edge-2); margin:0; }
.legal__row a { text-decoration:none; }
.legal__row a:hover { text-decoration:underline; }
@media (max-width: 780px) { .foot__top { grid-template-columns:1fr; } }

/* utility */
.mt0{margin-top:0}.mb0{margin-bottom:0}.center{text-align:center}
.muted{color:var(--fg-3)}
.stack > * + * { margin-top:1.5rem; }

/* ==========================================================================
   Sun City Huntley — community guide
   Direction: Prairie School. The regional vernacular is Wright's — low, horizontal,
   geometric, warm-toned — and it happens to describe the product too: single-level
   ranch living on open prairie. Horizontal banding and hairline rules carry the
   structure; the floor plan drawing is the one place we spend any boldness.
   ========================================================================== */

/* plan drawing palette */
:root {
  --plan-living:#EDE6D8; --plan-bed:#E4E9E3; --plan-service:#E8E4DC;
  --plan-garage:#DFDACE; --plan-outdoor:#DCE5DC;
  --plan-line:#8A8172; --plan-env:#3B3529;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --plan-living:#24221C; --plan-bed:#1F2520; --plan-service:#22201B;
    --plan-garage:#1D1B16; --plan-outdoor:#1C221D;
    --plan-line:#736C5C; --plan-env:#B9AE95;
  }
}
:root[data-theme="dark"] {
  --plan-living:#24221C; --plan-bed:#1F2520; --plan-service:#22201B;
  --plan-garage:#1D1B16; --plan-outdoor:#1C221D;
  --plan-line:#736C5C; --plan-env:#B9AE95;
}

/* ---- shared: mono data register ---- */
.rule-lbl {
  display:flex; align-items:center; gap:.9rem; margin:0 0 1.4rem;
  font:500 .72rem/1 var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--fg-3);
}
.rule-lbl::after { content:''; flex:1; height:1px; background:var(--edge); }

/* ---- community hero ---- */
.chero { border-bottom:1px solid var(--edge); }
.chero__in { display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.6rem,4vw,3.5rem); align-items:end;
  padding-block:clamp(2rem,4vw,3.4rem) clamp(1.6rem,3vw,2.6rem); }
.chero h1 { font-size:clamp(2.5rem,5vw,4rem); margin-bottom:.35rem; letter-spacing:-.025em; text-wrap:balance; }
.chero__sub { font:400 clamp(1rem,1.5vw,1.15rem)/1.55 var(--sans); color:var(--fg-2); max-width:46ch; margin:0 0 1.6rem; }
.chero__meta { display:flex; flex-wrap:wrap; gap:.5rem .9rem; align-items:center; margin:0 0 1.5rem; padding:0; list-style:none; }
.chero__meta li { font:500 .74rem/1.4 var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--fg-3); }
.chero__btns { display:flex; flex-wrap:wrap; gap:.7rem; }
.chero__art { position:relative; aspect-ratio:5/4; border:1px solid var(--edge); overflow:hidden; background:var(--card); }
.chero__art .art { width:100%; height:100%; }
.chero__cap {
  position:absolute; left:0; right:0; bottom:0; padding:.7rem .9rem;
  background:color-mix(in srgb, var(--card) 93%, transparent); backdrop-filter:blur(8px);
  border-top:1px solid var(--edge); font:500 .7rem/1.35 var(--mono); letter-spacing:.06em;
  text-transform:uppercase; color:var(--fg-3);
}
@media (max-width: 860px) { .chero__in { grid-template-columns:1fr; align-items:start; } .chero__art { order:-1; aspect-ratio:16/10; } }

/* ---- quick facts strip ---- */
.qf { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr)); gap:1px;
  background:var(--edge); border-block:1px solid var(--edge); margin:0; }
.qf > div { background:var(--bg); padding:1.15rem 1.1rem; min-width:0; }
.qf dt { font:500 .68rem/1.3 var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--fg-3); margin-bottom:.45rem; }
.qf dd { margin:0; font:600 1.06rem/1.3 var(--sans); font-variant-numeric:tabular-nums; }
.qf dd small { display:block; font:400 .78rem/1.35 var(--sans); color:var(--fg-3); margin-top:.25rem; }

/* ---- sticky section nav ---- */
.scnav { position:sticky; top:74px; z-index:60; background:color-mix(in srgb, var(--bg) 94%, transparent);
  backdrop-filter:blur(14px); border-bottom:1px solid var(--edge); }
.scnav ul { display:flex; gap:0; list-style:none; margin:0; padding:0; overflow-x:auto; }
.scnav a { display:block; padding:1rem .95rem; text-decoration:none; white-space:nowrap;
  font:500 .76rem/1 var(--mono); letter-spacing:.11em; text-transform:uppercase; color:var(--fg-3);
  border-bottom:2px solid transparent; transition:color var(--t), border-color var(--t); }
.scnav a:hover { color:var(--fg); }
.scnav a[aria-current="true"] { color:var(--fg); border-bottom-color:var(--accent); }

/* ---- floor plan drawing ---- */
.plan { width:100%; height:auto; display:block; background:transparent; }
.plan__rm { stroke:var(--plan-line); stroke-width:.7; }
.plan__env { fill:none; stroke:var(--plan-env); stroke-width:2.2; }
.plan__lbl { font:500 5.2px/1 var(--mono); letter-spacing:.09em; fill:var(--fg-2); text-anchor:middle; }
.plan__dim { font:400 4.4px/1 var(--mono); letter-spacing:.05em; fill:var(--fg-3); text-anchor:middle; }
.plan__dim--l { text-anchor:start; }
.plan__rule { stroke:var(--fg-3); stroke-width:.7; fill:none; }
.plan__n { fill:var(--fg-3); }

/* ---- model browser ---- */
.mdl__bar { display:flex; flex-wrap:wrap; gap:1rem; align-items:flex-end; justify-content:space-between;
  padding-bottom:1.3rem; border-bottom:1px solid var(--edge); margin-bottom:1.8rem; }
.mdl__filters { display:flex; flex-wrap:wrap; gap:.8rem; align-items:flex-end; }
.mdl__filters .fld { margin-bottom:0; min-width:150px; }
.mdl__filters .fld > span { font:500 .68rem/1.3 var(--mono); letter-spacing:.11em; text-transform:uppercase; color:var(--fg-3); }
.mdl__filters select { min-height:48px; font-size:.92rem; }
.mdl__count { font:500 .78rem/1.5 var(--mono); letter-spacing:.04em; color:var(--fg-3); margin:0; }
.mdl__count b { color:var(--fg); font-weight:600; }

.mdls { display:grid; gap:clamp(1rem,2vw,1.4rem); grid-template-columns:repeat(auto-fill,minmax(min(330px,100%),1fr)); }
.mdls > * { min-width:0; }
.mdl { display:flex; flex-direction:column; background:var(--card); border:1px solid var(--edge);
  transition:border-color var(--t), box-shadow var(--t); }
.mdl:hover { border-color:var(--fg-2); }
.mdl__sheet { position:relative; padding:1.1rem 1.1rem .5rem; background:var(--bg); border-bottom:1px solid var(--edge); }
.mdl__series {
  position:absolute; top:.85rem; right:.9rem; z-index:1;
  font:500 .63rem/1 var(--mono); letter-spacing:.1em; text-transform:uppercase;
  color:var(--fg-3); border:1px solid var(--edge); padding:.35rem .5rem; background:var(--card);
}
.mdl__body { padding:1.15rem 1.2rem 1.3rem; display:flex; flex-direction:column; flex:1; }
.mdl__name { font:600 1.32rem/1.15 var(--serif); margin:0 0 .15rem; letter-spacing:-.01em; }
.mdl__type { font:500 .68rem/1.3 var(--mono); letter-spacing:.11em; text-transform:uppercase; color:var(--accent-ink); margin:0 0 .9rem; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .mdl__type{ color:var(--accent);} }
:root[data-theme="dark"] .mdl__type { color:var(--accent); }
.mdl__specs { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--edge);
  border:1px solid var(--edge); margin:0 0 1rem; }
.mdl__specs > div { background:var(--card); padding:.6rem .35rem; text-align:center; min-width:0; }
.mdl__specs dt { font:400 .6rem/1.2 var(--mono); letter-spacing:.08em; text-transform:uppercase; color:var(--fg-3); margin-bottom:.35rem; }
.mdl__specs dd { margin:0; font:600 .95rem/1.2 var(--sans); font-variant-numeric:tabular-nums; }
.mdl__note { font-size:.88rem; color:var(--fg-2); margin:0 0 1.1rem; }
.mdl__mkt { display:flex; flex-wrap:wrap; gap:.3rem 1rem; margin:0 0 1.1rem; padding:.75rem .85rem;
  background:var(--accent-soft); border-left:2px solid var(--accent); }
.mdl__mkt span { font:500 .73rem/1.55 var(--mono); letter-spacing:.02em; color:var(--fg-2); }
.mdl__mkt b { color:var(--fg); font-weight:600; }
.mdl__acts { margin-top:auto; display:flex; flex-wrap:wrap; gap:.5rem; }
.mdl__acts .btn { --bh:46px; font-size:.86rem; padding:0 .95rem; flex:1 1 auto; }
.mdl__acts svg { flex:0 0 auto; }
.mdl__empty { text-align:center; padding:3.5rem 1rem; border:1px dashed var(--edge); color:var(--fg-3); }

/* ---- amenity venues ---- */
.ven { display:grid; gap:clamp(1rem,2vw,1.4rem); grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr)); }
.ven > * { min-width:0; }
.ven__i { background:var(--card); border:1px solid var(--edge); display:flex; flex-direction:column; }
.ven__art { aspect-ratio:16/9; border-bottom:1px solid var(--edge); position:relative; }
/* Each venue card names a real building, so a photograph sitting above that name would
   read as a photograph OF it. These are stock images, so say so on the image itself —
   the data-ph marker is only visible with the demo toggle on. */
.ven__rep { position:absolute; left:0; bottom:0; margin:0; padding:.42rem .6rem;
  font:500 .7rem/1 var(--mono); letter-spacing:.06em; text-transform:uppercase;
  color:#fff; background:rgba(17,17,17,.84); }
.ven__art .art { width:100%; height:100%; }
.ven__body { padding:1.3rem 1.35rem 1.4rem; display:flex; flex-direction:column; flex:1; }
.ven__i h3 { font-size:1.28rem; margin-bottom:.2rem; }
.ven__sz { font:500 .69rem/1.3 var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--fg-3); margin:0 0 .9rem; }
.ven__body > p { font-size:.93rem; color:var(--fg-2); margin-bottom:1rem; }
.ven__list { list-style:none; margin:auto 0 0; padding:.95rem 0 0; border-top:1px solid var(--edge-2);
  display:flex; flex-wrap:wrap; gap:.4rem .5rem; }
.ven__list li { font:500 .73rem/1.2 var(--mono); letter-spacing:.02em; color:var(--fg-2);
  border:1px solid var(--edge); padding:.4rem .55rem; }

/* ---- club roster ---- */
.clubs { display:grid; gap:clamp(1.4rem,3vw,2.2rem); grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); }
.clubs > * { min-width:0; }
.clubs h3 { font:500 .72rem/1.3 var(--mono); letter-spacing:.14em; text-transform:uppercase;
  color:var(--fg-3); margin-bottom:.9rem; padding-bottom:.7rem; border-bottom:1px solid var(--edge); }
.clubs h3 b { color:var(--accent-ink); font-weight:600; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .clubs h3 b{ color:var(--accent);} }
:root[data-theme="dark"] .clubs h3 b { color:var(--accent); }
.clubs ul { list-style:none; margin:0; padding:0; }
.clubs li { font-size:.92rem; color:var(--fg-2); padding:.28rem 0; }

/* ---- annotated site map ---- */
.smap { border:1px solid var(--edge); background:var(--card); overflow:hidden; }
.smap svg { width:100%; height:auto; display:block; }
.smap__key { display:flex; flex-wrap:wrap; gap:.5rem 1.4rem; list-style:none; margin:0; padding:1rem 1.2rem;
  border-top:1px solid var(--edge); background:var(--bg); }
.smap__key li { display:flex; align-items:center; gap:.5rem; font:500 .72rem/1.3 var(--mono);
  letter-spacing:.05em; text-transform:uppercase; color:var(--fg-2); }
.smap__key i { width:11px; height:11px; flex:0 0 auto; border:1px solid var(--plan-line); }
/* Map annotation is scaled down by the viewBox, so it needs to be set larger than it
   looks here. The legend and the prose list beside the map carry the same information
   as real text — the drawing labels are orientation, not the only route to the content. */
.smap__pn { font:600 15px/1 var(--mono); fill:var(--card); text-anchor:middle; }
.smap svg text.plan__dim { font-size:17px; letter-spacing:.08em; }
.smap__cap { padding:.85rem 1.2rem; border-top:1px solid var(--edge); font-size:.82rem; color:var(--fg-3); margin:0; }

/* ---- reviews ---- */
.revs { display:grid; gap:1px; background:var(--edge); border:1px solid var(--edge); }
.revs > * { min-width:0; }
.rev { background:var(--card); padding:1.5rem 1.6rem; display:flex; flex-direction:column; }
.rev__top { display:flex; flex-wrap:wrap; gap:.5rem 1rem; align-items:baseline; margin-bottom:.9rem; }
.rev__stars { color:var(--accent-ink); letter-spacing:.14em; font-size:.95rem; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .rev__stars{ color:var(--accent);} }
:root[data-theme="dark"] .rev__stars { color:var(--accent); }
.rev__ten { font:500 .7rem/1.3 var(--mono); letter-spacing:.09em; text-transform:uppercase; color:var(--fg-3); }
.rev p { font-size:1rem; line-height:1.65; color:var(--fg-2); margin-bottom:1rem; }
.rev footer { margin-top:auto; font-size:.85rem; color:var(--fg-3); }
.rev footer b { color:var(--fg); font-weight:600; }
@media (min-width: 780px) { .revs { grid-template-columns:1fr 1fr; } }

/* ---- gallery ---- */
.gal { display:grid; gap:1px; background:var(--edge); border:1px solid var(--edge);
  grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr)); }
.gal > * { min-width:0; }
.gal figure { margin:0; background:var(--card); display:flex; flex-direction:column; }
.gal .art { width:100%; aspect-ratio:4/3; }
.gal figcaption { padding:.75rem .9rem; font:500 .7rem/1.45 var(--mono); letter-spacing:.06em;
  text-transform:uppercase; color:var(--fg-3); border-top:1px solid var(--edge-2); }

/* ---- cost of ownership ---- */
.cost { border:1px solid var(--edge); background:var(--card); }
.cost__row { display:grid; grid-template-columns:1fr auto; gap:1rem; padding:1rem 1.3rem;
  border-bottom:1px solid var(--edge-2); align-items:baseline; }
.cost__row:last-child { border-bottom:0; }
.cost__row span { font-size:.94rem; color:var(--fg-2); min-width:0; }
.cost__row span small { display:block; font-size:.8rem; color:var(--fg-3); margin-top:.2rem; }
.cost__row b { font:600 1.02rem/1.3 var(--sans); font-variant-numeric:tabular-nums; white-space:nowrap; }
.cost__tot { background:var(--bg); border-top:1px solid var(--edge); }
.cost__tot b { font-size:1.18rem; }

/* Interactive estimator — hidden until site.js reveals it, so no-JS shows only the table */
.costcalc { margin:0 0 1.5rem; padding:1.1rem 1.3rem 1.3rem; border:1px solid var(--edge);
  border-radius:var(--r-sm); background:var(--bg); }
.costcalc__hint { margin:0 0 .9rem; font:600 .7rem/1.4 var(--mono); letter-spacing:.11em;
  text-transform:uppercase; color:var(--fg-3); }
.costcalc__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:.6rem 1.1rem; }
.costcalc .fld { margin-bottom:0; }
.costcalc input[type=number] { width:100%; min-height:52px; padding:.8rem .95rem;
  font:400 1rem/1.4 var(--sans); border:1.5px solid var(--edge); border-radius:var(--r-sm);
  background:var(--card); color:var(--fg); }
.costcalc input[type=number]:focus { border-color:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent); outline:none; }

/* ---- pull statement ---- */
.pull { border-left:2px solid var(--accent); padding:.3rem 0 .3rem 1.5rem; margin:2.4rem 0;
  font:400 clamp(1.25rem,2.4vw,1.7rem)/1.45 var(--serif); font-style:italic; color:var(--fg);
  max-width:36ch; letter-spacing:-.01em; }

/* ---- photography ---- */
.pic { display:block; }
.pic img { width:100%; height:100%; object-fit:cover; object-position:center 45%; display:block; }
.chero__art .pic, .chero__art .pic img { width:100%; height:100%; }
.ven__art .pic, .ven__art .pic img { width:100%; height:100%; }
.figcard .pic { display:block; }
.figcard .pic img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
body.show-ph .pic { outline:2px dashed var(--warn-line); outline-offset:-2px; }

/* ---- plans-for-sale spotlight ---- */
.plansale { margin:0 0 clamp(1.75rem,3.5vw,2.5rem); }
.plansale__lead {
  font:500 .72rem/1.3 var(--mono); letter-spacing:.12em; text-transform:uppercase;
  color:var(--fg-3); margin:0 0 .9rem;
}
.plansale__lead span { color:var(--accent-ink); font-weight:600; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .plansale__lead span{ color:var(--accent);} }
:root[data-theme="dark"] .plansale__lead span { color:var(--accent); }
.plansale__row { display:flex; flex-wrap:wrap; gap:.65rem; list-style:none; margin:0 0 .9rem; padding:0; }
.plansale__row a {
  display:inline-flex; flex-direction:column; gap:.15rem; justify-content:center;
  min-height:48px; padding:.5rem .85rem; text-decoration:none;
  background:var(--card); border:1px solid var(--edge); border-left:3px solid var(--accent);
  transition:border-color var(--t), background var(--t), transform var(--t);
}
.plansale__row a:hover { border-color:var(--accent); background:var(--accent-soft); transform:translateY(-1px); }
.plansale__row b { font:600 1rem/1.1 var(--serif); letter-spacing:-.01em; }
.plansale__row span { font:500 .66rem/1.2 var(--mono); letter-spacing:.05em; text-transform:uppercase; color:var(--fg-3); }
.plansale__hint { font-size:.9rem; color:var(--fg-3); margin:0; max-width:60ch; }

/* ---- plan availability badge ---- */
.mdl__avail {
  position:absolute; top:.85rem; left:.9rem; z-index:1;
  font:500 .63rem/1 var(--mono); letter-spacing:.1em; text-transform:uppercase;
  padding:.4rem .55rem; border:1px solid var(--edge); background:var(--card);
  color:var(--fg-3); text-decoration:none;
}
/* The for-sale badge is the linkage in miniature, so it carries the brand pine rather than
   the same ink-black every other chip on the page uses — the reader's eye should land on the
   plans that can actually be bought. --accent flips light in dark mode, so the ink flips too. */
.mdl__avail--on {
  background:var(--accent); color:#fff; border-color:var(--accent);
  transition:background var(--t), color var(--t), border-color var(--t);
}
.mdl__avail--on:hover { background:var(--accent-ink); border-color:var(--accent-ink); }
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .mdl__avail--on { color:#101216; }
  :root:not([data-theme="light"]) .mdl__avail--on:hover { background:var(--accent-ink); border-color:var(--accent-ink); color:#101216; }
}
:root[data-theme="dark"] .mdl__avail--on { color:#101216; }
:root[data-theme="dark"] .mdl__avail--on:hover { background:var(--accent-ink); border-color:var(--accent-ink); color:#101216; }

/* Cards with inventory get a pine bar at the top edge so live plans read out of the 56-card
   grid at a glance. Drawn with an inset shadow, not a border, so the card box never shifts. */
.mdl--live { box-shadow:inset 0 3px 0 var(--accent); }

/* download sits below the buttons as a quiet text action — it is a nice-to-have,
   not the thing we want the reader to click */
.mdl__dl {
  display:inline-flex; align-items:center; gap:.45rem; margin-top:.85rem;
  min-height:44px; padding:0; border:0; background:none; cursor:pointer;
  font:500 .8rem/1 var(--sans); color:var(--fg-3); text-decoration:underline;
  text-underline-offset:3px;
}
.mdl__dl:hover { color:var(--fg); }

.mdl__barend { display:flex; flex-wrap:wrap; gap:.6rem 1.4rem; align-items:center; margin-left:auto; }
.mdl__only { margin:0; font-size:.88rem; white-space:nowrap; align-items:center; }
.mdl__only input { width:24px; height:24px; margin-top:0; }
.mdl__bar .filters__reset { padding:0; }
@media (max-width: 700px) { .mdl__barend { margin-left:0; } .mdl__filters .fld { min-width:135px; flex:1 1 135px; } }

/* ---- compare plans side by side ---- */
.mdl__foot { display:flex; align-items:center; justify-content:space-between; gap:.6rem 1rem; flex-wrap:wrap; }
.mdl__foot .mdl__dl { margin-top:.85rem; }
.mdl__cmp { display:inline-flex; align-items:center; gap:.5rem; min-height:44px; margin-top:.85rem;
  padding:.4rem .7rem; border:1px solid var(--edge); background:var(--card); cursor:pointer;
  font:500 .72rem/1 var(--mono); letter-spacing:.09em; text-transform:uppercase; color:var(--fg-2);
  transition:border-color var(--t), color var(--t); }
.mdl__cmp:hover { border-color:var(--fg-2); color:var(--fg); }
.mdl__cmp input { width:22px; height:22px; margin:0; flex:0 0 auto; accent-color:var(--accent); cursor:pointer; }

/* sticky selection bar — appears once a plan is ticked, revealed by site.js */
.cmpbar { position:fixed; left:0; right:0; bottom:0; z-index:95;
  background:color-mix(in srgb, var(--bg) 92%, transparent); backdrop-filter:blur(12px) saturate(1.3);
  border-top:1px solid var(--edge); box-shadow:0 -8px 24px rgba(0,0,0,.12); padding:.7rem 0; }
.cmpbar__in { display:flex; align-items:center; gap:.7rem 1rem; flex-wrap:wrap; }
.cmpbar__lead { margin:0; font:600 .95rem/1.3 var(--sans); white-space:nowrap; }
.cmpbar__note { display:block; font:500 .74rem/1.3 var(--mono); letter-spacing:.02em; text-transform:none; color:var(--accent-ink); }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .cmpbar__note{ color:var(--accent);} }
:root[data-theme="dark"] .cmpbar__note { color:var(--accent); }
.cmpbar__chips { display:flex; flex-wrap:wrap; gap:.4rem; flex:1 1 240px; min-width:0; }
.cmpbar__chip { display:inline-flex; align-items:center; gap:.15rem; min-height:44px;
  padding:.2rem .2rem .2rem .75rem; border:1px solid var(--edge); background:var(--card);
  font:500 .82rem/1.2 var(--sans); }
.cmpbar__chip button { display:inline-grid; place-items:center; width:40px; height:44px;
  border:0; background:none; cursor:pointer; color:var(--fg-3); font-size:1.25rem; line-height:1; }
.cmpbar__chip button:hover { color:var(--fg); }
.cmpbar__acts { display:flex; gap:.5rem; margin-left:auto; }
.cmpbar__acts .btn { --bh:46px; font-size:.88rem; padding:0 1.1rem; }
.cmpbar__acts .btn[disabled] { opacity:.5; cursor:not-allowed; }
@media (max-width:560px){
  .cmpbar__lead { flex:1 1 100%; }
  .cmpbar__acts { flex:1 1 100%; margin-left:0; }
  .cmpbar__acts .btn { flex:1 1 auto; }
}

/* comparison panel — filled by site.js from the cards already in the page */
.cmp { border:1px solid var(--edge); background:var(--card); margin:0 0 1.8rem; }
.cmp__head { display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:.9rem 1.1rem; border-bottom:1px solid var(--edge); background:var(--bg); }
.cmp__head h3 { margin:0; font:600 1.2rem/1.2 var(--serif); }
.cmp__close { display:inline-flex; align-items:center; gap:.4rem; min-height:44px; padding:0 .8rem;
  border:1px solid var(--edge); background:var(--card); cursor:pointer;
  font:500 .82rem/1 var(--sans); color:var(--fg-2); transition:border-color var(--t), color var(--t); }
.cmp__close:hover { border-color:var(--fg); color:var(--fg); }
.cmp__scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.cmp__table { border-collapse:collapse; width:100%; }
.cmp__table th, .cmp__table td { border:1px solid var(--edge); padding:.6rem .7rem;
  text-align:left; vertical-align:top; font-size:.9rem; }
.cmp__rowh { background:var(--bg); position:sticky; left:0; z-index:1; white-space:nowrap;
  font:500 .66rem/1.3 var(--mono); letter-spacing:.07em; text-transform:uppercase; color:var(--fg-3); min-width:86px; }
.cmp__corner { z-index:2; }
.cmp__colh { min-width:172px; text-align:center; }
.cmp__draw { background:var(--bg); border:1px solid var(--edge); padding:.3rem; margin-bottom:.5rem; }
.cmp__draw svg.plan { width:100%; height:auto; display:block; }
.cmp__name { font:600 1.02rem/1.15 var(--serif); }
.cmp__series { font:500 .6rem/1.3 var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--fg-3); margin-top:.2rem; }
.cmp__drop { margin-top:.55rem; min-height:40px; padding:0 .7rem; border:1px solid var(--edge);
  background:var(--card); cursor:pointer; font:500 .72rem/1 var(--sans); color:var(--fg-3); }
.cmp__drop:hover { border-color:var(--fg); color:var(--fg); }
.cmp__table .btn { --bh:44px; font-size:.8rem; padding:0 .8rem; white-space:nowrap; }
@media (max-width:560px){ .cmp__colh { min-width:150px; } }

/* ---- row of actions under a section ---- */
.hrow { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:2.2rem; }

/* ---- fine print ---- */
.fineprint { font-size:.82rem; color:var(--fg-3); line-height:1.6; margin:1.2rem 0 0; max-width:76ch; }

/* Sidebar that tracks a long read — keeps the valuation offer in view while the reader
   works through the guide, rather than stranding it at the top of a tall column. */
.stack--sticky { position:sticky; top:150px; }
@media (max-width: 900px) { .stack--sticky { position:static; } }

/* ---- real maps (Leaflet + OpenStreetMap) ---- */
.lmap { border:1px solid var(--edge); background:var(--card); overflow:hidden; }
.lmap__canvas {
  aspect-ratio:21/9; width:100%; background:var(--plan-service);
  display:grid; place-items:center;
}
.lmap__canvas[data-map-ready] { display:block; }
.lmap__ns { padding:2rem; text-align:center; font-size:.92rem; color:var(--fg-2); }
.lmap__ns a { color:var(--accent-ink); }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .lmap__ns a{ color:var(--accent);} }
:root[data-theme="dark"] .lmap__ns a { color:var(--accent); }

.lmap__key { display:flex; flex-wrap:wrap; gap:.5rem 1.3rem; list-style:none; margin:0;
  padding:.9rem 1.2rem; border-top:1px solid var(--edge); background:var(--bg); }
.lmap__key li { display:flex; align-items:center; gap:.5rem; font:500 .72rem/1.3 var(--mono);
  letter-spacing:.05em; text-transform:uppercase; color:var(--fg-2); }
.lmap__sw { width:11px; height:11px; flex:0 0 auto; background:var(--fg); }
.lmap__sw--golf { background:var(--sage); }
.lmap__sw--road { background:var(--fg-3); }
.lmap__sw--medical { background:#9A5A3A; }
.lmap__sw--transit { background:var(--fg-3); }
.lmap__cap { padding:.85rem 1.2rem; border-top:1px solid var(--edge); font-size:.82rem;
  color:var(--fg-3); margin:0; }
.lmap__cap a { color:inherit; }

/* Markers are HTML, so they can be typeset like the rest of the page rather than looking
   like a default map pin dropped on top of it. */
.lpin-wrap { background:none; border:0; }
.lpin {
  display:inline-flex; align-items:center; white-space:nowrap;
  transform:translate(-50%, -50%);
  padding:.34rem .5rem; background:var(--ink, #111417); color:#F4F5F5;
  font:600 .68rem/1 var(--sans); letter-spacing:.04em;
  border:2px solid #F4F5F5; box-shadow:0 1px 6px rgba(17,20,23,.35);
}
/* Map legend is categorical data-viz, so it keeps a distinguishable set — the golf pine,
   greys for road and transit, and a clay for medical that reads apart from all of them. */
.lpin--golf { background:#2F4A3E; }
.lpin--road { background:#5C646E; }
.lpin--medical { background:#9A5A3A; }
.lpin--transit { background:#3B424A; }
.lpin b { font-weight:600; }

/* ---- search page: service-area map + town chips ---- */
.lmap--search { margin-bottom:1.4rem; }
.lmap--search .lmap__canvas { aspect-ratio:21/9; }
@media (max-width:700px){ .lmap--search .lmap__canvas { aspect-ratio:3/2; } }
/* A town marker carries its live listing count in the same typeset pill as the venue pins. */
.lpin--town { background:var(--ink,#111417); }
.lpin--town .lpin__n { margin-left:.45rem; padding-left:.45rem;
  border-left:1px solid rgba(244,245,245,.4); font-weight:700; }
.lpin.is-active { outline:3px solid var(--accent); outline-offset:1px; }
.lpin.is-empty { opacity:.55; }

/* Per-home markers, lit up by a live feed: a priced pill on each home, and a count where
   several sit close enough to overlap. The home pill reads lighter than a venue pin so the
   for-sale layer stays legible over the map; the cluster is the accent so the click-to-zoom
   affordance stands out. Pending and sold homes dim rather than change hue, keeping the price
   the thing the eye lands on. */
.lpin--home { background:var(--card,#fff); color:var(--fg,#111417); border-color:var(--fg,#111417);
  font-weight:700; font-variant-numeric:tabular-nums; }
.lpin--home.is-pending { opacity:.72; }
.lpin--home.is-sold { opacity:.6; }
.lpin--cluster { background:var(--accent); color:#fff; border-color:#fff; padding:.4rem .6rem; }
.lpin--cluster b { font-weight:800; font-variant-numeric:tabular-nums; }
/* Marker popup: the site's own typeset panel rather than Leaflet's default bubble copy. */
.lpop { font:500 .86rem/1.4 var(--sans); }
.lpop strong { font-size:1.02rem; }
.lpop a { display:inline-block; margin-top:.35rem; color:var(--accent); font-weight:700; text-decoration:none; }
.lpop a:hover { text-decoration:underline; }

/* The chips are the keyboard and no-JS path to the same town filter. Real links, ≥48px,
   updated in place by site.js when it runs. */
.townchips { display:flex; flex-wrap:wrap; gap:.55rem; list-style:none; margin:0;
  padding:.9rem 1.2rem; border-top:1px solid var(--edge); background:var(--bg); }
.townchips li { margin:0; }
.townchip { display:inline-flex; align-items:center; gap:.5rem; min-height:48px;
  padding:.55rem 1rem; border:1px solid var(--edge); border-radius:999px;
  background:var(--card); color:var(--fg); text-decoration:none;
  font:600 .84rem/1 var(--sans); }
.townchip__n { color:var(--fg-2); font-weight:700; font-variant-numeric:tabular-nums; }
.townchip:hover { border-color:var(--fg-3); }
.townchip:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.townchip[aria-current="true"] { border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent); }
.townchip[aria-current="true"] .townchip__n { color:var(--fg); }
.townchip.is-empty { opacity:.62; }

/* Leaflet's own chrome, brought into the site's register */
.leaflet-container { font:400 .88rem/1.5 var(--sans); background:var(--plan-service); }
.leaflet-control-attribution { font-size:.68rem; background:rgba(244,245,245,.88); }
.leaflet-bar a { border-radius:0; color:#111417; }
.leaflet-popup-content-wrapper, .leaflet-popup-tip { border-radius:var(--r-sm); }
.leaflet-popup-content { font-size:.9rem; line-height:1.5; }

/* the locator sits in a narrow column, so it needs a squarer frame */
.split .lmap__canvas { aspect-ratio:4/3; }
@media (max-width: 900px) { .lmap__canvas, .split .lmap__canvas { aspect-ratio:4/3; } }
@media (max-width: 560px) { .lmap__canvas, .split .lmap__canvas { aspect-ratio:1/1; } }

/* ---- one home: /listings/<slug>/ ---- */
/* The head carries the status chips, so it runs tighter than a section head that has to
   introduce a page from nothing. */
.phead--tight { padding-bottom:clamp(1.1rem,2vw,1.6rem); }
.lstp__chips { display:flex; flex-wrap:wrap; gap:.5rem; margin:0 0 .9rem; }
/* .chip is positioned against a card's media well; in a plain row it is just a badge. */
.lstp__chips .chip { position:static; top:auto; right:auto; bottom:auto; left:auto; }

.lstp__fig { margin:0 0 clamp(1.6rem,3vw,2.4rem); border:1px solid var(--edge);
  border-radius:var(--r-lg); overflow:hidden; background:var(--card); }
.lstp__fig .art { width:100%; aspect-ratio:16/8; display:block; }
.lstp__fig figcaption { padding:.85rem 1.1rem; font-size:.83rem; color:var(--fg-3);
  border-top:1px solid var(--edge); }

.lstp__price { display:flex; flex-wrap:wrap; align-items:baseline; gap:.3rem .8rem;
  font:600 clamp(2rem,4vw,2.7rem)/1.05 var(--serif); font-variant-numeric:tabular-nums;
  margin:0 0 1.4rem; }
.lstp__price span { font:500 .72rem/1 var(--mono); letter-spacing:.11em; text-transform:uppercase;
  color:var(--fg-3); flex:0 0 100%; margin-bottom:.15rem; }
.lstp__price i { font:400 .95rem/1 var(--sans); font-style:normal; color:var(--fg-2); }

.lstp__facts { margin-bottom:2rem; }
.lstp__facts dd a { color:var(--accent-ink); }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .lstp__facts dd a{ color:var(--accent);} }
:root[data-theme="dark"] .lstp__facts dd a { color:var(--accent); }

.lstp__map { margin-top:2.6rem; }
.lstp__map h2 { font-size:1.4rem; margin-bottom:.4rem; }
.lstp__map .muted { font-size:.88rem; margin-bottom:1rem; max-width:60ch; }

/* The plan drawing needs a light well behind it, the same as on the Sun City sheet. */
.lstp__plan { border:1px solid var(--edge); border-radius:var(--r); background:var(--bg);
  padding:1.2rem; }

/* IDX attribution. Every home displayed under a reciprocity agreement has to name the
   listing brokerage wherever it appears, not only in the site footer. */
.lstp__attrib { margin:2.4rem 0 0; padding-top:1.2rem; border-top:1px solid var(--edge);
  font-size:.8rem; line-height:1.6; color:var(--fg-3); max-width:76ch; }

@media (max-width: 900px) { .lstp__fig .art { aspect-ratio:16/10; } }

/* ---- tap targets: measured at 390px and corrected ---- */
.mdl__avail { min-height:44px; display:inline-flex; align-items:center; }
.lst__link { min-height:44px; display:inline-flex; align-items:center; }
.mdl__bar .filters__reset { min-height:44px; padding:0; display:inline-flex; align-items:center; }
.filters__reset { min-height:44px; display:inline-flex; align-items:center; }
.brand { min-height:44px; }
/* the label is the real target for a checkbox — make it comfortably tappable */
.fld--check { min-height:44px; padding-block:.35rem; align-items:center; }
.fld--check input { width:26px; height:26px; }

/* ==========================================================================
   Ask-Brenda dock + dialog
   A fixed corner button on every public page. On phones it shares a bar with
   tap-to-call rather than floating over it: for this audience the call is still
   the most valuable action and must never be covered.
   ========================================================================== */

.dock {
  position:fixed; z-index:95;
  right:calc(1.1rem + env(safe-area-inset-right));
  bottom:calc(1.1rem + env(safe-area-inset-bottom) + var(--dock-lift, 0px));
  display:flex; gap:.6rem; align-items:center;
  transition:bottom var(--t);
}
.dock__call { display:none; }

.dock__ask, .dock__call {
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  min-height:54px; padding:0 1.35rem; border:1.5px solid var(--fg);
  background:var(--fg); color:var(--bg); text-decoration:none; cursor:pointer;
  font:600 1rem/1 var(--sans); border-radius:var(--r-sm);
  box-shadow:0 2px 6px rgba(20,23,26,.14), 0 12px 32px -14px rgba(20,23,26,.34);
  transition:background var(--t), border-color var(--t), color var(--t);
}
.dock__ask:hover, .dock__call:hover { background:var(--accent-ink); border-color:var(--accent-ink); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .dock__ask:hover,
  :root:not([data-theme="light"]) .dock__call:hover { background:var(--accent); border-color:var(--accent); color:#101216; }
}
:root[data-theme="dark"] .dock__ask:hover,
:root[data-theme="dark"] .dock__call:hover { background:var(--accent); border-color:var(--accent); color:#101216; }
.dock__ask svg, .dock__call svg { flex:0 0 auto; }

/* phones: one bar, call first — it converts best for this audience */
@media (max-width: 780px) {
  .dock {
    left:calc(.7rem + env(safe-area-inset-left));
    right:calc(.7rem + env(safe-area-inset-right));
    bottom:calc(.7rem + env(safe-area-inset-bottom) + var(--dock-lift, 0px));
    gap:.5rem;
  }
  .dock__call { display:inline-flex; flex:1 1 0; }
  .dock__ask { flex:1 1 0; }
  .dock__ask, .dock__call { padding:0 .9rem; font-size:.97rem; }
  body { padding-bottom:5.5rem; }
}

/* ---- dialog ---- */
.ask {
  position:fixed; margin:0; padding:0; border:1px solid var(--edge);
  border-radius:var(--r-sm); background:var(--card); color:var(--fg);
  width:min(390px, calc(100vw - 2rem)); max-height:calc(100dvh - 2rem);
  inset:auto calc(1.1rem + env(safe-area-inset-right)) calc(1.1rem + env(safe-area-inset-bottom)) auto;
  box-shadow:0 4px 14px rgba(20,23,26,.16), 0 30px 70px -24px rgba(20,23,26,.42);
  overflow:visible;
}
.ask::backdrop { background:rgba(20,23,26,.42); backdrop-filter:blur(2px); }
.ask[open] { animation:askIn 220ms cubic-bezier(.22,.61,.36,1); }
@keyframes askIn { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }

.ask__in { padding:1.4rem 1.4rem 1.5rem; overflow-y:auto; max-height:calc(100dvh - 2rem); }
.ask__x {
  position:absolute; top:.5rem; right:.5rem; width:44px; height:44px;
  display:grid; place-items:center; border:0; background:none; cursor:pointer;
  color:var(--fg-3); border-radius:var(--r-sm);
}
.ask__x:hover { color:var(--fg); }
.ask__h { font-size:1.4rem; margin:0 0 .3rem; padding-right:2.5rem; }
.ask__lede { font-size:.94rem; color:var(--fg-2); margin:0 0 1.2rem; }
.ask__row { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
@media (max-width: 420px) { .ask__row { grid-template-columns:1fr; gap:0; } }
.ask__hint { min-height:0; margin:0 0 .5rem; font-size:.85rem; color:#B4342A; }
.ask__hint:empty { display:none; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ask__hint { color:#F09A90; } }
:root[data-theme="dark"] .ask__hint { color:#F09A90; }

.ask__toggles { list-style:none; margin:.2rem 0 .9rem; padding:0; display:flex; gap:1.4rem; flex-wrap:wrap; }
.ask__fine { font-size:.78rem; line-height:1.55; color:var(--fg-3); margin:0 0 1.1rem; }
.ask__fine b { color:var(--fg-2); }

/* switch — the input is the control, styled directly, so it keeps its own
   focus, keyboard and screen-reader behaviour */
.tgl { display:flex; align-items:center; gap:.6rem; min-height:44px; margin:0; cursor:pointer; font-size:.95rem; }
.tgl input {
  appearance:none; -webkit-appearance:none; position:relative; flex:0 0 auto;
  width:48px; height:28px; margin:0; border:0; border-radius:999px;
  background:var(--edge); cursor:pointer; transition:background var(--t);
}
.tgl input::after {
  content:''; position:absolute; top:3px; left:3px; width:22px; height:22px;
  border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(20,23,26,.35);
  transition:transform var(--t);
}
.tgl input:checked { background:var(--ok); }
.tgl input:checked::after { transform:translateX(20px); }
.tgl input:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.tgl span { user-select:none; }

.ask__done { text-align:center; padding:1.4rem .4rem .4rem; }
.ask__done svg { color:var(--ok); margin:0 auto .7rem; }
.ask__done p { color:var(--fg-2); font-size:.95rem; margin:0 0 1.3rem; }
.ask__done .ask__h { padding-right:0; }

@media (prefers-reduced-motion: reduce) {
  .ask[open] { animation:none; }
  .tgl input, .tgl input::after { transition:none; }
}

/* ==========================================================================
   Homepage — Prairie editorial
   The long rules are datum lines: they separate live market information the
   way an architectural sheet separates title, drawing and annotation.
   ========================================================================== */

.page-home {
  --home-grid-gap:clamp(1.25rem,2.4vw,2rem);
  --home-column-gap:clamp(2.5rem,6vw,6.5rem);
  --home-offset:clamp(2.5rem,6vw,5rem);
  --home-listing-feature-min:clamp(24rem,36vw,30rem);
  --home-listing-secondary-min:clamp(21rem,28vw,23.5rem);
  --home-rule:1px solid var(--edge);
}

.page-home .hdr { position:relative; background:color-mix(in srgb,var(--paper) 94%,transparent); }
.page-home .hdr__in { width:min(var(--wrap-wide),100%); min-height:82px; }
.page-home .brand__mark { border-radius:var(--radius-1); }
.page-home .nav a { border-radius:var(--radius-1); }

.page-home .hero {
  padding-block:var(--space-hero) var(--space-section-tight);
  background:var(--paper);
}
.page-home .hero::after {
  inset:auto 0 0; height:1px; background:var(--edge);
}
.page-home .hero__in {
  width:min(var(--wrap-wide),100%);
  grid-template-columns:minmax(0,1.45fr) minmax(18rem,.55fr);
  gap:var(--home-column-gap); align-items:end;
}
.page-home .hero__lead { min-width:0; }
.page-home .hero__kicker {
  display:flex; width:min(100%,54rem); gap:1rem; padding:0; border:0;
  border-radius:var(--radius-0); background:transparent;
  font:600 var(--type-label)/1.3 var(--font-body);
  letter-spacing:var(--tracking-label); text-transform:uppercase;
}
.page-home .hero__kicker::after { content:''; flex:1; align-self:center; height:1px; background:var(--edge); }
.page-home .hero__kicker b {
  padding:0; border-radius:var(--radius-0); background:transparent; color:var(--accent-ink);
  font:inherit; letter-spacing:inherit;
}
.page-home .hero h1 {
  max-width:10.5ch; margin-bottom:var(--space-2);
  font-size:var(--type-hero); font-weight:500; line-height:.92;
  letter-spacing:-.048em;
}
.page-home .hero h1 em { color:var(--accent-ink); font-weight:400; }
.page-home .hero .lede { max-width:54ch; }
.page-home .hero__btns { margin-top:var(--space-2); gap:.75rem; }
.page-home .hero__trust {
  max-width:54rem; margin-top:var(--space-3); padding-top:var(--space-1);
  gap:.75rem 2rem; font-size:var(--type-small);
}

.page-home .hero__panel {
  align-self:stretch; display:flex; flex-direction:column; justify-content:flex-end;
  padding:0 0 0 var(--space-2); background:transparent; border:0;
  border-left:var(--home-rule); border-radius:var(--radius-0); box-shadow:none;
}
.page-home .hero__panel-top { padding-bottom:var(--space-1); border-bottom:var(--home-rule); }
.page-home .hero__panel-h { font:600 var(--type-label)/1.2 var(--font-body); letter-spacing:var(--tracking-label); text-transform:uppercase; }
.page-home .hero__panel-n { font:500 var(--type-caption)/1 var(--font-data); }
.page-home .hero__live { border-radius:var(--radius-round); }
.page-home .hero__anchor {
  grid-template-columns:1fr auto; padding:var(--space-1) 0;
  border:0; border-bottom:var(--home-rule); border-radius:var(--radius-0); background:transparent;
}
.page-home .hero__anchor-tag { font-family:var(--font-data); letter-spacing:var(--tracking-label); }
.page-home .hero__anchor-name { font-size:var(--type-h3); font-weight:500; }
.page-home .hero__anchor b { font-size:2.6rem; font-weight:400; }
.page-home .hero__towns { margin:0; }
.page-home .hero__towns li + li { border-top:var(--home-rule); }
.page-home .hero__towns a { min-height:50px; padding:.7rem 0; }
.page-home .hero__panel-foot { margin-top:0; padding-top:var(--space-1); }

.page-home .qsearch {
  margin-top:0; padding:var(--space-2) 0; z-index:auto;
  background:transparent; border:0; border-bottom:var(--home-rule); border-radius:var(--radius-0);
}
.page-home .qsearch h2 {
  margin-bottom:var(--space-1); font:500 var(--type-label)/1.3 var(--font-data);
  letter-spacing:var(--tracking-label); text-transform:uppercase;
}
.page-home .qsearch__grid { grid-template-columns:2fr .75fr .75fr auto; gap:1px; background:var(--edge); border:var(--home-rule); }
.page-home .qsearch__grid > * { background:var(--paper); }
.page-home .qsearch__grid > .btn--solid { background:var(--fg); color:var(--bg); }
.page-home .qsearch__grid .fld { padding:.65rem .8rem; }
.page-home .qsearch__grid .fld > span { font-size:var(--type-caption); }
.page-home .qsearch__grid :is(input,select) { min-height:44px; padding-block:.45rem; background:transparent; border:0; border-radius:var(--radius-0); box-shadow:none; }
.page-home .qsearch__grid .btn { align-self:stretch; border-radius:var(--radius-0); }

.page-home .shead .eyebrow {
  display:flex; align-items:center; gap:1rem; width:min(100%,48rem);
  font-family:var(--font-data); font-size:var(--type-caption);
}
.page-home .shead .eyebrow::after { content:''; flex:1; height:1px; background:var(--edge); }
.page-home .shead h2 { max-width:15ch; }
.page-home .shead.center { text-align:left; margin-inline:0; }
.page-home .shead.center .lede { margin-inline:0; }

.page-home .home-listings { background:var(--paper); }
.page-home .home-listings__showcase,
.page-home .home-listings__secondary { display:grid; gap:var(--home-grid-gap); }
.page-home .home-listings__secondary { grid-template-columns:1fr; }
.page-home .home-listings .lst { border-color:var(--edge); border-radius:var(--radius-0); }
.page-home .home-listings .lst__media { border-bottom:var(--home-rule); }
.page-home .home-listings__cta { margin:var(--space-2) 0 0; }

.page-home .home-suncity {
  background:var(--feature-bg); color:var(--feature-fg); border:0;
}
.page-home .home-suncity .split { grid-template-columns:1.15fr .85fr; gap:var(--home-column-gap); }
.page-home .home-suncity .eyebrow,
.page-home .home-suncity .comm__kind { color:var(--feature-muted); }
.page-home .home-suncity .eyebrow::after { background:var(--feature-rule); }
.page-home .home-suncity h2 { max-width:11ch; font-size:clamp(2.8rem,5.4vw,4.6rem); }
.page-home .home-suncity :is(p,.lede,.muted) { color:var(--feature-muted); }
.page-home .home-suncity a:not(.btn) { color:var(--feature-fg); }
.page-home .home-suncity .pills li { color:var(--feature-muted); background:transparent; border-color:var(--feature-rule); }
.page-home .home-suncity .btn--solid { background:var(--feature-fg); color:var(--feature-bg); }
.page-home .home-suncity .tscroll { background:transparent; border-color:var(--feature-rule); }
.page-home .home-suncity .mtable :is(th,td) { border-color:var(--feature-rule); }
.page-home .home-suncity .mtable th { color:var(--feature-muted); }
.page-home .home-suncity .mtable .up { color:var(--feature-positive); }
.page-home .home-suncity .mtable .down { color:var(--feature-negative); }
.page-home .home-suncity .home-suncity__source { font-size:var(--type-caption); }

.page-home .home-services .grid { grid-template-columns:1.15fr .85fr; gap:var(--home-column-gap); }
.page-home .home-service {
  padding:var(--space-3) 0 0; background:transparent; border:0; border-top:var(--home-rule);
  border-radius:var(--radius-0); overflow:visible;
}
.page-home .home-service:nth-child(2) { margin-top:var(--home-offset); }
.page-home .home-service h3 { max-width:18ch; font-size:clamp(1.8rem,3vw,2.5rem); }
.page-home .home-service__list { margin:var(--space-1) 0 var(--space-2); }

.page-home .home-proof { background:transparent; border-block:var(--home-rule); }
.page-home .home-proof .shead { max-width:50rem; }
.page-home .home-proof .stats { border:0; border-top:var(--home-rule); background:transparent; border-radius:var(--radius-0); }
.page-home .home-proof .stats__i { padding:var(--space-2) var(--space-1) 0; background:transparent; border-left:var(--home-rule); }
.page-home .home-proof .stats__i:first-child { border-left:0; }
.page-home .home-proof .stats__i dd { font-size:clamp(2.4rem,5vw,4.5rem); font-weight:400; }

.page-home .home-communities { background:var(--paper); }
.page-home .home-communities .grid { grid-template-columns:repeat(12,1fr); gap:var(--home-grid-gap); }
.page-home .home-communities .comm { grid-column:span 3; border-radius:var(--radius-0); }
.page-home .home-communities .comm:nth-child(1) { grid-column:span 7; }
.page-home .home-communities .comm:nth-child(2) { grid-column:span 5; }
.page-home .home-communities .comm:nth-child(-n+2) .comm__media { aspect-ratio:16/8; }
.page-home .home-communities .comm__media { border-bottom:var(--home-rule); }
.page-home .home-communities .comm__kind { font-family:var(--font-data); font-size:var(--type-caption); letter-spacing:var(--tracking-label); }

.page-home .home-reviews { background:transparent; border-block:var(--home-rule); }
.page-home .home-reviews .quotes { grid-template-columns:repeat(12,1fr); gap:var(--home-grid-gap); }
.page-home .home-reviews .quote { grid-column:span 5; border-radius:var(--radius-0); padding:var(--space-2); }
.page-home .home-reviews .quote:nth-child(2) { grid-column:span 4; margin-top:var(--space-2); }
.page-home .home-reviews .quote:nth-child(3) { grid-column:span 3; margin-top:var(--space-4); }
.page-home .home-reviews__cta { margin:var(--space-2) 0 0; text-align:left; }

.page-home .home-valuation { background:var(--paper); }
.page-home .home-valuation .split { grid-template-columns:1.2fr .8fr; gap:var(--home-column-gap); }
.page-home .home-valuation .lead {
  padding:0 0 0 var(--space-2); background:transparent; border:0; border-left:var(--home-rule);
  border-radius:var(--radius-0);
}

@media (min-width: 921px) {
  .page-home .home-listings__feature .lst__body { padding:var(--space-2); }
  .page-home .home-listings__feature .lst__price { font-size:clamp(2rem,4vw,3.25rem); font-weight:400; }
  .page-home .home-listings__feature .lst__addr { font-size:1.2rem; }
}

@media (max-width: 920px) {
  .page-home .hero__in,
  .page-home .home-suncity .split,
  .page-home .home-services .grid,
  .page-home .home-valuation .split { grid-template-columns:1fr; }
  .page-home .hero__panel,
  .page-home .home-valuation .lead { padding:var(--space-2) 0 0; border-left:0; border-top:var(--home-rule); }
  .page-home .home-service:nth-child(2) { margin-top:0; }
  .page-home .home-communities .comm,
  .page-home .home-communities .comm:nth-child(1),
  .page-home .home-communities .comm:nth-child(2) { grid-column:span 6; }
  .page-home .home-reviews .quote,
  .page-home .home-reviews .quote:nth-child(2),
  .page-home .home-reviews .quote:nth-child(3) { grid-column:span 6; margin-top:0; }
}

@media (max-width: 640px) {
  .page-home .hero { padding-top:var(--space-section-tight); }
  .page-home .hero h1 { font-size:clamp(3.25rem,16vw,4.35rem); }
  .page-home .hero__kicker { align-items:flex-start; flex-wrap:wrap; }
  .page-home .hero__kicker::after { flex-basis:100%; }
  .page-home .hero__btns .btn { width:100%; }
  .page-home .qsearch__grid { grid-template-columns:1fr; gap:1px; }
  .page-home .home-proof .stats { grid-template-columns:1fr 1fr; }
  .page-home .home-proof .stats__i:nth-child(odd) { border-left:0; }
  .page-home .home-communities .grid,
  .page-home .home-reviews .quotes { grid-template-columns:1fr; }
  .page-home .home-communities .comm,
  .page-home .home-communities .comm:nth-child(1),
  .page-home .home-communities .comm:nth-child(2),
  .page-home .home-reviews .quote,
  .page-home .home-reviews .quote:nth-child(2),
  .page-home .home-reviews .quote:nth-child(3) { grid-column:1; }
}

/* ==========================================================================
   Sun City Huntley — editorial community monograph
   The homepage introduces the community as an evergreen chapter; this page
   opens that chapter into a long, data-rich field guide with one lead item in
   each collection. Prairie horizontals, not card decoration, hold it together.
   ========================================================================== */

.page-suncity .chero {
  background:var(--feature-bg); color:var(--feature-fg); border-color:var(--feature-rule);
  overflow:hidden;
}
.page-suncity .hdr { position:relative; }
.page-suncity .chero .crumbs { color:var(--feature-muted); }
.page-suncity .chero .crumbs a { color:var(--feature-fg); }
.page-suncity .chero__in {
  grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:var(--sun-column-gap);
  min-height:var(--sun-hero-min); padding-block:var(--space-3); align-items:stretch;
}
.page-suncity .chero__in > div:first-child { display:flex; flex-direction:column; justify-content:center; }
.page-suncity .chero .eyebrow { color:var(--feature-positive); margin-bottom:var(--space-1); }
.page-suncity .chero h1 {
  color:var(--feature-fg); font-size:var(--type-hero); font-weight:500;
  line-height:.9; letter-spacing:-.05em; max-width:10ch; margin-bottom:var(--space-1);
}
.page-suncity .chero h1 em { color:var(--feature-positive); font-weight:400; }
.page-suncity .chero__sub { color:var(--feature-muted); font:400 var(--type-lede)/1.55 var(--font-body); }
.page-suncity .chero__meta {
  padding-block:var(--space-1); border-block:1px solid var(--feature-rule); gap:.75rem var(--space-1);
}
.page-suncity .chero__meta li { color:var(--feature-muted); font-family:var(--font-data); }
.page-suncity .chero__btns .btn--solid { background:var(--feature-fg); color:var(--feature-bg); }
.page-suncity .chero__btns .btn--ghost { border-color:var(--feature-rule); color:var(--feature-fg); }
.page-suncity .chero__art {
  align-self:stretch; width:calc(100% + max(var(--gut), (100vw - var(--wrap))/2));
  aspect-ratio:auto; margin:0; border:0; border-left:1px solid var(--feature-rule);
}
.page-suncity .chero__art img,
.page-suncity .ven__art img,
.page-suncity .sc-cost-figure img {
  filter:var(--image-grade); transition:filter var(--t-slow), transform var(--t-slow);
}
.page-suncity .chero__art:hover img,
.page-suncity .ven__i:hover img { filter:var(--image-grade-hover); transform:scale(1.015); }

.page-suncity .qf {
  grid-template-columns:1.35fr repeat(7,1fr); background:var(--edge); border-color:var(--edge);
}
.page-suncity .qf > div { background:var(--paper); padding:var(--space-1); }
.page-suncity .qf > div:first-child { background:var(--accent-soft); }
.page-suncity .qf > div:first-child :is(dt,small) { color:var(--fg-2); }
.page-suncity .qf dd { font-family:var(--font-display); font-size:clamp(1.25rem,2vw,1.75rem); font-weight:500; }
.page-suncity .qf dd small { font-family:var(--font-body); }

.page-suncity .scnav { top:0; background:color-mix(in srgb,var(--paper) 95%,transparent); }
.page-suncity .scnav ul { justify-content:space-between; }
.page-suncity .scnav a { padding-inline:.75rem; font-family:var(--font-data); }

.page-suncity .sect { border-bottom:1px solid var(--edge); }
.page-suncity .sect--alt { background:transparent; }
.page-suncity .shead { max-width:52rem; margin-bottom:var(--space-3); }
.page-suncity .shead .eyebrow { display:flex; align-items:center; gap:var(--space-1); }
.page-suncity .shead .eyebrow::after { content:''; height:1px; flex:1; background:var(--edge); }
.page-suncity .shead h2 { max-width:15ch; }

.page-suncity .sc-homes { background:var(--ground); }
.page-suncity .sc-homes .grid { gap:var(--sun-grid-gap); }
.page-suncity .sc-homes .lst { border-radius:var(--radius-0); }
.page-suncity .sc-homes .lst__media { border-bottom:1px solid var(--edge); }
.page-suncity .sc-homes .hrow { padding-top:var(--space-2); border-top:1px solid var(--edge); }

.page-suncity .sc-plans { background:var(--paper); }
.page-suncity .plansale {
  padding:var(--space-2); margin-bottom:var(--space-3); background:var(--feature-bg); color:var(--feature-fg);
}
.page-suncity .plansale__lead,
.page-suncity .plansale__hint,
.page-suncity .plansale__row span { color:var(--feature-muted); }
.page-suncity .plansale__lead span { color:var(--feature-positive); }
.page-suncity .plansale__row { gap:0; border-top:1px solid var(--feature-rule); }
.page-suncity .plansale__row li { flex:1 1 14rem; }
.page-suncity .plansale__row a {
  min-height:5rem; border:0; border-right:1px solid var(--feature-rule);
  border-bottom:1px solid var(--feature-rule); border-left:2px solid var(--feature-positive);
  background:transparent; padding:var(--space-1);
}
.page-suncity .plansale__row a:hover { background:color-mix(in srgb,var(--feature-fg) 8%,transparent); }
.page-suncity .mdl__bar { padding:var(--space-1) 0; border-block:1px solid var(--edge); }
.page-suncity .mdl__filters { flex:1 1 42rem; }
.page-suncity .mdl__filters .fld { flex:1 1 8.5rem; }
.page-suncity .mdls { grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--sun-grid-gap); }
.page-suncity .mdl { border-radius:var(--radius-0); box-shadow:none; }
.page-suncity .mdl:hover { box-shadow:none; }
.page-suncity .mdl--live { border-left:2px solid var(--accent); box-shadow:none; }
.page-suncity .mdl--featured {
  grid-column:span 2; display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  border-left-width:4px;
}
.page-suncity .mdl--featured .mdl__sheet { border-bottom:0; border-right:1px solid var(--edge); }
.page-suncity .mdl--featured .mdl__body { padding:var(--space-2); }
.page-suncity .mdl--featured .mdl__name { font-size:var(--type-h2); font-weight:400; }
.page-suncity .mdl__sheet { background:var(--ground); }
.page-suncity .mdl__name { font-family:var(--font-display); font-weight:500; }
.page-suncity .mdl__series,
.page-suncity .mdl__avail { border-radius:var(--radius-0); }
.page-suncity .mdl__specs { border-inline:0; }
.page-suncity .mdl__acts .btn { border-radius:var(--radius-0); }
.page-suncity .sc-plan-lead { margin-top:var(--space-3); max-width:40rem; }
.page-suncity .sc-plan-lead .lead { border-radius:var(--radius-0); border-left:2px solid var(--accent); }

.page-suncity .sc-amenities { background:var(--ground); }
.page-suncity .ven { grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--sun-grid-gap); }
.page-suncity .ven__i { border-radius:var(--radius-0); overflow:hidden; }
.page-suncity .ven__i:first-child { grid-column:span 2; display:grid; grid-template-columns:1.18fr .82fr; }
.page-suncity .ven__i:first-child .ven__art { aspect-ratio:auto; border:0; border-right:1px solid var(--edge); }
.page-suncity .ven__i:first-child h3 { font-size:var(--type-h2); font-weight:400; }
.page-suncity .ven__art { aspect-ratio:4/3; overflow:hidden; }
.page-suncity .ven__list { gap:0; }
.page-suncity .ven__list li { border:0; border-right:1px solid var(--edge); padding:.4rem .6rem; }

.page-suncity .sc-lifestyle { background:var(--paper); }
.page-suncity .clubs { grid-template-columns:repeat(12,minmax(0,1fr)); gap:var(--sun-grid-gap); }
.page-suncity .clubs > :nth-child(1),
.page-suncity .clubs > :nth-child(6) { grid-column:span 4; }
.page-suncity .clubs > :nth-child(2),
.page-suncity .clubs > :nth-child(5) { grid-column:span 3; }
.page-suncity .clubs > :nth-child(3),
.page-suncity .clubs > :nth-child(4) { grid-column:span 5; }
.page-suncity .clubs > div { padding-top:var(--space-1); border-top:1px solid var(--edge); }
.page-suncity .clubs h3 { border-bottom:0; padding-bottom:0; }
.page-suncity .sc-lifestyle-copy { margin-top:var(--space-3); max-width:var(--sun-copy-width); }

.page-suncity .sc-map { background:var(--ground); }
.page-suncity .sc-map .lmap,
.page-suncity .sc-map .smap { border-radius:var(--radius-0); }
.page-suncity .sc-map-detail { grid-template-columns:1.35fr .65fr; margin-top:var(--space-2); gap:var(--sun-column-gap); }

.page-suncity .sc-costs { background:var(--paper); }
.page-suncity .sc-costs > .wrap.split,
.page-suncity .sc-guide > .wrap.split { grid-template-columns:minmax(0,1.18fr) minmax(19rem,.82fr); gap:var(--sun-column-gap); }
.page-suncity .costcalc,
.page-suncity .cost,
.page-suncity .sc-cost-figure,
.page-suncity .sc-costs .lead { border-radius:var(--radius-0); }
.page-suncity .sc-cost-figure { margin:0; }
.page-suncity .sc-cost-note { margin-top:var(--space-1); }

.page-suncity .sc-owners { background:var(--ground); }
.page-suncity .revs { grid-template-columns:repeat(12,minmax(0,1fr)); gap:var(--sun-grid-gap); border:0; background:transparent; }
.page-suncity .rev { grid-column:span 5; padding:var(--space-2); border-top:1px solid var(--edge); }
.page-suncity .rev:nth-child(1),
.page-suncity .rev:nth-child(4) { grid-column:span 7; }
.page-suncity .rev:nth-child(2) { margin-top:var(--space-2); }
.page-suncity .rev:nth-child(3) { margin-top:var(--space-3); }
.page-suncity .rev p { font-family:var(--font-display); font-size:clamp(1.2rem,2vw,1.55rem); line-height:1.5; }

.page-suncity .sc-guide { background:var(--paper); }
.page-suncity .sc-guide .prose > h3 { font-family:var(--font-display); font-size:var(--type-h3); font-weight:500; }
.page-suncity .sc-guide .pull { margin-block:var(--space-3); font-size:clamp(1.65rem,3vw,2.25rem); }
.page-suncity .sc-guide .stack--sticky { top:9rem; }
.page-suncity .market-delta { font-size:var(--type-caption); }
.page-suncity .faq__i summary { padding-block:var(--space-1); }

@media (min-width:921px) {
  .page-suncity .sc-homes .grid--3 { grid-template-columns:1.15fr 1fr 1fr; }
  .page-suncity .sc-homes .lst:first-child { grid-column:1/3; grid-row:1/3; }
  .page-suncity .sc-homes .lst:first-child .lst__media { aspect-ratio:16/9; }
  .page-suncity .sc-homes .lst:first-child .lst__body { padding:var(--space-2); }
  .page-suncity .sc-homes .lst:first-child .lst__price { font-size:clamp(2rem,4vw,3.25rem); font-weight:400; }
}

@media (max-width:920px) {
  .page-suncity .chero__in { grid-template-columns:1fr; min-height:0; padding-top:0; }
  .page-suncity .chero__art {
    order:-1; width:calc(100% + var(--gut) + var(--gut));
    margin-inline:calc(0px - var(--gut));
    aspect-ratio:16/9; border:0; border-bottom:1px solid var(--feature-rule);
  }
  .page-suncity .qf { grid-template-columns:repeat(4,1fr); }
  .page-suncity .scnav ul { justify-content:flex-start; }
  .page-suncity .mdls { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .page-suncity .mdl--featured { grid-column:span 2; }
  .page-suncity .ven__i:first-child { display:flex; }
  .page-suncity .ven__i:first-child .ven__art { aspect-ratio:4/3; border-right:0; border-bottom:1px solid var(--edge); }
  .page-suncity .sc-map-detail,
  .page-suncity .sc-costs > .wrap.split,
  .page-suncity .sc-guide > .wrap.split { grid-template-columns:1fr; }
}

@media (max-width:640px) {
  .page-suncity .chero__in { padding-bottom:var(--space-3); }
  .page-suncity .chero h1 { font-size:clamp(3.2rem,15vw,4.2rem); }
  .page-suncity .chero__btns .btn { width:100%; }
  .page-suncity .qf { grid-template-columns:1fr 1fr; }
  .page-suncity .qf > div { padding:var(--space-1) 1rem; }
  .page-suncity .shead { margin-bottom:var(--space-2); }
  .page-suncity .plansale { padding:var(--space-1); }
  .page-suncity .mdls { grid-template-columns:1fr; }
  .page-suncity .mdl--featured { grid-column:1; display:flex; }
  .page-suncity .mdl--featured .mdl__sheet { border-right:0; border-bottom:1px solid var(--edge); }
  .page-suncity .mdl--featured .mdl__name { font-size:var(--type-h3); }
  .page-suncity .ven { grid-template-columns:1fr; }
  .page-suncity .ven__i:first-child { grid-column:1; }
  .page-suncity .clubs { grid-template-columns:1fr; }
  .page-suncity .clubs > :nth-child(n) { grid-column:1; }
  .page-suncity .revs { grid-template-columns:1fr; }
  .page-suncity .rev,
  .page-suncity .rev:nth-child(1),
  .page-suncity .rev:nth-child(4) { grid-column:1; margin-top:0; }
}

/* ---- remaining page families: shared editorial grammar ---- */
.crumbs--flush { padding-top:0; margin-bottom:1rem; }
.section-cta { margin-top:var(--space-2); }
.section-note { margin-top:var(--space-1); }
.source-note { margin-top:var(--space-1); font-size:var(--type-small); }
.legal-note { font-size:var(--type-small); }
.market-table { margin-bottom:var(--space-2); }
.saved-search { margin-top:var(--space-3); }
.home-suncity__table { margin-bottom:1rem; }

.steps__i { grid-template-columns:3rem 1fr; gap:var(--space-1); }
.steps__n {
  width:auto; height:auto; display:block; padding-top:.2rem; border-radius:var(--radius-0);
  background:transparent; color:var(--accent-ink); font:500 var(--type-label)/1 var(--font-data);
  letter-spacing:var(--tracking-label);
}
@media (prefers-color-scheme:dark) {
  :root:not([data-theme="light"]) .steps__n { color:var(--accent); }
}
:root[data-theme="dark"] .steps__n { color:var(--accent); }

.editorial-card {
  padding:var(--space-1); border-radius:var(--radius-0); border-top:2px solid var(--accent);
}
.editorial-card--roomy { padding:var(--space-2); }
.editorial-card h3 { font-family:var(--font-display); font-size:var(--type-h3); font-weight:500; }
.editorial-card p { margin:0; font-size:var(--type-small); }

@media (min-width:921px) {
  .page-sellers .grid--3 { grid-template-columns:1.15fr .85fr .85fr; align-items:start; }
  .page-sellers .editorial-card:nth-child(2) { margin-top:var(--space-2); }
  .page-sellers .editorial-card:nth-child(3) { margin-top:var(--space-4); }
  .page-buyers .grid--4 { grid-template-columns:repeat(12,minmax(0,1fr)); align-items:start; }
  .page-buyers .editorial-card { grid-column:span 3; }
  .page-buyers .editorial-card:first-child { grid-column:span 5; }
  .page-buyers .editorial-card:nth-child(2) { grid-column:span 4; margin-top:var(--space-2); }
  .page-buyers .editorial-card:nth-child(3) { margin-top:var(--space-3); }
  .page-buyers .editorial-card:nth-child(4) { grid-column:span 5; }
  .page-buyers .editorial-card:nth-child(5) { grid-column:span 4; }
}

.headshot-placeholder {
  width:100%; height:auto; aspect-ratio:4/5; border-radius:var(--radius-0); color:var(--fg);
}
.headshot-placeholder__label {
  font:600 var(--type-body)/1 var(--font-body); fill:currentColor; opacity:.85;
}
.credentials { padding:var(--space-1); border-radius:var(--radius-0); }
.credentials h3 { font-family:var(--font-body); font-size:1rem; margin-bottom:.9rem; }
.credentials dl { margin:0; font-size:var(--type-small); }
.credentials__row {
  display:flex; justify-content:space-between; gap:1rem; padding:.5rem 0;
  border-bottom:1px solid var(--edge-2);
}
.credentials__row:last-child { border-bottom:0; }
.credentials__row dd { margin:0; font-weight:600; text-align:right; }
.credentials__note { font-size:var(--type-caption); margin:1rem 0 0; }

.contact-card { padding:var(--space-2); border-radius:var(--radius-0); }
.contact-card h2 { font-size:var(--type-h3); }
.contact-card h3,
.next-card h3 { font-family:var(--font-body); font-size:1rem; }
.contact-card__phone {
  font:600 var(--type-h3)/1.2 var(--font-display); margin:.4rem 0 .2rem;
}
.contact-card__phone a { text-decoration:none; }
.contact-card__aside { font-size:var(--type-small); }
.contact-card__aside--last { margin-bottom:0; }
.contact-card__email { margin:var(--space-1) 0 .2rem; }
.contact-card__email a { font-weight:600; }
.contact-card hr { border:0; border-top:1px solid var(--edge); margin:var(--space-1) 0; }
.contact-card__address,
.contact-card__hours { font-size:var(--type-small); margin-bottom:.4rem; }
.contact-card__hours-title { margin-top:var(--space-1); }
.contact-card__hours { margin-bottom:0; }
.contact-map { aspect-ratio:16/10; border-radius:var(--radius-0); }
.next-card { padding:var(--space-1); border-radius:var(--radius-0); border-left:2px solid var(--accent); }
.next-card h3 { margin-bottom:.7rem; }
.next-card__lede { font-size:var(--type-small); margin-bottom:.7rem; }
.next-card__list { font-size:var(--type-small); }
.next-card__note { font-size:var(--type-caption); margin:1rem 0 0; }
.service-area-note { margin-top:var(--space-1); max-width:76ch; }

@media (min-width:921px) {
  .page-contact .grid--3 { grid-template-columns:repeat(12,minmax(0,1fr)); }
  .page-contact .editorial-card:nth-child(1) { grid-column:span 7; }
  .page-contact .editorial-card:nth-child(2) { grid-column:span 5; margin-top:var(--space-2); }
  .page-contact .editorial-card:nth-child(3) { grid-column:span 5; }
  .page-contact .editorial-card:nth-child(4) { grid-column:span 7; margin-top:var(--space-2); }
}

.wsteps { display:flex; gap:.4rem; list-style:none; padding:0; margin:0 0 var(--space-1); }
.wsteps [data-dot] {
  flex:1; height:5px; border-radius:var(--radius-0); background:var(--edge);
}
.wizard-actions { display:flex; gap:.6rem; }
.wizard-actions__primary { flex:1; }

.review-intro { margin-bottom:var(--space-2); }
.compliance-card {
  padding:var(--space-2); margin-top:var(--space-3); border-radius:var(--radius-0);
  border-left:2px solid var(--accent);
}
.compliance-card h2 { font-size:var(--type-h3); }
.compliance-card__lede { margin-bottom:.8rem; }
.compliance-card__list { font-size:var(--type-small); }

.not-found { padding-block:var(--space-section); }
.not-found__lede { margin-inline:auto; }
.not-found__actions { justify-content:center; }
.not-found__note { margin-top:var(--space-2); }

@media (max-width:920px) {
  .page-sellers .grid--3,
  .page-buyers .grid--4,
  .page-contact .grid--3 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .page-sellers .editorial-card,
  .page-buyers .editorial-card,
  .page-contact .editorial-card { grid-column:auto; margin-top:0; }
}

@media (max-width:640px) {
  .page-sellers .grid--3,
  .page-buyers .grid--4,
  .page-contact .grid--3 { grid-template-columns:1fr; }
  .editorial-card--roomy,
  .contact-card,
  .compliance-card { padding:var(--space-1); }
}

/* ==========================================================================
   Studio correction — photography leads, interface follows
   ========================================================================== */

/* The homepage header belongs to the opening image instead of becoming a white toolbar. */
.page-home .hdr {
  position:absolute; inset:0 0 auto; color:var(--hero-fg); background:var(--hero-header);
  border-bottom:1px solid var(--hero-rule); backdrop-filter:blur(12px); z-index:110;
}
.page-home .hdr[data-stuck] { background:var(--hero-header); border-bottom-color:var(--hero-rule); }
.page-home .hdr__in { min-height:88px; }
.page-home .hdr .brand__mark { background:var(--hero-fg); color:var(--feature-bg); }
.page-home .hdr .brand__txt i,
.page-home .hdr .nav a { color:var(--hero-muted); }
.page-home .hdr .nav a:hover,
.page-home .hdr .nav a[aria-current="page"] { color:var(--hero-fg); background:rgba(255,255,255,.1); }
.page-home .hdr__call { color:var(--hero-fg); border-color:var(--hero-rule); background:transparent; }
.page-home .hdr__cta .btn--solid { color:var(--feature-bg); background:var(--hero-fg); border-color:var(--hero-fg); }
.page-home .hdr .theme-btn,
.page-home .hdr .nav-btn { color:var(--hero-fg); border-color:var(--hero-rule); background:transparent; }
.page-home .burger span { background:var(--hero-fg); }
.page-home .mobnav { color:var(--fg); background:var(--bg); border-color:var(--edge); }
.page-home .mobnav a { color:var(--fg); border-color:var(--edge-2); }
.page-home .mobnav .btn--solid { color:var(--bg); background:var(--fg); border-color:var(--fg); }
.page-home .mobnav .btn--ghost { color:var(--fg); background:transparent; border-color:var(--edge); }

/* A single cinematic image is the thesis. All market UI sits inside its tonal field. */
.page-home .hero {
  min-height:max(48rem,100svh); padding:0; display:flex; align-items:flex-end;
  color:var(--hero-fg); background:var(--feature-bg); isolation:isolate;
}
.page-home .hero::before {
  content:''; position:absolute; inset:0; z-index:-1; background:var(--hero-scrim);
}
.page-home .hero::after { display:none; }
.page-home .hero__media { position:absolute; inset:0; z-index:-2; margin:0; }
.page-home .hero__media :is(.pic,picture,img) { width:100%; height:100%; }
.page-home .hero__media img { object-fit:cover; object-position:center 58%; filter:var(--image-grade); }
.page-home .hero__in {
  width:min(var(--wrap-wide),100%); grid-template-columns:minmax(0,1.45fr) minmax(18rem,.55fr);
  gap:clamp(3rem,8vw,8rem); align-items:end; padding-top:10rem; padding-bottom:clamp(4rem,8vh,7rem);
}
.page-home .hero__lead { max-width:58rem; }
.page-home .hero__kicker { color:var(--hero-muted); border:0; }
.page-home .hero__kicker::after { background:var(--hero-rule); }
.page-home .hero__kicker b { padding:0; color:var(--hero-fg); background:transparent; }
.page-home .hero h1 { max-width:9ch; color:var(--hero-fg); font-size:var(--type-hero); }
.page-home .hero h1 em { color:var(--feature-positive); }
.page-home .hero .lede { max-width:48ch; color:var(--hero-muted); font-size:var(--type-lede); }
.page-home .hero__btns .btn--solid { color:var(--feature-bg); background:var(--hero-fg); border-color:var(--hero-fg); }
.page-home .hero__btns .btn--ghost { color:var(--hero-fg); border-color:var(--hero-rule); background:rgba(0,0,0,.08); }
.page-home .hero__trust { color:var(--hero-muted); border-color:var(--hero-rule); }
.page-home .hero__trust svg { color:var(--feature-positive); }
.page-home .hero__panel {
  align-self:end; display:block; padding:var(--space-1); color:var(--hero-fg); background:var(--hero-panel);
  border:1px solid var(--hero-rule); backdrop-filter:blur(18px); border-radius:var(--radius-0);
}
.page-home .hero__panel-top,
.page-home .hero__towns li + li,
.page-home .hero__panel-foot { border-color:var(--hero-rule); }
.page-home .hero__panel-n,
.page-home .hero__anchor b span,
.page-home .hero__panel-foot,
.page-home .hero__panel-foot .muted { color:var(--hero-muted); }
.page-home .hero__anchor { color:var(--hero-fg); border-color:var(--hero-rule); }
.page-home .hero__anchor-tag,
.page-home .hero__panel-foot .up { color:var(--feature-positive); }
.page-home .hero__towns a,
.page-home .hero__towns b,
.page-home .hero__panel-foot b { color:var(--hero-fg); }

.page-home > body > main > .wrap { position:relative; z-index:4; }
.page-home .qsearch {
  margin-top:-2.75rem; padding:var(--space-1); background:var(--paper);
  border:1px solid var(--edge); box-shadow:var(--shadow-float);
}
.page-home .qsearch h2 { font-family:var(--font-body); font-size:var(--type-label); letter-spacing:var(--tracking-label); text-transform:uppercase; }

/* One editorial lead followed by a true inventory rail. Separating the two grids prevents
   the feature's footprint from leaving accidental holes among the working listing cards. */
@media (min-width:700px) {
  .page-home .home-listings__secondary { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .page-home .home-listings__secondary .lst {
    grid-column:span 2; min-height:var(--home-listing-secondary-min);
  }
  .page-home .home-listings__secondary .lst:last-child:nth-child(odd) { grid-column:2 / span 2; }
  .page-home .home-listings .lst__foot { margin-top:auto; }
}

@media (min-width:921px) {
  .page-home .home-listings__feature .lst {
    display:grid; grid-template-columns:minmax(0,1.55fr) minmax(18rem,.65fr);
    min-height:var(--home-listing-feature-min);
  }
  .page-home .home-listings__feature .lst__media {
    height:100%; min-height:var(--home-listing-feature-min); aspect-ratio:auto;
    border-right:var(--home-rule); border-bottom:0;
  }
  .page-home .home-listings__secondary { grid-template-columns:repeat(6,minmax(0,1fr)); }
  .page-home .home-listings__secondary .lst { grid-column:span 2; }
  .page-home .home-listings__secondary .lst:nth-child(4) { grid-column:2 / span 2; }
  .page-home .home-listings__secondary .lst:nth-child(5):last-child { grid-column:4 / span 2; }
}

@media (min-width:1200px) {
  .page-home .home-listings__secondary { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .page-home .home-listings__secondary .lst,
  .page-home .home-listings__secondary .lst:nth-child(4),
  .page-home .home-listings__secondary .lst:nth-child(5),
  .page-home .home-listings__secondary .lst:last-child:nth-child(odd) { grid-column:auto; }
}

/* Sun City becomes an image chapter, not a colored panel with a table beside it. */
.page-home .home-suncity {
  position:relative; min-height:52rem; display:flex; align-items:center; overflow:hidden;
  color:var(--hero-fg); background:var(--feature-bg); isolation:isolate;
}
.page-home .home-suncity::after {
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(90deg,rgba(9,7,8,.91),rgba(9,7,8,.72) 52%,rgba(9,7,8,.28));
}
.page-home .home-suncity__photo { position:absolute; inset:0; z-index:-2; margin:0; }
.page-home .home-suncity__photo :is(.pic,picture,img) { width:100%; height:100%; }
.page-home .home-suncity__photo img { object-fit:cover; filter:var(--image-grade); }
.page-home .home-suncity .split { grid-template-columns:minmax(0,1.15fr) minmax(19rem,.65fr); align-items:end; }
.page-home .home-suncity :is(h2,a:not(.btn)) { color:var(--hero-fg); }
.page-home .home-suncity :is(p,.lede,.muted) { color:var(--hero-muted); }
.page-home .home-suncity .eyebrow,
.page-home .home-suncity .comm__kind { color:var(--feature-positive); }
.page-home .home-suncity .home-suncity__table { background:var(--hero-panel); backdrop-filter:blur(16px); }

/* The Sun City guide now opens like a property film: image edge-to-edge, facts after. */
.page-suncity .chero {
  position:relative; min-height:max(48rem,100svh); color:var(--hero-fg);
  background:var(--feature-bg); isolation:isolate; overflow:hidden;
}
.page-suncity .chero::after { content:''; position:absolute; inset:0; z-index:-1; background:var(--hero-scrim); }
.page-suncity .chero > .wrap { width:min(var(--wrap-wide),100%); min-height:max(48rem,100svh); display:flex; flex-direction:column; }
.page-suncity .chero .crumbs { position:relative; z-index:2; color:var(--hero-muted); }
.page-suncity .chero .crumbs a { color:var(--hero-fg); }
.page-suncity .chero__in { flex:1; display:flex; align-items:flex-end; min-height:0; padding:6rem 0; }
.page-suncity .chero__in > div:first-child { position:relative; z-index:2; max-width:53rem; }
.page-suncity .chero__art { position:absolute; inset:0; z-index:-2; width:auto; margin:0; border:0; }
.page-suncity .chero__art :is(.pic,picture,img) { width:100%; height:100%; }
.page-suncity .chero__art img { object-fit:cover; object-position:center; filter:var(--image-grade); }
.page-suncity .chero .eyebrow { color:var(--feature-positive); }
.page-suncity .chero h1 { max-width:8ch; color:var(--hero-fg); font-size:clamp(5rem,10vw,9rem); }
.page-suncity .chero h1 em { color:var(--feature-positive); }
.page-suncity .chero__sub,
.page-suncity .chero__meta li { color:var(--hero-muted); }
.page-suncity .chero__meta { border-color:var(--hero-rule); }
.page-suncity .chero__btns .btn--solid { color:var(--feature-bg); background:var(--hero-fg); border-color:var(--hero-fg); }
.page-suncity .chero__btns .btn--ghost { color:var(--hero-fg); background:rgba(0,0,0,.08); border-color:var(--hero-rule); }
.page-suncity .qf { position:relative; z-index:3; border-bottom:1px solid var(--edge); }

@media (max-width:920px) {
  .page-home .hero__in { grid-template-columns:1fr; gap:var(--space-2); }
  .page-home .hero__lead { max-width:48rem; }
  .page-home .hero__panel { max-width:38rem; }
  .page-home .home-suncity .split { grid-template-columns:1fr; }
  .page-suncity .chero__in { display:flex; padding:5rem 0; }
  .page-suncity .chero__art { position:absolute; inset:0; width:auto; aspect-ratio:auto; border:0; }
}

@media (max-width:640px) {
  .page-home .hdr__in { min-height:72px; }
  .page-home .hero { min-height:0; }
  .page-home .hero__in { padding-top:8.5rem; padding-bottom:5rem; }
  .page-home .hero h1 { max-width:8ch; font-size:clamp(3.9rem,18vw,5.4rem); }
  .page-home .hero__trust { display:grid; grid-template-columns:1fr; }
  .page-home .qsearch { margin-top:0; padding:var(--space-1) 0; border-inline:0; box-shadow:none; }
  .page-home .home-suncity { min-height:0; }
  .page-home .home-suncity::after { background:rgba(9,7,8,.82); }
  .page-suncity .chero { min-height:42rem; }
  .page-suncity .chero > .wrap { min-height:42rem; }
  .page-suncity .chero__in { padding:4rem 0; }
  .page-suncity .chero h1 { max-width:8ch; font-size:clamp(4rem,19vw,5.7rem); }
  .page-suncity .chero__meta { display:grid; grid-template-columns:1fr 1fr; }
}

/* ==========================================================================
   Mobile-first composition pass
   Wide screens add columns; they do not continue enlarging the mobile type.
   ========================================================================== */

/* The secondary dock action is phone-only. Keep one quiet action on desktops. */
.dock__call { display:none; }

/* Interior pages share one restrained, recognizable opening chapter. */
.phead {
  padding-block:clamp(3.25rem,8vw,6.5rem) clamp(3rem,7vw,5.75rem);
  color:var(--feature-fg); background:var(--feature-bg); border-color:var(--feature-rule);
}
.phead .wrap { width:min(68rem,100%); margin-inline:auto; }
.phead .crumbs,
.phead .crumbs a,
.phead .lede,
.phead p:not(.eyebrow) { color:var(--feature-muted); }
.phead .eyebrow { color:var(--feature-positive); }
.phead h1 { max-width:17ch; margin-bottom:var(--space-1); color:var(--feature-fg); font-size:clamp(2.7rem,5vw,4.8rem); }
.phead .lede { max-width:58ch; font-size:var(--type-lede); }

/* Home hero: content height determines the mobile canvas. */
.page-home .hero { min-height:0; display:block; }
.page-home .hero__in {
  grid-template-columns:1fr; align-items:start; gap:var(--space-2);
  padding-top:7.5rem; padding-bottom:4rem;
}
.page-home .hero__lead { max-width:46rem; }
.page-home .hero__kicker { width:100%; gap:.75rem; font-size:.68rem; }
.page-home .hero h1 {
  max-width:10ch; margin-bottom:var(--space-1);
  font-size:clamp(3.2rem,14vw,4.35rem); line-height:.91;
}
.page-home .hero .lede { max-width:40ch; font-size:1rem; }
.page-home .hero__btns { margin-top:var(--space-1); }
.page-home .hero__btns .btn { width:100%; }
.page-home .hero__trust {
  display:grid; grid-template-columns:1fr; gap:.55rem;
  margin-top:var(--space-2); padding-top:var(--space-1);
}
.page-home .hero__panel {
  width:100%; max-width:38rem; align-self:start;
  padding:var(--space-1); border:1px solid var(--hero-rule);
}
.page-home .qsearch { margin-top:0; box-shadow:none; }

/* The two services are one decision surface, separated by a single datum line. */
.page-home .home-services .grid {
  display:grid; grid-template-columns:1fr; gap:0;
  border-block:var(--home-rule);
}
.page-home .home-service,
.page-home .home-service:nth-child(2) {
  margin:0; padding:var(--space-2) 0;
  border:0; background:transparent;
}
.page-home .home-service + .home-service { border-top:var(--home-rule); }
.page-home .home-service h3 { max-width:16ch; font-size:clamp(1.9rem,6vw,2.6rem); }
.page-home .home-service__list { margin:var(--space-1) 0 var(--space-2); }

/* One leading client story, with two concise corroborating stories. */
.page-home .home-reviews {
  color:var(--feature-fg); background:var(--feature-bg); border-color:var(--feature-rule);
}
.page-home .home-reviews .shead .eyebrow { color:var(--feature-positive); }
.page-home .home-reviews .shead .eyebrow::after { background:var(--feature-rule); }
.page-home .home-reviews .shead h2 { color:var(--feature-fg); }
.page-home .home-reviews .quotes { display:grid; grid-template-columns:1fr; gap:0; border-block:1px solid var(--feature-rule); }
.page-home .home-reviews .quote,
.page-home .home-reviews .quote:nth-child(2),
.page-home .home-reviews .quote:nth-child(3) {
  grid-column:1; grid-row:auto; margin:0; min-width:0;
  padding:var(--space-2) 0; color:var(--feature-fg); background:transparent; border:0;
}
.page-home .home-reviews .quote + .quote { border-top:1px solid var(--feature-rule); }
.page-home .home-reviews .quote__mark { color:var(--feature-positive); opacity:1; }
.page-home .home-reviews .quote p { max-width:42ch; color:var(--feature-fg); font-size:1.08rem; line-height:1.55; }
.page-home .home-reviews .quote footer { color:var(--feature-muted); border-color:var(--feature-rule); }
.page-home .home-reviews .quote footer b { color:var(--feature-fg); }
.page-home .home-reviews__cta { margin-top:var(--space-2); }
.page-home .home-reviews .btn--ghost { color:var(--feature-fg); border-color:var(--feature-rule); }

/* The footer owns the full viewport, while its information stays centered and readable. */
.foot {
  padding-block:clamp(3.5rem,7vw,6rem) 6.5rem;
  color:var(--footer-fg); background:var(--footer-bg); border-color:var(--footer-rule);
}
.foot > .wrap { width:min(var(--wrap-footer),100%); }
.foot__top { grid-template-columns:1fr; gap:var(--space-3); text-align:center; border-color:var(--footer-rule); }
.foot__brand { display:flex; flex-direction:column; align-items:center; }
.brand--foot { justify-content:center; }
.brand--foot .brand__mark { color:var(--footer-bg); background:var(--footer-fg); }
.brand--foot .brand__txt i { color:var(--footer-muted); }
.foot__blurb { margin-inline:auto; color:var(--footer-muted); }
.foot__contact a { color:var(--footer-fg); }
.social { justify-content:center; }
.social a { color:var(--footer-muted); border-color:var(--footer-rule); }
.fnav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-2) var(--space-1); }
.fnav h3 { color:var(--footer-muted); }
.fnav a { color:var(--footer-muted); }
.fnav a:hover { color:var(--footer-fg); }
.foot__legal { color:var(--footer-muted); text-align:center; }
.legal__logos { display:flex; flex-direction:column; align-items:center; gap:var(--space-1); }
.legal__logos p,
.legal__brokerage,
.legal__idx { max-width:104ch; margin-inline:auto; }
.legal__row { justify-content:center; border-color:var(--footer-rule); }

/* The same controlled rhythm carries through working pages and shared modules. */
.page-sellers .split,
.page-buyers .split,
.page-about .split,
.page-contact .split { gap:clamp(2.5rem,6vw,6rem); align-items:start; }
.editorial-card,
.lead,
.contact-card,
.credentials,
.figcard { box-shadow:none; }

@media (min-width:641px) {
  .page-home .hero__btns .btn { width:auto; }
  .page-home .hero__trust { display:flex; }
  .fnav { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (min-width:781px) {
  .dock__call { display:none; }
  .foot__top { grid-template-columns:minmax(18rem,.8fr) minmax(0,1.7fr); align-items:start; }
  .fnav { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width:780px) {
  .dock__call { display:inline-flex; }
}

@media (min-width:921px) {
  .page-home .hero { min-height:clamp(46rem,86svh,54rem); display:flex; align-items:center; }
  .page-home .hero__in {
    grid-template-columns:minmax(0,1.35fr) minmax(20rem,.65fr);
    align-items:center; gap:clamp(3rem,6vw,6rem);
    padding-top:9rem; padding-bottom:5rem;
  }
  .page-home .hero__lead { max-width:50rem; }
  .page-home .hero h1 { max-width:11.5ch; font-size:clamp(4.5rem,5.2vw,6.2rem); }
  .page-home .hero .lede { max-width:46ch; font-size:var(--type-lede); }
  .page-home .hero__panel { align-self:center; }
  .page-home .qsearch { margin-top:-2.5rem; box-shadow:var(--shadow-float); }

  .page-home .home-services .grid { grid-template-columns:1fr 1fr; }
  .page-home .home-service,
  .page-home .home-service:nth-child(2) { padding:var(--space-3) clamp(2.5rem,5vw,5rem) var(--space-3) 0; }
  .page-home .home-service + .home-service {
    padding-right:0; padding-left:clamp(2.5rem,5vw,5rem);
    border-top:0; border-left:var(--home-rule);
  }

  .page-home .home-reviews .quotes { grid-template-columns:minmax(0,7fr) minmax(20rem,5fr); grid-template-rows:1fr 1fr; }
  .page-home .home-reviews .quote,
  .page-home .home-reviews .quote:nth-child(2),
  .page-home .home-reviews .quote:nth-child(3) { padding:var(--space-2); }
  .page-home .home-reviews .quote:first-child {
    grid-column:1; grid-row:1 / 3; padding:var(--space-3) clamp(3rem,6vw,6rem) var(--space-3) 0;
  }
  .page-home .home-reviews .quote:first-child p {
    max-width:32ch; font-family:var(--font-display); font-size:clamp(1.7rem,2.5vw,2.45rem);
    line-height:1.28; letter-spacing:-.025em;
  }
  .page-home .home-reviews .quote:nth-child(2),
  .page-home .home-reviews .quote:nth-child(3) { grid-column:2; border-left:1px solid var(--feature-rule); }
  .page-home .home-reviews .quote:nth-child(2) { grid-row:1; border-top:0; }
  .page-home .home-reviews .quote:nth-child(3) { grid-row:2; }
}

@media (min-width:1600px) {
  .page-home .hero__in { width:min(var(--wrap-footer),100%); }
  .page-home .hero h1 { font-size:6.2rem; }
}

/* ==========================================================================
   Sun City page correction pass
   Equal plan cards and an editorial lifestyle guide replace visual hierarchy
   that depended on oversized type, one arbitrary featured card and raw lists.
   ========================================================================== */

/* The image remains cinematic, but the page should reveal inventory on an ordinary
   laptop without requiring a full viewport of scrolling. */
.page-suncity .chero,
.page-suncity .chero > .wrap { min-height:var(--sun-hero-height); }
.page-suncity .chero__in {
  padding-block:clamp(3rem,7vh,4.75rem); align-items:flex-end;
}
.page-suncity .chero__in > div:first-child { max-width:44rem; }
.page-suncity .chero h1 {
  max-width:9ch; font-size:var(--sun-hero-type); line-height:.91;
}
.page-suncity .chero__sub { max-width:42ch; font-size:1rem; }
.page-suncity .chero__meta { margin-bottom:var(--space-1); }
.page-suncity .chero__btns .btn { min-height:52px; }

/* Current inventory is an index, not a collection of differently sized badges. */
.page-suncity .plansale { padding:0; border:1px solid var(--feature-rule); }
.page-suncity .plansale__head {
  display:flex; align-items:baseline; justify-content:space-between; gap:var(--space-1);
  padding:var(--space-1); border-bottom:1px solid var(--feature-rule);
}
.page-suncity .plansale__lead { margin:0; color:var(--feature-positive); }
.page-suncity .plansale__count {
  margin:0; color:var(--feature-muted); font:500 var(--type-caption)/1.4 var(--font-data);
  letter-spacing:.08em; text-transform:uppercase;
}
.page-suncity .plansale__count strong { color:var(--feature-fg); font-size:1rem; }
.page-suncity .plansale__row {
  display:grid; grid-template-columns:1fr; gap:1px; margin:0;
  border:0; background:var(--feature-rule);
}
.page-suncity .plansale__row li { min-width:0; background:var(--feature-bg); }
.page-suncity .plansale__row a {
  min-height:5.35rem; height:100%; padding:1rem; border:0;
  border-left:2px solid var(--feature-positive);
}
.page-suncity .plansale__row b { color:var(--feature-fg); font-size:1.05rem; }
.page-suncity .plansale__hint {
  max-width:none; margin:0; padding:var(--space-1); border-top:1px solid var(--feature-rule);
}

/* Every plan now has the same visual weight. Availability changes the status treatment,
   not the footprint. The action rail occupies the same rows on every card. */
.page-suncity .mdls { align-items:stretch; }
.page-suncity .mdl,
.page-suncity .mdl--featured {
  grid-column:auto; display:grid; grid-template-columns:1fr; grid-template-rows:auto 1fr;
  min-height:100%; border-left-width:1px;
}
.page-suncity .mdl--live { border-left-width:2px; }
.page-suncity .mdl__sheet,
.page-suncity .mdl--featured .mdl__sheet {
  display:flex; align-items:center; aspect-ratio:var(--sun-plan-sheet-ratio);
  padding:1rem; border-right:0; border-bottom:1px solid var(--edge);
}
.page-suncity .mdl__sheet > svg { width:100%; height:auto; max-height:100%; }
.page-suncity .mdl__body,
.page-suncity .mdl--featured .mdl__body { padding:1.2rem; }
.page-suncity .mdl--featured .mdl__name,
.page-suncity .mdl__name { font-size:var(--type-h3); font-weight:500; }
.page-suncity .mdl__specs { min-height:5.45rem; }
.page-suncity .mdl__note { min-height:3.2rem; }
.page-suncity .mdl__acts {
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.5rem; margin-top:auto;
}
.page-suncity .mdl__acts .btn {
  width:100%; min-height:var(--sun-plan-action-height); padding-inline:.85rem;
  white-space:nowrap;
}
.page-suncity .mdl__foot {
  display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center;
  gap:.55rem; margin-top:.75rem; padding-top:.75rem; border-top:1px solid var(--edge-2);
}
.page-suncity .mdl__foot .mdl__dl,
.page-suncity .mdl__foot .fav,
.page-suncity .mdl__foot .mdl__cmp { margin:0; }
.page-suncity .mdl__foot .mdl__cmp {
  grid-column:1 / -1; width:100%; justify-content:center; margin-left:0;
}

/* Lifestyle is framed as four ways to use the community. The complete club roster is
   still available, but it no longer overwhelms the reason someone would care. */
.page-suncity .sc-lifestyle {
  color:var(--feature-fg); background:var(--feature-bg); border-color:var(--feature-rule);
}
.page-suncity .lifestyle-intro {
  max-width:55rem; margin-bottom:var(--space-3);
}
.page-suncity .lifestyle-intro .eyebrow { color:var(--feature-positive); }
.page-suncity .lifestyle-intro h2 {
  max-width:11ch; color:var(--feature-fg); font-size:clamp(2.7rem,10vw,4.6rem);
}
.page-suncity .lifestyle-intro > p:last-child {
  max-width:52ch; margin:0; color:var(--feature-muted); font-size:var(--type-lede);
}
.page-suncity .lifestyle-paths { border-block:1px solid var(--feature-rule); }
.page-suncity .lifestyle-path {
  display:grid; grid-template-columns:1fr; gap:.5rem; padding:var(--space-2) 0;
}
.page-suncity .lifestyle-path + .lifestyle-path { border-top:1px solid var(--feature-rule); }
.page-suncity .lifestyle-path :is(p,h3) { margin:0; }
.page-suncity .lifestyle-path__label {
  color:var(--feature-positive); font:600 var(--type-label)/1.3 var(--font-data);
  letter-spacing:var(--tracking-label); text-transform:uppercase;
}
.page-suncity .lifestyle-path h3 {
  max-width:20ch; color:var(--feature-fg); font-size:clamp(1.55rem,5vw,2rem); line-height:1.05;
}
.page-suncity .lifestyle-path > p:last-child { max-width:50ch; color:var(--feature-muted); }
.page-suncity .lifestyle-cadence {
  display:grid; grid-template-columns:1fr; margin-block:var(--space-3);
  border:1px solid var(--feature-rule);
}
.page-suncity .lifestyle-cadence > div { padding:var(--space-1); }
.page-suncity .lifestyle-cadence > div + div { border-top:1px solid var(--feature-rule); }
.page-suncity .lifestyle-cadence p {
  margin:0 0 .7rem; color:var(--feature-positive); font:600 var(--type-caption)/1.3 var(--font-data);
  letter-spacing:.12em; text-transform:uppercase;
}
.page-suncity .lifestyle-cadence h3 { margin:0 0 .45rem; color:var(--feature-fg); font-size:1.35rem; }
.page-suncity .lifestyle-cadence span { color:var(--feature-muted); font-size:var(--type-small); line-height:1.55; }
.page-suncity .club-directory { border-block:1px solid var(--feature-rule); }
.page-suncity .club-directory summary {
  display:flex; align-items:center; justify-content:space-between; gap:var(--space-1);
  min-height:4.75rem; padding-block:var(--space-1); cursor:pointer; list-style:none;
}
.page-suncity .club-directory summary::-webkit-details-marker { display:none; }
.page-suncity .club-directory summary::after { content:'+'; color:var(--feature-positive); font:400 1.8rem/1 var(--font-body); }
.page-suncity .club-directory[open] summary::after { content:'−'; }
.page-suncity .club-directory summary span { font-family:var(--font-display); font-size:1.35rem; }
.page-suncity .club-directory summary small { margin-left:auto; color:var(--feature-muted); }
.page-suncity .club-directory__grid {
  grid-template-columns:1fr; gap:var(--space-2); padding:var(--space-2) 0 var(--space-3);
}
.page-suncity .club-directory__grid > :nth-child(n) { grid-column:auto; }
.page-suncity .club-directory__grid > div { border-color:var(--feature-rule); }
.page-suncity .club-directory__grid h3 { color:var(--feature-muted); }
.page-suncity .club-directory__grid h3 b { color:var(--feature-positive); }
.page-suncity .club-directory__grid li { color:var(--feature-muted); }
.page-suncity .lifestyle-source {
  max-width:75ch; margin:var(--space-2) 0 0; color:var(--feature-muted); font-size:var(--type-caption);
}
.page-suncity .lifestyle-source a { color:var(--feature-fg); text-underline-offset:3px; }

@media (min-width:641px) {
  .page-suncity .plansale__row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .page-suncity .lifestyle-cadence { grid-template-columns:1fr 1fr; }
  .page-suncity .lifestyle-cadence > div + div { border-top:0; border-left:1px solid var(--feature-rule); }
  .page-suncity .lifestyle-cadence > div:nth-child(3) { border-left:0; border-top:1px solid var(--feature-rule); }
  .page-suncity .lifestyle-cadence > div:nth-child(4) { border-top:1px solid var(--feature-rule); }
  .page-suncity .club-directory__grid { grid-template-columns:1fr 1fr; }
}

@media (min-width:921px) {
  :root { --sun-hero-height:clamp(43rem,82svh,51rem); --sun-hero-type:clamp(4.35rem,5.5vw,5.9rem); }
  .page-suncity .plansale__row { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .page-suncity .lifestyle-intro {
    display:grid; grid-template-columns:minmax(0,5fr) minmax(20rem,4fr); column-gap:var(--sun-column-gap);
    align-items:end; max-width:none;
  }
  .page-suncity .lifestyle-intro .eyebrow { grid-column:1 / -1; }
  .page-suncity .lifestyle-intro h2 { margin:0; }
  .page-suncity .lifestyle-path {
    grid-template-columns:minmax(7rem,1fr) minmax(18rem,3fr) minmax(20rem,4fr);
    align-items:start; gap:var(--space-2);
  }
  .page-suncity .lifestyle-cadence { grid-template-columns:repeat(4,1fr); }
  .page-suncity .lifestyle-cadence > div:nth-child(n) { border-top:0; }
  .page-suncity .lifestyle-cadence > div + div { border-left:1px solid var(--feature-rule); }
  .page-suncity .club-directory__grid { grid-template-columns:repeat(4,1fr); }
}

@media (max-width:640px) {
  .page-suncity .chero,
  .page-suncity .chero > .wrap { min-height:var(--sun-hero-height); }
  .page-suncity .chero__in { padding-block:2.75rem; }
  .page-suncity .chero h1 { font-size:var(--sun-hero-type); }
  .page-suncity .chero__meta { grid-template-columns:1fr 1fr; }
  .page-suncity .plansale__head { align-items:flex-start; flex-direction:column; }
  .page-suncity .mdl__acts { grid-template-columns:1fr 1fr; }
  .page-suncity .club-directory summary small { display:none; }
}
