/* ============ DREEYM DESIGN SYSTEM v3 ============
   Bone ground · Yew green · Kiln terracotta · Brass details
   Serif = feeling · Sans = interface · Mono = numbers  */
:root{
  --bone:#F5F0E6; --parchment:#EDE5D3; --card:#FAF6EC;
  --yew:#22382C; --yew-deep:#1B2D23; --kiln:#C2542F; --kiln-deep:#A84526;
  --brass:#A9814A; --peat:#1D1B16; --chalk:#FAF7EF;
  --ink-70:rgba(29,27,22,.72); --ink-55:rgba(29,27,22,.55);
  --line:rgba(34,56,44,.16); --line-soft:rgba(34,56,44,.09);
  --ok:#5d7d47;
  --serif:'Fraunces',Georgia,serif; --sans:'Instrument Sans',-apple-system,Helvetica,Arial,sans-serif;
  --mono:'IBM Plex Mono','SFMono-Regular',monospace;
  --ease:cubic-bezier(.22,.61,.21,1); --rad:6px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-size:var(--t-small);line-height:1.66;color:var(--peat);background:var(--bone);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.2 0 0 0 0 0.18 0 0 0 0 0.12 0 0 0 0.5 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}
::selection{background:var(--kiln);color:var(--chalk)}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4,.serif{font-family:var(--serif);font-weight:380;letter-spacing:-.01em}
.container{max-width:1240px;margin:0 auto;padding-inline:clamp(20px,4.5vw,52px)}
.section{padding-block:clamp(4.5rem,9vw,7.5rem)}
.section.tight{padding-block:clamp(3rem,6vw,4.5rem)}
.alt{background:var(--parchment);border-block:1px solid var(--line-soft)}
.eyebrow{font-family:var(--mono);font-size:var(--t-label);font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--kiln);display:flex;align-items:center;gap:.9rem}
.eyebrow::after{content:"";height:1px;width:56px;background:var(--brass);opacity:.55}
.eyebrow.center{justify-content:center}
.eyebrow.center::before{content:"";height:1px;width:56px;background:var(--brass);opacity:.55}
.h2{font-size:var(--t-hero);line-height:1.08;margin:1.1rem 0 1.3rem;color:var(--yew)}
.h3{font-size:var(--t-1);line-height:1.15;color:var(--yew);font-weight:420}
.lede{font-size:var(--t-body);color:var(--ink-70);max-width:44rem}
.mono{font-family:var(--mono)}
.btn{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--sans);font-weight:600;font-size:var(--t-small);background:var(--kiln);color:var(--chalk);text-decoration:none;padding:.95rem 1.75rem;border-radius:999px;border:1px solid var(--kiln);transition:background .35s var(--ease),transform .35s var(--ease),box-shadow .35s var(--ease);cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--kiln-deep);transform:translateY(-2px);box-shadow:0 10px 28px -14px rgba(194,84,47,.65)}
.btn .arr{transition:transform .35s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn.ghost{background:transparent;color:var(--chalk);border-color:rgba(250,247,239,.55)}
.btn.ghost:hover{background:rgba(250,247,239,.12);box-shadow:none}
.btn.ghost.dark{color:var(--yew);border-color:var(--line)}
.btn.ghost.dark:hover{background:rgba(34,56,44,.06)}
.btn.sm{padding:.6rem 1.2rem;font-size:var(--t-label)}
.textlink{font-weight:600;text-decoration:none;color:var(--kiln);border-bottom:1px solid rgba(194,84,47,.35);padding-bottom:2px;transition:border-color .3s}
.textlink:hover{border-color:var(--kiln)}
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--kiln);outline-offset:3px;border-radius:4px}
.badge{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--mono);font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;color:var(--yew);border:1px solid var(--line);border-radius:999px;padding:.34rem .8rem;background:rgba(250,246,236,.92)}
.badge .dot{width:7px;height:7px;border-radius:50%;background:var(--ok)}
.badge.amber .dot{background:var(--kiln)}
.badge.soon .dot{background:transparent;border:1.5px solid var(--brass)}
.badge.grey{color:var(--ink-55)}
.badge.grey .dot{background:rgba(29,27,22,.3)}
.chiprow{display:flex;gap:.6rem;flex-wrap:wrap}
.chip-tag{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.12em;text-transform:uppercase;border:1px solid rgba(250,247,239,.4);color:var(--chalk);border-radius:999px;padding:.35rem .85rem;background:rgba(20,26,20,.25);backdrop-filter:blur(4px)}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}
.horizon{display:flex;justify-content:center;padding-block:.5rem}
.horizon svg{width:min(340px,60vw);height:auto;color:var(--brass)}
.sec-head{display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:end;margin-bottom:clamp(2.2rem,4.5vw,3.4rem)}
.sec-head .lede{justify-self:end;padding-bottom:.5rem}
@media(max-width:860px){.sec-head{grid-template-columns:1fr}.sec-head .lede{justify-self:start}}

/* ---------- nav ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:100;transition:background .45s var(--ease),box-shadow .45s var(--ease);color:var(--chalk)}
.nav.solid,.nav.scrolled{background:rgba(245,240,230,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:var(--peat);box-shadow:0 1px 0 var(--line-soft)}
.nav .container{display:flex;align-items:center;gap:1.1rem;padding-block:1rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;margin-right:auto}
.brand svg{width:30px;height:30px}
.brand .word{font-family:var(--serif);font-weight:430;font-size:var(--t-2);letter-spacing:-.015em;line-height:1}
.nav-links{display:flex;align-items:center;gap:1.15rem;font-size:var(--t-label);font-weight:500}
.nav-links a{text-decoration:none;opacity:.85;transition:opacity .3s;white-space:nowrap;padding-bottom:2px;border-bottom:1px solid transparent}
.nav-links a:hover{opacity:1}
.nav-links a.active{opacity:1;border-bottom-color:var(--kiln)}
.nav-phone{font-family:var(--mono);font-size:var(--t-label);text-decoration:none;opacity:.9;white-space:nowrap}
.nav .btn{padding:.62rem 1.3rem;font-size:var(--t-label)}
.burger{display:none;background:none;border:none;color:inherit;cursor:pointer;padding:.4rem}
.burger svg{width:26px;height:26px;display:block}
.mobile-menu{position:fixed;inset:0;z-index:99;background:var(--yew);color:var(--chalk);display:flex;flex-direction:column;justify-content:center;padding:clamp(24px,7vw,64px);opacity:0;pointer-events:none;transition:opacity .45s var(--ease)}
.mobile-menu.open{opacity:1;pointer-events:auto}
.mobile-menu a{font-family:var(--serif);font-size:var(--t-1);text-decoration:none;padding:.42rem 0;border-bottom:1px solid rgba(250,247,239,.12)}
.mobile-menu .mm-cta{margin-top:1.8rem;display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.mobile-menu .mm-cta .mono{font-size:var(--t-label);opacity:.75}
@media(max-width:840px){.nav-links{display:none}.burger{display:block}}
@media(max-width:1290px){.nav-links{gap:.95rem}.nav-links a{font-size:var(--t-small)}}
@media(max-width:1120px){.nav-phone{display:none}.nav-links{gap:.8rem}}
@media(max-width:1240px){.nav-phone{display:none}}
@media(max-width:640px){.nav .btn{display:none}}
section[id],main[id]{scroll-margin-top:86px}

/* ---------- heroes ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:var(--chalk);isolation:isolate}
.hero.short{min-height:72svh}
.hero.inner{min-height:56svh}
.hero-img{position:absolute;inset:0;overflow:hidden;z-index:-2}
.hero-img img{width:100%;height:100%;object-fit:cover;animation:kenburns 22s var(--ease) infinite alternate;filter:saturate(.92) sepia(.06)}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.09)}}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(22,30,24,.42) 0%,rgba(22,30,24,.14) 42%,rgba(24,22,17,.62) 100%)}
.hero .container{padding-bottom:clamp(2.8rem,6vw,4.5rem);padding-top:clamp(5.5rem,9vh,7rem);width:100%}
.hero-eyebrow{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.26em;text-transform:uppercase;color:rgba(250,247,239,.92);display:flex;align-items:center;gap:1rem;margin-bottom:1.4rem}
.hero-eyebrow::before{content:"";width:44px;height:1px;background:rgba(250,247,239,.6)}
.hero h1{font-size:var(--t-hero);line-height:1.02;font-weight:340;letter-spacing:-.022em;max-width:12em;text-wrap:balance}
.hero.inner h1{font-size:var(--t-hero)}
.hero-sub{margin-top:1.5rem;font-size:var(--t-body);line-height:1.6;max-width:38rem;color:rgba(250,247,239,.88)}
.hero-ctas{display:flex;gap:1rem;margin-top:2rem;flex-wrap:wrap}
.hero .chiprow{margin-top:1.6rem}
.crumb{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;color:rgba(250,247,239,.75);margin-bottom:1rem}
.crumb a{text-decoration:none}
.crumb a:hover{color:var(--chalk)}

/* ---------- cards: communities ---------- */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.4rem,3vw,2.4rem)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.3rem,2.5vw,2rem)}
@media(max-width:900px){.grid-2,.grid-3{grid-template-columns:1fr}}
.park{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--rad);overflow:hidden;display:flex;flex-direction:column;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.park:hover{transform:translateY(-5px);box-shadow:0 24px 48px -30px rgba(34,56,44,.4)}
.park .ph{aspect-ratio:16/10;overflow:hidden;position:relative}
.park .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);filter:saturate(.9) sepia(.08)}
.park:hover .ph img{transform:scale(1.05)}
.park .ph .badge{position:absolute;top:1rem;left:1rem;z-index:2}
.park-body{padding:1.6rem 1.7rem 1.8rem;display:flex;flex-direction:column;gap:.6rem;flex:1}
.park-top{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.park h3{font-size:var(--t-2);color:var(--yew);font-weight:420}
.park .meta{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;color:var(--brass)}
.park p{color:var(--ink-70);font-size:var(--t-small)}
.park-foot{margin-top:auto;padding-top:1rem;border-top:1px solid var(--line-soft);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.park .price{font-family:var(--mono);font-size:var(--t-label);color:var(--yew);font-weight:500}
.park .covenant{font-size:var(--t-label);color:var(--ink-55)}
.park .covenant b{color:var(--ok);font-weight:600}
.parks-more{margin-top:clamp(1.4rem,3vw,2.2rem);border:1px dashed rgba(169,129,74,.5);border-radius:var(--rad);padding:1.5rem 2rem;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;flex-wrap:wrap;background:rgba(250,246,236,.5)}
.parks-more .serif{font-size:var(--t-body);color:var(--yew)}

/* ---------- filters toolbar ---------- */
.toolbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:1.1rem 1.4rem;background:var(--card);border:1px solid var(--line-soft);border-radius:var(--rad);margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.toolbar .count{font-family:var(--mono);font-size:var(--t-label);color:var(--ink-70);margin-right:auto}
.toolbar label{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;color:var(--brass);display:block;margin-bottom:.3rem}
.toolbar select{padding:.55rem .8rem;font-family:var(--sans);font-size:var(--t-label);color:var(--peat);background:var(--bone);border:1px solid var(--line);border-radius:4px}
.filter-chips{display:flex;gap:.6rem;flex-wrap:wrap}
.fchip{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--line);background:transparent;color:var(--ink-70);border-radius:999px;padding:.45rem 1rem;cursor:pointer;transition:all .3s}
.fchip:hover{border-color:var(--brass)}
.fchip.on{background:var(--yew);color:var(--chalk);border-color:var(--yew)}

/* ---------- listing cards ---------- */
.listing{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--rad);overflow:hidden;display:flex;flex-direction:column;transition:transform .5s var(--ease),box-shadow .5s var(--ease);text-decoration:none}
.listing:hover{transform:translateY(-5px);box-shadow:0 24px 48px -30px rgba(34,56,44,.4)}
.listing .ph{aspect-ratio:4/2.9;overflow:hidden;position:relative}
.listing .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease);filter:saturate(.9) sepia(.08)}
.listing:hover .ph img{transform:scale(1.05)}
.listing .ph .badge{position:absolute;top:.9rem;left:.9rem;z-index:2}
.listing-body{padding:1.3rem 1.45rem 1.5rem;display:flex;flex-direction:column;gap:.45rem;flex:1}
.listing .plot{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;color:var(--brass)}
.listing h3{font-size:var(--t-3);color:var(--yew);font-weight:430}
.listing .where{font-size:var(--t-label);color:var(--ink-55)}
.listing .gp{font-family:var(--mono);font-size:var(--t-small);font-weight:500;color:var(--yew);margin-top:.3rem}
.listing .gp span{font-size:var(--t-label);color:var(--ink-55);font-weight:400}
.listing .specs{display:flex;gap:1rem;font-family:var(--mono);font-size:var(--t-label);color:var(--ink-70);flex-wrap:wrap}
.listing p.teaser{font-size:var(--t-label);color:var(--ink-70)}
.listing-foot{margin-top:auto;padding-top:.9rem;border-top:1px solid var(--line-soft);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.35rem .8rem}
.listing .fee{font-family:var(--mono);font-size:var(--t-label);color:var(--ink-55)}
.listing .view{font-weight:600;font-size:var(--t-label);color:var(--kiln)}
.listing.is-hidden{display:none}
.listing.reserved{opacity:.72}

