/* Homes at the Falls · client.css · v3 · prefix haf- · split-safe (no sibling selectors between sections, no body>, no position-based backgrounds) */

:root{
  --ink:#0A0B09;--ink-2:#31312d;--ink-text:#686862;
  --paper:#FCFBF8;--paper-2:#F6F3EC;--paper-3:#EFECE4;
  --sand:#E8E2D7;--sand-2:#D8CFBF;--cream:#E9D5BD;
  --brass:#C8A47E;--brass-mid:#987247;--brass-text:#7F5C3A;
  --hair-light:rgba(10,11,9,.10);--hair-dark:rgba(233,213,189,.14);
  --display:"Playfair Display",Georgia,serif;
  --body:"Plus Jakarta Sans",sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --gutter:32px;--section:112px;--max:1280px;--outline:rgba(255,255,255,.2);--brass-a:rgba(200,164,126,.5);
  --shadow-warm:0 1px 2px rgba(60,40,10,.07),0 4px 8px rgba(60,40,10,.07),0 12px 24px rgba(60,40,10,.07),0 24px 48px rgba(60,40,10,.07),0 48px 96px rgba(60,40,10,.07);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1rem;line-height:1.6;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:var(--brass-text);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--brass-mid)}
h1,h2,h3,h4,p,ul,ol,figure,dl,dd{margin:0}
ul{padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:2px}
.haf-visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- layout ---------- */
.haf-wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.haf-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:start}
.haf-section{padding-block:var(--section)}
.haf-section--tight{padding-block:64px}
.haf-ground-paper{background:var(--paper);color:var(--ink)}
.haf-ground-paper-2{background:var(--paper-2);color:var(--ink)}
.haf-ground-paper-3{background:var(--paper-3);color:var(--ink)}
.haf-ground-sand{background:var(--sand);color:var(--ink)}
.haf-ground-eggshell{background:#eeebe3;color:var(--ink)}
.haf-ground-eggshell .haf-plate{background:var(--paper)}
.haf-ground-sand .haf-card{background:var(--paper);border-color:rgba(10,11,9,.12)}
.haf-ground-sand .haf-plate{background:var(--paper-2)}
.haf-ground-sand .haf-spec{background:var(--paper)}
.haf-ground-sand .haf-row{border-color:rgba(10,11,9,.12)}
.haf-ground-ink{background:var(--ink);color:var(--cream)}
.haf-ground-ink p{color:var(--sand-2)}
.haf-ground-ink a{color:var(--brass)}
.haf-ground-ink a:hover{color:var(--cream)}

/* ---------- type ---------- */
.haf-h1,.haf-h2,.haf-h3{font-family:var(--display);font-weight:500;letter-spacing:-.015em;line-height:1.05;text-wrap:balance}
.haf-h1{font-size:clamp(2.75rem,5.2vw,4.25rem)}
.haf-h2{font-size:2.75rem}
.haf-h3{font-size:1.75rem}
.haf-h4{font-family:var(--display);font-weight:500;font-size:1.25rem;line-height:1.2}
.haf-h1 em,.haf-h2 em,.haf-h3 em{font-style:italic;font-weight:400}
.haf-ground-ink .haf-h1 em,.haf-ground-ink .haf-h2 em{color:var(--brass)}
.haf-lead{font-size:1.125rem;line-height:1.6;color:var(--ink-text);max-width:65ch;text-wrap:pretty}
.haf-body{color:var(--ink-text);max-width:65ch;text-wrap:pretty}
.haf-ground-ink .haf-lead,.haf-ground-ink .haf-body{color:var(--sand-2)}
.haf-small{font-size:.875rem;line-height:1.55;color:var(--ink-text)}
.haf-ground-ink .haf-small{color:var(--sand-2)}
.haf-rail{font-family:var(--body);font-weight:600;font-size:.6875rem;letter-spacing:.25em;text-transform:uppercase;color:var(--brass-text);display:flex;align-items:center;gap:12px;margin-bottom:20px}
.haf-rail::before{content:"";width:24px;height:1px;background:var(--brass)}
.haf-section-head{padding-bottom:32px;border-bottom:1px solid var(--hair-light)}
.haf-ground-ink .haf-section-head{border-bottom-color:var(--hair-dark)}
.haf-rail--pulse::before{width:8px;height:8px;border-radius:50%;background:var(--brass);box-shadow:0 0 0 0 var(--brass-a);animation:haf-pulse 2s var(--ease) infinite}
@keyframes haf-pulse{0%{box-shadow:0 0 0 0 var(--brass-a)}70%{box-shadow:0 0 0 10px rgba(200,164,126,0)}100%{box-shadow:0 0 0 0 rgba(200,164,126,0)}}
.haf-ground-ink .haf-rail{color:var(--brass)}
.haf-micro{font-weight:600;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-text)}
.haf-ground-ink .haf-micro{color:var(--sand-2)}
.haf-price{font-family:var(--display);font-weight:500;font-size:1.75rem;line-height:1;letter-spacing:-.01em}
.haf-price small{font-family:var(--body);font-size:.8125rem;font-weight:500;letter-spacing:0;color:var(--ink-text)}
.haf-ground-ink .haf-price small{color:var(--sand-2)}
.haf-section-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px 48px;align-items:end;margin-bottom:48px}
.haf-section-head .haf-h2{margin-bottom:0}
.haf-section-head .haf-note{max-width:40ch;justify-self:end;text-align:left}

