/* Combined by _source/bundle_assets.py from: assets/fonts/fonts.css, assets/marketing.css, assets/buy.css, assets/area.css */
/* The site's text fonts, served from the site itself (3.2.18) instead of Google Fonts: faster (no extra connection to
   another server), private (no request to Google on every page) and still working if Google is blocked or slow.
   Latin characters only (English and Kiswahili). Licences (SIL Open Font License) are in assets/fonts/licenses/.
   Antonio, the headline font, is declared in site-type.css. */
@font-face{font-family:"Inter";font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/inter-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-display:swap;font-weight:300 700;src:url(fonts/cormorant-garamond-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-display:swap;font-weight:300 700;src:url(fonts/cormorant-garamond-latin-wght-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-display:swap;font-weight:300;src:url(fonts/barlow-condensed-latin-300-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-display:swap;font-weight:500;src:url(fonts/barlow-condensed-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-display:swap;font-weight:600;src:url(fonts/barlow-condensed-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* The Haven Group — Marketing area
   Matches the visual language of list-with-us.html */
:root{
  --ink:#171515;--body:#3f3a37;--muted:#69615b;--faint:#6a625b;
  --wine:#7c0b19;--red:#a6122b;--red2:#b71935;--rose:#8f3d48;
  --cream:#f6f2ed;--line:#d8d0c8;--white:#fff;
  --condensed:'Barlow Condensed',Barlow Condensed Fallback,sans-serif;--sans:Inter,Inter Fallback,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:70px}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%;display:block}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}

/* Top bar */
.top{height:56px;border-bottom:1px solid rgba(164,17,42,.26);display:flex;align-items:center;justify-content:space-between;padding:0 4%;position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(8px)}
.brand,.top nav a{white-space:nowrap}
.brand{text-decoration:none;font:500 12px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:#6a0913}
.top nav{display:flex;gap:28px}
.top nav a{text-decoration:none;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#6d655f;padding:6px 0;border-bottom:1px solid transparent;transition:color .25s,border-color .25s}
.top nav a:hover,.top nav a[aria-current="page"]{color:var(--wine);border-color:var(--red)}

/* Shared type */
.kicker{font:600 11px/1.2 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:#8e1820}
.h-display{font:300 clamp(46px,8vw,118px)/.84 var(--condensed);text-transform:uppercase;color:var(--rose);letter-spacing:.012em;margin:0}
.h-display strong{display:block;font-weight:550;color:#5f2229}
.lead{font-size:clamp(16px,1.35vw,19px);line-height:1.75;color:var(--body);max-width:640px}
.section-title{font:300 clamp(40px,4.6vw,68px)/.9 var(--condensed);text-transform:uppercase;color:var(--wine);margin:10px 0 0}

/* Buttons (same shape as .cta on list-with-us) */
.cta{height:50px;min-width:260px;padding:0 24px;display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:linear-gradient(90deg,#c81d3b,#b30f2b);color:#fff;text-decoration:none;text-transform:uppercase;font:500 13px/1 var(--condensed);letter-spacing:.26em;border-radius:0 0 16px 0;transition:background .3s,transform .3s}
.cta .plus{font:300 32px/1 var(--condensed);letter-spacing:0;transition:transform .35s}
.cta:hover,.cta:focus-visible{background:#760812;transform:translateX(5px)}
.cta:hover .plus{transform:rotate(90deg)}
.cta.ghost{background:transparent;color:var(--wine);border:1px solid var(--red);border-radius:0 0 16px 0}
.cta.ghost:hover{background:var(--wine);color:#fff}

/* Hub hero */
.hub-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);min-height:640px;background:linear-gradient(90deg,#fbfbfb,#fff 50%,#fbfbfb)}
.hub-hero:before{content:'H';position:absolute;left:30%;top:-18%;font:600 720px/.9 var(--condensed);color:rgba(70,70,70,.05);transform:scaleX(.7);pointer-events:none}
.hub-copy{position:relative;z-index:2;padding:72px 5% 72px 10.5%;display:flex;flex-direction:column;justify-content:center}
.accent{width:60px;height:4px;background:var(--red2);margin:0 0 28px}
.hub-copy .lead{margin:34px 0 40px}
.hub-actions{display:flex;flex-wrap:wrap;gap:18px}
.hub-image{position:relative;min-height:380px}
.hub-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:30% 50%}
.hub-image:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.9),rgba(255,255,255,0) 22%)}

/* Journey strip */
.journey{background:var(--cream);padding:76px 10.5%}
.journey-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:42px;border-top:1px solid var(--line)}
.journey-step{padding:28px 26px 8px 0;position:relative}
.journey-step + .journey-step{padding-left:26px;border-left:1px solid var(--line)}
.journey-step b{font:300 48px/1 var(--condensed);color:var(--red2)}
.journey-step h3{font:500 14px/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;margin:12px 0 8px;color:var(--ink)}
.journey-step p{margin:0 0 6px;font-size:14px;line-height:1.7;color:var(--muted)}

/* Topic cards on hub */
.topics{padding:84px 10.5% 40px}
.topic-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 56px;margin-top:44px;border-top:1px solid var(--line)}
.topic-card{display:grid;grid-template-columns:168px 1fr 28px;gap:10px 22px;align-items:center;padding:30px 4px;border-bottom:1px solid var(--line);text-decoration:none;position:relative;transition:background .3s,padding .3s}
.topic-card .thumb{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:var(--cream)}
.topic-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.22,.61,.36,1)}
.topic-card .thumb em{position:absolute;left:8px;bottom:4px;font:600 26px/1 var(--condensed);font-style:normal;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.55)}
.topic-card:hover .thumb img{transform:scale(1.07)}
.topic-card h3{margin:2px 0 8px;font:500 15px/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}
.topic-card p{margin:0;font-size:14px;line-height:1.7;color:var(--muted)}
.topic-card .arrow{font:300 26px/1 var(--condensed);color:var(--red);transition:transform .3s;justify-self:end}
.topic-card:hover,.topic-card:focus-visible{background:var(--cream);padding-left:16px;padding-right:16px}
.topic-card:hover .arrow{transform:translateX(6px)}

/* Figures / stats (placeholder data) */
.figures{background:var(--wine);color:#fff}
.figures-inner{padding:54px 10.5% 34px}
.stats{display:grid;grid-template-columns:repeat(4,1fr)}
.stats-3{grid-template-columns:repeat(3,1fr)}
.stat{padding:6px 28px;border-left:1px solid rgba(255,255,255,.22)}
.stat:first-child{border-left:0;padding-left:0}
.stat b{display:block;font:300 clamp(44px,5vw,76px)/.95 var(--condensed);letter-spacing:.01em}
.stat span{display:block;margin-top:10px;font:500 11px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#ead7da}
.ph-note{margin:26px 0 0;font-size:11px;letter-spacing:.06em;color:rgba(255,255,255,.82)}
.glance{padding:0 10.5% 76px}
.glance .stats{margin-top:22px;padding:34px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.glance .stat{border-color:var(--line)}
.glance .stat b{color:var(--wine)}
.glance .stat span{color:var(--muted)}
.glance .ph-note{color:var(--faint);margin-top:14px}

/* CTA band */
.band{margin-top:70px;background:var(--wine);color:#fff;padding:72px 10.5%;display:grid;grid-template-columns:1.3fr 1fr;gap:50px;align-items:center;position:relative;overflow:hidden}
.band:before{content:'H';position:absolute;right:-2%;top:-40%;font:600 560px/.9 var(--condensed);color:rgba(255,255,255,.05);transform:scaleX(.6);pointer-events:none}
.band h2{font:300 clamp(40px,4.8vw,70px)/.9 var(--condensed);text-transform:uppercase;margin:0}
.band h2 strong{font-weight:550}
.band p{margin:18px 0 0;font-size:15px;line-height:1.75;color:#ead7da;max-width:520px}
.band .cta{background:#fff;color:var(--wine);justify-self:start;position:relative;z-index:1}
.band .cta:hover{background:var(--cream);color:var(--wine)}

/* Topic page */
.crumbs{padding:22px 10.5% 0;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}
.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--wine)}
.crumbs span{margin:0 8px;color:#c4bab1}
.t-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:0;align-items:stretch;min-height:540px;position:relative}
.t-copy{padding:44px 5% 60px 10.5%;display:flex;flex-direction:column;justify-content:center;position:relative}
.t-count{font:600 12px/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:#8e1820;display:flex;align-items:center;gap:14px;margin-bottom:26px}
.t-count:after{content:'';height:1px;width:60px;background:var(--red)}
.t-copy h1{font:300 clamp(46px,6.6vw,118px)/.82 var(--condensed);text-transform:uppercase;color:#5f2229;margin:0}
.t-tag{font:400 clamp(20px,2vw,28px)/1.3 Georgia,serif;color:#2d2926;margin:28px 0 0;max-width:520px}
.t-image{position:relative;overflow:hidden;min-height:340px}
.t-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.t-image:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.55),rgba(255,255,255,0) 18%)}
.t-ghost{position:absolute;right:3%;bottom:-6%;font:600 220px/1 var(--condensed);color:rgba(255,255,255,.28);z-index:2;pointer-events:none}

/* Topic nav chips */
.chips{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fcfaf8;padding:0 10.5%;overflow-x:auto;display:flex;gap:4px;scrollbar-width:thin}
.chips a{flex:0 0 auto;padding:18px 16px;text-decoration:none;font:500 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#6d655f;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .25s,border-color .25s}
.chips a:hover{color:var(--wine)}
.chips a[aria-current="page"]{color:var(--wine);border-color:var(--red)}

/* Intro + pillars */
.t-intro{padding:80px 10.5% 30px;display:grid;grid-template-columns:32% 1fr;gap:8%}
.t-intro .lead{margin:0 0 22px}
.t-intro p.sub{margin:0 0 20px;font-size:15px;line-height:1.8;color:var(--muted);max-width:640px}
.pillars{padding:30px 10.5% 80px;display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.pillar{background:var(--cream);padding:38px 36px 40px;border-top:3px solid var(--red2);position:relative;transition:transform .35s,box-shadow .35s}
.pillar:hover{transform:translateY(-4px);box-shadow:0 18px 40px -22px rgba(80,20,28,.45)}
.pillar i{font:300 34px/1 var(--condensed);color:#c58d96;font-style:normal;display:block;margin-bottom:14px}
.pillar h3{margin:0 0 10px;font:500 14px/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}
.pillar p{margin:0;font-size:15px;line-height:1.75;color:var(--muted)}

/* Expect list */
.expect{background:var(--ink);color:#fff;padding:80px 10.5%;display:grid;grid-template-columns:32% 1fr;gap:8%}
.expect .kicker{color:#e48c98}
.expect h2{font:300 clamp(40px,4.4vw,62px)/.92 var(--condensed);text-transform:uppercase;margin:12px 0 0}
.expect ul{list-style:none;margin:0;padding:0;border-top:1px solid rgba(255,255,255,.18)}
.expect li{padding:20px 0 20px 40px;border-bottom:1px solid rgba(255,255,255,.18);font-size:16px;line-height:1.65;color:#ece6e1;position:relative}
.expect li:before{content:'';position:absolute;left:4px;top:27px;width:14px;height:7px;border-left:2px solid #e48c98;border-bottom:2px solid #e48c98;transform:rotate(-45deg)}
.note-line{padding:26px 10.5% 0;font-size:13px;line-height:1.7;color:var(--faint);max-width:900px}

/* Local offices chips */
.office-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.office-links a{padding:12px 20px;border:1px solid var(--red);text-decoration:none;text-transform:uppercase;font:500 12px/1 var(--condensed);letter-spacing:.24em;color:var(--wine);transition:background .3s,color .3s}
.office-links a:hover{background:var(--wine);color:#fff}

/* Prev / next */
.pager{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin-top:70px}
.pager a{padding:40px 10.5%;text-decoration:none;display:block;transition:background .3s}
.pager a + a{border-left:1px solid var(--line);text-align:right}
.pager a:hover{background:var(--cream)}
.pager small{display:block;font:600 11px/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--faint);margin-bottom:12px}
.pager strong{font:300 clamp(34px,3.6vw,52px)/.95 var(--condensed);text-transform:uppercase;color:var(--wine)}
.pager a:hover strong{color:var(--red)}
.pager-all{text-align:center;padding:30px;border-top:1px solid var(--line);font-size:12px;letter-spacing:.22em;text-transform:uppercase}
.pager-all a{text-decoration:none;color:var(--wine);border-bottom:1px solid var(--red);padding-bottom:3px}

/* Footer */
.footer{padding:28px 4%;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#77706a}
.footer a{text-decoration:none}.footer a:hover{color:var(--wine)}

/* Reveal */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s cubic-bezier(.22,.61,.36,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}.cta,.pillar,.topic-card{transition:none}}

/* Responsive */
@media(max-width:980px){
  .hub-hero,.t-hero{grid-template-columns:minmax(0,1fr)}
  .hub-copy,.t-copy{padding:52px 7% 44px}
  .hub-hero,.t-hero{min-height:0}
  .hub-image,.t-image{min-height:0;width:100%;align-self:start;aspect-ratio:16/9;order:2}
  .hub-image:after,.t-image:after{background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(255,255,255,0) 20%)}
  .journey,.topics,.t-intro,.pillars,.expect,.band,.crumbs,.note-line{padding-left:7%;padding-right:7%}
  .chips{padding:0 7%}
  .journey-grid{grid-template-columns:1fr 1fr}
  .journey-step:nth-child(3){border-left:0;padding-left:0}
  .topic-grid{grid-template-columns:1fr}
  .figures-inner{padding-left:7%;padding-right:7%}.glance{padding-left:7%;padding-right:7%}
  .t-intro,.expect{grid-template-columns:1fr;gap:26px}
  .pillars{grid-template-columns:1fr}
  .band{grid-template-columns:1fr;gap:30px}
  .top nav a:nth-child(1),.top nav a:nth-child(2){display:none}
}
@media(max-width:620px){
  .t-copy h1{overflow-wrap:anywhere}
  .top{padding:0 5%}.top nav{gap:16px}.brand{letter-spacing:.14em;font-size:11px}.top nav a{letter-spacing:.12em;font-size:10px}.top nav a:nth-child(4){display:none}
  .journey-grid{grid-template-columns:1fr}
  .journey-step + .journey-step{border-left:0;padding-left:0;border-top:1px solid var(--line);margin-top:18px}
  .topic-card{grid-template-columns:104px 1fr 20px;gap:10px 14px}
  .topic-card h3{letter-spacing:.12em;font-size:13px}
  .stats,.stats-3{grid-template-columns:1fr 1fr}
  .stat{padding:14px 14px 14px 0;border-left:0}
  .stat:nth-child(even){padding-left:14px;border-left:1px solid rgba(255,255,255,.22)}
  .glance .stat:nth-child(even){border-color:var(--line)}
  .cta{width:100%;min-width:0}
  .pager{grid-template-columns:1fr}
  .pager a + a{border-left:0;border-top:1px solid var(--line);text-align:left}
  .t-ghost{font-size:140px}
}

.credits{flex:1;text-align:center;font-size:10px;letter-spacing:.08em;text-transform:none;color:#6a625b}

/* ================= Interactive feature pages ================= */
body.noscroll{overflow:hidden}
.progress{position:fixed;top:76px;left:0;right:0;height:3px;z-index:19;background:transparent}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#c81d3b,#7c0b19)}
.to-top{position:fixed;right:22px;bottom:22px;z-index:18;width:48px;height:48px;border:0;background:var(--wine);color:#fff;font:300 22px/1 var(--condensed);cursor:pointer;border-radius:0 0 14px 0;opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .3s,transform .3s,background .3s}
.to-top.show{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{background:var(--red)}

/* sticky topic bar */
.chips{position:sticky;top:76px;z-index:17;align-items:stretch}
.chips.hidden{display:none}
.chips-hide{margin-left:auto;flex:0 0 auto;align-self:center;border:0;background:transparent;font:500 10px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--faint);padding:10px 4px 10px 18px;cursor:pointer;position:sticky;right:0;background:linear-gradient(90deg,rgba(252,250,248,0),#fcfaf8 30%)}
.chips-hide:hover{color:var(--wine)}
.chips-show{position:fixed;top:68px;right:0;z-index:17;border:0;background:var(--wine);color:#fff;font:500 10px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;padding:11px 14px;cursor:pointer;border-radius:0 0 0 12px}
.chips-show[hidden]{display:none}

/* section index */
.spy{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:16;display:flex;flex-direction:column;gap:14px}
.spy a{position:relative;width:10px;height:10px;border-radius:50%;border:1.5px solid #b9a9a3;background:#fff;display:block;transition:background-color .25s,border-color .25s,color .25s,box-shadow .25s,transform .25s,opacity .25s}
.spy a span{position:absolute;right:20px;top:50%;transform:translateY(-50%);white-space:nowrap;font:500 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--wine);background:#fff;padding:7px 10px;box-shadow:0 6px 20px -8px rgba(0,0,0,.3);opacity:0;pointer-events:none;transition:opacity .2s}
.spy a:hover span,.spy a:focus-visible span{opacity:1}
.spy a[aria-current]{background:var(--red);border-color:var(--red);transform:scale(1.35)}
@media(max-width:1180px){.spy{display:none}}

/* hero kicker */
.t-kicker{font:600 11px/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--faint);margin-bottom:12px}

/* feature sections */
.feat{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:6%;align-items:center;padding:72px 10.5%;position:relative}
.feat.flip .feat-media{order:2}
.feat:nth-of-type(even){background:linear-gradient(180deg,#fff,#faf7f3 50%,#fff)}
.feat-media{margin:0;position:relative}
.ph{position:relative;overflow:hidden;aspect-ratio:4/3;background:#e9e2d9;box-shadow:0 34px 60px -36px rgba(70,22,30,.6);clip-path:inset(0 0 100% 0);transition:clip-path 1.1s cubic-bezier(.22,.61,.36,1)}
.feat.in .ph{clip-path:inset(0 0 0 0)}
.ph[data-zoom]{cursor:zoom-in}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.14);will-change:transform}
.ph:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 60%,rgba(40,8,14,.28));pointer-events:none}
.feat-text .num{display:block;font:300 96px/.9 var(--condensed);color:#ecd6d9;margin-bottom:4px}
.feat-text h2{font:300 clamp(38px,4.2vw,64px)/.92 var(--condensed);text-transform:uppercase;color:var(--rose);margin:0 0 24px;letter-spacing:.01em}
.feat-text h2 b{display:block;font-weight:550;color:#5f2229}
.feat-text p{margin:0 0 16px;font-size:16px;line-height:1.85;color:var(--muted);max-width:560px}
.badge-opt{display:inline-block;font:600 10px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;border:1px solid var(--red);color:var(--red);padding:7px 11px;margin-bottom:16px}

/* media widgets */
.play{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:12px;border:0;background:rgba(255,255,255,.94);color:var(--wine);padding:14px 22px 14px 16px;font:500 12px/1 var(--condensed);letter-spacing:.26em;text-transform:uppercase;cursor:pointer;border-radius:0 0 14px 0;box-shadow:0 14px 40px -12px rgba(0,0,0,.5);transition:transform .3s,background .3s,color .3s}
.play i{width:30px;height:30px;border-radius:50%;background:var(--red);position:relative;flex:0 0 auto}
.play i:after{content:'';position:absolute;left:11px;top:8px;border-left:10px solid #fff;border-top:7px solid transparent;border-bottom:7px solid transparent}
.play:hover{background:var(--wine);color:#fff;transform:translate(-50%,-50%) scale(1.05)}
.toggle{display:flex;margin-top:14px;border:1px solid var(--red);width:max-content}
.toggle button{border:0;background:#fff;color:var(--wine);font:500 12px/1 var(--condensed);letter-spacing:.24em;text-transform:uppercase;padding:13px 26px;cursor:pointer;transition:background .25s,color .25s}
.toggle button[aria-pressed="true"]{background:var(--wine);color:#fff}
.tw img{transition:filter 1s ease}
.tw .glow{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity 1s;background:linear-gradient(180deg,rgba(88,52,140,.55),rgba(236,110,120,.32) 45%,rgba(255,190,110,.25) 80%,rgba(255,190,110,.1))}
.tw[data-mode="twilight"] img{filter:brightness(.62) saturate(1.35) contrast(1.12) hue-rotate(-10deg)}
.tw[data-mode="twilight"] .glow{opacity:1}
.cmp img{transform:none!important}
.cmp .before{filter:grayscale(.55) contrast(.78) brightness(.88) saturate(.5);clip-path:inset(0 calc(100% - var(--x,50%)) 0 0)}
.cmp .tag{position:absolute;z-index:3;top:14px;font:600 10px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;background:rgba(255,255,255,.92);color:var(--wine);padding:7px 10px}
.cmp .tag.l{left:14px}.cmp .tag.r{right:14px}
.cmp .line{position:absolute;z-index:3;top:0;bottom:0;left:var(--x,50%);width:2px;background:#fff;box-shadow:0 0 12px rgba(0,0,0,.4);pointer-events:none}
.cmp .line:after{content:'↔';position:absolute;top:50%;left:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:#fff;color:var(--wine);display:grid;place-items:center;font:500 18px/1 var(--sans);box-shadow:0 8px 24px -8px rgba(0,0,0,.5)}
.cmp input{position:absolute;inset:0;z-index:4;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.cmp:focus-within .line:after{outline:2px solid var(--red);outline-offset:2px}

/* print paper frames */
.paper .ph{aspect-ratio:auto;background:transparent;box-shadow:none;clip-path:none;overflow:visible;padding:0}
.paper .ph:after{display:none}
.sheet{position:relative;background:#fffdf9;padding:20px 20px 58px;box-shadow:0 28px 50px -26px rgba(60,30,20,.55),0 2px 0 #e7ded3;transform:rotate(-2.2deg);transition:transform .6s cubic-bezier(.22,.61,.36,1);border:1px solid #eadfd2}
.feat.flip .sheet{transform:rotate(2.2deg)}
.paper:hover .sheet{transform:rotate(0) translateY(-6px)}
.sheet .pic{position:relative;overflow:hidden;aspect-ratio:4/3}
.sheet .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:none}
.sheet .mast{position:absolute;left:20px;right:20px;bottom:14px;display:flex;justify-content:space-between;align-items:center;font:400 13px/1 Georgia,serif;letter-spacing:.3em;color:var(--wine);text-transform:uppercase}
.sheet .mast em{font:500 9px/1 var(--sans);letter-spacing:.18em;color:var(--faint);font-style:normal}
.paper .ph[data-zoom]{cursor:default}

/* interactive panels */
.panel{background:var(--cream);padding:76px 10.5%;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.panel-head{max-width:640px;margin-bottom:34px}
.panel-head .kicker{margin-bottom:10px}
.panel-head h2,.panel-head h3{font:300 clamp(36px,3.8vw,56px)/.95 var(--condensed);text-transform:uppercase;color:var(--wine);margin:0 0 14px}
.panel-head p{margin:0;font-size:15px;line-height:1.75;color:var(--muted)}
.tab-list{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--line);margin-bottom:34px}
.tab-list button{border:0;background:transparent;padding:16px 22px;font:500 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#5f574f;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px;transition:color .25s,border-color .25s,background .25s}
.tab-list button:hover{color:var(--wine)}
.tab-list button[aria-selected="true"]{color:var(--wine);border-color:var(--red);background:rgba(255,255,255,.55)}
.seg-body h4,.seg-body h3{font:300 clamp(30px,3vw,44px)/1 var(--condensed);text-transform:uppercase;color:#5f2229;margin:0 0 12px}
.seg-body p{margin:0;font-size:16px;line-height:1.8;color:var(--muted);max-width:640px}
/* steps variant */
[data-seg].steps .tab-list{border:0;position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:0;margin-bottom:38px}
[data-seg].steps .tab-list:before{content:'';position:absolute;left:8%;right:8%;top:25px;height:2px;background:#d8cdc2}
[data-seg].steps .tab-list:after{content:'';position:absolute;left:8%;top:25px;height:2px;background:var(--red);width:calc((100% - 16%) * var(--prog,0%) / 100%);transition:width .5s cubic-bezier(.22,.61,.36,1)}
[data-seg].steps .tab-list button{position:relative;z-index:1;padding:0;border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:12px;text-transform:none;letter-spacing:.04em;font-size:12px;line-height:1.3;text-align:center;color:#5f574f}
[data-seg].steps .tab-list button b{width:50px;height:50px;border-radius:50%;border:2px solid #d8cdc2;background:var(--cream);display:grid;place-items:center;font:300 24px/1 var(--condensed);color:#9a8f86;transition:background-color .35s,border-color .35s,color .35s,box-shadow .35s,transform .35s,opacity .35s}
[data-seg].steps .tab-list button.done b{background:var(--red);border-color:var(--red);color:#fff}
[data-seg].steps .tab-list button[aria-selected="true"] b{box-shadow:0 0 0 6px rgba(183,25,53,.16)}
[data-seg].steps .tab-list button[aria-selected="true"]{color:var(--wine);background:none;font-weight:600}
/* offices */
.off-stage{display:grid;grid-template-columns:1.2fr 1fr;gap:6%;align-items:center}
.off-stage .imgwrap{aspect-ratio:16/9;overflow:hidden;background:#e5ddd3;box-shadow:0 30px 55px -34px rgba(70,22,30,.6)}
.off-stage img{width:100%;height:100%;object-fit:cover;display:block}
.seg-link{display:inline-block;margin-top:22px;text-decoration:none;font:600 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--wine);border-bottom:1px solid var(--red);padding-bottom:6px}
/* checklist */
.checks{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);max-width:760px}
.checks li{border-bottom:1px solid var(--line)}
.checks label{display:flex;align-items:center;gap:18px;padding:18px 6px;cursor:pointer;font-size:16px;color:#3f3a37;transition:background .25s}
.checks label:hover{background:rgba(255,255,255,.6)}
.checks input{appearance:none;-webkit-appearance:none;width:26px;height:26px;border:2px solid #b9a9a3;background:#fff;display:grid;place-items:center;margin:0;flex:0 0 auto;cursor:pointer;transition:background-color .25s,border-color .25s,color .25s,box-shadow .25s,transform .25s,opacity .25s}
.checks input:checked{background:var(--red);border-color:var(--red)}
.checks input:checked:after{content:'';width:12px;height:6px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
.checks input:checked + span{color:#9a8f86;text-decoration:line-through;text-decoration-color:rgba(124,11,25,.4)}
.meter{height:6px;background:#e3d9ce;max-width:760px;margin-top:28px}
.meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,#c81d3b,#7c0b19);transition:width .5s cubic-bezier(.22,.61,.36,1)}
.meter-text{margin:12px 0 0;font:500 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--wine)}
/* world clocks */
.tz{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tz li{background:#fff;padding:22px 24px;border-left:4px solid #d8cdc2;transition:border-color .4s,box-shadow .4s}
.tz li.good{border-color:#2f8a5b;box-shadow:0 14px 30px -22px rgba(30,100,60,.6)}
.tz strong{display:block;font:500 12px/1.2 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#3f3a37}
.tz time{display:block;font:300 44px/1.1 var(--condensed);color:var(--wine);margin:8px 0 6px;letter-spacing:.02em}
.tz .tz-state{font-size:12px;color:#6a625b}
.tz li.good .tz-state{color:#1f6f45;font-weight:600}

/* modal */
.modal{position:fixed;inset:0;z-index:var(--z-modal,10000);background:rgba(18,8,10,.88);display:grid;place-items:center;padding:4vw;animation:mfade .3s ease}
.modal[hidden]{display:none}
@keyframes mfade{from{opacity:0}to{opacity:1}}
.modal-box{position:relative;max-width:min(1200px,94vw);max-height:90vh;max-height:90dvh}
.modal-body video,.modal-body img{display:block;max-width:100%;max-height:86vh;max-height:86dvh;margin:auto;background:#000;box-shadow:0 40px 100px -20px rgba(0,0,0,.8)}
.modal-body .modal-msg{color:#f4efe6;font-size:16px;padding:40px 24px;text-align:center;max-width:420px;margin:auto}
.modal-x{position:absolute;right:-6px;top:-50px;border:0;background:transparent;color:#fff;font:300 42px/1 var(--condensed);cursor:pointer}

@media(max-width:980px){
  .feat{grid-template-columns:minmax(0,1fr);gap:30px;padding:48px 7%}
  .feat.flip .feat-media{order:0}
  .feat-text .num{font-size:64px}
  .panel{padding:56px 7%}
  .off-stage{grid-template-columns:1fr;gap:26px}
  .tz{grid-template-columns:1fr 1fr}
  [data-seg].steps .tab-list{grid-template-columns:repeat(3,1fr);row-gap:22px}
  [data-seg].steps .tab-list:before,[data-seg].steps .tab-list:after{display:none}
  .chips-hide{display:none}
}
@media(max-width:620px){
  .tz{grid-template-columns:1fr}
  .tab-list button{padding:14px 14px}
  .to-top{right:14px;bottom:14px}
  .modal-x{right:0;top:-46px}
}
@media(prefers-reduced-motion:reduce){.ph{clip-path:none;transition:none}.ph img{transform:none!important}.tw img,.tw .glow{transition:none}.sheet{transition:none}.meter i{transition:none}}

/* Try it -> contact */
.kicker.try{display:inline-flex;align-items:center;gap:10px;text-decoration:none;border-bottom:1px solid var(--red);padding-bottom:6px;transition:color .25s,gap .25s}
.kicker.try span{font-size:14px;transition:transform .25s}
.kicker.try:hover{color:var(--wine);gap:14px}
.panel-cta{margin-top:46px;padding-top:30px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px}
.panel-cta p{margin:0;font:300 clamp(26px,2.6vw,36px)/1 var(--condensed);text-transform:uppercase;color:var(--wine);flex:1 1 100%}
.panel-cta .alt{font:600 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--wine);text-decoration:none;border-bottom:1px solid var(--red);padding-bottom:6px}
.panel-cta .alt:hover{color:var(--red)}

.feat-text .num:before{content:attr(data-n)}

/* 3.2.46: the marketing film. In the hero it fills the picture side; in "Short-Form Video" it stands as a phone-shaped frame. */
.film .film-still,.film .mk-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.film .mk-film{opacity:0;transition:opacity .8s ease}
.film .mk-film.live{opacity:1}
.film .film-sound{top:auto;bottom:22px;left:22px;transform:none}
.film .film-sound:hover{transform:translateY(-2px)}
.hub-image.film .film-still,.hub-image.film .mk-film{object-position:50% 50%}
.ph.film{aspect-ratio:9/16;width:min(100%,calc(78vh * 9 / 16),420px);margin:0 auto;background:#111}
@media(max-width:900px){.hub-image.film{aspect-ratio:4/5}}
@media(prefers-reduced-motion:reduce){.film .mk-film{display:none}}

/* Buy With Us page extras (loads after marketing.css) */
.stats-4{grid-template-columns:repeat(4,1fr)}
.city-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.city-btn{padding:11px 16px;border:1px solid rgba(124,11,25,.4);text-decoration:none;font:500 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--wine);background:rgba(255,255,255,.7);transition:background .25s,color .25s,border-color .25s,transform .25s}
.city-btn:hover,.city-btn:focus-visible{background:var(--wine);color:#fff;border-color:var(--wine);transform:translateY(-2px)}

/* neighbourhood explorer */
.hoods .tab-list{margin-bottom:34px}
.hoods .off-stage{grid-template-columns:1.1fr 1fr}
.h-img{transition:opacity .35s}
.h-img.swap{opacity:0}
.chiprow{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 14px}
.chip{display:inline-block;text-decoration:none;border:1px solid #cdbfb4;background:#fff;color:#3f3a37;font:500 12px/1 var(--sans);letter-spacing:.08em;padding:11px 16px;cursor:pointer;transition:background-color .25s,border-color .25s,color .25s,box-shadow .25s,transform .25s,opacity .25s}
.chip:hover{border-color:var(--red);color:var(--wine)}
.chip[aria-pressed="true"]{background:var(--wine);border-color:var(--wine);color:#fff}
.h-note{min-height:3.4em;margin:0 0 6px;font-size:14px;line-height:1.7;color:var(--wine)}
.h-links{display:flex;flex-wrap:wrap;gap:8px 26px}
.h-links .seg-link{margin-top:14px}

/* brief builder */
.brief{display:grid;gap:26px;max-width:900px}
.chipset{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.chipset .lg{flex:0 0 150px;font:500 11px/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}
.brief-out{margin-top:6px;padding:26px 28px;background:#fff;border-left:4px solid var(--red)}
.brief-sum{margin:0 0 20px;font:400 clamp(20px,2vw,26px)/1.45 Georgia,serif;color:#2d2926}
.brief-go[aria-disabled="true"]{opacity:.55}

/* repayment estimator */
.calc{display:grid;grid-template-columns:1.1fr 1fr;gap:6%;align-items:start}
.calc-in{display:grid;gap:26px}
.calc-f label{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px;font:500 11px/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}
.calc-f output{font:300 28px/1 var(--condensed);letter-spacing:.03em;color:var(--wine);text-transform:none}
.calc input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:4px;background:linear-gradient(90deg,var(--red) var(--p,50%),#d9cfc4 var(--p,50%));outline:none;border-radius:2px}
.calc input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--wine);border:3px solid #fff;box-shadow:0 2px 10px rgba(0,0,0,.35);cursor:pointer}
.calc input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--wine);border:3px solid #fff;box-shadow:0 2px 10px rgba(0,0,0,.35);cursor:pointer}
.calc-out{background:#fff;padding:34px 34px 28px;border-top:4px solid var(--red);box-shadow:0 30px 50px -36px rgba(70,22,30,.55)}
.calc-out .lbl{display:block;font:500 11px/1.3 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}
.calc-out .big{display:block;font:300 clamp(44px,5vw,72px)/1.05 var(--condensed);color:var(--wine);margin:10px 0 22px;letter-spacing:.01em}
.calc-out dl{margin:0;display:grid;gap:0;border-top:1px solid var(--line)}
.calc-out dl div{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);font-size:14px}
.calc-out dt{color:var(--muted)}.calc-out dd{margin:0;font-weight:600;color:#3f3a37}
.calc-out .fine{margin:18px 0 0;font-size:12px;line-height:1.65;color:var(--faint)}

@media(max-width:980px){
  .calc{grid-template-columns:1fr;gap:30px}
  .hoods .off-stage{grid-template-columns:1fr}
  .stats-4{grid-template-columns:1fr 1fr}
  .chipset .lg{flex:1 0 100%}
  .top nav a:nth-child(2){display:none}
}
@media(max-width:620px){.top nav a:nth-child(3){display:none}}

.chip[aria-pressed="true"]{background:var(--wine);border-color:var(--wine);color:#fff}
/* keyboard users can see which slider they are on */
.calc input[type=range]:focus-visible{outline:2px solid #C31B37;outline-offset:6px}
.calc input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px rgba(195,27,55,.35),0 2px 10px rgba(0,0,0,.35)}
.calc input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px rgba(195,27,55,.35),0 2px 10px rgba(0,0,0,.35)}

/* Neighbourhood pages (loads after marketing.css + buy.css) */
.area-hero{min-height:560px}
.area-title{font-size:clamp(54px,8.4vw,120px)!important;color:#5f2229;font-weight:550!important;text-transform:uppercase}
.hubmini{min-height:0;grid-template-columns:1fr}
.hubmini .hub-copy{padding-bottom:56px;max-width:880px}
.chips-end{margin-left:auto}
.chips a{white-space:nowrap}
.stats.facts{margin-top:34px;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts .stat{padding:4px 22px}
.facts .stat b{color:var(--wine);font-size:clamp(28px,3vw,42px)}
.ph-note.dark{color:var(--faint)}

.gal-sec,.list-sec,.nearby-sec,.city-sec{padding:72px 10.5% 20px}
.list-sec{background:var(--cream);margin-top:56px;padding-bottom:70px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.nearby-sec{padding-bottom:50px}
.gal-sec .panel-head,.list-sec .panel-head,.nearby-sec .panel-head,.city-sec .panel-head{margin-bottom:28px}

/* gallery mosaic */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,minmax(150px,230px));gap:10px}
.gal-item{position:relative;overflow:hidden;border:0;padding:0;margin:0;cursor:zoom-in;background:#e9e2d9}
.gal-item:first-child{grid-column:span 2;grid-row:span 2}
.gal-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.22,.61,.36,1)}
.gal-item:hover img,.gal-item:focus-visible img{transform:scale(1.07)}
.gal-item.gal-extra{display:none}
.gal-item.more:after{content:attr(data-more);position:absolute;inset:0;display:grid;place-items:center;background:rgba(40,8,14,.58);color:#fff;font:300 clamp(26px,3vw,40px)/1 var(--condensed);letter-spacing:.06em;text-transform:uppercase;transition:background .3s}
.gal-item.more:hover:after{background:rgba(124,11,25,.7)}

/* listings */
.lfilters{display:flex;flex-wrap:wrap;gap:18px 34px;align-items:center;margin-bottom:12px}
.lf-group{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.lf-group .lg{font:500 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin-right:2px}
.lfilters select{font:500 13px/1 var(--sans);padding:11px 34px 11px 14px;border:1px solid #cdbfb4;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%237c0b19' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 12px center;-webkit-appearance:none;appearance:none;color:#3f3a37;cursor:pointer}
.lcount-txt{margin:6px 0 22px;font:500 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--wine)}
.lgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.lcard{position:relative;background:#fff;box-shadow:0 24px 40px -32px rgba(70,22,30,.55);display:flex;flex-direction:column;transition:transform .4s,box-shadow .4s}
.lcard:hover{transform:translateY(-5px);box-shadow:0 34px 50px -30px rgba(70,22,30,.6)}
.lcard[hidden]{display:none}
.lthumb{position:relative;display:block;border:0;padding:0;margin:0;aspect-ratio:4/3;overflow:hidden;cursor:zoom-in;background:#e9e2d9}
.lthumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.22,.61,.36,1)}
.lcard:hover .lthumb img{transform:scale(1.06)}
.ltag{position:absolute;left:12px;top:12px;background:var(--wine);color:#fff;font:600 10px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;padding:7px 10px}
.ltag.off{background:#2b2523}
.lcount{position:absolute;right:12px;bottom:12px;background:rgba(255,255,255,.92);color:#3f3a37;font:600 10px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;padding:7px 9px}
.save{position:absolute;right:12px;top:12px;z-index:2;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.94);cursor:pointer;display:grid;place-items:center;transition:transform .25s,background .25s}
.save svg{width:20px;height:20px;fill:none;stroke:var(--wine);stroke-width:1.8;transition:fill .25s}
.save:hover{transform:scale(1.1)}
.save[aria-pressed="true"]{background:var(--wine)}
.save[aria-pressed="true"] svg{fill:#fff;stroke:#fff}
.lbody{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.lprice{font:300 34px/1 var(--condensed);letter-spacing:.02em;color:var(--wine)}
.lbody h3{margin:8px 0 6px;font:500 14px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#2d2926}
.lmeta{margin:0 0 4px;font-size:14px;color:#3f3a37}
.lwhere{margin:0 0 18px;font-size:13px;color:var(--faint)}
.lenq{margin-top:auto;align-self:flex-start;text-decoration:none;font:600 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--wine);border-bottom:1px solid var(--red);padding-bottom:6px;transition:color .25s}
.lenq:hover{color:var(--red)}
.lempty{padding:40px 0;font-size:16px;color:var(--muted)}
.lempty[hidden],.saved-bar[hidden]{display:none}
.saved-bar{position:sticky;bottom:16px;z-index:5;margin-top:26px;display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;justify-content:space-between;background:var(--wine);color:#fff;padding:14px 18px 14px 24px;box-shadow:0 20px 40px -18px rgba(0,0,0,.5)}
.saved-n{font:500 12px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.saved-bar .cta{background:#fff;color:var(--wine);min-width:0}
.saved-bar .cta:hover{background:var(--cream)}

/* nearby */
.nbgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.nb{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;text-decoration:none;color:#fff;background:#2b2523}
.nb.big{aspect-ratio:4/3}
.nb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.22,.61,.36,1)}
.nb:hover img,.nb:focus-visible img{transform:scale(1.08)}
.nb:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,6,8,0) 35%,rgba(20,6,8,.78))}
.nb span{position:absolute;left:20px;right:20px;bottom:18px;z-index:2}
.nb b{display:block;font:300 clamp(28px,2.6vw,38px)/1 var(--condensed);letter-spacing:.04em;text-transform:uppercase}
.nb em{display:block;margin-top:6px;font:400 13px/1.45 var(--sans);font-style:normal;color:#f0dfe1}
.other-cities{margin:28px 0 0;font-size:13px;color:var(--muted)}
.other-cities a{margin-left:14px;color:var(--wine);text-decoration:none;border-bottom:1px solid var(--red)}

/* lightbox */
.lb{position:fixed;inset:0;z-index:var(--z-modal,10000);background:rgba(14,6,8,.94);display:flex;flex-direction:column;animation:mfade .25s ease}
.lb[hidden]{display:none}
.lb-top{display:flex;justify-content:space-between;align-items:center;padding:14px 22px;color:#fff;font:500 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase}
.lb-x{border:0;background:none;color:#fff;font:300 42px/1 var(--condensed);cursor:pointer;padding:0 4px}
.lb-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 70px}
.lb-img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 40px 100px -20px #000;transition:opacity .25s}
.lb-img.swap{opacity:.15}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:rgba(0,0,0,.35);color:#fff;font:300 26px/1 var(--condensed);cursor:pointer;transition:background .25s}
.lb-nav:hover{background:var(--red);border-color:var(--red)}
.lb-prev{left:12px}.lb-next{right:12px}
.lb-bottom{padding:12px 22px 20px;text-align:center;color:#fff}
.lb-cap{margin:0 0 12px;font:400 15px/1.5 var(--sans);color:#f1e6e7}
.lb-cta{display:inline-block;margin-bottom:14px;text-decoration:none;font:600 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#fff;background:var(--red);padding:12px 18px}
.lb-cta[hidden]{display:none}
.lb-thumbs{display:flex;gap:8px;justify-content:center;overflow-x:auto}
.lb-thumbs button{flex:0 0 auto;width:72px;height:50px;padding:0;border:2px solid transparent;opacity:.55;cursor:pointer;background:#000;transition:opacity .25s,border-color .25s}
.lb-thumbs button[aria-current="true"]{opacity:1;border-color:var(--red)}
.lb-thumbs img{width:100%;height:100%;object-fit:cover;display:block}

@media(max-width:1100px){.lgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:980px){
  .gal-sec,.list-sec,.nearby-sec,.city-sec{padding-left:7%;padding-right:7%}
  .gallery{grid-template-columns:repeat(2,1fr);grid-template-rows:none;grid-auto-rows:170px}
  .gal-item:first-child{grid-column:span 2;grid-row:span 2}
  .nbgrid{grid-template-columns:1fr 1fr}
  .facts .stat{padding:10px 14px}
  .area-hero{min-height:0}
}
@media(max-width:620px){
  .lgrid,.nbgrid{grid-template-columns:1fr}
  .lb-stage{padding:0 8px}.lb-nav{width:42px;height:42px}
  .lb-prev{left:6px}.lb-next{right:6px}
  .chips-end{margin-left:0}
}
/* ---- 2.2.9 Living here ---- */
.living-sec{padding:72px 6% 64px;background:#faf7f2;border-top:1px solid var(--line)}
.living-sec .panel-head{margin-bottom:28px}
.lv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.lv-card{background:#fff;padding:22px 22px 20px;border:1px solid #ece4da}
.lv-card h3{margin:0 0 12px;font:600 12px/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--wine)}
.lv-card ul{margin:0;padding:0;list-style:none}
.lv-card li{padding:7px 0;border-bottom:1px solid #f0e9df;font-size:15px;line-height:1.45;color:#2d2926}
.lv-card li:last-child{border-bottom:0}
.lv-commute{width:100%;border-collapse:collapse}
.lv-commute th,.lv-commute td{padding:7px 0;border-bottom:1px solid #f0e9df;font-size:15px;text-align:left;font-weight:400;color:#2d2926}
.lv-commute td{text-align:right;white-space:nowrap;font-weight:600;color:var(--wine)}
.lv-money{margin:0;display:grid;gap:12px}
.lv-money dt{font:600 10px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.lv-money dd{margin:0;font:300 26px/1.1 var(--condensed,'Antonio',Antonio Fallback,sans-serif);color:var(--wine)}
.lv-money small{font:400 13px var(--sans);color:var(--muted)}
.lv-small{margin:10px 0 0;font-size:12px;color:var(--muted)}
.living-sec .ph-note{margin-top:18px}
@media(max-width:640px){.living-sec{padding:56px 6% 48px}}
.living-sec .ph-note{color:var(--muted)}
.lv-grid{grid-template-columns:repeat(auto-fit,minmax(205px,1fr))}
.lv-money dd{font-size:21px}
.list-all{margin:10px 0 0}.list-all a{display:inline-flex;gap:8px;align-items:center;color:#8E0D20;font:600 13px/1.4 Inter,"Inter Fallback",Arial,sans-serif;text-decoration:none;border-bottom:1px solid rgba(142,13,32,.35)}.list-all a:hover{border-color:#8E0D20}

/* 3.2.21: each home opens its own page (home.html?id=...), with the same details as Homes for sale */
.lpor{font-size:24px;letter-spacing:.04em}
.lopen{color:inherit;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .35s}
.lopen:hover,.lopen:focus-visible{background-size:100% 1px}
.lopen:focus-visible{outline:2px solid var(--wine);outline-offset:3px}
.lfeat{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:0;list-style:none}
.lfeat li{padding:4px 9px;border-radius:999px;background:#f4efe7;font-size:12px;color:#4a423d}
.lmore{align-self:flex-start;margin:12px 0 16px;color:var(--wine);font-size:13.5px;font-weight:500;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .25s}
.lmore:hover,.lmore:focus-visible{border-bottom-color:currentColor}
.lhint{margin:-10px 0 14px;font-size:12.5px;font-weight:500;color:#1f6f4a}