/* ---------- stats / chips / ledger ---------- */
.numbers-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:2.4rem 1.4rem;text-align:center;position:relative}
.stat+.stat::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:var(--line)}
.stat .num{font-family:var(--mono);font-weight:500;font-size:var(--t-1);color:var(--yew);letter-spacing:-.02em}
.stat .num sup{font-size:var(--t-label);color:var(--kiln)}
.stat .lbl{margin-top:.5rem;font-size:var(--t-label);color:var(--ink-70);line-height:1.45}
.numbers-foot{padding:0 1.6rem 1.6rem;text-align:center;font-size:var(--t-label);color:var(--ink-55)}
.numbers-foot a{color:var(--kiln)}
@media(max-width:820px){.numbers-grid{grid-template-columns:1fr 1fr}.stat+.stat::before{display:none}}
.chips{display:flex;flex-direction:column;gap:.9rem;margin-top:1.8rem}
.chip{display:flex;gap:1.1rem;align-items:baseline;border-left:2px solid var(--brass);padding:.3rem 0 .3rem 1.2rem}
.chip .n{font-family:var(--mono);font-size:var(--t-body);font-weight:500;color:var(--yew);min-width:4.6rem}
.chip .t{color:var(--ink-70);font-size:var(--t-small)}
.ledger{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);overflow:hidden;box-shadow:0 30px 60px -42px rgba(34,56,44,.45)}
.ledger-head{padding:1.3rem 1.7rem;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline;gap:1rem;background:rgba(237,229,211,.55)}
.ledger-head .serif{font-size:var(--t-body);color:var(--yew)}
.ledger-head .mono{font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;color:var(--brass)}
.ledger table{width:100%;border-collapse:collapse}
.ledger td{padding:1rem 1.7rem;border-bottom:1px solid var(--line-soft);vertical-align:top}
.ledger td:last-child{text-align:right;font-family:var(--mono);font-size:var(--t-small);font-weight:500;color:var(--yew);white-space:nowrap}
.ledger .item b{display:block;font-weight:600;font-size:var(--t-small);color:var(--peat)}
.ledger .item span{font-size:var(--t-label);color:var(--ink-55);line-height:1.5;display:block;margin-top:.15rem;max-width:26rem}
.ledger tr.total td{border-bottom:none;background:rgba(237,229,211,.55);padding-block:1.2rem}
.ledger tr.total td:last-child{font-size:var(--t-body)}

/* ---------- amenities ---------- */
.amen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:1rem}
.amen{display:flex;gap:.95rem;align-items:flex-start;background:var(--card);border:1px solid var(--line-soft);border-radius:var(--rad);padding:1.05rem 1.15rem}
.amen svg{width:26px;height:26px;color:var(--kiln);flex-shrink:0;margin-top:.1rem}
.amen b{display:block;font-weight:600;font-size:var(--step--1);color:var(--yew);line-height:1.3}
.amen span{font-size:var(--step--2);color:var(--ink-55);line-height:1.4;display:block;margin-top:.15rem}
.hub-card{background:var(--yew);color:var(--chalk);border-radius:var(--rad);padding:clamp(1.6rem,3vw,2.4rem);display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center;margin-bottom:1.6rem}
.hub-card h3{color:var(--chalk);font-size:var(--step-3);line-height:var(--lh-h3);font-weight:400;margin:.5rem 0 var(--space-xs)}
.hub-card p{color:rgba(250,247,239,.82);font-size:var(--t-small)}
.hub-card .ph{border-radius:var(--rad);overflow:hidden;aspect-ratio:16/10}
.hub-card .ph img{width:100%;height:100%;object-fit:cover}
@media(max-width:820px){.hub-card{grid-template-columns:1fr}}

/* ---------- site plan ---------- */
.plan-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:clamp(1.2rem,2.5vw,2rem)}
.plan-wrap svg{width:100%;height:auto;display:block}
.plan-legend{display:flex;gap:1.4rem;flex-wrap:wrap;margin-top:1rem;font-family:var(--mono);font-size:var(--t-label);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-70)}
.plan-legend span{display:inline-flex;align-items:center;gap:.45rem}
.plan-legend i{width:11px;height:11px;border-radius:3px;display:inline-block}
.plan-note{font-size:var(--t-label);color:var(--ink-55);margin-top:.8rem}
.plot-shape{cursor:pointer;transition:opacity .3s}
.plot-shape:hover{opacity:.75}
svg text{font-family:'IBM Plex Mono',monospace}

/* ---------- gallery ---------- */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem}
.gallery a{border-radius:var(--rad);overflow:hidden;display:block;aspect-ratio:4/3;border:none}
.gallery a:nth-child(1){grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);filter:saturate(.9) sepia(.08)}
.gallery a:hover img{transform:scale(1.04)}
@media(max-width:760px){.gallery{grid-template-columns:1fr 1fr}.gallery a:nth-child(1){grid-column:span 2;grid-row:span 1}}
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(24,22,17,.94);display:none;align-items:center;justify-content:center;padding:4vh 4vw;cursor:zoom-out}
.lightbox.open{display:flex}
.lightbox img{max-width:100%;max-height:100%;border-radius:4px}

/* ---------- area / distances ---------- */
.rings{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.3rem,2.5vw,2rem)}
.ring{border-top:1px solid var(--line);padding-top:1.2rem}
.ring .t{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;color:var(--kiln)}
.ring h4{font-size:var(--t-3);color:var(--yew);margin:.5rem 0 .5rem;font-weight:430}
.ring p{font-size:var(--t-small);color:var(--ink-70)}
@media(max-width:860px){.rings{grid-template-columns:1fr}}
.dist-chips{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.8rem}
.dchip{font-family:var(--mono);font-size:var(--t-label);color:var(--yew);border:1px solid var(--line);border-radius:999px;padding:.45rem 1rem;background:var(--card)}
.dchip b{color:var(--kiln);font-weight:500}

/* ---------- people ---------- */
.mgr{display:flex;gap:1.4rem;align-items:center;background:var(--card);border:1px solid var(--line-soft);border-radius:var(--rad);padding:1.5rem 1.7rem}
.mgr .ava{width:74px;height:74px;border-radius:50%;background:var(--yew);color:var(--chalk);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:var(--t-2);flex-shrink:0}
.mgr b{font-size:var(--t-small);color:var(--yew);display:block;font-weight:600}
.mgr .role{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.mgr p{font-size:var(--t-label);color:var(--ink-70);margin-top:.3rem}
.mgr .tel{font-family:var(--mono);font-size:var(--t-label);color:var(--kiln);text-decoration:none;font-weight:500}
.res{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--rad);overflow:hidden;display:flex;flex-direction:column}
.res .ph{aspect-ratio:4/3.2;overflow:hidden}
.res .ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.88) sepia(.1)}
.res-body{padding:1.5rem 1.6rem 1.7rem;display:flex;flex-direction:column;gap:1rem;flex:1}
.res q{font-family:var(--serif);font-style:italic;font-size:var(--t-body);line-height:1.5;color:var(--yew);quotes:"“" "”"}
.res .who{margin-top:auto;font-family:var(--mono);font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.pledge{margin-top:clamp(2rem,3.5vw,2.6rem);text-align:center;font-size:var(--t-label);color:var(--ink-55)}
.pledge b{color:var(--yew)}

/* ---------- accordion ---------- */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.25rem .2rem;font-family:var(--serif);font-size:var(--t-body);color:var(--yew);font-weight:430}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);color:var(--kiln);font-size:var(--t-body);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 .2rem 1.4rem;color:var(--ink-70);font-size:var(--t-small);max-width:52rem}

/* ---------- property page ---------- */
.prop-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;margin-bottom:1.8rem}
.prop-head h1{font-size:var(--t-hero);color:var(--yew);line-height:1.05;font-weight:380}
.prop-head .where{font-size:var(--t-small);color:var(--ink-70);margin-top:.5rem}
.prop-price .q{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);display:block;text-align:right}
.prop-price .v{font-family:var(--mono);font-size:var(--t-1);font-weight:500;color:var(--yew)}
.facts{display:grid;grid-template-columns:repeat(6,1fr);border-block:1px solid var(--line);margin-block:1.8rem}
.fact{padding:1.1rem .9rem;border-right:1px solid var(--line-soft)}
.fact:last-child{border-right:none}
.fact .k{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.fact .v{font-size:var(--t-small);font-weight:600;color:var(--yew);margin-top:.25rem}
@media(max-width:900px){.facts{grid-template-columns:repeat(3,1fr)}.fact:nth-child(3n){border-right:none}}
@media(max-width:560px){.facts{grid-template-columns:1fr 1fr}.fact{border-right:none}}
.pull{font-family:var(--serif);font-style:italic;font-size:var(--t-1);line-height:1.35;color:var(--yew);max-width:44rem;margin-block:clamp(2rem,4vw,3rem)}
.kf{columns:2;gap:2.5rem;margin-block:1.4rem}
.kf li{break-inside:avoid;margin-bottom:.65rem;padding-left:1.4rem;position:relative;color:var(--ink-70);font-size:var(--t-small);list-style:none}
.kf li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--kiln)}
@media(max-width:700px){.kf{columns:1}}
.chapter{margin-block:clamp(1.8rem,3.5vw,2.6rem)}
.chapter h3{font-size:var(--t-3);color:var(--yew);font-weight:430;margin-bottom:.7rem}
.chapter p{color:var(--ink-70);max-width:52rem}
.chapter p+p{margin-top:.8rem}
.prop-grid>*{min-width:0}
.prop-grid{display:grid;grid-template-columns:1.55fr .45fr;gap:clamp(2rem,4vw,3.5rem);align-items:start}
.prop-side{position:sticky;top:96px;display:flex;flex-direction:column;gap:1.2rem}
@media(max-width:980px){.prop-grid{grid-template-columns:1fr}.prop-side{position:static}}
.side-card{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--rad);padding:1.4rem 1.5rem}
.side-card .h{font-family:var(--serif);font-size:var(--t-body);color:var(--yew);font-weight:430;margin-bottom:.6rem}
.side-card p{font-size:var(--t-label);color:var(--ink-70)}
.side-card .docs a{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--line-soft);text-decoration:none;font-size:var(--t-label);color:var(--peat)}
.side-card .docs a:hover{color:var(--kiln)}
.side-card .docs .sz{font-family:var(--mono);font-size:var(--t-label);color:var(--ink-55);text-align:right;flex-shrink:0;max-width:46%}
.floorplan{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:clamp(1.2rem,2.5vw,2rem)}
.floorplan svg{width:100%;height:auto}
.spec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.9rem}
.spec{display:flex;gap:.8rem;align-items:baseline;font-size:var(--t-small);color:var(--ink-70);padding:.75rem 1rem;background:var(--card);border:1px solid var(--line-soft);border-radius:var(--rad)}
.spec::before{content:"✓";color:var(--ok);font-weight:700}