/* ---------- buttons ---------- */
.haf-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;border-radius:0;font-family:var(--body);font-weight:600;font-size:12px;letter-spacing:.25em;text-transform:uppercase;text-decoration:none;border:1px solid transparent;transition:background-color .2s var(--ease),color .2s var(--ease),transform .2s var(--ease);white-space:nowrap}
.haf-btn:active{transform:scale(.98)}
.haf-btn svg{width:14px;height:14px;flex:none;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.haf-btn--primary{background:var(--brass);color:var(--ink);border-color:var(--brass)}
.haf-btn--primary:hover{background:var(--brass-mid);border-color:var(--brass-mid);color:var(--paper)}
.haf-ground-ink .haf-btn--primary,.haf-card--ink .haf-btn--primary,.haf-footer .haf-btn--primary{color:var(--ink)}
.haf-ground-ink .haf-btn--primary:hover,.haf-card--ink .haf-btn--primary:hover{color:var(--paper)}
.haf-btn--secondary{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.haf-btn--secondary:hover{background:var(--ink-2);border-color:var(--ink-2);color:var(--cream)}
.haf-on-ink .haf-btn--secondary,.haf-ground-ink .haf-btn--secondary{background:transparent;color:var(--cream);border-color:var(--outline)}
.haf-on-ink .haf-btn--secondary:hover,.haf-ground-ink .haf-btn--secondary:hover{background:rgba(255,255,255,.08);color:var(--cream);border-color:rgba(255,255,255,.45)}
.haf-btn--tertiary{min-height:auto;padding:0;border:0;border-radius:0;color:var(--brass-text);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;letter-spacing:.25em;font-size:11px}
.haf-btn--tertiary:hover{color:var(--brass-mid)}
.haf-ground-ink .haf-btn--tertiary{color:var(--brass)}
.haf-ground-ink .haf-btn--tertiary:hover{color:var(--cream)}
.haf-btn--tertiary svg{width:14px;height:14px}
.haf-actions{display:flex;flex-wrap:wrap;gap:16px 20px;align-items:center}
.haf-actions--center{justify-content:center}

/* ---------- chips, cards, plates, facts ---------- */
.haf-chip{display:inline-flex;align-items:center;gap:8px;min-height:28px;padding:0 10px;border:1px solid var(--hair-light);border-radius:4px;font-weight:600;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-text);background:var(--paper);white-space:nowrap}
.haf-chip--brass{background:var(--brass);border-color:var(--brass);color:var(--ink)}
.haf-chip--ink{background:rgba(10,11,9,.55);border-color:var(--hair-dark);color:var(--cream);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.haf-ground-ink .haf-chip{background:var(--ink-2);border-color:var(--hair-dark);color:var(--sand-2)}
.haf-ground-ink .haf-chip--brass{background:var(--brass);border-color:var(--brass);color:var(--ink)}
.haf-chips{display:flex;flex-wrap:wrap;gap:8px}
.haf-card{background:var(--paper-3);border:1px solid var(--hair-light);border-radius:6px;padding:32px}
.haf-card--paper{background:var(--paper)}
.haf-card--ink{background:var(--ink-2);border-color:var(--hair-dark);color:var(--cream);box-shadow:var(--shadow-warm)}
.haf-card--ink p{color:var(--sand-2)}
.haf-card--ink .haf-chip{background:var(--ink);border-color:var(--hair-dark);color:var(--sand-2)}
.haf-card--ink .haf-rail{color:var(--brass)}
.haf-card--ink .haf-body,.haf-card--ink .haf-small{color:var(--sand-2)}
.haf-card--ink .haf-price small{color:var(--sand-2)}
.haf-card__corner{position:absolute;top:16px;left:16px}
.haf-card--has-corner{position:relative;padding-top:56px}
.haf-plate{position:relative;border:1px solid var(--hair-light);border-radius:6px;overflow:hidden;background:var(--paper-3)}
.haf-plate img{width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.haf-plate{aspect-ratio:16/10}
.haf-plate--wide{aspect-ratio:21/9}
.haf-plate--auto{aspect-ratio:auto}
.haf-plate--auto img{height:auto;object-fit:initial}
.haf-plate--multiply{aspect-ratio:16/10}
.haf-plate--multiply img{object-fit:contain;object-position:50% 50%;padding:8%}
.haf-card--ink .haf-plate--on-ink{background:var(--paper-3);border-color:var(--hair-light)}
.haf-plate--multiply img{mix-blend-mode:multiply}
.haf-plate--cover img{height:100%;object-fit:cover}
.haf-plate--ink{background:var(--ink-2);border-color:var(--hair-dark)}
.haf-plate__chip{position:absolute;top:12px;left:12px;z-index:1}
.haf-plate__cap{position:absolute;right:12px;bottom:12px;z-index:1;font-weight:600;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cream);background:rgba(10,11,9,.55);border:1px solid var(--hair-dark);border-radius:4px;padding:6px 10px;max-width:calc(100% - 24px);text-align:right}
.haf-plate__title{position:absolute;left:0;right:0;bottom:0;padding:20px 24px;background:linear-gradient(180deg,rgba(10,11,9,0),rgba(10,11,9,.75));color:var(--cream)}
.haf-plate__title .haf-h4{color:var(--cream)}
.haf-plate__title p{color:var(--sand-2);font-size:.875rem;margin-top:4px}
.haf-fact{display:flex;gap:14px;align-items:flex-start}
.haf-fact svg{width:20px;height:20px;flex:none;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round;margin-top:2px;color:var(--brass-text)}
.haf-ground-ink .haf-fact svg,.haf-card--ink .haf-fact svg{color:var(--brass)}
.haf-fact > div{flex:1;min-width:0}
.haf-fact strong{display:block;font-weight:600;font-size:1rem;line-height:1.4}
.haf-fact span{display:block;color:var(--ink-text);font-size:.9375rem;line-height:1.5}
.haf-ground-ink .haf-fact span,.haf-card--ink .haf-fact span{color:var(--sand-2)}
.haf-facts{display:grid;gap:20px}
.haf-icon-box{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--hair-light);border-radius:4px;color:var(--brass-text);background:var(--paper)}
.haf-icon-box svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.haf-ground-ink .haf-icon-box,.haf-card--ink .haf-icon-box{background:var(--ink);border-color:var(--hair-dark);color:var(--brass)}
.haf-rows{display:grid}
.haf-row{display:flex;align-items:center;gap:14px;padding:16px 0;border-top:1px solid var(--hair-light)}
.haf-row:first-child{border-top:0;padding-top:0}
.haf-row:last-child{padding-bottom:0}
.haf-row svg{width:20px;height:20px;flex:none;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round;color:var(--brass-text)}
.haf-row__name{flex:1;font-weight:500;line-height:1.4}
.haf-row__name small{display:block;font-weight:400;font-size:.8125rem;color:var(--ink-text)}
.haf-row__val{font-weight:600;font-size:.8125rem;letter-spacing:.02em;color:var(--brass-text);white-space:nowrap}
.haf-ground-ink .haf-row{border-color:var(--hair-dark)}
.haf-ground-ink .haf-row svg,.haf-ground-ink .haf-row__val{color:var(--brass)}
.haf-spec{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--hair-light);border-radius:6px;overflow:hidden;background:var(--paper)}
.haf-spec > div{padding:16px 20px;border-left:1px solid var(--hair-light)}
.haf-spec > div:first-child{border-left:0}
.haf-spec .haf-micro{display:block;margin-bottom:6px}
.haf-spec strong{font-family:var(--display);font-weight:500;font-size:1.125rem;line-height:1.2}
.haf-ground-ink .haf-spec{background:var(--ink-2);border-color:var(--hair-dark)}
.haf-ground-ink .haf-spec > div{border-color:var(--hair-dark)}

