:root{
  --cream:#F9F7F4;--charcoal:#151515;--ink:#262626;--accent:#C7A66B;--maxw:1160px;
  --num-size:32px;--num-gap:12px;--rule-thick:2px;--num-bottom-adjust:2px;
}
*{box-sizing:border-box}html,body{height:100%}
body{margin:0;color:var(--ink);background:#fff;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;line-height:1.7;overflow-x:hidden}
h1,h2,h3{font-family:"Playfair Display",Georgia,serif;line-height:1.2;margin:0 0 .6em}
h1{font-size:clamp(40px,7vw,72px)}h2{font-size:clamp(28px,4.5vw,40px)}h3{font-size:clamp(18px,2.6vw,22px)}p{margin:.8em 0}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.spacious{padding:60px 0}
@media (max-width:900px){.spacious{padding:72px 0}}@media (max-width:560px){.spacious{padding:56px 0}}

/* Mast + legibility */
.mast{position:absolute;left:0;right:0;top:0;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;color:#fff;z-index:5;
  text-shadow: 0 1px 10px rgba(0,0,0,.45), 0 0 2px rgba(0,0,0,.35);
}
.brand{letter-spacing:.18em;font-weight:600;text-transform:uppercase;font-size:.82rem}
.city{opacity:.85}@media (max-width:560px){.city{display:none}.mast{height:56px}}

/* Hero */
.hero{position:relative;min-height:100dvh;display:grid;place-items:end center;color:#fff;background:#000;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.35) 35%,rgba(0,0,0,0)),linear-gradient(to right,rgba(0,0,0,.42),transparent 26%),linear-gradient(to left,rgba(0,0,0,.42),transparent 26%);z-index:0}
.hero::after{content:"";position:absolute;left:0;right:0;top:0;height:100px;background: linear-gradient(to bottom, rgba(0,0,0,.45) 0%, rgba(0,0,0,.18) 65%, rgba(0,0,0,0) 100%);z-index:0;pointer-events:none}
.hero__bg{position:absolute;inset:0;background:#000 center/cover no-repeat;will-change:transform}
.hero__content{position:relative;z-index:1;text-align:center;padding:8vh 24px 6vh}
.hero .lead{font-family:"Playfair Display",Georgia,serif;font-style:italic;font-size:clamp(18px,2.5vw,28px);opacity:.95}
/* full-width soft gradient under hero text */
.hero__content::before{content:"";position:absolute;left:50%;transform:translateX(-50%);width:100vw;height:clamp(160px,38vh,360px);bottom:0;border-radius:0;background:linear-gradient(to top,rgba(0,0,0,.50) 0%,rgba(0,0,0,.30) 45%,rgba(0,0,0,0) 100%);z-index:-1;pointer-events:none}
@media (max-width:720px){.hero__content::before{height:clamp(180px,42vh,360px);background:linear-gradient(to top,rgba(0,0,0,.54) 0%,rgba(0,0,0,.34) 50%,rgba(0,0,0,0) 100%)}}

/* Scroll indicator */
.scroll-indicator{position:absolute;left:50%;transform:translateX(-50%);bottom:18px;width:28px;height:44px;border:2px solid rgba(255,255,255,.9);border-radius:18px;display:flex;align-items:flex-start;justify-content:center;text-decoration:none;opacity:.9}
.scroll-indicator:focus{outline:2px solid rgba(255,255,255,.8);outline-offset:4px}
.scroll-indicator .dot{width:6px;height:6px;border-radius:50%;background:#fff;margin-top:8px;animation: scrollDot 1.8s ease-in-out infinite}
@keyframes scrollDot{0%{transform:translateY(0);opacity:1}60%{transform:translateY(18px);opacity:.25}100%{transform:translateY(0);opacity:1}}
@media (max-width:560px){.scroll-indicator{bottom:14px;transform:translateX(-50%) scale(.92)}}

/* Feature image */
.feature-img{position:relative;height:min(78vh,820px);overflow:hidden}
.feature-img img{width:100%;height:100%;object-fit:cover;opacity:0;animation:reveal 1.1s ease .15s forwards}
@media (max-width:900px){.feature-img{height:52vh}}@media (max-width:560px){.feature-img{height:auto}.feature-img img{height:auto}}

/* Split (image left, copy right) */
.split{background:var(--cream);color:var(--ink)}
.split .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1fr;gap:28px;align-items:start}
.split .img{margin:0;width:100%;aspect-ratio: 16 / 10;overflow:hidden;border-radius:12px;background:#eee}
.split .img img{width:100%;height:100%;object-fit:cover;display:block;transform:translateZ(0)}
.split h2{font-size:clamp(28px,4.6vw,44px);margin-bottom:.4em}
.split .rule{height:1px;background:linear-gradient(90deg,rgba(199,166,107,.85),transparent);border:0;margin:18px 0 18px}
.split .kicker{color:#6b6b6b;margin-top:.8em}
@media (max-width:980px){.split .wrap{grid-template-columns:1fr;gap:28px}.split .img{order:-1}}

/* Heritage */
.sec-heritage .head-row{grid-column:1 / -1;margin-bottom:.2em}
.sec-heritage .sec-head + .eyebrow{font-size: clamp(12px, 1.05vw, 13.5px);letter-spacing:.18em;text-transform:uppercase;color:#6b6b6b;margin:-6px 0 14px}
.sec-heritage .sec-head + .eyebrow .rule{display:block;width:180px;height:2px;background:var(--accent);margin-top:10px}
@media (max-width:900px){.sec-heritage .sec-head + .eyebrow{margin:-2px 0 12px;letter-spacing:.16em}.sec-heritage .sec-head + .eyebrow .rule{width:140px}}
.sec-heritage .cols{column-count:2;column-gap:48px}
.sec-heritage .cols p{break-inside:avoid-column;margin:.6em 0}
.col-break{break-after:column;-webkit-column-break-after:always;column-break-after:always}
@media (max-width:900px){.sec-heritage .cols{column-count:1;column-gap:0}.sec-heritage .cols p{margin:.7em 0}.sec-heritage .col-break{break-after:auto;-webkit-column-break-after:auto;column-break-after:auto;padding-bottom:0;margin-bottom:.6em}}
.section.sec-heritage.spacious{padding-bottom:128px}
.split.spacious{padding-top:96px;padding-bottom:48px}
@media (max-width:900px){.section.sec-heritage.spacious{padding-bottom:96px}.split.spacious{padding-top:72px;padding-bottom:36px}}

/* Exception */
.section.exception{background:var(--charcoal);color:#fff}
.section.exception .sec-head{color:#fff;margin-bottom:.2em}
.section.exception .rule{height:1px;background:linear-gradient(90deg,rgba(199,166,107,.9),transparent);border:0;margin:12px 0 44px}
.pillars{display:grid;grid-template-columns:repeat(2,1fr);column-gap:56px;row-gap:56px;counter-reset:ex}
@media (max-width:900px){.pillars{grid-template-columns:1fr;row-gap:36px}}
.pillar{position:relative;padding-top:calc(var(--num-size) + 14px)}
.pillar::before{counter-increment:ex;content:counter(ex) ".";position:absolute;left:0;top:0;font-family:"Playfair Display",Georgia,serif;font-size:var(--num-size);line-height:1;color:rgba(199,166,107,.95)}
.pillar::after{content:"";position:absolute;left:0;right:0;top:calc(var(--num-size) - var(--num-bottom-adjust));height:var(--rule-thick);background:rgba(199,166,107,.55)}
.pillar p{margin:.6em 0;line-height:1.6;font-size:clamp(15px,1.02vw,17px)}

/* Map */
.map{background:#141414;color:#fff}
.map .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:40px}
.map .map-embed{position:relative;width:100%;padding-top:56%;border-radius:14px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.map .map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.1) contrast(1.05)}
@media (max-width:900px){.map .wrap{grid-template-columns:1fr}.map .map-embed{padding-top:64%}}

/* Bottom hero band */
.hero-band{position:relative;height:42vh;min-height:280px;display:grid;place-items:end center;color:#fff;background:#000;overflow:hidden}
.hero-band::before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.55),rgba(0,0,0,.25) 35%,rgba(0,0,0,0));z-index:0}
.hero-band__bg{position:absolute;inset:0;background:#000 center/cover no-repeat;will-change:transform}
.hero-band__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;object-position:50% 40%;}
@media (max-width:900px){.hero-band{height:34vh;min-height:220px}}

/* Closing */
.closing{background:#111;color:#fff;text-align:center}
.closing__title{font-size:clamp(28px,4.2vw,48px);font-weight:600}
.closing__lead{font-family:"Playfair Display",Georgia,serif;font-style:italic;font-size:clamp(18px,2.1vw,26px);opacity:.92}

/* Animations */
@keyframes reveal{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease, transform .6s ease;will-change:opacity,transform}
  .reveal.in-view{opacity:1;transform:none}
  .pillars .pillar:nth-child(1){--delay:.00s}
  .pillars .pillar:nth-child(2){--delay:.06s}
  .pillars .pillar:nth-child(3){--delay:.12s}
  .pillars .pillar:nth-child(4){--delay:.18s}
  .pillars .pillar:nth-child(5){--delay=.24s}
  .pillars .pillar:nth-child(6){--delay:.30s}
  .pillars .pillar.reveal{transition-delay:var(--delay,0s)}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Feature overlay bullets */
.feature-img{position:relative}
.feature-overlay{position:absolute;left:0;right:0;bottom:4%;display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:16px;max-width:var(--maxw);margin:0 auto;padding:0 24px}
.feature-overlay .note{background:rgba(0,0,0,.62);backdrop-filter:saturate(115%) blur(2px);color:#fff;padding:16px 18px;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.feature-overlay h3{font-family:"Playfair Display",Georgia,serif;font-size:clamp(16px,2.2vw,22px);margin:0 0 .25em;color:#fff}
.feature-overlay .small{font-size:clamp(12px,1.4vw,14px);margin:0;color:#e9e9e9;line-height:1.5}
@media (max-width:900px){.feature-overlay{grid-template-columns:1fr;bottom:3%}.feature-overlay .note{padding:14px 16px}}

.split .img-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media (max-width:900px){.split .img-grid{grid-template-columns:1fr}}
.split .copy.under{text-align:left;max-width:980px}


/* ===== Feature overlay (Variant A – light frosted cards, full-bleed image) ===== */
.feature-img{position:relative}
.feature-img img{display:block;width:100%;height:auto;object-fit:cover}
.feature-overlay{
  position:absolute;right:22px;bottom:22px;z-index:2;
  display:grid;grid-template-columns:1fr;gap:12px;
  max-width:min(560px,50%);
}
.feature-overlay .note{
  background:rgba(249,247,244,.40); /* ~50% of previous frosted opacity */
  backdrop-filter:blur(4px) saturate(115%);
  -webkit-backdrop-filter:blur(4px) saturate(115%);
  color:#111;
  padding:14px 16px 12px;border-radius:12px;
  border:1px solid rgba(199,166,107,.35);
  box-shadow:0 10px 28px rgba(0,0,0,.12);
}
.feature-overlay h3{
  font-family:"Playfair Display", Georgia, serif;
  font-size:clamp(16px,2.2vw,22px);margin:0 0 .25em;color:#111
}
.feature-overlay .small{font-size:clamp(12px,1.4vw,14px);margin:0;color:#222;opacity:.85}
.feature-overlay .note:before{
  content:"";display:block;height:2px;width:96px;
  background:linear-gradient(90deg,var(--accent),transparent);
  margin-bottom:10px;border-radius:2px
}
@media (max-width:900px){
  .feature-overlay{position:static;right:auto;bottom:auto;max-width:none;margin:14px 0 0}
}


/* ===== Feature overlay layout: bottom two-card (v5.4) with frosted style ===== */
.feature-img{position:relative}
.feature-overlay{
  position:absolute;left:0;right:0;bottom:4%;
  display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:16px;
  max-width:var(--maxw);margin:0 auto;padding:0 24px;z-index:2;
}
.feature-overlay .note{
  background:rgba(249,247,244,.40);
  backdrop-filter:blur(4px) saturate(115%);
  -webkit-backdrop-filter:blur(4px) saturate(115%);
  color:#111;padding:14px 16px 12px;border-radius:12px;
  border:1px solid rgba(199,166,107,.35);
  box-shadow:0 10px 28px rgba(0,0,0,.12);
}
.feature-overlay h3{font-family:"Playfair Display",Georgia,serif;
  font-size:clamp(16px,2.2vw,22px);margin:0 0 .25em;color:#111}
.feature-overlay .small{font-size:clamp(12px,1.4vw,14px);margin:0;color:#222;opacity:.9}
.feature-overlay .note:before{
  content:"";display:block;height:2px;width:96px;
  background:linear-gradient(90deg,var(--accent),transparent);
  margin-bottom:10px;border-radius:2px
}
@media (max-width:900px){
  .feature-overlay{position:static;left:auto;right:auto;bottom:auto;grid-template-columns:1fr;max-width:none;margin:14px 0 0;padding:0 0}
}

/* v5.5: remove numeric counters for exception pillars, keep the brass rule */
.section.exception .pillar::before{content:none}

/* v5.5: minor spacing adjustment since section heading removed */
.section.exception .rule{margin-top:0;margin-bottom:36px}


/* v5.6 — queued feedback set */
/* Remove the old section-wide rule (keeps per-pillar rules) */
.section.exception > .rule { display: none; }

/* Align pillar brass rules with the text block left edge */
.section.exception .pillar{ display:flex; flex-direction:column; }
.section.exception .pillar .rule{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
  align-self:flex-start;
}

/* Make bold phrases heavier inside exception paragraphs */
.section.exception .pillar p strong,
.section.exception .pillar strong{
  font-weight:900;
  letter-spacing:.01em;
}
@supports (font-variation-settings: normal){
  .section.exception .pillar p strong{ font-variation-settings:"wght" 820; }
}

/* Tighten spacing between closing lines */
.section.closing .closing__lead{ margin-top:.18em; margin-bottom:.18em; }
.section.closing .closing__lead em,
.section.closing .closing__lead strong{
  display:inline;
}

/* v5.7: tighten closing stack a bit more and normalize paragraph margins */
.section.closing .closing__lead{ margin:.18em 0 !important; line-height:1.25; }

/* v5.8.1 — enforce rule alignment and closing spacing */
.section.exception .pillar .rule{
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
  max-width: none !important;
  align-self: flex-start;
}

.saleText {    font-size: 36px; color: #fcb900 !important;}
.section.exception .pillar p{
  margin-left: 0;
}
.section.closing .closing__stack{ text-align:center; }
.section.closing .closing__stack br{ display:block; margin:.06em 0; line-height:0; }
.section.closing .closing__lead{ margin:.18em 0; line-height:1.25; }

/* v5.9 safety + spacing/alignment */
.section.exception .pillar .rule{
  margin-left:0!important;margin-right:0!important;width:100%!important;max-width:none!important;align-self:flex-start;
}
.section.exception .pillar p{margin-left:0;}
.section.closing .closing__stack{text-align:center;}
.section.closing .closing__stack br{display:block;margin:.06em 0;line-height:0;}
.section.closing .closing__lead{margin:.18em 0;line-height:1.25;}

/* Pillars: align the brass rule with the text edge */
.section.exception .pillar hr.rule,
.section.exception .pillar .rule{
  margin-left: 0 !important;   /* kill the offset */
  margin-right: 0 !important;
  transform: none !important;  /* in case it was nudged via translateX */
  width: 100%;
  max-width: none;              /* let it start exactly at the text edge */
}

/* Ensure the paragraph sits flush too */
.section.exception .pillar p{
  margin-left: 0;
  padding-left: 0;
}


/* (Covers pseudo-element implementations) */
.section.exception .pillar [class*="head"]::before{
  left: 0 !important;
  right: auto;
  transform: none !important;
  width: 100%;
}
@media (min-width:1200px){.split .img-grid{grid-template-columns:1fr 1fr 1fr}}


/* Exception intro paragraph spanning both columns */
.section.exception .exception__intro{
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(18px, 1.25vw, 20px);
  line-height: 1.75;
  color: rgba(249,247,244,.92);
  margin: 8px 0 34px;
  max-width: 1200px;
}
@media (max-width: 900px){
  .section.exception .exception__intro{font-size: 17px; line-height: 1.7; margin-bottom: 24px; max-width: none;}
}

/* v5.11 — Closing emphasis tweaks */
.section.closing .closing__title{
  letter-spacing:.02em;
}
.section.closing .closing__lead{
  font-weight: 600;
  font-size: clamp(18px, 1.35vw, 22px);
  letter-spacing:.01em;
  color: #F7F5F2;
}
.section.closing .closing__lead:first-of-type{
  font-weight: 700;
  font-size: clamp(19px, 1.5vw, 24px);
}
.section.closing .closing__lead strong{
  text-underline-offset: 4px;
}

/* v5.11 — Image crop bias to protect rooflines */
.hero .hero__img img,
.bottom-hero .hero__img img,
.split .img-grid .img img{
  object-fit: cover;
  object-position: 50% 15%;
}
.hero{ background-position: 50% 15%; }
.bottom-hero{ background-position: 50% 15%; }

/* v5.11 — Nudge "Denholm is the exception." upward */
.exception__kicker{
  display:inline-block;
  position:relative;
  top:-0.8em;
}
@media (max-width:900px){
  .exception__kicker{ top:-0.5em; }
}