/* ---------- steps / journey ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.2rem,2.4vw,1.8rem);counter-reset:step}
.step{border-top:1px solid var(--line);padding-top:1.2rem;counter-increment:step}
.step::before{content:"0" counter(step);font-family:var(--mono);font-size:var(--t-label);color:var(--kiln);letter-spacing:.14em}
.step h4{font-size:var(--t-3);color:var(--yew);margin:.5rem 0 .4rem;font-weight:430}
.step p{font-size:var(--t-small);color:var(--ink-70)}
@media(max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.steps{grid-template-columns:1fr}}

/* ---------- forms ---------- */
.field label{display:block;font-family:var(--mono);font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin-bottom:.45rem}
.field select,.field input,.field textarea{width:100%;padding:.8rem .9rem;font-family:var(--sans);font-size:var(--t-small);color:var(--peat);background:var(--bone);border:1px solid var(--line);border-radius:4px}
.field textarea{min-height:110px;resize:vertical}
form.enquiry{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:clamp(1.6rem,3vw,2.4rem);display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
form.enquiry .full{grid-column:1/-1}
form.enquiry .btn{justify-self:start}
form.enquiry .small{font-size:var(--t-label);color:var(--ink-55)}
@media(max-width:700px){form.enquiry{grid-template-columns:1fr}}
.calc{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:1.8rem 2rem}
.calc h3{font-family:var(--serif);font-size:var(--t-3);color:var(--yew);font-weight:430}
.calc .sub{font-size:var(--t-label);color:var(--ink-55);margin:.4rem 0 1.4rem}
.calc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.calc-out{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:1.5rem;border-top:1px solid var(--line-soft);padding-top:1.5rem}
.calc-out .o .v{font-family:var(--mono);font-size:var(--t-3);font-weight:500;color:var(--yew)}
.calc-out .o .v.pos{color:#4c6b3c}
.calc-out .o .l{font-size:var(--t-label);color:var(--ink-55);margin-top:.2rem}
.calc-note{font-size:var(--t-label);color:var(--ink-55);margin-top:1.2rem}
@media(max-width:860px){.calc-grid,.calc-out{grid-template-columns:1fr}}

/* ---------- CTA band / footer ---------- */
.cta-band{background:var(--yew);color:var(--chalk)}
.cta-band .inner{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;padding-block:clamp(3rem,6vw,4.5rem)}
.cta-band h2{font-size:var(--t-hero);font-weight:360;color:var(--chalk);max-width:18em}
.cta-band p{color:rgba(250,247,239,.78);margin-top:.6rem;max-width:34rem}
.cta-band .btns{display:flex;gap:1rem;flex-wrap:wrap}
.threedoors{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border-block:1px solid var(--line)}
.door{background:var(--bone);padding:1.6rem 1.8rem;text-decoration:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;transition:background .3s}
.door:hover{background:var(--card)}
.door b{font-family:var(--serif);font-size:var(--t-body);color:var(--yew);font-weight:430}
.door span{color:var(--kiln)}
@media(max-width:760px){.threedoors{grid-template-columns:1fr}}
footer{background:var(--yew-deep);color:var(--chalk);padding:clamp(3.5rem,7vw,5.5rem) 0 2.2rem}
.foot-top{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1fr;gap:2.2rem;padding-bottom:2.8rem;border-bottom:1px solid rgba(250,247,239,.14)}
.foot-brand .word{font-family:var(--serif);font-size:var(--t-2);font-weight:420}
.foot-brand .tag{font-family:var(--serif);font-style:italic;color:#E8B48E;margin-top:.4rem}
.foot-brand svg{width:64px;height:auto;color:var(--brass);margin-top:1.3rem}
.foot-col .h{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.2em;text-transform:uppercase;color:var(--brass);margin-bottom:1rem}
.foot-col a{display:block;text-decoration:none;font-size:var(--t-small);color:rgba(250,247,239,.82);padding:.26rem 0;transition:color .3s}
.foot-col a:hover{color:var(--chalk)}
.foot-notes{padding-block:1.9rem;font-size:var(--t-label);line-height:1.7;color:rgba(250,247,239,.6);max-width:64rem}
.foot-notes b{color:rgba(250,247,239,.85);font-weight:600}
.foot-legal{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;font-size:var(--t-label);color:rgba(250,247,239,.55);border-top:1px solid rgba(250,247,239,.14);padding-top:1.6rem}
.foot-legal a{text-decoration:none;color:inherit;margin-left:1.1rem}
.foot-legal a:hover{color:var(--chalk)}
@media(max-width:960px){.foot-top{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}

/* splits */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.2rem,4.5vw,4rem);align-items:center}
.split .ph{border-radius:var(--rad);overflow:hidden;aspect-ratio:4/3.4}
.split .ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.88) sepia(.09)}
@media(max-width:860px){.split{grid-template-columns:1fr}.split .ph{order:-1;aspect-ratio:16/10}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  html{scroll-behavior:auto}
}
@media print{
  .nav,.mobile-menu,.cta-band,footer .foot-top,.btn,.threedoors{display:none!important}
  body{background:#fff}
  .hero{min-height:auto;color:#000}
  .hero::before{display:none}
}

/* ============ v3.1 — ACCESSIBILITY LAYER ============ */
/* Evidence: 19px body (GDS), 44px targets (WCAG 2.5.5 AAA), 7:1 body contrast target */
html{font-size:100%}
html[data-textsize="lg"]{font-size:112.5%}
html[data-textsize="xl"]{font-size:125%}
body{font-size:var(--t-body)}           /* 19px base — GOV.UK/NHS standard */
.lede{font-size:var(--t-3)}
p{max-width:68ch}
.btn,.fchip,.door,.nav-links a,summary{min-height:44px}
.btn{padding-block:1rem}
.field input,.field select,.field textarea{min-height:48px;font-size:var(--t-small)}
html[data-contrast="high"]{--bone:#FFFFFF;--parchment:#F4F1E8;--card:#FFFFFF;--ink-70:#231F17;--ink-55:#3A342A;--line:rgba(34,56,44,.4);--line-soft:rgba(34,56,44,.22);--peat:#000000;--yew:#132018;--kiln:#8F3616;--brass:#6B4E22}
html[data-contrast="high"] img{filter:contrast(1.06)}
html[data-contrast="high"] .hero::before{background:linear-gradient(180deg,rgba(10,14,11,.7) 0%,rgba(10,14,11,.55) 45%,rgba(10,10,8,.82) 100%)}
.a11y{display:flex;align-items:center;gap:.3rem;margin-left:.2rem}
.a11y button{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid currentColor;border-radius:50%;color:inherit;cursor:pointer;font-family:var(--sans);font-weight:600;font-size:var(--t-label);opacity:.75;transition:opacity .3s,background .3s;padding:0}
.a11y button:hover,.a11y button[aria-pressed="true"]{opacity:1;background:rgba(128,128,128,.18)}
.a11y button svg{width:19px;height:19px}
.skip{position:absolute;left:-9999px;top:0;background:var(--yew);color:var(--chalk);padding:1rem 1.5rem;z-index:1000;text-decoration:none;border-radius:0 0 6px 0}
.skip:focus{left:0}
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--kiln);outline-offset:3px;border-radius:4px}
.speaking{background:rgba(194,84,47,.12);box-shadow:0 0 0 3px rgba(194,84,47,.25)}

/* ---------- tool shells ---------- */
.tool{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:clamp(1.4rem,3vw,2.2rem)}
.tool + .tool{margin-top:clamp(1.4rem,3vw,2rem)}
.tool h3{font-family:var(--serif);font-size:var(--t-2);color:var(--yew);font-weight:430;margin-bottom:.35rem}
.tool .sub{font-size:var(--t-small);color:var(--ink-55);margin-bottom:1.4rem;max-width:52rem}
.tool-out{margin-top:1.5rem;border-top:1px solid var(--line-soft);padding-top:1.4rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.2rem}
.tool-out .v{font-family:var(--mono);font-size:var(--t-1);font-weight:500;color:var(--yew);line-height:1.15}
.tool-out .v.pos{color:#3F5C31}
.tool-out .l{font-size:var(--t-label);color:var(--ink-55);margin-top:.35rem}
.workings{margin-top:1.2rem;border-top:1px dashed var(--line);padding-top:1rem}
.workings summary{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.12em;text-transform:uppercase;color:var(--brass);cursor:pointer;padding:.5rem 0}
.workings table{width:100%;border-collapse:collapse;margin-top:.6rem;font-size:var(--t-label)}
.workings td{padding:.45rem 0;border-bottom:1px solid var(--line-soft)}
.workings td:last-child{text-align:right;font-family:var(--mono)}
.workings tr:last-child td{border-bottom:none;font-weight:600;color:var(--yew)}
.grid-tools{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.4rem,3vw,2rem);align-items:start}
@media(max-width:900px){.grid-tools{grid-template-columns:1fr}}

/* ---------- compare table ---------- */
.cmp-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--rad);background:var(--card)}
table.cmp{width:100%;border-collapse:collapse;min-width:720px}
table.cmp th,table.cmp td{padding:.9rem 1.1rem;text-align:left;border-bottom:1px solid var(--line-soft);vertical-align:top;font-size:var(--t-small)}
table.cmp thead th{position:sticky;top:76px;background:var(--parchment);z-index:5;border-bottom:1px solid var(--line);vertical-align:bottom}
table.cmp thead th img{width:100%;max-width:190px;aspect-ratio:16/10;object-fit:cover;border-radius:4px;margin-bottom:.6rem}
table.cmp thead .nm{font-family:var(--serif);font-size:var(--t-body);color:var(--yew);display:block}
table.cmp thead .pr{font-family:var(--mono);font-size:var(--t-small);color:var(--kiln);display:block;margin-top:.2rem}
table.cmp tbody tr:nth-child(even){background:rgba(237,229,211,.35)}
table.cmp tbody tr:hover{background:rgba(194,84,47,.06)}
table.cmp tr.grp td{background:var(--yew);color:var(--chalk);font-family:var(--mono);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;padding:.7rem 1.1rem}
table.cmp td.k{font-weight:600;color:var(--peat);width:22%}
table.cmp .diff{color:var(--kiln);font-weight:600}
body.only-diff table.cmp tr.same{display:none}
.cmp-controls{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;margin-bottom:1.4rem}
.toggle{display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;font-size:var(--t-small);min-height:44px}
.toggle input{width:22px;height:22px;accent-color:var(--kiln)}
.picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem;margin-bottom:1.6rem}
.pick{display:flex;gap:.8rem;align-items:center;padding:.8rem 1rem;border:1px solid var(--line);border-radius:var(--rad);background:var(--card);cursor:pointer;min-height:44px;transition:border-color .3s}
.pick:hover{border-color:var(--brass)}
.pick input{width:22px;height:22px;accent-color:var(--kiln);flex-shrink:0}
.pick b{display:block;font-size:var(--t-small);color:var(--yew)}
.pick span{font-size:var(--t-label);color:var(--ink-55)}

/* ---------- configurator ---------- */
.cfg{display:grid;grid-template-columns:1.35fr .65fr;gap:clamp(1.6rem,3.5vw,2.8rem);align-items:start}
@media(max-width:980px){.cfg{grid-template-columns:1fr}}
.cfg-step{border-top:1px solid var(--line);padding-top:1.4rem;margin-top:1.8rem}
.cfg-step:first-child{border-top:none;margin-top:0;padding-top:0}
.cfg-step .n{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.16em;color:var(--kiln)}
.cfg-step h3{font-family:var(--serif);font-size:var(--t-3);color:var(--yew);font-weight:430;margin:.35rem 0 .3rem}
.cfg-step .sub{font-size:var(--t-small);color:var(--ink-55);margin-bottom:1.1rem}
.opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem}
.opt{position:relative;display:block;border:1.5px solid var(--line);border-radius:var(--rad);padding:1rem 1.1rem;cursor:pointer;background:var(--card);transition:border-color .25s,background .25s;min-height:44px}
.opt:hover{border-color:var(--brass)}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt.on{border-color:var(--kiln);background:rgba(194,84,47,.05);box-shadow:inset 0 0 0 1px var(--kiln)}
.opt b{display:block;font-size:var(--t-small);color:var(--yew);font-weight:600}
.opt .note{display:block;font-size:var(--t-label);color:var(--ink-55);margin-top:.25rem;line-height:1.45}
.opt .px{display:inline-block;margin-top:.5rem;font-family:var(--mono);font-size:var(--t-label);color:var(--kiln);font-weight:500}
.opt.on::after{content:"✓";position:absolute;top:.7rem;right:.9rem;color:var(--kiln);font-weight:700}
.spec-sheet{position:sticky;top:96px;background:var(--card);border:1px solid var(--line);border-radius:var(--rad);overflow:hidden;box-shadow:0 30px 60px -42px rgba(34,56,44,.45)}
@media(max-width:980px){.spec-sheet{position:static}}
.spec-sheet .hd{padding:1.2rem 1.4rem;background:var(--yew);color:var(--chalk)}
.spec-sheet .hd .t{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;color:#E8B48E}
.spec-sheet .hd .n{font-family:var(--serif);font-size:var(--t-3);margin-top:.2rem}
.spec-sheet .bd{padding:1.1rem 1.4rem}
.spec-sheet .line{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--line-soft);font-size:var(--t-label)}
.spec-sheet .line span:last-child{font-family:var(--mono);white-space:nowrap;color:var(--yew)}
.spec-sheet .line.sub{color:var(--ink-55);font-size:var(--t-label)}
.spec-sheet .tot{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1rem 1.4rem;background:var(--parchment);border-top:1px solid var(--line)}
.spec-sheet .tot .l{font-family:var(--serif);font-size:var(--t-small);color:var(--yew)}
.spec-sheet .tot .v{font-family:var(--mono);font-size:var(--t-3);font-weight:500;color:var(--yew)}
.spec-sheet .acts{padding:1.1rem 1.4rem;display:flex;flex-direction:column;gap:.7rem}
.spec-sheet .acts .btn{justify-content:center}

/* ---------- quiz ---------- */
.quiz{max-width:44rem;margin:0 auto}
.qstep{display:none}
.qstep.on{display:block}
.qbar{height:6px;background:var(--line-soft);border-radius:3px;overflow:hidden;margin-bottom:1.8rem}
.qbar i{display:block;height:100%;background:var(--kiln);transition:width .5s var(--ease)}
.qcount{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin-bottom:.8rem}
.qstep h2{font-family:var(--serif);font-size:var(--t-hero);color:var(--yew);font-weight:400;line-height:1.15;margin-bottom:.7rem}
.qstep .help{font-size:var(--t-small);color:var(--ink-55);margin-bottom:1.6rem;max-width:38rem}
.qopts{display:flex;flex-direction:column;gap:.7rem}
.qopt{display:flex;align-items:center;gap:1rem;padding:1.1rem 1.3rem;border:1.5px solid var(--line);border-radius:var(--rad);background:var(--card);cursor:pointer;font-size:var(--t-small);color:var(--peat);text-align:left;transition:border-color .25s,background .25s;min-height:44px;width:100%;font-family:var(--sans)}
.qopt:hover{border-color:var(--kiln);background:rgba(194,84,47,.04)}
.qopt .dot{width:22px;height:22px;border:2px solid var(--brass);border-radius:50%;flex-shrink:0}
.qnav{margin-top:1.6rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.qback{background:none;border:none;color:var(--ink-55);cursor:pointer;font-size:var(--t-small);font-family:var(--sans);text-decoration:underline;min-height:44px}
.qresult{display:none}
.qresult.on{display:block}
.match-card{display:flex;gap:1.4rem;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:1.4rem 1.6rem;margin-bottom:1rem}
.match-card.top{border-color:var(--kiln);border-width:2px}
.match-card .rank{font-family:var(--mono);font-size:var(--t-2);color:var(--brass);min-width:2.2rem}
.match-card.top .rank{color:var(--kiln)}
.match-card h3{font-family:var(--serif);font-size:var(--t-3);color:var(--yew);font-weight:430}
.match-card .why{font-size:var(--t-small);color:var(--ink-70);margin-top:.3rem}
.match-card .sc{margin-left:auto;text-align:right;font-family:var(--mono);font-size:var(--t-label);color:var(--ink-55);white-space:nowrap}
@media(max-width:620px){.match-card{flex-wrap:wrap}.match-card .sc{margin-left:0;text-align:left;width:100%}}

/* ---------- shortlist hearts ---------- */
.heart{position:absolute;top:.8rem;right:.8rem;z-index:3;width:44px;height:44px;border-radius:50%;border:none;background:rgba(250,246,236,.92);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .3s,transform .3s;padding:0}
.heart:hover{background:#fff;transform:scale(1.06)}
.heart svg{width:21px;height:21px;stroke:var(--yew);fill:none;stroke-width:1.8;transition:fill .3s,stroke .3s}
.heart.on svg{fill:var(--kiln);stroke:var(--kiln)}
.heart .sr{position:absolute;left:-9999px}
.sl-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--kiln);color:var(--chalk);font-family:var(--mono);font-size:var(--t-label);margin-left:.4rem}
.sl-empty{text-align:center;padding:clamp(3rem,6vw,5rem) 1rem;border:1px dashed var(--line);border-radius:var(--rad)}
.sl-empty p{margin:0 auto 1.4rem;color:var(--ink-70)}

/* ---------- data tables (fee history, resales) ---------- */
.dtable{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--rad);overflow:hidden;font-size:var(--t-small)}
.dtable th,.dtable td{padding:.85rem 1.1rem;text-align:left;border-bottom:1px solid var(--line-soft)}
.dtable thead th{background:var(--parchment);font-family:var(--mono);font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;color:var(--brass);font-weight:500}
.dtable tbody tr:last-child td{border-bottom:none}
.dtable td.num,.dtable th.num{text-align:right;font-family:var(--mono)}
.dtable tbody tr:nth-child(even){background:rgba(237,229,211,.3)}
.dtable caption{caption-side:bottom;text-align:left;font-size:var(--t-label);color:var(--ink-55);padding-top:.9rem}
.tbl-wrap{overflow-x:auto}
.stamp{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:var(--t-label);color:var(--ink-55);margin-top:.8rem}
.stamp::before{content:"";width:7px;height:7px;border-radius:50%;background:#5d7d47}

/* ---------- promise cards ---------- */
.promise{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.2rem}
.pcard{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--rad);padding:1.5rem 1.6rem;border-top:3px solid var(--kiln)}
.pcard h3{font-family:var(--serif);font-size:var(--t-3);color:var(--yew);font-weight:430;margin-bottom:.55rem}
.pcard p{font-size:var(--t-small);color:var(--ink-70)}
.nolist{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--rad);overflow:hidden;margin-top:1.6rem}
.nolist div{background:var(--card);padding:1.3rem 1.1rem;text-align:center}
.nolist .n{font-family:var(--mono);font-size:var(--t-3);color:var(--kiln);font-weight:500}
.nolist .t{font-size:var(--t-label);color:var(--ink-70);margin-top:.3rem;line-height:1.4}