/* ---------- reveal ---------- */
html.js .haf-reveal{opacity:0;transform:translateY(40px);filter:blur(6px);transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease);transition-delay:var(--d,0ms)}
html.js .haf-reveal.is-in{filter:none}
.haf-plate img,.haf-wide-plate img{transition:transform 1.2s var(--ease)}
.haf-plate:hover img,.haf-wide-plate:hover img{transform:scale(1.04)}
html.js .haf-section-head{background:linear-gradient(var(--hair-light),var(--hair-light)) left bottom/0 1px no-repeat;border-bottom-color:transparent;transition:background-size 1.2s var(--ease) .2s}
html.js .haf-section-head.is-in{background-size:100% 1px}
html.js .haf-ground-ink .haf-section-head{background-image:linear-gradient(var(--hair-dark),var(--hair-dark))}
html.js .haf-hero .haf-rail,html.js .haf-hero .haf-h1,html.js .haf-hero .haf-lead,html.js .haf-hero .haf-actions,html.js .haf-glass{animation:haf-up .9s var(--ease) both}
html.js .haf-hero .haf-h1{animation-delay:.08s}html.js .haf-hero .haf-lead{animation-delay:.16s}html.js .haf-hero .haf-actions{animation-delay:.24s}html.js .haf-glass{animation-delay:.36s}
@keyframes haf-up{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
html.js .haf-reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html.js .haf-reveal{opacity:1;transform:none;filter:none;transition:none}
  html.js .haf-hero .haf-rail,html.js .haf-hero .haf-h1,html.js .haf-hero .haf-lead,html.js .haf-hero .haf-actions,html.js .haf-glass{animation:none}
  .haf-plate img,.haf-wide-plate img{transition:none}
  html.js .haf-section-head{background-size:100% 1px;transition:none}
  .haf-hero__img img{animation:none!important}
  .haf-cta-section::before,.haf-rail--pulse::before,.haf-hero__status::before,.haf-ann__dot{animation:none!important}
  .haf-btn{transition:none}
}

/* ---------- announcement ---------- */
.haf-ann{background:var(--ink);color:var(--cream);text-align:center;padding:10px var(--gutter);font-weight:600;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.haf-ann a{color:var(--brass);text-decoration:none}
.haf-ann a:hover{color:var(--cream)}
.haf-ann__short{display:none}
.haf-ann__dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--brass);vertical-align:middle;position:relative;top:-1px;margin-right:12px;box-shadow:0 0 0 0 var(--brass-a);animation:haf-pulse 2.4s var(--ease) infinite}

/* ---------- header ---------- */
.haf-skip{position:absolute;left:16px;top:-100px;z-index:200;background:var(--brass);color:var(--ink);padding:12px 20px;border-radius:4px;font-weight:600;font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.haf-skip:focus{top:16px}
.haf-header{position:sticky;top:0;z-index:100;background:var(--paper);border-bottom:1px solid var(--hair-light);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.haf-header.is-hidden{transform:translateY(-100%)}
.haf-header.is-stuck{box-shadow:var(--shadow-warm)}
.haf-header__bar{display:flex;align-items:center;gap:32px;min-height:80px}
.haf-logo{display:inline-flex;align-items:center;text-decoration:none;flex:none}
.haf-logo img{height:50px;width:auto}
.haf-nav{flex:1;display:flex;justify-content:center}
.haf-nav ul{display:flex;gap:36px}
.haf-nav a{white-space:nowrap;color:var(--ink);text-decoration:none;font-weight:600;font-size:11px;letter-spacing:.25em;text-transform:uppercase;padding:8px 0;border-bottom:1px solid transparent;transition:border-color .2s var(--ease),color .2s var(--ease)}
.haf-nav a:hover{color:var(--brass-text)}
.haf-nav a[aria-current="page"]{border-bottom-color:var(--brass);color:var(--ink)}
.haf-header__right{display:flex;align-items:center;gap:24px;flex:none;margin-left:auto}
.haf-header__portal{white-space:nowrap;color:var(--ink-text);text-decoration:none;font-weight:600;font-size:11px;letter-spacing:.25em;text-transform:uppercase}
.haf-header__portal:hover{color:var(--brass-text)}
.haf-header .haf-btn{min-height:44px;padding:0 22px;background:var(--ink);border-color:var(--ink);color:var(--paper);font-size:11px;letter-spacing:.25em}
.haf-header .haf-btn:hover{background:var(--ink-2);border-color:var(--ink-2);color:var(--paper)}
.haf-menu-btn{display:none;align-items:center;gap:8px;min-height:44px;padding:0 12px;font-weight:600;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);border:1px solid var(--hair-light);border-radius:4px}
.haf-menu-btn svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round}
.haf-menu{position:fixed;inset:0;z-index:150;background:var(--paper);display:none;flex-direction:column;padding:24px var(--gutter);overflow:auto}
.haf-menu.is-open{display:flex}
.haf-menu__top{display:flex;align-items:center;justify-content:space-between;min-height:56px}
.haf-menu ul{margin-top:40px;display:grid;gap:4px}
.haf-menu ul a{display:block;padding:16px 0;border-bottom:1px solid var(--hair-light);color:var(--ink);text-decoration:none;font-family:var(--display);font-size:2rem;font-weight:500}
.haf-menu ul a[aria-current="page"]{color:var(--brass-text)}
.haf-menu__foot{margin-top:auto;padding-top:40px;display:grid;gap:16px}
.haf-menu__foot .haf-btn{justify-content:center}