/* ---------- timetable ---------- */
.tt{width:100%;border-collapse:collapse;font-size:var(--t-small)}
.tt td{padding:.75rem 1rem;border-bottom:1px solid var(--line-soft);vertical-align:top}
.tt .d{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.1em;text-transform:uppercase;color:var(--brass);width:4.5rem}
.tt .tm{font-family:var(--mono);font-size:var(--t-label);color:var(--yew);width:4.5rem}
.tt .pil{display:inline-block;font-family:var(--mono);font-size:var(--t-label);letter-spacing:.12em;text-transform:uppercase;padding:.2rem .6rem;border-radius:999px;border:1px solid var(--line);color:var(--ink-55);margin-left:.5rem}
.tt tr:last-child td{border-bottom:none;color:var(--ink-55);font-style:italic}

/* ---------- pets ---------- */
.pets{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1rem}
.pet{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--rad);padding:1.1rem 1.2rem}
.pet b{font-family:var(--serif);font-size:var(--t-body);color:var(--yew);display:block}
.pet .br{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.1em;text-transform:uppercase;color:var(--brass)}
.pet p{font-size:var(--t-label);color:var(--ink-70);margin-top:.4rem}

/* ---------- fit checker ---------- */
.fit-stage{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:1rem}
.fit-stage svg{width:100%;height:auto;display:block}
.fit-warn{margin-top:.9rem;padding:.85rem 1.1rem;border-radius:var(--rad);font-size:var(--t-label);display:none}
.fit-warn.show{display:block}
.fit-warn.ok{background:rgba(93,125,71,.12);border:1px solid rgba(93,125,71,.4);color:#3F5C31}
.fit-warn.bad{background:rgba(194,84,47,.1);border:1px solid rgba(194,84,47,.45);color:var(--kiln-deep)}

/* ---------- sun path ---------- */
.sun-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:1.2rem}
.sun-wrap svg{width:100%;height:auto}
.sun-controls{display:flex;gap:1.2rem;flex-wrap:wrap;align-items:center;margin-top:1rem}
input[type=range]{-webkit-appearance:none;appearance:none;height:8px;border-radius:4px;background:var(--line);flex:1;min-width:180px}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:30px;border-radius:50%;background:var(--kiln);cursor:pointer;border:3px solid var(--card)}
input[type=range]::-moz-range-thumb{width:30px;height:30px;border-radius:50%;background:var(--kiln);cursor:pointer;border:3px solid var(--card)}

/* ---------- misc ---------- */
.q-list details{border-bottom:1px solid var(--line)}
.q-list summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;padding:1.3rem .2rem;font-family:var(--serif);font-size:var(--t-3);color:var(--yew);font-weight:430}
.q-list summary::-webkit-details-marker{display:none}
.q-list summary::after{content:"+";font-family:var(--mono);color:var(--kiln);font-size:var(--t-3);flex-shrink:0;line-height:1}
.q-list details[open] summary::after{content:"−"}
.q-list .a{padding:0 .2rem 1.5rem;color:var(--ink-70);max-width:60ch}
.steplist{counter-reset:s}
.steplist .s{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;padding:1.4rem 0;border-bottom:1px solid var(--line-soft)}
.steplist .s .w{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.1em;text-transform:uppercase;color:var(--kiln);min-width:6rem;padding-top:.25rem}
.steplist .s h4{font-family:var(--serif);font-size:var(--t-3);color:var(--yew);font-weight:430;margin-bottom:.4rem}
.steplist .s p{color:var(--ink-70);font-size:var(--t-small)}
@media(max-width:640px){.steplist .s{grid-template-columns:1fr;gap:.4rem}}
.glossary dt{font-family:var(--serif);font-size:var(--t-body);color:var(--yew);font-weight:430;margin-top:1.4rem}
.glossary dd{color:var(--ink-70);font-size:var(--t-small);margin-top:.3rem;max-width:62ch}
.audio-card{display:flex;gap:1.2rem;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:1.3rem 1.5rem}
.audio-card .play{width:56px;height:56px;border-radius:50%;background:var(--yew);color:var(--chalk);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}
.audio-card .play svg{width:20px;height:20px}
.audio-card b{display:block;font-family:var(--serif);font-size:var(--t-body);color:var(--yew)}
.audio-card p{font-size:var(--t-label);color:var(--ink-70);margin-top:.25rem}
.audio-card .tag{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.12em;text-transform:uppercase;color:var(--brass)}
.pill-nav{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:2rem}
.pill-nav a{font-size:var(--t-small);text-decoration:none;padding:.65rem 1.2rem;border:1px solid var(--line);border-radius:999px;color:var(--ink-70);transition:all .3s;min-height:44px;display:inline-flex;align-items:center}
.pill-nav a:hover{border-color:var(--kiln);color:var(--kiln)}
.callout{background:var(--parchment);border-left:3px solid var(--kiln);padding:1.3rem 1.6rem;border-radius:0 var(--rad) var(--rad) 0;margin-block:1.6rem}
.callout p{color:var(--ink-70);font-size:var(--t-small)}
.callout p+p{margin-top:.7rem}
.callout b{color:var(--yew)}
@media print{
  .a11y,.pill-nav,.heart,.qnav{display:none!important}
  .tool,.dtable,.spec-sheet{border:1px solid #999;box-shadow:none;break-inside:avoid}
  table.cmp thead th{position:static}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:var(--t-label);color:#666}
}

/* v6.1c: enlarged text must NEVER cost the navigation (it's our audience's setting).
   The nav tightens instead, and only collapses when it truly cannot fit. */
html[data-textsize="xl"] .nav-phone{display:none}

/* ============================================================
   DREEYM v4 — TOKENS, GALLERY, ICONS
   Fluid 320→1440px · ratio 1.20 small → 1.27 large · 9 steps
   Space derived from step-0 · all bounds in rem (WCAG 1.4.4)
   ============================================================ */
:root{
  /* — type scale — */
  --step--2: clamp(0.9375rem, 0.9196rem + 0.0893vw, 1rem);      /* 15 → 16 */
  --step--1: clamp(1rem,      0.9643rem + 0.1786vw, 1.125rem);  /* 16 → 18 */
  --step-0:  clamp(1.125rem,  1.0714rem + 0.2679vw, 1.3125rem); /* 18 → 21 */
  --step-1:  clamp(1.3125rem, 1.2232rem + 0.4464vw, 1.625rem);  /* 21 → 26 */
  --step-2:  clamp(1.5625rem, 1.4196rem + 0.7143vw, 2.0625rem); /* 25 → 33 */
  --step-3:  clamp(1.875rem,  1.6607rem + 1.0714vw, 2.625rem);  /* 30 → 42 */
  --step-4:  clamp(2.25rem,   1.9286rem + 1.6071vw, 3.375rem);  /* 36 → 54 */
  --step-5:  clamp(2.625rem,  2.1607rem + 2.3214vw, 4.25rem);   /* 42 → 68 */
  --step-6:  clamp(3rem,      2.2857rem + 3.5714vw, 5.5rem);    /* 48 → 88 */
  /* — leading — */
  --lh-display:1.02; --lh-h1:1.08; --lh-h2:1.14; --lh-h3:1.22;
  --lh-h4:1.32; --lh-lead:1.46; --lh-body:1.6; --lh-caption:1.5;
  /* — space (from step-0, Utopia multipliers) — */
  --space-3xs: 0.3125rem;                                          /* 5 static */
  --space-2xs: clamp(0.5625rem, 0.5268rem + 0.1786vw, 0.6875rem);  /*  9→11 */
  --space-xs:  clamp(0.875rem,  0.8393rem + 0.1786vw, 1rem);       /* 14→16 */
  --space-s:   clamp(1.125rem,  1.0714rem + 0.2679vw, 1.3125rem);  /* 18→21 */
  --space-m:   clamp(1.6875rem, 1.5982rem + 0.4464vw, 2rem);       /* 27→32 */
  --space-l:   clamp(2.25rem,   2.1429rem + 0.5357vw, 2.625rem);   /* 36→42 */
  --space-xl:  clamp(3.375rem,  3.2143rem + 0.8036vw, 3.9375rem);  /* 54→63 */
  --space-2xl: clamp(4.5rem,    4.2857rem + 1.0714vw, 5.25rem);    /* 72→84 */
  --space-3xl: clamp(6.75rem,   6.4286rem + 1.6071vw, 7.875rem);   /*108→126 */
  --space-s-m: clamp(1.125rem,  0.875rem  + 1.25vw,   2rem);       /* 18→32 */
  --space-m-l: clamp(1.6875rem, 1.4196rem + 1.3393vw, 2.625rem);   /* 27→42 */
  --space-xl-3xl: clamp(3.375rem, 2.0893rem + 6.4286vw, 7.875rem); /* 54→126 */
  /* — measure & containers — */
  --measure-prose:65ch; --measure-lead:52ch; --measure-caption:46ch;
  --container-prose:42rem; --container-wide:82rem; --container-shell:90rem;
  --gutter: clamp(1.25rem, 0.4643rem + 3.9286vw, 4rem);
}

/* — apply the scale — */
body{font-size:var(--step-0);line-height:var(--lh-body)}
.h2,h2{font-size:var(--step-4);line-height:var(--lh-h2);letter-spacing:-.022em;text-wrap:balance;max-inline-size:22ch}
.h3,h3{font-size:var(--step-3);line-height:var(--lh-h3);letter-spacing:-.02em;text-wrap:balance}
h4{font-size:var(--step-2);line-height:var(--lh-h4);letter-spacing:-.015em}
.lede{font-size:var(--step-1);line-height:var(--lh-lead);letter-spacing:-.01em;max-inline-size:var(--measure-lead)}
p{max-inline-size:var(--measure-prose);text-wrap:pretty}
.hero h1{letter-spacing:-.026em;text-wrap:balance}
.eyebrow{letter-spacing:.16em}
/* numerals: tabular wherever numbers are compared */
.mono,.dtable td,.dtable th,table.cmp td,.ledger td,.stat .num,.tool-out .v,
.listing .gp,.park .price,.prop-price .v,.spec-sheet .tot .v,.calc-out .v,
.facts .v,.tt .tm,.match-card .sc{font-variant-numeric:tabular-nums lining-nums}
/* optical trim where supported — makes spacing tokens land */
@supports (text-box: trim-both cap alphabetic){
  h1,h2,h3,h4,.h2,.h3,.lede,.eyebrow{text-box:trim-both cap alphabetic}
}
h1,h2,h3,h4{hyphens:none}

/* ---------- ICONS ---------- */
.ic{display:inline-block;vertical-align:middle;flex-shrink:0;color:currentColor}
.ic-label{display:inline-flex;align-items:center;gap:var(--space-2xs)}
.amen svg,.amen .ic{width:26px;height:26px;color:var(--kiln)}

/* ---------- GALLERY: hero grid ---------- */
.gal{--gap:8px}
.gal-hero-wrap{position:relative}
.gal-hero{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);gap:var(--gap);aspect-ratio:2/1;border-radius:var(--rad);overflow:hidden;position:relative}
.gal-hero button{padding:0;border:none;background:none;cursor:zoom-in;overflow:hidden;position:relative;display:block}
.gal-hero button:first-child{grid-column:span 2;grid-row:span 2}
.gal-hero img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease);filter:saturate(.9) sepia(.07)}
.gal-hero button:hover img{transform:scale(1.04)}
.gal-all{position:absolute;right:16px;bottom:16px;z-index:3;display:inline-flex;align-items:center;gap:.55rem;background:rgba(250,246,236,.95);color:var(--yew);border:1px solid rgba(34,56,44,.2);border-radius:999px;padding:.75rem 1.35rem;font-family:var(--sans);font-weight:600;font-size:var(--t-small);cursor:pointer;min-height:48px;box-shadow:0 6px 20px -8px rgba(0,0,0,.4);transition:background .3s,transform .3s}
.gal-all:hover{background:#fff;transform:translateY(-2px)}
@media(max-width:760px){
  .gal-hero{grid-template-columns:1fr;grid-template-rows:1fr;aspect-ratio:3/2}
  .gal-hero button:not(:first-child){display:none}
  .gal-hero button:first-child{grid-column:span 1;grid-row:span 1}
  .gal-all{right:12px;bottom:12px;font-size:var(--t-label);padding:.7rem 1.1rem}
}

/* ---------- GALLERY: scroll strip (CSS scroll-snap — WCAG 2.5.7 exempt) ---------- */
.gal-strip{display:flex;gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;padding-bottom:.6rem;scrollbar-width:thin}
.gal-strip::-webkit-scrollbar{height:8px}
.gal-strip::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}
.gal-strip{min-width:0}
.gal-strip figure{flex:0 0 min(clamp(260px,42vw,520px),86%);scroll-snap-align:center;scroll-snap-stop:always;margin:0}
.gal-strip button.gs-img{display:block;width:100%;padding:0;border:none;background:none;cursor:zoom-in;border-radius:var(--rad);overflow:hidden;aspect-ratio:3/2}
.gal-strip img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) sepia(.07);transition:transform 1s var(--ease)}
.gal-strip button.gs-img:hover img{transform:scale(1.03)}
.gal-strip figcaption{font-size:var(--step--1);color:var(--ink-55);margin-top:.6rem;line-height:var(--lh-caption);max-inline-size:var(--measure-caption)}
.gal-nav{display:flex;align-items:center;gap:.6rem;margin-top:var(--space-xs)}
.gal-nav .gbtn{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--yew);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .3s,border-color .3s}
.gal-nav .gbtn:hover{background:var(--parchment);border-color:var(--brass)}
.gal-nav .gbtn[disabled]{opacity:.35;cursor:default}
.gal-nav .gcount{font-family:var(--mono);font-size:var(--t-label);color:var(--ink-55);margin-left:.4rem}

/* ---------- GALLERY: immersive viewer ---------- */
.viewer{position:fixed;inset:0;z-index:300;background:rgba(9,9,9,.985);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:none;flex-direction:column;padding:clamp(12px,2vw,28px)}
.viewer.open{display:flex}
.v-top{display:flex;align-items:center;gap:1rem;color:var(--chalk);flex-shrink:0}
.v-counter{font-family:var(--mono);font-size:var(--t-small);letter-spacing:.06em;font-variant-numeric:tabular-nums}
.v-chips{display:flex;gap:.5rem;overflow-x:auto;margin:0 auto;padding:0 .5rem;scrollbar-width:none}
.v-close{margin-left:auto}
.v-chips::-webkit-scrollbar{display:none}
.v-chip{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.1em;text-transform:uppercase;color:rgba(250,247,239,.7);background:none;border:1px solid rgba(250,247,239,.28);border-radius:999px;padding:.5rem 1rem;cursor:pointer;white-space:nowrap;min-height:40px;transition:all .25s}
.v-chip:hover{border-color:rgba(250,247,239,.7);color:var(--chalk)}
.v-chip.on{background:var(--chalk);color:var(--peat);border-color:var(--chalk)}
.v-close{width:48px;height:48px;border-radius:50%;border:1px solid rgba(250,247,239,.35);background:none;color:var(--chalk);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .3s}
.v-close:hover{background:rgba(250,247,239,.14)}
.v-stage{flex:1;display:flex;align-items:center;justify-content:center;gap:clamp(8px,2vw,24px);min-height:0;position:relative}
.v-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:3px;cursor:zoom-in}
.v-stage img.zoomed{cursor:zoom-out;transform:scale(2.2);transition:transform .35s var(--ease)}
.v-arrow{width:48px;height:48px;border-radius:50%;border:1px solid rgba(250,247,239,.35);background:rgba(11,11,11,.55);color:var(--chalk);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .3s}
.v-arrow:hover{background:rgba(250,247,239,.18)}
.v-arrow[disabled]{opacity:.28;cursor:default}
.v-cap{color:rgba(250,247,239,.9);font-size:var(--step--1);text-align:center;margin-top:.9rem;min-height:2.6em;line-height:var(--lh-caption);flex-shrink:0;max-inline-size:var(--measure-caption);margin-inline:auto}
.v-thumbs{display:flex;gap:8px;overflow-x:auto;padding:.5rem 0 .2rem;flex-shrink:0;scrollbar-width:none}
.v-thumbs::-webkit-scrollbar{display:none}
.v-thumbs button{flex:0 0 96px;height:64px;padding:0;border:2px solid transparent;background:none;border-radius:3px;overflow:hidden;cursor:pointer;opacity:.55;transition:opacity .25s,border-color .25s}
.v-thumbs button:hover{opacity:.85}
.v-thumbs button.on{opacity:1;border-color:var(--chalk)}
.v-thumbs img{width:100%;height:100%;object-fit:cover}
.v-hint{position:absolute;left:50%;bottom:14%;transform:translateX(-50%);display:inline-flex;align-items:center;gap:.5rem;background:rgba(11,11,11,.8);color:var(--chalk);border-radius:999px;padding:.55rem 1.1rem;font-size:var(--t-label);pointer-events:none;animation:hintfade 3.4s forwards}
@keyframes hintfade{0%,70%{opacity:1}100%{opacity:0}}
.viewer :focus-visible{outline:3px solid #FAF7EF;outline-offset:2px;box-shadow:0 0 0 6px rgba(11,11,11,.9)}
@media(max-width:760px){
  .v-thumbs{display:none}
  .v-arrow{position:absolute;bottom:8px;z-index:4}
  .v-arrow.prev{left:4px}.v-arrow.next{right:4px}
  .v-chips{order:3;width:100%;margin-top:.5rem}
  .v-top{flex-wrap:wrap}
}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- visit page layout ---------- */
.visit-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2.4rem,5vw,4rem);align-items:start}
.visit-grid>*{min-width:0}
@media(max-width:940px){.visit-grid{grid-template-columns:1fr}}

/* ============================================================
   DREEYM v5 — PALETTE REFINEMENT
   Brass deleted (failed 2.83:1). Kiln desaturated 76%→56% and
   demoted from action-colour to rare signal. Yew/Peat promoted
   to buttons and links. Every value now passes WCAG AA.
   Evidence: JCR "The Color of Status" — saturation threshold 20–30%.
   ============================================================ */
:root{
  --parchment:#EAE5DA;      /* was #EDE5D3 — channel spread 26→16 */
  --card:#FBF8F1;           /* was #FAF6EC */
  --kiln:#9C4A2C;           /* was #C2542F — 5.39:1 on Bone ✅ */
  --kiln-deep:#833C22;
  --yew-hover:#16241C;
  --sage:#7C8770;           /* rules & borders — 3.33:1 non-text ✅ */
  --brass:#5E6A55;          /* Brass retired → Sage Deep, 5.04:1 ✅ */
  --line:rgba(34,56,44,.18);
  --line-soft:rgba(34,56,44,.10);
}

/* — buttons: the action colour is now the brand dark, not an accent — */
.btn{background:var(--yew);border-color:var(--yew);color:var(--chalk)}
.btn:hover{background:var(--yew-hover);border-color:var(--yew-hover);box-shadow:0 10px 28px -14px rgba(34,56,44,.55)}
.btn.ghost{background:transparent;color:var(--chalk);border-color:rgba(250,247,239,.6)}
.btn.ghost:hover{background:rgba(250,247,239,.14);box-shadow:none}
.btn.ghost.dark{background:transparent;color:var(--yew);border-color:rgba(34,56,44,.42)}
.btn.ghost.dark:hover{background:rgba(34,56,44,.07);border-color:var(--yew);box-shadow:none}

/* — links: text colour + underline, not accent fill — */
.textlink{color:var(--peat);border-bottom-color:rgba(29,27,22,.38)}
.textlink:hover{color:var(--yew);border-bottom-color:var(--yew)}
.listing .view,.park-foot .textlink{color:var(--yew)}
.door span{color:var(--yew)}
.post:hover h3{color:var(--yew)}

/* — eyebrows and labels move off accent onto sage — */
.eyebrow{color:var(--brass)}
.eyebrow::after,.eyebrow.center::before{background:var(--sage);opacity:.7}
.listing .plot,.park .meta,.ring .t,.pet .br,.mgr .role,.spec-sheet .hd .t,
.cfg-step .n,.qcount,.field label,.toolbar label,.fact .k,.prop-price .q,
.ledger-head .mono,.dtable thead th,.foot-col .h,.side-card .docs .sz,.tt .d{color:var(--brass)}
.day .t,.tt .tm{color:var(--sage)}