/* ---------- hero ---------- */
.haf-hero{position:relative;min-height:calc(100dvh - 118px);display:flex;align-items:flex-end;overflow:hidden;color:var(--cream);background:var(--ink)}
.haf-hero__img{position:absolute;inset:0;z-index:0}
.haf-hero__img img{width:100%;height:100%;object-fit:cover;animation:haf-pan 24s var(--ease) infinite alternate;transform-origin:60% 40%}
@keyframes haf-pan{from{transform:scale(1)}to{transform:scale(1.06)}}
.haf-hero__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,11,9,.30) 0%,rgba(10,11,9,.55) 55%,rgba(10,11,9,.92) 88%,#0A0B09 100%)}
.haf-hero__inner{position:relative;z-index:2;width:100%;padding-block:96px 72px;display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:48px;align-items:end}
.haf-hero .haf-rail{color:var(--brass)}
.haf-hero .haf-h1{color:var(--paper);margin-bottom:24px}
.haf-hero .haf-h1 em{color:var(--brass)}
.haf-hero .haf-lead{color:var(--sand-2);margin-bottom:36px}
.haf-hero__status{display:inline-flex;align-items:center;gap:10px;font-size:.9375rem;color:var(--sand-2)}
.haf-hero__status::before{content:"";width:8px;height:8px;border-radius:50%;background:#3ddc97;box-shadow:0 0 0 0 rgba(61,220,151,.5);animation:haf-pulse-g 2s var(--ease) infinite}
@keyframes haf-pulse-g{0%{box-shadow:0 0 0 0 rgba(61,220,151,.5)}70%{box-shadow:0 0 0 9px rgba(61,220,151,0)}100%{box-shadow:0 0 0 0 rgba(61,220,151,0)}}
.haf-glass{justify-self:end;width:100%;max-width:400px;background:rgba(10,11,9,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--hair-dark);border-radius:6px;padding:28px 32px;display:grid;grid-template-columns:1fr 1fr;gap:24px}
.haf-glass dt{font-weight:600;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin-bottom:6px}
.haf-glass dd{color:var(--paper);font-size:1rem;line-height:1.4}
.haf-glass dd strong{font-family:var(--display);font-weight:500;font-size:1.375rem}

/* ---------- promo ---------- */
.haf-promo-section{position:relative;padding-block:72px;background:var(--ink);overflow:hidden}
.haf-promo-section::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,11,9,0) 45%,rgba(200,164,126,.09) 100%);pointer-events:none}
.haf-promo{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:32px;align-items:center}
.haf-promo .haf-icon-box{width:76px;height:76px;border-radius:50%;background:rgba(200,164,126,.10);border-color:rgba(200,164,126,.35)}
.haf-promo .haf-icon-box svg{width:24px;height:24px}
.haf-promo .haf-h3{color:var(--paper);margin-bottom:12px;font-size:2.25rem;max-width:30ch}
.haf-promo .haf-rail{margin-bottom:12px;color:var(--brass)}
.haf-promo .haf-btn--tertiary{min-height:48px;padding:0 24px;border:1px solid var(--outline);text-decoration:none;color:var(--cream)}
.haf-promo .haf-btn--tertiary:hover{border-color:rgba(255,255,255,.45);background:rgba(255,255,255,.06);color:var(--cream)}
.haf-promo__terms{font-size:.875rem;color:var(--sand-2);max-width:65ch}

/* ---------- two ways ---------- */
.haf-two{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.haf-two__apt{grid-column:span 6}
.haf-two__town{grid-column:span 6}
.haf-live-card{display:flex;flex-direction:column;gap:24px;height:100%}
.haf-live-card__top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.haf-live-card__top .haf-price{text-align:right;white-space:nowrap}
.haf-live-card .haf-plate{margin-top:auto;aspect-ratio:16/10}
.haf-live-card .haf-h3{margin-bottom:12px}
.haf-live-card .haf-btn--tertiary{text-decoration:none;font-size:11px;letter-spacing:.25em;text-transform:uppercase;font-weight:600;align-self:flex-start}
.haf-live-card .haf-btn--tertiary:hover{text-decoration:underline}
.haf-card--ink .haf-live-card .haf-btn--tertiary{color:var(--brass)}

/* ---------- feature split ---------- */
.haf-split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:48px 64px;align-items:stretch}
.haf-split__text{align-self:center}
.haf-split .haf-plate{aspect-ratio:auto;min-height:420px;height:100%}
.haf-split__media{grid-column:span 7}
.haf-split__text{grid-column:span 5}
.haf-split--flip .haf-split__media{order:2}
.haf-split--flip .haf-split__text{order:1}
.haf-sticky{position:sticky;top:112px;align-self:start}
.haf-split .haf-h2{margin-bottom:20px}
.haf-split .haf-body{margin-bottom:32px}
.haf-split .haf-facts{margin-bottom:36px}

/* ---------- table ---------- */
.haf-table-wrap{border:1px solid var(--hair-light);border-radius:6px;overflow:hidden;background:var(--paper);box-shadow:var(--shadow-warm)}
.haf-table{width:100%;border-collapse:collapse}
.haf-table th{background:var(--ink);color:var(--cream);text-align:left;padding:14px 20px;font-weight:600;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;border-bottom:1px solid var(--hair-light)}
.haf-table td{padding:22px 20px;border-bottom:1px solid var(--hair-light);vertical-align:middle;color:var(--ink-text);transition:background-color .2s var(--ease)}
.haf-table tbody tr:hover td{background:var(--paper-2)}
.haf-table tbody tr.is-featured:hover td{background:var(--sand)}
.haf-table tr:last-child td{border-bottom:0}
.haf-table td:first-child{font-family:var(--display);font-size:1.375rem;font-weight:500;color:var(--ink)}
.haf-table td:first-child .haf-chip{vertical-align:middle;margin-left:10px;font-family:var(--body);border-radius:0;min-height:22px;padding:0 8px;font-size:.625rem;letter-spacing:.14em}
.haf-table td:first-child .haf-chip--brass{color:#fff}
.haf-table .haf-table__rent{font-family:var(--display);font-size:1.25rem;color:var(--ink);white-space:nowrap}
.haf-table .haf-table__rent small{font-family:var(--body);font-size:.75rem;color:var(--ink-text)}
.haf-table td:last-child{text-align:right}
.haf-table .haf-btn{min-height:40px;padding:0 16px;font-size:11px}
.haf-table-card{box-shadow:var(--shadow-warm)}
.haf-table tr.is-featured td{background:var(--paper-2)}
.haf-table-foot{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:24px;align-items:center}

/* ---------- full-width plate ---------- */
.haf-wide-plate{position:relative;border:1px solid var(--hair-dark);border-radius:6px;overflow:hidden;background:var(--ink-2)}
.haf-wide-plate{aspect-ratio:21/9}
.haf-wide-plate img{width:100%;height:100%;object-fit:cover;object-position:50% 55%}
.haf-wide-plate__bar{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;gap:16px;padding:20px 24px;background:linear-gradient(180deg,rgba(10,11,9,0),rgba(10,11,9,.8));color:var(--cream);font-weight:600;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase}
.haf-wide-plate__bar em{font-style:normal;color:var(--sand-2)}
.haf-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-bottom:48px}
.haf-stat{border-top:1px solid var(--hair-dark);padding-top:16px}
.haf-stat strong{display:block;font-family:var(--display);font-weight:500;font-size:2rem;line-height:1.1;color:var(--paper)}
.haf-stat span{display:block;margin-top:6px;font-weight:600;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass)}

/* ---------- faq ---------- */
.haf-faq{display:grid;gap:8px}
.haf-split__text .haf-h2 + .haf-body{margin-top:16px}
.haf-faq details{background:var(--paper);border:1px solid var(--hair-light);border-radius:6px}
.haf-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;font-family:var(--display);font-size:1.25rem;font-weight:500;line-height:1.3}
.haf-faq summary::-webkit-details-marker{display:none}
.haf-faq summary::after{content:"+";font-family:var(--body);font-weight:400;font-size:1.375rem;color:var(--brass-text);flex:none;line-height:1}
.haf-faq details[open] summary::after{content:"–"}
.haf-faq details p{padding:0 24px 24px;color:var(--ink-text);max-width:65ch}

/* ---------- centred cta ---------- */
.haf-cta-section{position:relative;overflow:hidden;isolation:isolate}
.haf-cta-section::before{content:"";position:absolute;inset:-40%;z-index:-1;background:radial-gradient(60% 50% at 30% 40%,rgba(200,164,126,.16),transparent 60%),radial-gradient(50% 45% at 75% 65%,rgba(200,164,126,.10),transparent 60%);animation:haf-drift 28s ease-in-out infinite alternate}
@keyframes haf-drift{from{transform:translate3d(-4%,-3%,0) rotate(0deg)}to{transform:translate3d(4%,3%,0) rotate(6deg)}}
.haf-cta{text-align:center;max-width:720px;margin-inline:auto;display:grid;justify-items:center;gap:24px}
.haf-cta .haf-h2{font-size:3.25rem;width:100%}
.haf-cta .haf-h2 em{color:var(--brass)}
.haf-cta__micro{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 24px;font-weight:600;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sand-2)}
.haf-cta__micro a{color:var(--brass);text-decoration:none}

/* ---------- scroll to top ---------- */
.haf-totop{position:fixed;right:24px;bottom:24px;left:auto;z-index:90;width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:var(--cream);border:1px solid rgba(255,255,255,.14);box-shadow:var(--shadow-warm);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s}
.haf-totop.is-on{opacity:1;visibility:visible;transform:none}
.haf-totop svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.haf-totop:hover{background:var(--brass);color:var(--ink);border-color:var(--brass)}

/* ---------- footer ---------- */
.haf-footer{padding-block:80px 32px}
.haf-footer__grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:48px;padding-bottom:56px;border-bottom:1px solid var(--hair-dark)}
.haf-footer__brand img{width:100%;max-width:300px;height:auto;margin-bottom:24px}
.haf-footer__brand p{max-width:34ch;font-size:.9375rem}
.haf-footer h3{font-weight:600;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin-bottom:20px}
.haf-footer p,.haf-footer address{font-style:normal;color:var(--sand-2);font-size:.9375rem;line-height:1.7}
.haf-footer a{color:var(--cream);text-decoration:none}
.haf-footer a:hover{color:var(--brass)}
.haf-footer .haf-btn--tertiary{margin-top:20px;color:var(--brass)}
.haf-footer__bees img{height:40px;width:auto;margin-bottom:16px}
.haf-footer__eho{display:flex;gap:12px;align-items:flex-start}
.haf-footer__eho svg{width:28px;height:28px;flex:none;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round;color:var(--brass)}
.haf-footer__bottom{display:flex;justify-content:space-between;gap:24px 40px;flex-wrap:wrap;padding-top:28px;font-size:.75rem;color:var(--sand-2);line-height:1.6}
.haf-footer__bottom p{font-size:.75rem;max-width:80ch}
.haf-footer__links{display:flex;gap:24px;flex-wrap:wrap}
.haf-footer__links a{font-weight:600;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap}