/* — kiln survives only as a rare signal — */
.stat .num sup,.numbers-foot a{color:var(--kiln)}
.pcard{border-top-color:var(--kiln)}
.nolist .n{color:var(--yew)}
.callout{border-left-color:var(--sage)}
.workings summary{color:var(--brass)}
.amen .ic,.amen svg{color:var(--sage)}
.fchip.on{background:var(--yew);border-color:var(--yew)}
.badge .dot{background:#5d7d47}
.badge.amber .dot{background:var(--kiln)}
.badge.soon .dot{border-color:var(--sage)}
.heart.on svg{fill:var(--kiln);stroke:var(--kiln)}
.opt.on{border-color:var(--yew);background:rgba(34,56,44,.045);box-shadow:inset 0 0 0 1px var(--yew)}
.opt.on::after{color:var(--yew)}
.opt .px{color:var(--brass)}
.qopt:hover{border-color:var(--yew);background:rgba(34,56,44,.04)}
.qopt .dot{border-color:var(--sage)}
.match-card.top{border-color:var(--yew)}
.match-card.top .rank{color:var(--yew)}
.match-card .rank{color:var(--sage)}
.gal-nav .gbtn:hover{border-color:var(--sage)}
.v-chip.on{background:var(--chalk);color:var(--peat);border-color:var(--chalk)}
.plan-legend i{border-radius:2px}
.tool-out .v.pos,.calc-out .v.pos{color:#3F5C31}
.foot-brand .tag{color:#C9CFC0}
.ob-card.family .textlink,.stay .price-line{color:#C9CFC0}
.stay .eyebrow{color:#C9CFC0}
.hub-card .eyebrow{color:#C9CFC0}
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,
textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline-color:var(--yew)}
::selection{background:var(--yew);color:var(--chalk)}

/* — dark grounds need ~15% more air than light ones — */
.onelevel,.cta-band,.stay{--sec-pad:1.15}
.cta-band .inner{padding-block:clamp(3.4rem,6.8vw,5.2rem)}

/* — site plan: status by shape AND label, never hue alone — */
.plan-legend{gap:1.1rem}
.plan-legend span{color:var(--ink-70)}
.plot-shape:focus-visible{outline:3px solid var(--yew);outline-offset:2px}
.plan-note{color:var(--ink-55)}

/* — findability: dimmed, never removed — */
.listing.dimmed{opacity:.42;filter:saturate(.55)}
.listing.dimmed .listing-body::after{content:attr(data-missing);display:block;margin-top:.6rem;font-family:var(--mono);font-size:var(--t-label);color:var(--kiln);letter-spacing:.04em}
.cmp-check{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--t-label);color:var(--ink-70);cursor:pointer;padding:.5rem 0;min-height:44px}
.cmp-check input{width:20px;height:20px;accent-color:var(--yew)}
.access-row{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:.5rem}
.access-row span{display:inline-flex;align-items:center;gap:.3rem;font-size:var(--t-label);color:var(--ink-55);border:1px solid var(--line-soft);border-radius:999px;padding:.22rem .6rem}
.access-row svg{width:14px;height:14px;color:var(--sage)}

/* — on dark grounds the primary action inverts: light fill, dark text.
     Maximum isolation both ways; the action colour is still not an accent hue. — */
.hero .btn:not(.ghost),.cta-band .btn:not(.ghost),.stay .btn:not(.ghost),
.onelevel .btn:not(.ghost),.config-tease .btn:not(.ghost),.ob-card.family .btn:not(.ghost),
.hub-card .btn:not(.ghost){background:var(--chalk);border-color:var(--chalk);color:var(--yew)}
.hero .btn:not(.ghost):hover,.cta-band .btn:not(.ghost):hover,.stay .btn:not(.ghost):hover,
.onelevel .btn:not(.ghost):hover,.config-tease .btn:not(.ghost):hover,
.ob-card.family .btn:not(.ghost):hover,.hub-card .btn:not(.ghost):hover{
  background:#fff;border-color:#fff;color:var(--yew-hover);box-shadow:0 10px 30px -14px rgba(0,0,0,.6)}
/* nav button inverts while the nav is transparent over dark imagery */
.nav:not(.scrolled):not(.solid) .btn{background:var(--chalk);border-color:var(--chalk);color:var(--yew)}
.nav:not(.scrolled):not(.solid) .btn:hover{background:#fff;border-color:#fff}

/* ================================================================
   v6 — THE PROFESSIONAL PASS (Brief 6.0)
   Knight Frank discipline, Dreeym warmth. Appended last: wins ties.
   ================================================================ */

/* --- 5.1 corrected type ceiling (display compresses, reading stays) --- */
:root{
  --step-2: clamp(1.4375rem, 1.3482rem + 0.4464vw, 1.75rem);   /* 23 → 28 */
  --step-3: clamp(1.625rem,  1.5rem    + 0.625vw,  2.0625rem); /* 26 → 33 */
  --step-4: clamp(1.875rem,  1.6964rem + 0.8929vw, 2.5rem);    /* 30 → 40 */
  --step-5: clamp(2.25rem,   2.0357rem + 1.0714vw, 3rem);      /* 36 → 48 */
  --step-6: clamp(2.5rem,    2.1786rem + 1.6071vw, 3.625rem);  /* 40 → 58 */
  --rad:4px;
  --sage-deep:#5E6A55;
}
.hero h1{font-size:var(--step-6);font-weight:390;letter-spacing:-.014em;line-height:1.08}
.hero.inner h1{font-size:var(--step-5)}
.h2{font-size:var(--step-4);line-height:1.14;margin:.9rem 0 1.1rem;letter-spacing:-.008em}
.disp{font-size:var(--step-5);font-weight:370;letter-spacing:-.012em;line-height:1.08;margin:1.1rem 0 0}
.h-stay{font-size:var(--step-4)}
h1 em,h2 em,.h2 em{font-style:normal}

/* --- 5.2 rhythm: varied, not uniform --- */
.section{padding-block:clamp(4rem, 3.5714rem + 2.1429vw, 5.5rem)}      /* 64 → 88 */
.section.sig{padding-block:clamp(5rem, 4.5rem + 2.5vw, 6.75rem)}       /* 80 → 108 */
.section.tight{padding-block:clamp(3.5rem, 3.3571rem + 0.7143vw, 4rem)}/* 56 → 64 */
.reveal{transform:translateY(9px)}
.reveal.d1{transition-delay:.06s}.reveal.d2{transition-delay:.12s}.reveal.d3{transition-delay:.18s}

/* --- 5.3 quiet rectangles --- */
.btn{border-radius:3px;font-weight:500;font-size:var(--t-small);letter-spacing:.014em;padding:.72rem 1.45rem;min-height:2.75rem;gap:.5rem}
.btn .arr{display:none}
.btn.sm{padding:.55rem 1.05rem;font-size:var(--t-label);min-height:2.5rem}
.heart{border-radius:3px}

/* --- 5.4 monospace retired from the interface --- */
.eyebrow{font-family:var(--sans);font-weight:600;font-size:var(--t-label);letter-spacing:.16em;color:var(--sage-deep)}
.eyebrow.center::before{background:var(--sage);opacity:.8}
.hero-eyebrow{font-family:var(--sans);font-weight:600;font-size:var(--t-label);letter-spacing:.18em}
.hero-eyebrow::before{width:30px}
.nav-phone{font-family:var(--sans);font-weight:500;font-size:var(--t-small);letter-spacing:.01em}
.badge{font-family:var(--sans);font-weight:600;font-size:var(--t-label);letter-spacing:.09em;border:none;border-radius:2px;padding:.32rem .6rem;background:rgba(251,248,241,.94)}
.chip-tag{font-family:var(--sans);font-weight:500;letter-spacing:.09em;border-radius:2px}
.park .meta{font-family:var(--sans);font-weight:600;font-size:var(--t-label);letter-spacing:.12em;color:var(--sage-deep)}
.park .price{font-family:var(--sans);font-size:var(--t-label);font-weight:500}
.listing .plot{font-family:var(--sans);font-weight:600;font-size:var(--t-label);letter-spacing:.13em;color:var(--sage-deep)}
.listing .gp{font-family:var(--serif);font-size:var(--t-3);font-weight:480;letter-spacing:-.01em;color:var(--yew)}
.listing .gp span{font-family:var(--sans);font-size:var(--t-label);font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-55)}
.listing .specs{font-family:var(--sans);font-size:var(--t-label);gap:.5rem}
.listing .specs span+span::before{content:"·";margin-right:.5rem;color:var(--sage)}
.listing .fee{font-family:var(--sans);font-size:var(--t-label)}
.listing .view{color:var(--yew)}
.park .view{color:var(--yew);font-weight:600}
.stat .num{font-family:var(--serif);font-weight:440;font-size:var(--t-1);letter-spacing:-.015em}
.stat .num sup{color:var(--sage-deep)}
.nolist .n{font-family:var(--serif);font-weight:460;color:var(--yew)}
.gal-nav .gcount{font-family:var(--sans);font-weight:500}
.numbers-foot a{color:var(--yew)}
.door span{color:var(--yew)}

/* links: the interface stops persuading */
.textlink{color:var(--yew);border-bottom:1px solid rgba(34,56,44,.3)}
.textlink:hover{border-color:var(--kiln);color:var(--peat)}
.textlink.light{color:var(--chalk);border-bottom-color:rgba(250,247,239,.5)}
.textlink.light:hover{border-color:var(--chalk);color:var(--chalk)}
.hero-ctas{align-items:center;gap:1.6rem}

/* --- 5.5 chip salad → one quiet line --- */
.access-row{gap:1rem;margin-top:.55rem}
.access-row span{border:none;background:none;padding:0;font-size:var(--t-label);color:var(--sage-deep);gap:.35rem}
.access-row svg{color:var(--sage-deep)}

/* --- manifesto, merged with the stats --- */
.manif-line{font-family:var(--serif);font-weight:390;font-size:var(--step-2);line-height:1.38;color:var(--yew);max-width:46rem;margin:0 auto;text-wrap:balance}
.manifesto .numbers-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.manifesto .numbers-foot{padding-bottom:0;margin-top:1.1rem}

/* --- the tools, as a list not a card park --- */
.tool-list{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(2.2rem,4.5vw,4rem);border-top:1px solid var(--line)}
.tool-row{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:1.1rem;padding:1.05rem .15rem;border-bottom:1px solid var(--line);text-decoration:none;transition:background .25s var(--ease)}
.tool-row:hover{background:rgba(34,56,44,.045)}
.tool-row b{font-family:var(--serif);font-size:var(--t-body);color:var(--yew);font-weight:470;white-space:nowrap}
.tool-row span{font-size:var(--t-label);color:var(--ink-70)}
.tool-row .tr-arr{color:var(--yew);font-weight:600;font-size:var(--t-small)}
@media(max-width:860px){.tool-list{grid-template-columns:1fr}.tool-row b{white-space:normal}}
@media(max-width:560px){.tool-row{grid-template-columns:1fr auto}.tool-row span{grid-column:1/-1;grid-row:2}}

/* --- 6.3 the reel: a slow film-strip of the communities --- */
.reel{overflow:hidden;width:100%;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.reel-track{display:flex;width:max-content;animation:reel-drift 52s linear infinite}
.reel:hover .reel-track,.reel:focus-within .reel-track,.reel.off .reel-track{animation-play-state:paused}
.reel-group{display:flex}
.reel-panel{flex:0 0 auto;width:clamp(280px,30vw,430px);margin-right:clamp(1.2rem,2.2vw,2rem);text-decoration:none;color:inherit}
.rp-ph{display:block;aspect-ratio:3/2;overflow:hidden;border-radius:var(--rad)}
.rp-ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) sepia(.08);transition:transform .9s var(--ease)}
.reel-panel:hover .rp-ph img{transform:scale(1.04)}
.rp-meta{display:block;padding:.95rem .1rem 0}
.rp-name{display:block;font-family:var(--serif);font-size:var(--t-3);color:var(--yew);font-weight:440;line-height:1.2}
.rp-where{display:block;font-size:var(--t-label);font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--sage-deep);margin-top:.3rem}
.rp-line{display:block;font-size:var(--t-label);color:var(--ink-70);margin-top:.5rem}
.reel-panel:focus-visible{outline:2px solid var(--yew);outline-offset:3px;border-radius:var(--rad)}
@keyframes reel-drift{to{transform:translateX(-50%)}}
.reel-foot{display:flex;gap:1.8rem;align-items:baseline;flex-wrap:wrap;margin-top:clamp(1.7rem,3vw,2.4rem)}
.reel-more{font-size:var(--t-label);color:var(--ink-55)}
@media(prefers-reduced-motion:reduce){
  .reel{overflow-x:auto;-webkit-mask-image:none;mask-image:none;padding-bottom:.5rem}
  .reel-track{animation:none}
  .reel-group[aria-hidden]{display:none}
  .reel-panel:first-child{margin-left:clamp(1.2rem,4vw,3rem)}
}

/* --- 6.4 the in-card flip-through --- */
.listing{position:relative}
.park{position:relative}
.card-link{color:inherit;text-decoration:none}
.card-link::after{content:"";position:absolute;inset:0;z-index:1;border-radius:var(--rad)}
.listing:focus-within,.park:focus-within{box-shadow:0 0 0 2px var(--yew)}
.card-link:focus{outline:none}
.cardgal{position:relative}
.cg-track{display:flex;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}
.cg-track::-webkit-scrollbar{display:none}
.cardgal .cg-track img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:start;scroll-snap-stop:always}
.listing:hover .cardgal img,.park:hover .cardgal img{transform:none}
.cg-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:40px;height:40px;border-radius:50%;border:1px solid rgba(34,56,44,.14);background:rgba(251,248,241,.92);color:var(--yew);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .25s,opacity .25s;padding:0}
.cg-btn:hover{background:#fff}
.cg-btn:focus-visible{outline:2px solid var(--yew);outline-offset:2px}
.cg-prev{left:.7rem}.cg-next{right:.7rem}
.cg-btn svg{width:18px;height:18px}
.cg-count{position:absolute;right:.7rem;bottom:.65rem;z-index:2;font-family:var(--sans);font-size:var(--t-label);font-weight:600;letter-spacing:.05em;color:var(--yew);background:rgba(251,248,241,.92);padding:.24rem .55rem;border-radius:2px}
@media(max-width:560px){.cg-btn{width:44px;height:44px}}

/* --- 7 nav: one door to the reading controls --- */
.a11y-wrap{position:relative;margin-left:.2rem}
.a11y-btn{width:40px;height:40px;border-radius:50%;border:1px solid currentColor;background:transparent;color:inherit;font-family:var(--sans);font-weight:600;font-size:var(--t-label);cursor:pointer;opacity:.8;transition:opacity .3s,background .3s;padding:0}
.a11y-btn:hover,.a11y-btn[aria-expanded="true"]{opacity:1;background:rgba(128,128,128,.18)}
.a11y-pop{position:absolute;top:calc(100% + .65rem);right:-6px;background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding: .8rem .9rem .65rem;box-shadow:0 18px 44px -22px rgba(29,27,22,.35);z-index:60}
.a11y-pop .a11y{margin-left:0}
.a11y-pop .a11y button{color:var(--yew);opacity:.85}
.a11y-hint{font-size:var(--t-label);letter-spacing:.05em;color:var(--ink-55);margin:.5rem 0 0;text-align:center;white-space:nowrap}
.nav:not(.scrolled):not(.solid) .a11y-pop{color:var(--peat)}

/* calmer card hover */
.listing:hover{transform:translateY(-3px);box-shadow:0 18px 38px -28px rgba(34,56,44,.38)}

/* the stay teaser breathes less */
#stay-teaser .hero-sub{margin-top:1.1rem}

/* mobile: reel panels sized to view */
@media(max-width:640px){.reel-panel{width:min(78vw,340px)}}
.hero h1.h-stay{font-size:var(--step-4)}
.hero-ctas .textlink{font-size:var(--t-small)}
/* v6: last mono holdouts out of the chrome */
.crumb{font-family:var(--sans);font-weight:600;font-size:var(--t-label);letter-spacing:.13em}
.toolbar label{font-family:var(--sans);font-weight:600;font-size:var(--t-label);letter-spacing:.12em;color:var(--sage-deep)}
.field label{font-family:var(--sans);font-weight:600;font-size:var(--t-label);letter-spacing:.13em;color:var(--sage-deep)}
.toolbar .count,#fCount{font-family:var(--sans);font-weight:500}
.toolbar #saleCount{font-family:var(--sans);font-weight:500;font-size:var(--t-label);color:var(--ink-70)}
.fchip{font-family:var(--sans);font-weight:500;font-size:var(--t-label);letter-spacing:.05em;text-transform:none;border-radius:3px;padding:.5rem 1rem}
.fchip:hover{border-color:var(--sage-deep)}
/* v6: property page furniture */
.prop-head h1{font-size:var(--step-5)}
.prop-price .q{font-family:var(--sans);font-weight:600;letter-spacing:.13em;color:var(--sage-deep)}
.prop-price .v{font-family:var(--serif);font-weight:460;letter-spacing:-.012em}
.fact .k{font-family:var(--sans);font-weight:600;letter-spacing:.12em;color:var(--sage-deep);display:block}
.fact .v{display:block}
.role{font-family:var(--sans)!important;font-weight:600;letter-spacing:.11em}
/* v6: the whole micro-label family leaves the mono, together */
.ring .t,.pet .br,.mgr .role,.spec-sheet .hd .t,.cfg-step .n,.qcount,
.foot-col .h,.side-card .docs .sz,.tt .d,.day .t,.tt .tm,
.chiprow .chip-tag,.plan-note,.plan-legend span{font-family:var(--sans)}
.ring .t,.pet .br,.mgr .role,.spec-sheet .hd .t,.foot-col .h{font-weight:600;letter-spacing:.12em}
/* v6: last sweep — labels to sans, results to serif, tables stay tabular */
.res .who,.v-chip,.steplist .s .w,.stamp,.workings summary,.tt .pil,.sl-count,
table.cmp tr.grp td,.v-counter,.step::before{font-family:var(--sans)}
.res .who,.steplist .s .w,.workings summary,.tt .pil,table.cmp tr.grp td{font-weight:600;letter-spacing:.11em}
.step::before{font-weight:600;letter-spacing:.08em}
.tool-out .v{font-family:var(--serif);font-weight:460;letter-spacing:-.01em}
table.cmp thead .pr{font-family:var(--serif);font-weight:480;font-size:var(--t-small)}
.spec-sheet .tot .v{font-family:var(--serif);font-weight:480}
.lede{font-size:var(--step-0);line-height:1.6}
.sec-head .lede{padding-bottom:.35rem}

/* ================================================================
   v6.1 — SCALE CORRECTED FOR THE REAL AUDIENCE (zoomed laptops)
   Another notch down; photos sell, text doesn't.
   ================================================================ */
:root{
  --step-6: clamp(2.375rem, 2.125rem  + 1.25vw,   3.25rem);   /* 38 → 52 */
  --step-5: clamp(2.125rem, 1.9464rem + 0.8929vw, 2.75rem);   /* 34 → 44 */
  --step-4: clamp(1.75rem,  1.6071rem + 0.7143vw, 2.25rem);   /* 28 → 36 */
  --step-3: clamp(1.5625rem,1.4554rem + 0.5357vw, 1.9375rem); /* 25 → 31 */
}
.stat .num{font-size:var(--t-2)}
.hero-sub{font-size:var(--t-small)}
.hero .container{padding-bottom:clamp(2.4rem,5vw,3.8rem)}

/* --- the glance block: map + facts, instead of the bland text slab --- */
.glance{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.glance-map{display:flex;justify-content:center}
.ukmap{width:100%;max-width:340px;height:auto}
.ukmap text{font-family:var(--sans);font-size:var(--t-label);font-weight:600;fill:var(--yew);letter-spacing:.02em}
.ukmap .ukref text{font-weight:400;font-size:var(--t-label);fill:var(--sage-deep);font-style:italic;letter-spacing:.03em}
.mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem 2.2rem;margin-top:1.5rem;border-top:1px solid var(--line);padding-top:1.35rem}
.mini-stats .stat{padding:0;text-align:left}
.mini-stats .num{font-size:var(--t-2)}
.mini-stats .lbl{margin-top:.25rem;font-size:var(--t-label)}
.glance-foot{font-size:var(--t-label);color:var(--ink-55);margin-top:1.2rem}
.glance-foot a{color:var(--yew)}
@media(max-width:900px){.glance{grid-template-columns:1fr}.glance-map{order:2;margin-top:1.4rem}.ukmap{max-width:300px}}

/* --- reel: hand controls + JS drive --- */
.reel.js{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.reel.js::-webkit-scrollbar{display:none}
.reel.js .reel-track{animation:none}
.reel.js .reel-group[aria-hidden]{display:flex}
.reel-btns{margin-left:auto;display:flex;gap:.55rem}
.reel-panel{width:clamp(250px,25vw,370px)}
.rp-name{font-size:var(--t-3)}
.rp-line{font-size:var(--t-label)}
.reel-btns .gbtn{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--yew);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .3s,border-color .3s;padding:0}
.reel-btns .gbtn:hover{background:var(--parchment);border-color:var(--sage-deep)}
.reel-btns .gbtn svg{width:22px;height:22px}
/* v6.1b: the desktop nav survives heavy zoom — our audience zooms */
@media(max-width:1000px){
  .nav-links{gap:.62rem}
  .nav-links a{font-size:var(--t-label)}
  .nav .btn{padding:.55rem .95rem;font-size:var(--t-label);min-height:2.5rem}
  .brand .word{font-size:var(--t-3)}
  .a11y-btn{width:36px;height:36px}
}
/* v6.1c: width-aware collapse under enlarged text — tighten first, burger only when needed */
html[data-textsize] .nav-links{gap:.62rem}
html[data-textsize] .nav-links a{font-size:var(--t-label)}
html[data-textsize] .nav-phone{display:none}
html[data-textsize] .nav .btn{padding:.55rem .95rem;font-size:var(--t-label);min-height:2.5rem}
@media(max-width:1060px){html[data-textsize="lg"] .nav-links{display:none}html[data-textsize="lg"] .burger{display:block}}
@media(max-width:1150px){html[data-textsize="xl"] .nav-links{display:none}html[data-textsize="xl"] .burger{display:block}}

/* ================================================================
   v7 — PHOTOS FIRST, BASICS ON ONE SCREEN (Brief 7.0)
   ================================================================ */

/* --- reel arrows, ON the strip --- */
.reel-wrap{position:relative}
.reel-arr{position:absolute;top:36%;transform:translateY(-50%);z-index:3;width:52px;height:52px;border-radius:50%;border:1px solid rgba(34,56,44,.16);background:rgba(251,248,241,.95);color:var(--yew);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 12px 30px -16px rgba(29,27,22,.4);transition:background .25s;padding:0}
.reel-arr:hover{background:#fff}
.reel-arr:active{transform:translateY(-50%) scale(.94)}
.reel-arr:focus-visible{outline:2px solid var(--yew);outline-offset:2px}
.reel-prev{left:clamp(.9rem,2.5vw,2.2rem)}
.reel-next{right:clamp(.9rem,2.5vw,2.2rem)}
.reel-arr svg{width:24px;height:24px}
@media(max-width:640px){.reel-arr{width:46px;height:46px;top:31%}}

/* --- property title bar (no hero, photos come first) --- */
.prop-bar{background:var(--bone);padding:clamp(6.2rem,9rem,8rem) 0 1.5rem;padding-top:calc(76px + 1.9rem);border-bottom:1px solid var(--line)}
.prop-bar .crumb{color:var(--sage-deep)}
.prop-bar .crumb a{color:var(--sage-deep)}
.prop-bar .crumb a:hover{color:var(--yew)}
.prop-bar-row{display:flex;justify-content:space-between;align-items:flex-end;gap:1.6rem;flex-wrap:wrap;margin-top:.4rem}
.prop-bar h1{font-size:var(--step-3);color:var(--yew);line-height:1.15;font-weight:420;letter-spacing:-.008em}
.prop-bar .where{font-size:var(--t-small);color:var(--ink-70);margin-top:.5rem;display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.prop-bar .where .badge{position:static;background:rgba(124,135,112,.14)}
.prop-photos{padding-block:clamp(1.6rem,3vw,2.4rem)}

/* --- details: features + floor plan side by side, stacking politely --- */
.det-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(2rem,4vw,3.4rem);align-items:start;margin-top:clamp(1.6rem,3vw,2.4rem)}
.kf.one-col{columns:1;margin-block:.2rem}
@media(max-width:1020px){.det-grid{grid-template-columns:1fr}}
html[data-textsize] .det-grid{grid-template-columns:1fr}
html[data-textsize] .facts{grid-template-columns:repeat(3,1fr)}
html[data-textsize] .fact:nth-child(3n){border-right:none}

/* --- description: one readable column --- */
.prose-nar{max-width:50rem}
.prose-nar .chapter p{margin-bottom:1rem}

/* --- the people row: no more sidebars, ever --- */
.people-row{display:grid;grid-template-columns:1.15fr 1fr .85fr;gap:clamp(1.2rem,2.5vw,2rem);align-items:stretch}
.p-card{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--rad);padding:1.5rem 1.6rem;display:flex;flex-direction:column;gap:.75rem}
.p-card .h{font-family:var(--serif);font-size:var(--t-body);color:var(--yew);font-weight:470;margin:0}
.p-card p{font-size:var(--t-small);color:var(--ink-70);margin:0}
.p-card .p-note{font-size:var(--t-label);color:var(--ink-55)}
.p-card .tel{font-weight:600;color:var(--yew);text-decoration:none;font-size:var(--t-small)}
.p-ctas{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap;margin-top:auto;padding-top:.5rem}
.mgr-lite{display:flex;gap:1rem;align-items:center}
.mgr-lite .ava{width:54px;height:54px;border-radius:50%;background:var(--yew);color:var(--chalk);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:var(--t-3);flex-shrink:0}
.mgr-lite .role{display:block;font-size:var(--t-label);font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--sage-deep)}
.mgr-lite b{font-family:var(--serif);font-size:var(--t-3);color:var(--yew);font-weight:460;line-height:1.2}
@media(max-width:1020px){.people-row{grid-template-columns:1fr}}
html[data-textsize] .people-row{grid-template-columns:1fr}
.p-card .docs a{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:.5rem 0;border-bottom:1px solid var(--line-soft);text-decoration:none;color:var(--yew);font-weight:500;font-size:var(--t-label)}
.p-card .docs a:hover{color:var(--peat)}
.p-card .docs .sz{font-size:var(--t-label);color:var(--ink-55);font-weight:400;text-align:right}

/* ================================================================================
   v8 — THE TYPE SYSTEM (Brief 8.0)
   Seven sizes. Two weights. Serif on headings and prices only.
   Measured correction: was 64 sizes / 14 weights across 20 pages.
   This block is authoritative and appended last — it wins every tie.
   ================================================================================ */

:root{
  /* seven steps, fluid 390 → 1440px, nothing below 13px anywhere */
  --t-hero:  clamp(2rem,    1.6786rem + 1.6071vw, 2.75rem);   /* 32 → 44 */
  --t-1:     clamp(1.6875rem,1.5089rem + 0.8929vw, 2.125rem); /* 27 → 34 */
  --t-2:     clamp(1.4375rem,1.3661rem + 0.3571vw, 1.6875rem);/* 23 → 27 */
  --t-3:     clamp(1.1875rem,1.1518rem + 0.1786vw, 1.3125rem);/* 19 → 21 */
  --t-body:  clamp(1.125rem, 1.1027rem + 0.1116vw, 1.1925rem);/* 18 → 19.08 — clears the ≥19px floor */
  --t-small: 1rem;                                            /* 16 static */
  --t-label: 0.8125rem;                                       /* 13 static */
  /* two weights, full stop */
  --w-normal:400;
  --w-strong:600;
  /* four tracking values */
  --tr-hero:-0.012em; --tr-flat:0; --tr-label:0.08em; --tr-btn:0.015em;
}

/* ---- headings: one size each, one weight, serif ---- */
h1,h2,h3,h4,.h2,.h3,.disp{
  font-family:var(--serif);
  font-weight:var(--w-normal);
  letter-spacing:var(--tr-flat);
  line-height:1.16;
  color:var(--yew);
}
.hero h1,h1{font-size:var(--t-1)}
.hero.home h1{font-size:var(--t-hero);letter-spacing:var(--tr-hero);line-height:1.1}
h2,.h2,.disp{font-size:var(--t-2);margin:.7rem 0 .9rem}
h3,.h3{font-size:var(--t-3);line-height:1.25}
h4{font-size:var(--t-3);line-height:1.25}
h1 em,h2 em,h3 em,.h2 em{font-style:normal;font-weight:inherit}

/* the one display moment: only the homepage hero */
.hero:not(.home):not(.inner) h1{font-size:var(--t-1)}
.h-stay{font-size:var(--t-2)!important;font-weight:var(--w-normal)!important}

/* CTA bands are sections, not titles */
.cta-band h2{font-size:var(--t-2);font-weight:var(--w-normal);letter-spacing:var(--tr-flat);max-width:22em}

/* ---- body and the small stuff ---- */
body{font-size:var(--t-body);line-height:1.6;font-weight:var(--w-normal)}
p,li,td,th,dd,dt,figcaption,label,input,select,textarea,summary{letter-spacing:var(--tr-flat)}
.lede{font-size:var(--t-3);line-height:1.5;letter-spacing:var(--tr-flat);color:var(--ink-70)}
.hero-sub{font-size:var(--t-3);line-height:1.5}
.eyebrow,.hero-eyebrow,.crumb,.role,.mgr-lite .role,.fact .k,.prop-price .q,
.toolbar label,.field label,.foot-col .h,.listing .plot,.park .meta,.rp-where,
.ring .t,.pet .br,.spec-sheet .hd .t,.side-card .docs .sz,.p-card .docs .sz,
.badge,.chip-tag,.tt .d,.res .who,.steplist .s .w,.tt .pil{
  font-family:var(--sans);font-size:var(--t-label);font-weight:var(--w-strong);
  letter-spacing:var(--tr-label);line-height:1.4}
.gp span,.listing .gp span{font-size:var(--t-label);font-weight:var(--w-strong);letter-spacing:var(--tr-label)}

/* ---- WEIGHT PURGE: nothing but 400 and 600 renders anywhere ---- */
[style*="font-weight:3"],[style*="font-weight:4"],[style*="font-weight: 3"],[style*="font-weight: 4"]{font-weight:var(--w-normal)!important}
.brand .word,.rp-name,.tool-row b,.p-card .h,.mgr-lite b,.door b,.ledger-head .serif,
.stat .num,.nolist .n,.prop-price .v,.listing .gp,.tool-out .v,.spec-sheet .tot .v,
table.cmp thead .pr,.park h3,.listing h3,.manif-line,.foot-brand .word{
  font-family:var(--serif);font-weight:var(--w-normal);letter-spacing:var(--tr-flat)}
b,strong,th,.fact .v,.listing .view,.park .view,.textlink,.tr-arr{font-weight:var(--w-strong)}

/* ---- mono retired everywhere, for good. Figures get tabular sans instead ---- */
.mono,.ledger td:last-child,.ledger-head .mono,.dtable td.num,.dtable th.num,
.workings td:last-child,.spec-sheet .line span:last-child,.configure .px,
.v-counter,.v-chip,.stamp,.sl-count,.qcount,.plan-legend,.plan-note,
.tt .tm,.day .t,.a11y-hint,.gcount,.cg-count,.toolbar .count,
.nav-phone,.tel,a.tel,.dchip,.tag,.rank,.sc,.n,.px,.workings summary,
.step::before,table.cmp tr.grp td,.numbers-foot,.glance-foot,.pledge,
.foot-notes,.foot-legal,.numbers-grid .lbl,.mini-stats .lbl{font-family:var(--sans)}
.ledger td:last-child,.dtable td.num,.dtable th.num,.workings td:last-child,
.spec-sheet .line span:last-child,.stat .num,.nolist .n,.prop-price .v,
.listing .gp,.tool-out .v,.spec-sheet .tot .v,.ledger tr.total td:last-child{
  font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1}

/* ---- sizes: everything lands on a step ---- */
.stat .num,.mini-stats .num,.nolist .n,.prop-price .v,.tool-out .v,.spec-sheet .tot .v{font-size:var(--t-2)}
.listing .gp,.rp-name,.park h3,.listing h3,.tool-row b,.p-card .h,.mgr-lite b,.door b,.ledger-head .serif{font-size:var(--t-3)}
.manif-line{font-size:var(--t-2);line-height:1.4}
.stat .lbl,.mini-stats .lbl,.park p,.listing p.teaser,.listing .where,.listing .specs,
.rp-line,.tool-row span,.p-card p,.res q,.ledger .item b,.fact .v,.spec,
.access-row span,.park .price,.park .covenant,.listing .fee,.listing .view,.park .view{
  font-size:var(--t-small);line-height:1.45}
.ledger .item span,.numbers-foot,.glance-foot,.pledge,.foot-notes,.foot-legal,
.plan-note,.plan-legend,.p-card .p-note,.a11y-hint,.reel-more,.cg-count,.gcount{
  font-size:var(--t-label);line-height:1.5;letter-spacing:var(--tr-flat)}
.foot-col a,.mobile-menu a,.nav-links a,.docs a,.p-card .docs a{font-size:var(--t-small);letter-spacing:var(--tr-flat)}
.mobile-menu a{font-family:var(--sans);font-size:var(--t-3)}
.btn,.fchip,.tab,button.textlink{font-size:var(--t-small);font-weight:var(--w-strong);letter-spacing:var(--tr-btn);line-height:1}
select,input,textarea{font-size:var(--t-small);font-family:var(--sans);line-height:1.4}
.sr,.sr-only{font-family:var(--sans)}

/* ---- leading set explicitly where it was inheriting `normal` ---- */
.btn,.fchip,.a11y-btn,.gal-all,.qopt,.gbtn,.reel-arr,.cg-btn,.heart{line-height:1}

/* ---- the last inline-style survivors on dark grounds keep their colour ---- */
.hero h1,.hero h2,.cta-band h2,.onelevel h2,#onelevel h2,.stay h1,.stay h2{color:var(--chalk)}
.hero.inner h1,.hero h1{color:var(--chalk)}
.prop-bar h1{color:var(--yew);font-size:var(--t-1)}

/* --- v8b: the stragglers, tracked down by census and closed out --- */
/* every remaining weight lands on 400 or 600 */
h1,h2,h3,h4,h5,h6,.h2,.h3,p,li,td,dd,dt,span,div,a,figcaption,q,summary,b,strong,em,i,small{
  font-synthesis-weight:none}
h1,h2,h3,h4,.h2,.h3,.serif,p.serif,span.serif,.disp{font-weight:var(--w-normal)!important}
a,span,div,td,p,li,dd,figcaption,q{font-weight:inherit}
.nav-links a,.nav-links a.active,.nav-phone,a.tel,.tel,th,th.num,td.num,b,strong,
.price,.park .price,.count,.toolbar .count,.gcount,.cg-count,.n,.nolist .n,.px,
dt,.dtable th,.v,.tool-out .v,summary,.q-list summary,.p-card .h,.foot-col .h,
.sl-count,.rank,.sc,.tag,.dchip,.v-chip,.stamp{font-weight:var(--w-strong)!important}

/* the last of the mono, by name */
.px,.n,.tag,.tel,a.tel,.rank,.sc,.dchip,.v,.v.pos,.dtable th,.dtable td,
th,td,.workings td,.tt .tm,.mono,span.mono,p.mono,a.mono,td.mono{font-family:var(--sans)!important}

/* the last off-scale sizes */
.brand .word{font-size:1.5rem;line-height:1}
.foot-brand .word{font-size:var(--t-2);line-height:1}
.nav-phone{font-size:var(--t-small)}
.btn,.btn.ghost,.btn.sm{font-size:var(--t-small)}
.btn.sm{font-size:var(--t-label)}
.sl-count{font-size:var(--t-label);line-height:1}
.sub,p.sub{font-size:var(--t-small)}
.gal-strip figcaption,.gal figcaption{font-size:var(--t-small);letter-spacing:var(--tr-flat)}
/* v8c: last three off-scale families */
.amen b,.tt b,.dchip b,.d b,.day b,.hub b,.pet b{font-size:var(--t-small);font-weight:var(--w-strong);line-height:1.35}
table.cmp thead .nm{font-size:var(--t-small)}
.brand .word{font-size:var(--t-2)}
.hearth h3,#hearth h3,h3.hearth{font-size:var(--t-2)}
/* v8d: the final four off-scale values, closed */
.gal figcaption,.gal-strip figcaption,figcaption{font-size:var(--t-small)}
.tt b,.tt .d b,.sc b{font-size:var(--t-small)}
.hearth-card h3,.amen-lead h3,.big h3{font-size:var(--t-2)}
h3,.h3,h4{font-size:var(--t-3)!important}
.disp,h2,.h2,.cta-band h2{font-size:var(--t-2)!important}
h1{font-size:var(--t-1)!important}
.hero.home h1{font-size:var(--t-hero)!important}
[class*="mono"],.tel,.px,.n,.v{font-weight:var(--w-strong)}
span[style*="font-weight"],a[style*="font-weight"],div[style*="font-weight"]{font-weight:var(--w-strong)!important}
/* v8e: the last three off-scale values */
.gs-img+figcaption,.gal-strip figure figcaption{font-size:var(--t-small)!important}
.tt b,.tt .tm,.sc,.sc b,.rank{font-size:var(--t-small)!important}
.res .who,.dchip,.dchip b{font-size:var(--t-label)!important}
*{font-synthesis-weight:none}
/* v8f: census-clean — the final fourteen */
.ledger td,.ledger td:last-child,.ledger tr.total td,.ledger tr.total td:last-child,
.side-card .docs a,.p-card .docs a,.docs a,p.h,.cmp .nm,table.cmp thead .nm{
  font-weight:var(--w-strong)!important}
p.h{font-size:var(--t-3)!important;font-family:var(--serif);line-height:1.25}
table.cmp thead .nm,.cmp .nm{font-size:var(--t-small)!important}
/* v8g: SVG diagram labels belong to the sans, never the mono */
svg text,.plan-wrap svg text,.floorplan svg text{font-family:var(--sans)}
.plan-wrap svg,.floorplan svg{font-weight:var(--w-strong)}
/* v8h: floor plans must be readable — they were rendering room labels at 3.2px */
.plan-row{margin-top:clamp(2rem,4vw,3rem)}
.plan-row .eyebrow{margin-bottom:.9rem}
.floorplan{max-width:44rem;overflow-x:auto}
.floorplan svg{min-width:26rem}          /* below this, labels fall under 9px */
.det-grid .floorplan{max-width:none}
@media(max-width:760px){.floorplan{-webkit-overflow-scrolling:touch}}
/* v8i: the plan gets its own room */
.det-grid.one{grid-template-columns:1fr}
.kf.two-col{columns:2;column-gap:2.5rem}
@media(max-width:760px){.kf.two-col{columns:1}}
.floorplan{max-width:46rem}
.floorplan svg{min-width:34rem}
/* v8j: the site plan gets the same legibility floor as the floor plan */
.plan-wrap{overflow-x:auto}
.plan-wrap svg{min-width:40rem}
/* v8k: a button-shaped link still needs a finger-sized target (WCAG 2.5.8) */
button.textlink{min-height:44px;display:inline-flex;align-items:center;background:none;border:none;cursor:pointer;padding:0;color:var(--yew);border-bottom:1px solid rgba(34,56,44,.3)}
/* v8l: say so when a diagram scrolls — older users shouldn't have to discover it */
.plan-wrap,.floorplan{scroll-snap-type:x proximity}
@media(max-width:820px){
  .plan-wrap::after,.floorplan::after{content:"Swipe the plan sideways to see it all";display:block;
    font-family:var(--sans);font-size:var(--t-label);font-weight:var(--w-strong);letter-spacing:var(--tr-label);
    color:var(--sage-deep);padding:.6rem .1rem 0;position:sticky;left:0}
}

/* ================================================================
   v8m — the visual review fixes (20 pages × 4 conditions, by eye)
   ================================================================ */

/* headings and ledes top-align: the old bottom-align left a gap at large text */
.sec-head{align-items:start}
.sec-head .lede{padding-bottom:0;padding-top:.2rem}

/* hero chip rows: one quiet line, not five boxes */
.chiprow.quiet{display:flex;flex-wrap:wrap;gap:0;margin-top:.9rem}
.chiprow.quiet .chip-tag{background:none;border:none;padding:0;backdrop-filter:none;
  color:rgba(250,247,239,.86);font-size:var(--t-label);font-weight:var(--w-strong);letter-spacing:var(--tr-label)}
.chiprow.quiet .chip-tag:not(:last-child)::after{content:"·";margin:0 .7rem;opacity:.55}

/* tabs match the button system: rectangles, not pills */
.tab,.pill-nav a,.pill-nav button{border-radius:3px}

/* metadata separators must not orphan onto a new line */
.listing .specs span+span::before{content:none}
.listing .specs span:not(:last-child)::after{content:" ·";color:var(--sage);margin-left:.1rem}

/* spec sheet header collided with its title at enlarged text */
.spec-sheet .hd{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem}
.spec-sheet .hd .t{display:block}
.spec-sheet .tot{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}

/* Kiln is a rare signal (Brief 5.0), never a data colour */
table.cmp td.diff,table.cmp .pr,.dtable td.num,.dtable th.num,td.num,
.tt b,.dchip b,.amen b,.d b,.day b,.pet b,.hub b,.w,span.w,a.tel,.tel{color:var(--yew)}
.tt b,.dchip b,.amen b,.d b{color:var(--peat)}
/* the guide's week markers are labels, not signals */
.steplist .s .w,span.w{color:var(--sage-deep)}
/* Kiln keeps only its two legitimate jobs: negative figures, and the compare price */
.honest td.num,td.num.neg{color:var(--kiln)}
/* v8n: a long intro shouldn't strand a short heading — stack when it will read better */
.sec-head{grid-template-columns:1fr 1.05fr;gap:clamp(1.6rem,3vw,3rem)}
.sec-head>div:first-child{max-width:22em}
@media(max-width:1020px){.sec-head{grid-template-columns:1fr;gap:1rem}}
/* v8o: no narrow side column survives enlarged text — the Brief 7.0 rule, applied everywhere */
html[data-textsize] .prop-grid{grid-template-columns:1fr}
html[data-textsize] .prop-side{position:static}
@media(max-width:1180px){.prop-grid{grid-template-columns:1.35fr .65fr}}
@media(max-width:1020px){.prop-grid{grid-template-columns:1fr}.prop-side{position:static}}
/* the rooms table reads as rows, never as two crushed columns */
.side-card p{display:flex;justify-content:space-between;gap:1.2rem;align-items:baseline}
.side-card p>span:last-child{text-align:right;white-space:nowrap}
html[data-textsize] .side-card p{flex-wrap:wrap;gap:.2rem 1.2rem}

/* ================================================================
   v9 — MY DREEYM: the portal, and its door in the nav
   ================================================================ */

/* --- the nav door --- */
.mydm{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:inherit;
  border:1px solid currentColor;border-radius:3px;padding:.5rem .8rem;min-height:2.5rem;
  font-size:var(--t-small);font-weight:var(--w-strong);letter-spacing:var(--tr-btn);line-height:1;
  opacity:.85;transition:opacity .3s,background .3s;white-space:nowrap;margin-left:.4rem}
.mydm:hover,.mydm:focus-visible{opacity:1;background:rgba(128,128,128,.16)}
.mydm svg{width:17px;height:17px;flex-shrink:0;fill:none;stroke:currentColor}
.mydm.has svg{fill:var(--kiln);stroke:var(--kiln)}
.mydm .sl-count{display:inline-flex;align-items:center;justify-content:center;
  min-width:1.35rem;height:1.35rem;padding:0 .3rem;border-radius:999px;
  background:var(--yew);color:var(--chalk);font-size:var(--t-label);font-weight:var(--w-strong);line-height:1}
.nav:not(.scrolled):not(.solid) .mydm .sl-count{background:var(--chalk);color:var(--yew)}
@media(max-width:1240px){.mydm .mydm-t{display:none}.mydm{padding:.5rem .6rem}}
@media(max-width:840px){.mydm{margin-left:auto;margin-right:.2rem}}
html[data-textsize] .mydm .mydm-t{display:none}
html[data-textsize] .mydm{padding:.5rem .6rem}

/* --- the portal --- */
.mydm-actions{display:flex;gap:.7rem;flex-wrap:wrap}
.prop-bar .where{max-width:44rem}
.mydm-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.2rem,2.5vw,2rem);align-items:start}
@media(max-width:940px){.mydm-grid{grid-template-columns:1fr}}
html[data-textsize] .mydm-grid{grid-template-columns:1fr}