/* ---------- page intro (inner pages) ---------- */
.haf-intro{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px 48px;align-items:end}
.haf-intro--fp .haf-h1{white-space:nowrap;font-size:clamp(2.5rem,4.6vw,4rem)}
.haf-intro--fp .haf-lead{margin-bottom:0}
.haf-intro--fp .haf-actions{justify-self:end;align-self:end;padding-bottom:4px}
.haf-btn--primary.haf-btn--white{color:#fff}
.haf-btn--primary.haf-btn--white:hover{color:#fff}
.haf-btn--ghost{background:var(--paper-3);border-color:var(--paper-3);color:var(--ink)}
.haf-btn--ghost:hover{background:var(--sand);border-color:var(--sand);color:var(--ink)}
.haf-intro .haf-h1{margin-bottom:24px}
.haf-intro .haf-lead{margin-bottom:36px}
.haf-intro__aside{justify-self:end;width:100%;max-width:360px}
.haf-address{display:grid;gap:4px}
.haf-address strong{font-family:var(--display);font-weight:500;font-size:1.375rem}
.haf-address .haf-micro{margin-bottom:8px}

/* ---------- plan sections ---------- */
.haf-plan{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:48px 64px;align-items:start}
.haf-plan__media{grid-column:span 7;display:grid;gap:24px}
.haf-plan__media .haf-plate{aspect-ratio:auto;min-height:440px;height:100%}
.haf-plan__text{grid-column:span 5}
.haf-plan--flip .haf-plan__media{order:2}
.haf-plan--flip .haf-plan__text{order:1}
.haf-plan__top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.haf-plan .haf-h2{margin-bottom:8px}
.haf-plan__sub{font-family:var(--display);font-style:italic;font-size:1.25rem;color:var(--brass-text);margin-bottom:20px}
.haf-plan .haf-body{margin-bottom:28px}
.haf-plan .haf-spec{margin-bottom:28px}
.haf-plan .haf-facts{margin-bottom:32px}
.haf-plates-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:48px}
.haf-stats--4{grid-template-columns:repeat(4,minmax(0,1fr))}

/* ---------- compare ---------- */
.haf-compare{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-bottom:24px}
.haf-compare .haf-card{display:flex;flex-direction:column;gap:20px}
.haf-compare .haf-card.is-featured{background:var(--paper);border-color:var(--brass);box-shadow:inset 0 0 0 1px var(--brass)}
.haf-compare__top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.haf-compare dl{display:grid;gap:0}
.haf-compare dl div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--hair-light);font-size:.9375rem}
.haf-compare dt{color:var(--ink-text)}
.haf-compare dd{font-weight:600;text-align:right}
.haf-compare .haf-btn{margin-top:auto;justify-content:center}

/* ---------- forms ---------- */
.haf-form{display:grid;gap:20px}
.haf-form__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.haf-field{display:grid;gap:8px}
.haf-field label{font-weight:600;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-text)}
.haf-field label .haf-req{color:var(--brass-text)}
.haf-field input,.haf-field select,.haf-field textarea{width:100%;min-height:48px;padding:12px 14px;font:inherit;font-size:.9375rem;color:var(--ink);background:var(--paper);border:1px solid var(--hair-light);border-radius:4px;transition:border-color .2s var(--ease)}
.haf-field textarea{min-height:120px;resize:vertical}
.haf-field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%237F5C3A' stroke-width='1.5'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}
.haf-field input:focus,.haf-field select:focus,.haf-field textarea:focus{outline:2px solid var(--brass-mid);outline-offset:2px;border-color:var(--brass-mid)}
.haf-field input[aria-invalid="true"],.haf-field textarea[aria-invalid="true"]{border-color:var(--brass-mid);box-shadow:inset 0 0 0 1px var(--brass-mid)}
.haf-field__error{display:none;font-size:.8125rem;color:var(--brass-text)}
.haf-field__error.is-visible{display:block}
.haf-form__actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px}
.haf-form__status{display:none;padding:14px 16px;border:1px solid var(--brass);border-radius:4px;background:var(--paper-2);font-size:.9375rem}
.haf-form__status.is-visible{display:block}

/* ---------- contact ---------- */
.haf-info-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.haf-info-card{display:grid;gap:16px;align-content:start;min-height:100%}
.haf-info-card__head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.haf-info-card__head .haf-micro{white-space:nowrap}
.haf-info-card .haf-h4{font-size:1.375rem}
.haf-info-card address{font-style:normal;color:var(--ink-text);line-height:1.7}
.haf-info-card address a{text-decoration:none;color:var(--ink)}
.haf-info-card address a:hover{color:var(--brass-text)}
.haf-hours{display:grid;gap:6px}
.haf-hours div{display:flex;justify-content:space-between;gap:16px;font-size:.9375rem}
.haf-hours dt{color:var(--ink-text)}
.haf-hours dd{font-weight:500;white-space:nowrap;text-align:right}
.haf-map{position:relative;border:1px solid var(--hair-light);border-radius:6px;overflow:hidden;background:var(--paper-3)}
.haf-map iframe{display:block;width:100%;height:480px;border:0;filter:saturate(.6) contrast(1.02)}
.haf-map__card{position:absolute;left:32px;bottom:32px;max-width:420px;display:flex;align-items:center;gap:20px;padding:20px 24px;background:var(--paper);border:1px solid var(--hair-light);border-radius:6px;box-shadow:var(--shadow-warm)}
.haf-map__card > div{flex:1;min-width:0}
.haf-map__card .haf-h4{margin-bottom:2px;white-space:nowrap}
.haf-map__card p{font-size:.875rem;color:var(--ink-text)}
.haf-map__card .haf-btn{margin-left:auto;flex:none;min-height:40px;padding:0 16px;font-size:11px}
.haf-tour{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start}
.haf-tour__side{display:grid;gap:24px}
.haf-tour__form{background:var(--paper);border:1px solid var(--hair-light);border-radius:6px;padding:40px;box-shadow:var(--shadow-warm)}
.haf-tour__form .haf-h2{margin-bottom:12px;font-size:2.25rem}
.haf-tour__form .haf-body{margin-bottom:32px}
.haf-next{display:grid;gap:20px}
.haf-next .haf-fact{padding-top:20px;border-top:1px solid var(--hair-light)}
.haf-next .haf-fact:first-of-type{border-top:0;padding-top:0}
.haf-apply{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-bottom:32px}
.haf-apply .haf-card{display:flex;flex-direction:column;gap:20px;background:rgb(20 21 18);border-color:rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.04),var(--shadow-warm)}
.haf-apply .haf-card .haf-icon-box{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}
.haf-apply .haf-card__actions{padding-top:24px;border-top:1px solid rgba(255,255,255,.08);justify-content:space-between}
.haf-apply .haf-h3{color:var(--paper);font-size:1.75rem}
.haf-apply .haf-card__actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:auto}
.haf-strip{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding:24px 32px;border:1px solid rgba(255,255,255,.08);border-radius:6px;background:rgb(20 21 18)}
.haf-strip .haf-fact{align-items:center}
.haf-strip .haf-fact svg{margin-top:0}
.haf-strip__tel{font-family:var(--display);font-size:1.75rem;color:var(--brass);text-decoration:none;white-space:nowrap}
.haf-strip .haf-fact{flex:1;min-width:0}
.haf-strip__tel:hover{color:var(--cream)}

/* ---------- neighborhood ---------- */
.haf-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}
.haf-tab{min-height:40px;padding:0 16px;border:1px solid var(--hair-light);border-radius:4px;background:var(--paper);font-weight:600;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-text);transition:background-color .2s var(--ease),color .2s var(--ease)}
.haf-tab:hover{color:var(--brass-text)}
.haf-tab[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:var(--cream)}
.haf-places{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.haf-place{display:grid;gap:12px;align-content:start;background:var(--paper)}
.haf-place[hidden]{display:none}
.haf-place__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.haf-place .haf-h4{font-size:1.375rem;margin-top:4px}
.haf-place address{font-style:normal;font-size:.875rem;color:var(--ink-text)}
.haf-place__note{font-size:.9375rem;color:var(--ink-text)}
.haf-place__foot{display:flex;justify-content:flex-start;align-items:center;gap:12px;padding-top:16px;margin-top:8px;border-top:1px solid var(--hair-light)}
.haf-place__dist{font-weight:600;font-size:.8125rem;color:var(--brass-text)}
.haf-feature-card{display:grid;gap:20px}
.haf-feature{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);border:1px solid var(--hair-light);border-radius:6px;overflow:hidden;background:var(--paper);box-shadow:var(--shadow-warm)}
.haf-feature .haf-plate{border:0;border-radius:0;border-right:1px solid var(--hair-light);aspect-ratio:auto;min-height:100%}
.haf-feature .haf-feature-card{border:0;border-radius:0;background:var(--paper-3);padding:40px}
.haf-feature-card .haf-h3{margin-bottom:4px}
.haf-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
.haf-pair .haf-card{display:grid;gap:16px;align-content:start}
.haf-pair .haf-h3{font-size:1.5rem}

/* floor-plans intro: buttons sit on the subtitle line, so the lead carries no bottom margin */
.haf-intro--fp .haf-lead{margin-bottom:0}
.haf-intro--fp .haf-actions{align-self:end;padding-bottom:0}