.mydm-card{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--rad);padding:clamp(1.3rem,2.5vw,1.8rem)}
.mydm-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  border-bottom:1px solid var(--line);padding-bottom:.8rem;margin-bottom:1rem}
.mydm-head .h2{margin:0;font-size:var(--t-3)!important}
.mydm-n{font-size:var(--t-label);font-weight:var(--w-strong);letter-spacing:var(--tr-label);color:var(--sage-deep);white-space:nowrap}
.mydm-foot{display:flex;gap:1.4rem;flex-wrap:wrap;margin-top:1.1rem;padding-top:.9rem;border-top:1px solid var(--line-soft)}

.mydm-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  padding:.7rem 0;border-bottom:1px solid var(--line-soft)}
.mydm-row:last-child{border-bottom:none}
.mydm-row-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.mydm-row-t{font-family:var(--serif);font-size:var(--t-3);color:var(--yew);text-decoration:none;font-weight:var(--w-normal)}
.mydm-row-t:hover{color:var(--peat);text-decoration:underline}
.mydm-row-s{font-size:var(--t-small);color:var(--ink-70)}
.mydm-rm{background:none;border:none;cursor:pointer;color:var(--ink-55);font-family:var(--sans);
  font-size:var(--t-small);font-weight:var(--w-strong);min-height:44px;padding:0 .2rem;white-space:nowrap}
.mydm-rm:hover{color:var(--kiln);text-decoration:underline}

.mydm-lead{font-family:var(--serif);font-size:var(--t-2);color:var(--yew);line-height:1.25;margin:0 0 .5rem}
.mydm-lead a{color:inherit}
.mydm-note{font-size:var(--t-small);color:var(--ink-70);margin:.35rem 0 0;line-height:1.5}
.mydm-lines{margin-top:.4rem}
.mydm-line{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;
  border-bottom:1px solid var(--line-soft);font-size:var(--t-small)}
.mydm-total{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  margin-top:.7rem;padding-top:.7rem;border-top:1px solid var(--line)}
.mydm-total b{font-family:var(--serif);font-size:var(--t-2);color:var(--yew);font-weight:var(--w-normal)}

/* --- empty state: four doors, not a dead end --- */
.mydm-start{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(2rem,4vw,3.5rem);
  border-top:1px solid var(--line);margin-top:1.6rem;max-width:60rem}
.mydm-startcard{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:.3rem 1rem;
  padding:1rem .15rem;border-bottom:1px solid var(--line);text-decoration:none;transition:background .25s var(--ease)}
.mydm-startcard:hover{background:rgba(34,56,44,.045)}
.mydm-startcard b{font-family:var(--serif);font-size:var(--t-3);color:var(--yew);font-weight:var(--w-normal)}
.mydm-startcard span:not(.tr-arr){grid-column:1;font-size:var(--t-small);color:var(--ink-70)}
.mydm-startcard .tr-arr{grid-row:1;color:var(--yew);font-weight:var(--w-strong)}
@media(max-width:760px){.mydm-start{grid-template-columns:1fr}}

/* --- what happens next --- */
.mydm-next{margin-top:clamp(2rem,4vw,3rem);padding-top:clamp(1.8rem,3.5vw,2.6rem);border-top:1px solid var(--line)}
.mydm-next-actions{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:1.4rem}
.mydm-privacy{font-size:var(--t-label);color:var(--ink-55);margin-top:1.4rem;max-width:46rem;line-height:1.55}

@media print{.mydm-next-actions,.mydm-actions,.mydm-rm,.mydm-foot{display:none!important}
  .mydm-grid{grid-template-columns:1fr}.mydm-card{border:1px solid #999;break-inside:avoid}}
/* v9a: [hidden] must beat the badge's own display rule */
.sl-count[hidden],.mydm .sl-count[hidden]{display:none!important}
/* v9a: the starting doors — explicit placement, or the arrow steals row 1 */
.mydm-startcard{grid-template-columns:1fr auto;grid-template-areas:"title arrow" "desc arrow"}
.mydm-startcard b{grid-area:title}
.mydm-startcard span:not(.tr-arr){grid-area:desc;grid-column:auto}
.mydm-startcard .tr-arr{grid-area:arrow;grid-row:auto;align-self:center}