/* ---------- breakpoints ---------- */
@media (max-width:1440px){:root{--max:1280px}}
/* full desktop header needs ~1157px; tighten the nav, then switch to the menu button before it can collide */
@media (max-width:1400px){.haf-nav ul{gap:24px}}
@media (max-width:1200px){.haf-nav,.haf-header__portal{display:none}.haf-menu-btn{display:inline-flex}}
@media (max-width:1024px){
  :root{--section:88px}
  .haf-h2{font-size:2.375rem}
  .haf-cta .haf-h2{font-size:2.75rem}
  .haf-nav,.haf-header__portal{display:none}
  .haf-menu-btn{display:inline-flex}
  .haf-glass{grid-template-columns:minmax(0,1fr);gap:18px}
  .haf-places{grid-template-columns:repeat(2,minmax(0,1fr))}
  .haf-info-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
  .haf-compare{grid-template-columns:repeat(3,minmax(0,1fr))}
  .haf-compare .haf-card{padding:24px}
}
@media (max-width:900px){
  :root{--gutter:24px}
  .haf-nav,.haf-header__portal{display:none}
  .haf-menu-btn{display:inline-flex}
  .haf-header__bar{min-height:72px;gap:16px}
  .haf-logo img{height:38px}
  .haf-hero__inner{grid-template-columns:minmax(0,1fr);gap:40px;padding-block:96px 56px}
  .haf-glass{justify-self:start;max-width:none}
  .haf-section-head{grid-template-columns:minmax(0,1fr);align-items:start}
  .haf-section-head .haf-note{justify-self:start}
  .haf-two__apt,.haf-two__town{grid-column:span 12}
  .haf-feature{grid-template-columns:minmax(0,1fr)}
  .haf-feature .haf-plate{border-right:0;border-bottom:1px solid var(--hair-light)}
  .haf-split,.haf-plan{gap:40px 0}
  .haf-sticky{position:static}
  .haf-split__media,.haf-split__text,.haf-plan__media,.haf-plan__text{grid-column:span 12}
  .haf-split--flip .haf-split__media,.haf-plan--flip .haf-plan__media{order:0}
  .haf-split--flip .haf-split__text,.haf-plan--flip .haf-plan__text{order:0}
  .haf-promo{grid-template-columns:auto minmax(0,1fr)}
  .haf-promo .haf-actions{grid-column:1 / -1}
  .haf-intro{grid-template-columns:minmax(0,1fr)}
  .haf-intro--fp .haf-h1{white-space:normal}
  .haf-intro--fp .haf-actions{justify-self:stretch;width:100%}
  .haf-intro__aside{justify-self:start;max-width:none}
  .haf-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .haf-tour{grid-template-columns:minmax(0,1fr)}
  .haf-tour__form{padding:32px}
  .haf-info-cards{grid-template-columns:minmax(0,1fr)}
  .haf-compare{grid-template-columns:minmax(0,1fr)}
  .haf-apply{grid-template-columns:minmax(0,1fr)}
  .haf-pair{grid-template-columns:minmax(0,1fr)}
  .haf-stats--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .haf-plates-2{grid-template-columns:minmax(0,1fr)}
  .haf-map__card{left:16px;right:16px;bottom:16px;max-width:none;flex-wrap:wrap}
  .haf-map__card .haf-btn{margin-left:0}
}
@media (max-width:768px){
  :root{--section:72px}
  .haf-h2{font-size:2.125rem}
  .haf-grid{gap:16px}
  .haf-places{grid-template-columns:minmax(0,1fr)}
  .haf-spec{grid-template-columns:minmax(0,1fr)}
  .haf-spec > div{border-left:0;border-top:1px solid var(--hair-light)}
  .haf-spec > div:first-child{border-top:0}
}
@media (max-width:600px){
  :root{--gutter:20px;--section:64px}
  .haf-h1{font-size:2.5rem}
  .haf-h2{font-size:2rem}
  .haf-h3{font-size:1.5rem}
  .haf-cta .haf-h2{font-size:2.25rem}
  .haf-ann__full{display:none}
  .haf-ann__short{display:inline}
  .haf-header .haf-btn{padding:0 12px;font-size:.6875rem;gap:0}
  .haf-header .haf-btn svg{display:none}
  .haf-header__bar{gap:12px}
  .haf-menu-btn{padding:0 11px;gap:0;font-size:0}
  .haf-menu-btn svg{width:20px;height:20px}
  .haf-menu__close{font-size:0}
  .haf-hero__inner{padding-block:80px 48px}
  .haf-glass{grid-template-columns:minmax(0,1fr);gap:18px;padding:24px}
  .haf-card{padding:24px}
  .haf-promo{grid-template-columns:minmax(0,1fr)}
  .haf-promo-section{padding-block:56px}
  .haf-live-card__top{flex-direction:column}
  .haf-live-card__top .haf-price{text-align:left}
  .haf-stats{grid-template-columns:minmax(0,1fr)}
  .haf-stats--4{grid-template-columns:minmax(0,1fr)}
  .haf-form__row{grid-template-columns:minmax(0,1fr)}
  .haf-footer__grid{grid-template-columns:minmax(0,1fr);gap:40px}
  .haf-footer__bottom{flex-direction:column}
  .haf-tour__form{padding:24px}
  .haf-map iframe{height:360px}
  .haf-map__card{position:static;margin-top:0;border-radius:0 0 6px 6px;border:0;border-top:1px solid var(--hair-light);box-shadow:none}
  .haf-strip{padding:20px;flex-direction:column;align-items:flex-start}
  .haf-map__card > div{flex:1 1 160px}
  .haf-map__card .haf-btn{width:100%}
  .haf-plate__cap{display:none}
  .haf-wide-plate__bar{flex-direction:column;gap:4px;padding:14px 16px}
  .haf-wide-plate__bar em{display:none}
  .haf-actions .haf-btn{width:100%}
  .haf-actions .haf-btn--tertiary{width:auto}
  .haf-promo .haf-actions .haf-btn--tertiary{width:100%}
  /* stacked rows: background belongs to the row box, not the cells inset by its padding */
  .haf-table tbody tr:hover td,.haf-table tbody tr.is-featured td,.haf-table tbody tr.is-featured:hover td{background:transparent}
  .haf-table tbody tr.is-featured{background:var(--paper-2)}
  .haf-table tbody tr:hover{background:var(--paper-2)}
  .haf-table tbody tr.is-featured:hover{background:var(--sand)}
  /* tables stack */
  .haf-table thead{display:none}
  .haf-table,.haf-table tbody,.haf-table tr,.haf-table td{display:block;width:100%}
  .haf-table tr{padding:20px;border-bottom:1px solid var(--hair-light)}
  .haf-table tr:last-child{border-bottom:0}
  .haf-table td{padding:6px 0;border-bottom:0;display:flex;justify-content:space-between;gap:16px;align-items:baseline}
  .haf-table td::before{content:attr(data-label);font-weight:600;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-text);flex:none}
  .haf-table td:first-child{display:block;padding-bottom:12px}
  .haf-table td:first-child::before{display:none}
  .haf-table td:last-child{display:block;padding-top:14px}
  .haf-table td:last-child::before{display:none}
  .haf-table td:last-child .haf-btn{width:100%}
}
/* very small phones: tighten the header cluster so the CTA never clips */
@media (max-width:420px){
  .haf-header__right{gap:10px}
  .haf-header .haf-btn{padding:0 10px;letter-spacing:.12em}
  .haf-menu-btn{padding:0 10px}
}
@media (max-width:340px){
  .haf-logo img{height:28px}
  .haf-header .haf-btn{padding:0 8px;letter-spacing:.08em}
}
@media (max-width:375px){
  .haf-h1{font-size:2.25rem}
  .haf-logo img{height:32px}
}

/* 404 — mirrors the CTA section's ink ground so a missing page still reads as
   the site. No .haf-reveal: the whole section is above the fold. */
.haf-404{min-height:calc(100dvh - 119px);display:flex;align-items:center}
.haf-404__inner{max-width:60ch;margin-inline:auto;text-align:center;display:grid;gap:20px;justify-items:center}
.haf-404__links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 28px;margin-top:24px}
.haf-404__links a{font-weight:600;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sand-2);text-decoration:none;border-bottom:1px solid transparent;padding-bottom:2px}
.haf-404__links a:hover{color:var(--cream);border-bottom-color:var(--brass)}
/* Matches the menu-button breakpoint (line 482). NOTE, measured on this build:
   the header's HEIGHT does not change here. 1200px only swaps .haf-nav for
   .haf-menu-btn inside the same 80px bar. The chrome height changes at 900px,
   where .haf-header__bar min-height goes 80px -> 72px (line 499) and the total
   announcement+header goes 119px -> 111px. So between 901px and 1200px this
   subtracts 111 while the chrome is still 119, and the section overshoots the
   fold by 8px. Changing 1200 to 900 here makes every width exact. */
@media (max-width:1200px){.haf-404{min-height:calc(100dvh - 111px)}}
