/* ===== motion.css — shared luxury motion system ===== */
:root {
  --ease-std: cubic-bezier(.455, .03, .515, .955); /* reveals, header (Elliman, measured) */
  --ease-out: cubic-bezier(.4, 0, .2, 1);          /* hero fades, underline (Rosenberg, measured) */
  --dur-fast: 300ms;    /* hovers, header (5 of 6 sites) */
  --dur-reveal: 700ms;  /* scroll reveal (Elliman 700, Selendy 500-600) */
  --dur-hero: 1000ms;   /* hero media + text (Rosenberg, Forster, Hilton) */
  --reveal-y: 12px;     /* Elliman 12px; Forster hero 20px */
  --stagger: 144ms;     /* Elliman card-to-card step */
  --header-h: 88px;
  --header-bg: #fff;
  --header-fg: #111;
}

/* 1. Smooth anchor scroll (Selendy, verbatim) */
@media (prefers-reduced-motion: no-preference) { :root { scroll-behavior: smooth; } }
html { scroll-padding-top: var(--header-h); }

/* 2. Hero: poster paints first (LCP), video fades in over it, scrim, text rises */
.hero { position: relative; min-height: 100svh; overflow: hidden; background: #000; color: #fff; }
.hero__poster, .hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero__video { opacity: 0; transition: opacity var(--dur-hero) var(--ease-out); }
.hero__video.is-playing { opacity: 1; }
.hero::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,0) 28%, rgba(0,0,0,0) 55%, rgba(0,0,0,.55) 100%); }
.hero__content { position: relative; z-index: 1; }
.js .hero__content > * { opacity: 0; transform: translateY(20px);
  transition: opacity var(--dur-hero) var(--ease-out), transform var(--dur-hero) var(--ease-out);
  transition-delay: calc(700ms + var(--i, 0) * var(--stagger)); }
.hero.is-in .hero__content > * { opacity: 1; transform: none; }

/* 3. Header: transparent over hero -> solid after 100px -> hides on scroll down, returns on scroll up */
.site-header { position: fixed; inset: 0 0 auto; z-index: 50; height: var(--header-h);
  display: flex; align-items: center; color: #fff; background: transparent;
  transition: background-color var(--dur-fast) var(--ease-std), color var(--dur-fast) var(--ease-std),
              box-shadow var(--dur-fast) var(--ease-std), transform var(--dur-fast) var(--ease-std); }
.site-header.is-solid { background: var(--header-bg); color: var(--header-fg); box-shadow: 0 1px 0 rgba(0,0,0,.08); }
.site-header.is-hidden { transform: translateY(-100%); }
.site-header--glass.is-solid { background: rgba(0,0,0,.5); color: #fff; -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }

/* 4. Scroll reveal: fade + 12px rise, staggered inside [data-reveal-group] */
.js [data-reveal] { opacity: 0; transform: translateY(var(--reveal-y));
  transition: opacity var(--dur-reveal) var(--ease-std), transform var(--dur-reveal) var(--ease-std);
  transition-delay: calc(90ms + var(--i, 0) * var(--stagger)); }
.js [data-reveal].is-in { opacity: 1; transform: none; }

/* 5. Card photo: hover zoom inside a fixed frame + caption scrim */
.card__media { position: relative; overflow: hidden; aspect-ratio: 4 / 5; }
.card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-fast) ease; }
.card__media::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,.6) 100%); }
@media (hover: hover) {
  .card:hover .card__media img, .card:focus-within .card__media img { transform: scale(1.05); }
}

/* 6. Photo hover overlay (Hilton) and portrait grayscale-to-colour (Selendy, Rosenberg) */
.card__overlay { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center;
  background: rgba(0,0,0,.45); color: #fff; opacity: 0; transition: opacity 400ms ease-in-out; }
.card:hover .card__overlay, .card:focus-within .card__overlay { opacity: 1; }
.portrait img { filter: grayscale(1); transition: filter 400ms ease; }
.portrait:hover img, .portrait:focus-within img { filter: grayscale(0); }

/* 7. Text links: underline draws left to right; arrow nudges .25em */
.link { position: relative; text-decoration: none; }
.link::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1px;
  background: currentColor; transform: scaleX(0); transform-origin: right;
  transition: transform var(--dur-fast) var(--ease-out); }
.link:hover::after, .link:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.link .arrow { display: inline-block; transition: transform var(--dur-fast) ease; }
.link:hover .arrow, .link:focus-visible .arrow { transform: translateX(.25em); }

/* 8. Buttons: colour fill / invert */
.btn { display: inline-block; padding: .9em 2.2em; border: 1px solid currentColor; background: transparent;
  transition: background-color var(--dur-fast) ease, color var(--dur-fast) ease, border-color var(--dur-fast) ease; }
.btn:hover, .btn:focus-visible { background: var(--header-fg); color: var(--header-bg); border-color: var(--header-fg); }
.btn--light:hover, .btn--light:focus-visible { background: #fff; color: #000; border-color: #fff; }

/* 9. Reduced motion: show everything, no movement */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important;
    transition-duration: 1ms !important; transition-delay: 0ms !important; }
  .js [data-reveal], .js .hero__content > * { opacity: 1; transform: none; }
  .hero__video { display: none; }
  .card:hover .card__media img { transform: none; }
  [data-parallax] { transform: none !important; }
}

/* =====================================================================
   Draft A site styles. Bones: Hilton & Hyland (header, hero, rhythm),
   Christie's (team editorial block). Brand: JK type, white ground.
   ===================================================================== */
:root{
  --header-h:80px; --header-bg:#000; --header-fg:#fff;
  --ink:#0a0a0a; --text:#222; --mute:#6b6b6b; --rule:#dcdcdc; --panel:#f3f3f3;
  --red:#c0392b; --tan:#a8936c;
  --serif:'Libre Baskerville',Georgia,serif; --sans:'Montserrat',system-ui,sans-serif; --fig:'Cormorant Garamond',Georgia,serif;
  --gutter:50px; --sec:104px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--text);font:400 18px/1.65 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
h1,h2,h3,h4,p,figure,blockquote,dl,dd,ul,ol{margin:0;padding:0}
ul,ol{list-style:none}
svg{width:1em;height:1em;fill:currentColor}
.nw{white-space:nowrap}
.wrap{max-width:1440px;margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;z-index:99;background:#fff;color:#000;padding:10px 14px}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}

.eyebrow{font:500 12px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mute);margin-bottom:12px}
.eyebrow--light{color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.55),0 0 2px rgba(0,0,0,.4)}
h2{font:700 clamp(28px,2.65vw,40px)/1.18 var(--serif);color:var(--ink);letter-spacing:-.005em}

/* buttons (HH: square, black, small caps label, chevron) */
.btn{font:500 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:54px;padding:0 40px}
.btn svg{width:7px;height:12px}
.btn--black{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn--black:hover,.btn--black:focus-visible{background:#fff;color:var(--ink);border-color:var(--ink)}
.btn--red{background:var(--red);color:#fff;border-color:var(--red)}
.btn--red:hover,.btn--red:focus-visible{background:#fff;color:var(--ink);border-color:#fff}
.contact .btn--red:hover,.contact .btn--red:focus-visible{border-color:var(--ink)}
.link{font:600 12px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);display:inline-block}

/* ---------- 1. header ---------- */
.site-header{background:#000;color:#fff}
.site-header.is-solid{box-shadow:none}
.hdr{display:flex;align-items:center;height:var(--header-h);width:100%;gap:32px}
.wm{flex:none;display:flex;align-items:center;gap:16px;white-space:nowrap;color:#fff}
.wm-crest{height:52px;width:auto}
.wm-div{width:1px;height:36px;background:currentColor;opacity:.35}
.wm-t{font:500 18px/1 'Cinzel',Georgia,serif;letter-spacing:.22em}
.nav{display:flex;align-items:center;justify-content:center;gap:clamp(24px,3.4vw,56px);flex:1}
.nav a,.nav-mega{font:500 13px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:#fff;padding:12px 0;transition:opacity .3s ease;display:inline-flex;align-items:center;gap:8px}
.nav a:hover,.nav-mega:hover,.nav-mega[aria-expanded="true"]{opacity:.65}
.nav-mega svg{width:10px;height:7px;transition:transform .3s ease}
.nav-mega[aria-expanded="true"] svg{transform:rotate(180deg)}
.hdr-r{display:flex;align-items:center;gap:28px}
.hdr-phone{font:500 13px/1 var(--sans);letter-spacing:.06em;white-space:nowrap}
.hdr-cta{min-height:44px;padding:0 22px;font-size:11.5px}
.m-ico{display:none;width:44px;height:44px;align-items:center;justify-content:center;color:#fff}
.m-ico svg{width:20px;height:20px}
.m-burger{flex-direction:column;gap:5px}
.m-burger span{display:block;width:22px;height:1.5px;background:#fff;transition:transform .3s ease,opacity .3s ease}
.site-header.menu-open .m-burger span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.site-header.menu-open .m-burger span:nth-child(2){opacity:0}
.site-header.menu-open .m-burger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* mega menu */
.mega{position:absolute;left:0;right:0;top:100%;background:#fff;color:var(--ink);box-shadow:0 24px 40px rgba(0,0,0,.14);
  opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .3s var(--ease-std),transform .3s var(--ease-std),visibility 0s linear .3s}
.mega.is-open{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.mega-in{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.05fr);gap:44px;padding-top:40px;padding-bottom:44px}
.mega-l{font:600 11px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mute);padding-bottom:12px;border-bottom:1px solid var(--rule);margin-bottom:4px}
.mega-col a{display:block;padding:12px 0;border-bottom:1px solid #eee}
.mega-col b{display:block;font:700 15.5px/1.3 var(--serif);color:var(--ink);transition:color .3s ease}
.mega-col small{display:block;font:400 13px/1.45 var(--sans);color:var(--mute);margin-top:3px}
.mega-col a:hover b{color:var(--red)}
.mega-ph{position:relative;overflow:hidden;display:block;min-height:260px;background:#000}
.mega-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.78;transition:transform .3s ease}
.mega-ph:hover img{transform:scale(1.05)}
.mega-ph span{position:absolute;left:24px;bottom:22px;color:#fff;font:500 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;display:flex;gap:12px;align-items:center}
.mega-ph span svg{width:7px;height:12px}

/* phone menu */
.mnav{position:fixed;left:0;right:0;top:var(--header-h);bottom:0;background:#000;color:#fff;overflow-y:auto;padding:8px 20px 40px;
  opacity:0;visibility:hidden;transition:opacity .3s var(--ease-std),visibility 0s linear .3s}
.mnav.is-open{opacity:1;visibility:visible;transition-delay:0s}
.mnav>a:not(.btn):not(.mnav-ph),.mnav summary{display:flex;justify-content:space-between;align-items:center;font:700 22px/1.2 var(--serif);padding:16px 0;border-bottom:1px solid rgba(255,255,255,.14);list-style:none;cursor:pointer}
.mnav summary::-webkit-details-marker{display:none}
.mnav summary svg{width:14px;height:9px;transition:transform .3s ease}
.mnav details[open] summary svg{transform:rotate(180deg)}
.mnav details .mega-l{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.14);margin-top:18px}
.mnav details a{display:block;font:400 16px/1.3 var(--sans);color:rgba(255,255,255,.86);padding:11px 0}
.mnav .btn{width:100%;margin:28px 0 22px}
.mnav-ph{display:block;font:500 17px/1.3 var(--sans);padding:10px 0}
.mnav-ph small,.c-ph small,.ftr-ph small{display:block;font:500 11px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;opacity:.6;margin-bottom:3px}

/* ---------- 2. hero ---------- */
.hero{min-height:0;margin-top:var(--header-h);height:calc(100svh - var(--header-h));min-height:600px;max-height:1100px;display:flex;align-items:flex-end}
.hero__shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.3) 50%,rgba(0,0,0,0) 72%),linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.35) 100%)}
.hero__content{width:100%;padding-bottom:110px}
.hero h1{font:700 clamp(31px,4.3vw,66px)/1.12 var(--serif);color:#fff;letter-spacing:-.01em;margin:6px 0 36px;text-shadow:0 1px 24px rgba(0,0,0,.25)}
.proof{font:500 14px/1.4 var(--sans);letter-spacing:.05em;color:rgba(255,255,255,.92);margin-top:24px}
.proof .stars{color:#e4d2ab;letter-spacing:.14em;margin-right:6px}

/* ---------- sections ---------- */
.sec{padding:var(--sec) 0}
.sec-head{border-bottom:1px solid var(--rule);padding-bottom:22px;margin-bottom:46px}
.sec-head--row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.sec-head--row .link{margin-bottom:8px}

/* ---------- 3. services ---------- */
.grp+.grp{margin-top:56px}
.grp-l{font:600 12px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:18px}
.row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}
.card{background:var(--ink);color:#fff;display:flex;flex-direction:column}
.card .card__media{aspect-ratio:auto;height:200px}
.card .card__media::after{display:none}
.card .tb{padding:22px 24px 26px;flex:1}
.card h4{font:700 19px/1.3 var(--serif);margin-bottom:8px}
.card p{font:400 15px/1.5 var(--sans);color:rgba(255,255,255,.78)}
/* Selling + Buying: the two main paths, set apart as a wide pair */
.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
.fcard__main{display:flex;flex-direction:column;flex:1;color:#fff}
.pair .fcard .card__media{height:340px}
.pair .fcard .ftb{padding:30px 34px 28px}
.pair .fcard .fk{font:600 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:14px}
.pair .fcard h4{font-size:28px;margin-bottom:10px}
.pair .fcard .ftb p:last-child{font-size:16px}
.fcard__sub{display:flex;align-items:baseline;gap:14px;padding:20px 34px;border-top:1px solid rgba(255,255,255,.16);color:#fff;transition:background-color .3s ease}
.fcard__sub:hover{background:rgba(255,255,255,.06)}
.fs-l{font:600 12px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.fs-d{font:400 15px/1.4 var(--sans);color:rgba(255,255,255,.7)}
.fs-a{margin-left:auto;transition:transform .25s ease}
.fcard__sub:hover .fs-a{transform:translateX(.25em)}
@media (max-width:767px){
  .pair{grid-template-columns:1fr;gap:16px}
  .pair .fcard .card__media{height:210px}
  .pair .fcard .ftb{padding:22px 20px 20px}
  .pair .fcard h4{font-size:22px}
  .fcard__sub{padding:16px 20px;flex-wrap:wrap;gap:4px 12px}
  .fs-d{font-size:14px}
}

/* ---------- 4. team (Christie's editorial block) ---------- */
.team{padding-top:24px}
.ed{display:grid;grid-template-columns:minmax(0,44%) minmax(0,1fr);align-items:stretch}
.ed-ph{position:relative;z-index:1;margin:52px -52px 52px 0;aspect-ratio:3/2;overflow:hidden}
.ed-ph img{width:100%;height:100%;object-fit:cover;object-position:50% 12%}
.ed-panel{background:var(--panel);margin-left:-52px;padding:72px 84px 72px 136px;display:flex;align-items:center}
.ed-tx h2{margin-bottom:22px}
.ed-tx p:not(.eyebrow){font-size:18px;line-height:1.75;color:var(--text);margin-bottom:28px;max-width:60ch}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;margin-top:56px;padding:34px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.stats dt{font:600 52px/1 var(--fig);font-variant-numeric:lining-nums;color:var(--ink)}
.stats dd{font:500 12px/1.45 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-top:10px}
.awards{display:flex;justify-content:center;align-items:center;gap:64px;padding-top:40px}
.awards img{height:84px;width:auto}
.awards img.wide{height:54px}

/* ---------- 5. reviews ---------- */
.revs{padding-top:40px}
.rev-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}
.rev .stars{display:block;color:#7d6a40;letter-spacing:.16em;font-size:14px;margin-bottom:16px}
.rev blockquote{font:400 17.5px/1.75 var(--serif);color:var(--text)}
.rev figcaption{font:500 12px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-top:20px;padding-top:16px;border-top:1px solid var(--rule)}

/* ---------- 6. areas ---------- */
.areas{padding-top:24px}
.areas-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.4fr);gap:60px;align-items:start}
.sec-head--side{border:0;margin:0;padding:0}
.area-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:40px;border-top:1px solid var(--ink)}
.area-list li{border-bottom:1px solid var(--rule)}
.area-list .link{display:flex;justify-content:space-between;align-items:center;font:400 18px/1.3 var(--serif);letter-spacing:0;text-transform:none;padding:20px 0;width:100%}
.area-list .link::after{bottom:-1px;background:var(--ink)}

/* ---------- 7. contact ---------- */
.contact{padding-top:40px}
.contact-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:80px;align-items:start;border-top:1px solid var(--rule);padding-top:var(--sec)}
.c-copy h2{margin-bottom:20px}
.c-copy>p:not(.eyebrow){max-width:44ch}
.c-ph{display:grid;gap:22px;margin-top:36px}
.c-ph a{font:500 20px/1.3 var(--sans);color:var(--ink)}
.msf{border:1px solid var(--rule);padding:40px 44px 44px}
.msf-prog{display:flex;gap:28px;font:500 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#9a9a9a;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid var(--rule)}
.msf-prog li{display:flex;align-items:center;gap:10px}
.msf-prog i{font-style:normal;width:24px;height:24px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-size:11px;letter-spacing:0}
.msf-prog li.on{color:var(--ink)}
.msf-prog li.on i{background:var(--ink);color:#fff;border-color:var(--ink)}
.msf-step{display:none}
.msf-step.on{display:block}
.msf-eb{font:600 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.msf h3{font:700 24px/1.25 var(--serif);color:var(--ink);margin:10px 0 6px}
.msf-sub{font-size:16px;color:var(--mute);margin-bottom:24px}
.msf-pills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pill{text-align:left;border:1px solid #c9c9c9;padding:16px 18px;transition:background-color .3s ease,color .3s ease,border-color .3s ease}
.pill b{display:block;font:700 16px/1.3 var(--serif)}
.pill small{display:block;font:400 13px/1.4 var(--sans);color:var(--mute);margin-top:4px;transition:color .3s ease}
.pill:hover{border-color:var(--ink)}
.pill[aria-checked="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.pill[aria-checked="true"] small{color:rgba(255,255,255,.75)}
.msf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}
.msf-full{grid-column:1/-1}
.msf-f{margin-top:4px}
.msf-addr{margin-top:18px}
.msf-f label{display:block;font:600 11px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin-bottom:7px}
.msf-f label span{color:var(--red)}
.msf-f label em{font-style:normal;color:#9a9a9a;text-transform:none;letter-spacing:0;font-weight:400}
.msf-f input,.msf-f select,.msf-f textarea{width:100%;font:400 16px/1.4 var(--sans);color:var(--ink);background:#fff;border:1px solid #c9c9c9;border-radius:0;padding:13px 14px;transition:border-color .3s ease}
.msf-f input:focus,.msf-f select:focus,.msf-f textarea:focus{outline:0;border-color:var(--ink)}
.msf-warn{color:var(--red);font-size:14px;margin-top:14px}
.msf-act{display:flex;justify-content:space-between;align-items:center;margin-top:28px}
.msf-back{font:500 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);padding:14px 0}
.msf-review{display:grid;grid-template-columns:auto 1fr;gap:10px 24px;font-size:16px;border-top:1px solid var(--rule);padding-top:18px}
.msf-review dt{font:600 11px/1.9 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.msf-ok{font-size:28px;color:var(--ink)}

/* ---------- 8. footer ---------- */
.ftr{border-top:1px solid var(--rule);padding-top:80px;font-size:15px;color:var(--text)}
.ftr-top{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:48px}
.ftr-logo{width:210px;height:auto;margin-bottom:28px}
.ftr-addr{line-height:1.6;margin-bottom:18px}
.ftr-ph{display:block;font:500 16px/1.3 var(--sans);color:var(--ink);margin-bottom:14px}
.ftr-h{font:600 11px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mute);margin-bottom:16px}
.ftr-col a{display:block;padding:5px 0;transition:color .3s ease}
.ftr-col a:hover,.ftr-bar a:hover{color:var(--red)}
.ftr-omni{display:flex;align-items:center;gap:22px;margin-top:56px;padding:26px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);font:500 12px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.ftr-omni img{height:30px;width:auto}
.legal{font-size:12.5px;line-height:1.7;color:#666;margin:24px 0}
.ftr-bar{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12.5px;color:#666;padding:18px 0 36px;border-top:1px solid #eee}
.ftr-bar span:last-child{display:flex;gap:22px;flex-wrap:wrap}

/* ---------- responsive ---------- */
@media (max-width:1280px){
  .hdr-phone{display:none}
  .wm-t{font-size:16px;letter-spacing:.2em}
}
@media (max-width:1100px){
  :root{--gutter:32px;--sec:84px}
  .nav,.hdr-cta{display:none}
  .m-ico{display:inline-flex}
  .hdr{justify-content:space-between}
  .hdr-r{gap:4px;margin-right:-10px}
  .mega{display:none}
  .row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ed{grid-template-columns:1fr}
  .ed-ph{margin:0;aspect-ratio:3/2}
  .ed-panel{margin:-48px 0 0 48px;padding:88px 48px 56px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .areas-in,.contact-in{grid-template-columns:1fr;gap:36px}
  .rev-row{grid-template-columns:1fr;gap:36px}
  .ftr-top{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ftr-brand{grid-column:1/-1}
}
@media (max-width:767px){
  :root{--header-h:64px;--gutter:20px;--sec:64px}
  body{font-size:18px}
  .wm{gap:10px}
  .wm-crest{height:40px}.wm-div{height:28px}
  .wm-t{font-size:12px;letter-spacing:.14em}
  .hero{height:calc(86svh - var(--header-h));min-height:520px}
  .hero__shade{background:linear-gradient(180deg,rgba(0,0,0,0) 30%,rgba(0,0,0,.35) 100%)}
  .hero__content{padding-bottom:44px}
  .hero h1{font-size:8vw;margin:4px 0 28px}
  .eyebrow{font-size:11px;letter-spacing:.14em}
  .btn{min-height:52px;padding:0 30px}
  .proof{font-size:13px;margin-top:20px}
  .sec-head{margin-bottom:28px;padding-bottom:16px}
  .sec-head--row{flex-direction:column;align-items:flex-start;gap:14px}
  .grp+.grp{margin-top:36px}
  .grp-l{margin-bottom:14px}
  .row{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(var(--gutter) * -1);padding:0 var(--gutter) 4px;scroll-padding:0 var(--gutter);scrollbar-width:none}
  .row::-webkit-scrollbar,.rev-row::-webkit-scrollbar{display:none}
  .card{flex:0 0 74%;scroll-snap-align:start}
  .card .card__media{height:168px}
  .card .tb{padding:18px 18px 20px}
  .card h4{font-size:17.5px}
  .card p{font-size:14.5px}
  .team{padding-top:8px}
  .ed-panel{margin:-32px 0 0 20px;padding:60px 24px 40px}
  .stats{gap:26px 18px;margin-top:36px;padding:26px 0}
  .stats dt{font-size:44px}
  .stats dd{font-size:11px}
  .awards{flex-wrap:wrap;gap:22px 30px;padding-top:30px}
  .awards img{height:62px}.awards img.wide{height:40px}
  .revs{padding-top:24px}
  .rev-row{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(var(--gutter) * -1);padding:0 var(--gutter) 4px;scroll-padding:0 var(--gutter);scrollbar-width:none}
  .rev{flex:0 0 86%;scroll-snap-align:start;border:1px solid var(--rule);padding:24px 22px}
  .rev blockquote{font-size:16.5px}
  .areas{padding-top:8px}
  .area-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}
  .area-list .link{font-size:15.5px;padding:16px 0}
  .area-list .link .arrow{display:none}
  .contact{padding-top:24px}
  .msf{padding:24px 18px 26px;margin:0 calc(var(--gutter) * -0.25)}
  .msf-prog{gap:14px}
  .msf-pills{gap:10px}
  .pill{padding:14px 14px}
  .pill b{font-size:15px}
  .pill small{font-size:12.5px}
  .msf-grid{grid-template-columns:1fr}
  .ftr{padding-top:56px}
  .ftr-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 20px}
  .ftr-col:last-child{grid-column:1/-1}
  .ftr-logo{width:180px}
  .ftr-omni{flex-direction:column;align-items:flex-start;gap:12px;margin-top:40px}
}
.rev{display:flex;flex-direction:column}
.rev figcaption{margin-top:auto}
.rev blockquote{margin-bottom:20px}
@media (max-width:767px){
  .hero .eyebrow{font-size:10.5px;letter-spacing:.1em;white-space:nowrap}
  .hero__shade{background:linear-gradient(180deg,rgba(0,0,0,0) 25%,rgba(0,0,0,.5) 100%)}
  .areas-in{gap:20px}
}
.hdr.wrap,.mega-in.wrap,.hero__content.wrap{max-width:none} /* HH: bar and hero span the full width with 50px gutters */

/* Audit 2026-10-22: phone tap targets at least 44px */
@media (max-width:767px){
  .ed-tx a.link,.sec-head a.link{padding-block:14px}
  .ftr-col a{padding-block:13px}
  .wm{min-height:44px}
  .ftr-ph{padding-block:6px}
  .msf-back{padding-block:16px}
}

.sec-head--mid{margin-top:88px}
@media (max-width:767px){.sec-head--mid{margin-top:56px}}

/* ---------- Round-2 refinements, 2026-10-22 (Justin: "do your suggested fixes") ---------- */
/* Stats: bigger figures, column rules */
.stats{padding:52px 0;margin-top:64px}
.stats>div{padding-left:30px;border-left:1px solid var(--rule)}
.stats>div:first-child{padding-left:0;border-left:0}
.stats dt{font-size:88px;letter-spacing:-.01em}
.stats dd{font-size:13px;margin-top:14px;color:var(--text)}

/* Reviews: quote mark, larger serif, black rule on top of each */
.rev-row{gap:40px}
.rev{border-top:2px solid var(--ink);padding-top:28px}
.rev .stars{color:var(--ink);font-size:13px;margin-bottom:18px}
.rev blockquote{font-size:19.5px;line-height:1.7;color:var(--ink)}
.rev figcaption{border-top:0;padding-top:0;color:var(--text);font-weight:600}

/* Footer: black, white lockup */
.ftr{--text:#cfcfcf;--mute:#9a9a9a;--rule:rgba(255,255,255,.16);--ink:#fff;background:#0a0a0a;color:var(--text);border-top:0;margin-top:0}
.ftr a{color:#fff}
.ftr-col a{color:#cfcfcf}
.ftr-col a:hover,.ftr-bar a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.ftr .legal{color:#9a9a9a}
.ftr .ftr-bar{color:#9a9a9a;border-top-color:rgba(255,255,255,.16)}
.ftr .ftr-bar a{color:#cfcfcf}

@media (max-width:1100px){
  .stats>div:nth-child(3){padding-left:0;border-left:0}
}
@media (max-width:767px){
  .stats{padding:34px 0;margin-top:40px;gap:30px 18px}
  .stats>div{padding-left:18px}
  .stats dt{font-size:58px}
  .stats dd{font-size:11.5px}
  .rev{border-top:2px solid var(--ink);border-left:0;border-right:0;border-bottom:0;padding:24px 0 0}
  .rev blockquote{font-size:17.5px}
}

/* Hero button reads on the dark dusk photo */
.btn--white{background:#fff;color:var(--ink);border-color:#fff}
.btn--white:hover,.btn--white:focus-visible{background:transparent;color:#fff;border-color:#fff}

/* Hero slideshow: the live site's cinematic slideshow, copied as is (7s slow zoom, crossfade every 6.5s) */
.hs{position:absolute;inset:0}
.hs-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1)}
.hs-slide.active{animation:hsKenBurns 7s linear forwards}
@keyframes hsKenBurns{0%{opacity:0;transform:scale(1)}8%{opacity:1}92%{opacity:1}100%{opacity:0;transform:scale(1.09)}}
@media (max-width:767px){.hs-1{background-image:url('img/s-stock-house-mobile.webp')!important}}
@media (prefers-reduced-motion:reduce){.hs-slide.active{animation:none;opacity:1;transform:none}}

/* Break up the white (Justin, 2026-10-22): Areas on a dark drone photo, contact on light grey */
.areas{position:relative;margin-top:var(--sec);padding:120px 0;color:#fff;--ink:#fff;--text:#e6e6e6;--mute:#c8c8c8;--rule:rgba(255,255,255,.28);
  background:linear-gradient(rgba(8,8,8,.66),rgba(8,8,8,.72)),url('img/areas-band.webp') center 60%/cover no-repeat}
.areas h2{color:#fff}
.areas .area-list .link{color:#fff}
.contact{background:#f4f4f4;padding:var(--sec) 0}
.contact-in{border-top:0;padding-top:0}
.contact .msf{background:#fff;border-color:#e2e2e2}
@media (max-width:767px){
  .areas{padding:72px 0;margin-top:56px}
}

/* Still drone hero: deeper shade on phones so the eyebrow reads on the bright fields */
@media (max-width:767px){
  .hero__shade{background:linear-gradient(180deg,rgba(0,0,0,0) 20%,rgba(0,0,0,.35) 45%,rgba(0,0,0,.72) 100%)}
}

/* ---------- Sell page (sell.html), built from the homepage components ---------- */
.hero--sub{height:calc(66svh - var(--header-h));min-height:520px;max-height:720px}
.hero--sub .hero__content{padding-bottom:84px}
.sp-lead{font:400 19px/1.6 var(--sans);color:#fff;max-width:46ch;margin-top:18px;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.sp-acts{display:flex;align-items:center;gap:34px;margin-top:30px;flex-wrap:wrap}
.link--light{color:#fff}
.link--light::after{background:#fff}
.inl{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.sp-intro .stats{margin-top:0}
.sp-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:80px;align-items:center;margin-top:var(--sec)}
.sp-tx h2,.sp-two h2,.sp-val h2{margin-bottom:22px}
.sp-tx p:not(.eyebrow),.sp-two p:not(.eyebrow){font-size:18px;line-height:1.75;margin-bottom:20px;max-width:62ch}
.sp-ph{aspect-ratio:4/5;overflow:hidden}
.sp-ph img{width:100%;height:100%;object-fit:cover}
.sp-val{color:#fff;padding:120px 0;--ink:#fff;--mute:#c8c8c8;
  background:linear-gradient(rgba(8,8,8,.66),rgba(8,8,8,.74)),url('img/areas-band.webp') center 60%/cover no-repeat}
.sp-val-in>*{max-width:760px}
.sp-val h2{color:#fff}
.sp-val p:not(.eyebrow){font-size:19px;line-height:1.75;color:#e6e6e6;margin-bottom:34px}
.sp-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:80px;align-items:start}
.sp-towns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;border-top:1px solid var(--ink);margin:6px 0 22px}
.sp-towns li{border-bottom:1px solid var(--rule)}
.sp-towns a{display:block;font:400 17px/1.3 var(--serif);color:var(--ink);padding:14px 0}
.sp-towns a:hover{text-decoration:underline;text-underline-offset:4px}
.sp-more{display:flex;gap:30px;flex-wrap:wrap}
.sp-q{font:400 18px/1.7 var(--serif);color:var(--ink);border-left:2px solid var(--ink);padding-left:22px;margin:4px 0 26px}
.sp-q cite{display:block;font:600 12px/1.4 var(--sans);font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--text);margin-top:12px}
.sp-links{display:flex;gap:26px;flex-wrap:wrap}
.sp-beyond{padding-top:0}
.sp-sub{font-size:18px;color:var(--text);margin-top:14px;max-width:62ch}
.row--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.row--3 .card .card__media{height:260px}
.sp-faq{background:#fff}
.sp-faq-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);gap:60px;align-items:start}
.sp-acc{border-top:1px solid var(--ink)}
.sp-acc details{border-bottom:1px solid var(--rule)}
.sp-acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;align-items:center;font:400 19px/1.4 var(--serif);color:var(--ink);padding:22px 0;min-height:44px}
.sp-acc summary::-webkit-details-marker{display:none}
.sp-acc summary::after{content:"+";font:300 26px/1 var(--sans);transition:transform .3s ease;flex:none}
.sp-acc details[open] summary::after{transform:rotate(45deg)}
.sp-acc details p{font-size:17px;line-height:1.75;color:var(--text);padding:0 0 24px;max-width:70ch}
.sp-form{padding-top:34px}
.sp-form .msf-eb{margin-bottom:22px}
.sp-sent{margin-top:16px;font-size:15px;color:var(--mute)}
@media (max-width:1100px){
  .sp-split,.sp-two,.sp-faq-in{grid-template-columns:1fr;gap:48px}
  .sp-ph{aspect-ratio:3/2}
}
@media (max-width:767px){
  .hero--sub{height:auto;min-height:560px}
  .hero--sub .hero__content{padding-bottom:56px}
  .sp-lead{font-size:17px}
  .sp-acts{gap:22px}
  .sp-val{padding:72px 0}
  .sp-val p:not(.eyebrow){font-size:17px}
  .row--3{display:flex}
  .row--3 .card .card__media{height:168px}
  .sp-towns{column-gap:18px}
  .sp-towns a{font-size:16px}
  .sp-acc summary{font-size:17px;padding:18px 0}
  .sp-links,.sp-more{gap:4px 22px}
  .sp-links .link,.sp-more .link{padding-block:12px}
}
/* Sell page fixes after the visual check */
.ed--flat{grid-template-columns:minmax(0,42%) minmax(0,1fr)}
.ed--flat .ed-ph{margin:0;aspect-ratio:auto;height:100%}
.ed--flat .ed-panel{margin-left:0;padding:64px 72px}
.sp-val .btn--white,.sp-val .btn--white svg{color:#0a0a0a}
.sp-val .btn--white:hover,.sp-val .btn--white:focus-visible{color:#fff}
@media (max-width:1100px){.ed--flat{grid-template-columns:1fr}.ed--flat .ed-ph{aspect-ratio:3/2}}
@media (max-width:767px){
  .ed--flat .ed-panel{padding:40px 22px}
  .sp-team-h{font-size:24px}
}
/* Lighthouse fixes: card headings are h3 now; form step labels darker */
.pair .fcard h3.fh{font:700 28px/1.3 var(--serif);margin-bottom:10px;color:#fff}
@media (max-width:767px){.pair .fcard h3.fh{font-size:22px}}
.msf-prog{color:#6b6b6b}
/* User test fix: the team photo overlapped the first letters of the text between 1101px and 1400px */
@media (min-width:1101px) and (max-width:1400px){
  #team .ed-ph{margin:52px 0}
  #team .ed-panel{margin-left:0;padding:64px 56px}
}
@media (min-width:1101px) and (max-width:1400px){
  #team .ed{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
  #team .ed-ph{margin:0!important;aspect-ratio:auto;height:100%}
  #team .ed-panel{margin:0!important;padding:56px 52px}
}

/* Logo intro (from the live homepage), quicker and never blocking: the overlay ignores taps, so Call and Work With Us work at once */
#intro-overlay{position:fixed;inset:0;background:#090909;color:#f5f5f3;z-index:9000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;pointer-events:none;transition:opacity .6s ease,visibility .6s ease}
#intro-overlay.hidden{opacity:0;visibility:hidden}
.intro-logo-img{height:96px;width:auto;opacity:0;animation:introFade .6s .1s forwards}
.intro-logo{font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(32px,5vw,52px);font-weight:500;letter-spacing:.25em;text-transform:uppercase;text-align:center;line-height:1.2;opacity:0;animation:introFade .7s .2s forwards}
.intro-logo span{color:#c0392b}
.intro-tagline{font:500 12px/1.6 var(--sans);letter-spacing:.45em;text-transform:uppercase;color:#a8a8a8;text-align:center;padding:0 32px;opacity:0;animation:introFade .7s .5s forwards}
.skip-intro{position:absolute;bottom:max(40px,env(safe-area-inset-bottom,0px));pointer-events:auto;font:500 12px/1 var(--sans);letter-spacing:.35em;text-transform:uppercase;color:#a8a8a8;background:none;border:0;padding:14px 18px;min-height:44px;cursor:pointer;opacity:0;animation:introFade .6s .7s forwards}
.skip-intro:hover{color:#fff}
@keyframes introFade{from{opacity:0}to{opacity:1}}
@media (max-width:767px){.intro-logo-img{height:76px}.intro-tagline{font-size:10.5px;letter-spacing:.32em}}

/* Proof strip right under the hero (user test: trust was lost because proof sat 3-4 screens down) */
.proofbar{border-bottom:1px solid var(--rule)}
.stats.stats--bar{margin:0;border:0;padding:30px 0}
.stats--bar dt{font-size:56px}
.stats--bar dd{margin-top:8px}
.team .awards{padding-top:48px}
@media (max-width:767px){
  .stats.stats--bar{padding:22px 0;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
  .stats--bar>div{padding-left:10px}
  .stats--bar dt{font-size:30px}
  .stats--bar dd{font-size:9.5px;letter-spacing:.08em}
}

/* Specifics restored after the user test */
.mega-sub{display:flex;flex-wrap:wrap;gap:2px 14px;padding:0 0 10px 14px;border-left:1px solid var(--rule);margin:-2px 0 6px}
.mega-sub a{font:400 13px/1.5 var(--sans);color:var(--mute);padding:3px 0}
.mega-sub a:hover{color:var(--ink)}
.msub{padding-left:16px!important;font-size:.9em;opacity:.8}
.area-towns{grid-column:2;font:400 15px/1.9 var(--sans);color:var(--text);margin-top:22px}
.area-towns b{font-weight:600;color:#fff;margin-right:6px}
.area-towns a{color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.35);text-underline-offset:4px}
.area-towns a:hover{text-decoration-color:#fff}
@media (max-width:1100px){.area-towns{grid-column:auto}}

/* Header phone carries a name (user test: "who will answer?") */
.hdr-phone{display:grid;gap:3px;text-align:right}
.hdr-phone small{font:600 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;opacity:.65}
/* Hero text shows at once (user test: the headline arrived about a second late) */
.js .hero__content > *{opacity:1;transform:none;transition:none}
/* Review dots on phones, so people know to swipe */
.rev-dots{display:none}
@media (max-width:767px){
  .rev-dots{display:flex;justify-content:center;gap:10px;margin-top:18px}
  .rev-dots button{width:8px;height:8px;border-radius:50%;border:0;padding:0;background:#c9c9c9;cursor:pointer;position:relative}
  .rev-dots button::after{content:"";position:absolute;inset:-18px}
  .rev-dots button[aria-current="true"]{background:#0a0a0a}
}
/* Phone fixes: header phone stays an icon; stats strip goes 2 x 2 */
@media (max-width:1100px){.hdr-phone{display:none}}
@media (max-width:767px){
  .stats.stats--bar{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px}
  .stats--bar>div{padding-left:16px}
  .stats--bar>div:nth-child(odd){padding-left:0;border-left:0}
  .stats--bar dt{font-size:40px}
  .stats--bar dd{font-size:10.5px}
}
/* Longer team text: keep the photo its own size, centred beside the panel, so it never runs over the words */
@media (min-width:1401px){ #team .ed-ph{align-self:center;height:auto} }

/* Selling / Buying as floating editorial blocks, the same language as the team section (photo over a grey panel) */
#team{padding-bottom:28px}
.paths{padding:28px 0 var(--sec)}
.path-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
.path{display:flex;flex-direction:column}
.path-ph{position:relative;z-index:1;display:block;width:78%;aspect-ratio:16/10;overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.16)}
.path-ph img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.path-ph:hover img{transform:scale(1.05)}
.path-panel{flex:1;background:var(--panel);margin:-80px 0 0 22%;padding:104px 36px 34px}
.path--flip .path-ph{margin-left:auto}
.path--flip .path-panel{margin:-80px 22% 0 0}
.path-h{font:700 28px/1.2 var(--serif);margin:0 0 8px}
.path-h a{color:var(--ink)}
.path-h a:hover{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
.path-d{font-size:17px;color:var(--text);margin:0 0 20px}
.path-links{display:flex;flex-wrap:wrap;gap:6px 28px}
.svc .sec-head--mid{margin-top:0}
@media (max-width:1100px){.path-grid{grid-template-columns:1fr;gap:40px}.path-ph{width:70%}.path-panel{margin-left:30%}.path--flip .path-panel{margin:-80px 30% 0 0}}
@media (max-width:767px){
  .paths{padding:20px 0 64px}
  .path-ph{width:88%}
  .path-panel{margin:-48px 0 0 12%;padding:68px 22px 26px}
  .path--flip .path-panel{margin:-48px 12% 0 0}
  .path-h{font-size:24px}
  .path-links .link{padding-block:12px}
}
.paths{padding-bottom:72px}
.paths + .svc{padding-top:0}
@media (max-width:767px){.paths{padding-bottom:48px}}

/* Hero A/B result: new layout, but the current hero's big red button and on-screen proof */
.btn--hero{min-height:64px;padding:0 46px;font-size:13px;letter-spacing:.16em}
.hero .btn--red:hover,.hero .btn--red:focus-visible{background:#fff;color:#0a0a0a;border-color:#fff}
.proof{font-size:15px}
.proof--facts{margin-top:8px;font:600 12.5px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.45)}
.proof .stars{color:#f2c94c}
@media (max-width:767px){
  .btn--hero{width:100%;min-height:58px}
  .proof--facts{font-size:11px;letter-spacing:.1em}
}
@media (max-width:767px){.proof--facts .nw{display:block}.proof--facts .pf-dot{display:none}}
/* Both phones in the header */
.hdr-phone + .hdr-phone{padding-left:18px;margin-left:2px;border-left:1px solid rgba(255,255,255,.25)}
/* Header fit with two phones */
.hdr-cta{white-space:nowrap}
.hdr{gap:24px}
.hdr-r{gap:18px}
.nav{gap:clamp(16px,2.1vw,44px)}
@media (min-width:1101px) and (max-width:1480px){
  .wm-crest{height:44px}
  .wm{gap:12px}
  .wm-t{font-size:14px;letter-spacing:.16em}
  .nav a,.nav-mega{font-size:12px;letter-spacing:.06em}
  .hdr-phone{font-size:12px}
  .hdr-phone small{font-size:9px}
  .hdr-phone + .hdr-phone{padding-left:14px}
  .hdr-cta{padding:0 16px;font-size:11px}
}
@media (min-width:1101px) and (max-width:1260px){
  .wm-div,.wm-t{display:none}
}
/* Selling / Buying, no photos (his pick, option 3): white card floating over an offset grey panel */
.pc{position:relative;padding:0 0 28px 28px}
.pc::before{content:"";position:absolute;inset:28px 28px 0 0;background:var(--panel)}
.pc-card{position:relative;background:#fff;border:1px solid #e2e2e2;padding:40px 40px 34px;box-shadow:0 18px 40px rgba(0,0,0,.10)}
.pc .path-h{font-size:30px}
@media (max-width:767px){.pc{padding:0 0 18px 18px}.pc::before{inset:18px 18px 0 0}.pc-card{padding:28px 22px}.pc .path-h{font-size:24px}}
/* Work With Us keeps the desktop proportion to the headline at every width (Justin, 2026-10-23).
   Desktop: headline 62px, button 64px tall, 46px side padding, 13px text. Sizes follow the headline, with tap/legibility floors. */
.hero{--h1:clamp(31px,4.3vw,66px)}
.btn--hero{width:auto;min-height:max(44px,calc(var(--h1) * 1.03));padding:0 max(24px,calc(var(--h1) * .74));font-size:max(11px,calc(var(--h1) * .21));gap:max(10px,calc(var(--h1) * .22))}
@media (max-width:767px){.hero{--h1:8vw}.btn--hero{width:auto}}
@media (max-width:1100px){.btn--hero{padding:0 18px;letter-spacing:.1em;gap:8px}}

/* Footer rebuild (2026-10-23): JK block, three link columns, OMNI's full details, licences, notices */
.ftr-about{font-size:15px;line-height:1.6;color:#cfcfcf;margin:0 0 20px;max-width:34ch}
.ftr-social{display:flex;gap:18px;margin-top:6px}
.ftr-social a{font:600 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#fff;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.3)}
.ftr-omni{display:grid;grid-template-columns:minmax(0,1.1fr) repeat(4,minmax(0,1fr));gap:32px;align-items:start;text-transform:none;letter-spacing:0;font:400 14px/1.7 var(--sans);color:#cfcfcf}
.ftr-omni img{height:34px;width:auto}
.ftr-omni p{margin:0}
.ftr-omni a{color:#fff}
.ftr-omni a:hover{text-decoration:underline;text-underline-offset:4px}
.ftr-notes{margin:0 0 8px;border-top:1px solid rgba(255,255,255,.16);padding-top:16px}
.ftr-notes summary{cursor:pointer;font:600 11px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#cfcfcf;padding:12px 0;min-height:44px;display:flex;align-items:center}
.ftr-notes p{font-size:12.5px;line-height:1.7;color:#9a9a9a;margin:0 0 10px;max-width:110ch}
.ftr-notes b{color:#cfcfcf;font-weight:600}
.ftr .ftr-bar span:first-child a{color:#cfcfcf}
@media (max-width:1100px){.ftr-omni{grid-template-columns:repeat(2,minmax(0,1fr))}.fo-brand{grid-column:1/-1}}
@media (max-width:767px){.ftr-omni{grid-template-columns:1fr;gap:22px}.ftr-omni a{display:inline-block;padding:6px 0}}
/* Phone footer: Company links in two columns so the footer stays short */
@media (max-width:767px){
  .ftr-top .ftr-col:last-child{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}
  .ftr-top .ftr-col:last-child .ftr-h{grid-column:1/-1}
  .ftr-col a{padding-block:11px}
}
/* Accessibility fixes: review dots are 24px tap targets (dot drawn inside); footer text link underlined */
@media (max-width:767px){
  .rev-dots{gap:4px}
  .rev-dots button{width:24px;height:24px;background:transparent;display:grid;place-items:center}
  .rev-dots button::after{content:"";position:static;inset:auto;width:8px;height:8px;border-radius:50%;background:#c9c9c9}
  .rev-dots button[aria-current="true"]{background:transparent}
  .rev-dots button[aria-current="true"]::after{background:#0a0a0a}
}
.ftr .ftr-bar span:first-child a{text-decoration:underline;text-underline-offset:3px}

/* ---------- Round-3 audit fixes (2026-10-23) ---------- */
/* 1-2: even section rhythm */
.team{padding-top:var(--sec)}
@media (max-width:767px){.team{padding-top:var(--sec)}}
.areas{padding:var(--sec) 0;margin-top:0}
/* 3: one rule in Reviews */
.revs .sec-head{border-bottom:0;padding-bottom:0}
/* 4: service titles stay even */
.card h4 .nw,.card h4{text-wrap:balance}
.row .card .tb h4{min-height:2.6em;display:flex;align-items:flex-end}
@media (max-width:1300px) and (min-width:768px){.row{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* 5: areas grid with no orphan, readable towns */
@media (max-width:767px){.area-list{grid-template-columns:1fr}.area-towns a{display:inline-block;padding:8px 0}}
/* 6: tap targets */
.link{padding-block:13px}
.path-links .link{padding-block:13px}
.hdr-phone{padding-block:10px}
.card{min-height:44px}
/* 7: small text up to 12px minimum */
.hdr-phone small{font-size:10px}
.ftr-h{font-size:12px}
@media (max-width:767px){.hero .eyebrow{font-size:12px}.stats--bar dd{font-size:11.5px}.btn--hero{font-size:12px}}
.card p{font-size:16px}
/* 8: paths cards keep the offset block only */
.pc-card{box-shadow:none}
/* 10: OMNI footer block aligned */
.ftr-omni img{height:44px}
.ftr-omni .ftr-h{white-space:nowrap}
.legal .nw,.ftr-omni .nw{white-space:nowrap}
/* form now has six choices */
.msf-pills{grid-template-columns:repeat(2,minmax(0,1fr))}
/* OMNI logo larger, no label */
.ftr-omni .fo-brand img{height:72px;width:auto}
@media (max-width:767px){.ftr-omni .fo-brand img{height:60px}}
/* JK block sits beside the OMNI block; link columns stay above */
.ftr-top{grid-template-columns:repeat(3,minmax(0,1fr))}
.ftr-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px;margin-top:56px;padding:44px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.ftr-pair .ftr-omni{margin:0;padding:0 0 0 64px;border:0;border-left:1px solid var(--rule);grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 32px;align-content:start}
.ftr-pair .fo-brand{grid-column:1/-1;margin-bottom:6px}
.ftr-pair .ftr-about{max-width:40ch}
@media (max-width:900px){
  .ftr-pair{grid-template-columns:1fr;gap:40px}
  .ftr-pair .ftr-omni{padding:40px 0 0;border-left:0;border-top:1px solid var(--rule)}
}
@media (max-width:767px){.ftr-pair{margin-top:40px;padding:36px 0}.ftr-pair .ftr-omni{grid-template-columns:1fr;gap:22px}}
/* Contact form: HomeLight bones (measured 2026-10-23), JK type and black/white */
.hlf{background:#fff;border:1px solid #e2e2e2;max-width:480px;justify-self:end;width:100%}
.hlf-scr{display:none}
.hlf-scr.on{display:block;animation:hlfIn .35s ease}
@keyframes hlfIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.hlf-in{padding:40px 44px 32px}
.hlf-scr[data-scr="start"] .hlf-in{padding-bottom:24px;text-align:center}
.hlf-h{font:700 24px/1.3 var(--serif);color:var(--ink);margin:0 0 10px}
.hlf-sub{font-size:15px;line-height:1.55;color:var(--text);margin:0 auto 32px;max-width:32ch}
.hlf-btns{display:grid;gap:16px}
.hlf-more{margin-top:16px}
.hlf-b{display:block;width:100%;min-height:58px;padding:16px;background:#fff;border:2px solid var(--ink);color:var(--ink);font:600 15px/1.4 var(--sans);letter-spacing:.02em;cursor:pointer;transition:background .2s ease,color .2s ease}
.hlf-b:hover,.hlf-b:focus-visible{background:var(--ink);color:#fff}
.hlf-btns--list{gap:12px;margin-top:4px}
.hlf-btns--list .hlf-b{min-height:52px;text-align:left;padding:14px 18px}
.hlf-foot{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:72px;background:#f4f4f4;border:0;border-top:1px solid #e2e2e2;font:500 15px/1.4 var(--sans);color:var(--ink);cursor:pointer}
.hlf-foot span{display:inline-block;transform:translateY(-3px);transition:transform .2s ease}
.hlf-foot.open span{transform:translateY(3px) rotate(180deg)}
.hlf-step{font-size:15px;line-height:24px;color:#8a8a8a;margin:0 0 24px}
.hlf-step b{font-weight:400}
.hlf-q{display:block;font:700 22px/1.4 var(--serif);color:var(--ink);margin:0 0 16px}
.hlf-box{display:flex;align-items:center;gap:8px;height:64px;padding:0 8px 0 18px;border:1px solid #c5c8cd;background:#fff}
.hlf-box:focus-within{border-color:var(--ink)}
.hlf-box input{flex:1;min-width:0;border:0;outline:0;font:400 16px/24px var(--sans);color:var(--ink);background:none;height:100%}
.hlf-go{height:48px;padding:0 20px;border:0;background:var(--ink);color:#fff;font:600 13px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.hlf-go:disabled{background:#e4e4e4;color:#fff;cursor:default}
.hlf-f{margin-bottom:16px}
.hlf-f label{display:block;font:600 12px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin-bottom:8px}
.hlf-f label em{font-style:normal;text-transform:none;letter-spacing:0;color:#8a8a8a;font-weight:400}
.hlf-f input{width:100%;height:56px;padding:0 16px;border:1px solid #c5c8cd;font:400 16px/24px var(--sans);color:var(--ink);background:#fff}
.hlf-f input:focus{outline:0;border-color:var(--ink)}
.hlf-send{width:100%;margin-top:8px;justify-content:center}
.hlf-send:disabled{opacity:.45;cursor:default}
.hlf-back{display:inline-block;margin-top:20px;padding:12px 0;min-height:44px;background:none;border:0;font:500 14px/1.4 var(--sans);color:#6b6b6b;cursor:pointer}
.hlf-back:hover{color:var(--ink)}
.hlf-done{text-align:center;padding:64px 44px}
@media (max-width:1100px){.hlf{justify-self:stretch;max-width:none}}
@media (max-width:767px){.hlf-in{padding:32px 22px 24px}.hlf-h{font-size:22px}.hlf-q{font-size:20px}.hlf-done{padding:48px 22px}}
@media (prefers-reduced-motion:reduce){.hlf-scr.on{animation:none}}
.hlf-more[hidden]{display:none}
/* Form gets the Selling/Buying card effect: white card floating over an offset panel. Black panel, since the section ground is already grey */
.hlf-wrap{justify-self:end;width:100%;max-width:508px}
.hlf-wrap::before{background:var(--ink)}
.hlf-wrap .hlf{max-width:none;border-color:#e2e2e2;box-shadow:0 18px 40px rgba(0,0,0,.10)}
@media (max-width:1100px){.hlf-wrap{justify-self:stretch;max-width:none}}
@media (max-width:767px){.hlf-wrap{padding:0 0 18px 18px}.hlf-wrap::before{inset:18px 18px 0 0}}
.hlf-wrap .hlf{position:relative}
.hlf-wrap{max-width:620px}@media (min-width:768px){.hlf-wrap .hlf-in{padding:48px 56px 36px}.hlf-wrap .hlf-h{font-size:28px}}
/* Contact: Reform Collective contact page bones (measured 2026-10-23), JK type on grey */
.rf{background:#f4f4f4;padding:120px 0 104px;text-align:center}
.rf-in{display:flex;flex-direction:column;align-items:center}
.rf-h{font:300 clamp(54px,10.3vw,148px)/1 var(--fig);letter-spacing:-.03em;color:var(--ink);margin:0}
.rf-sub{font:400 18px/1.45 var(--sans);color:var(--text);max-width:46ch;margin:36px auto 0}
.rf-form{width:100%;max-width:820px;margin-top:64px}
.rf-step{display:none}
.rf-step.on{display:block;animation:rfIn .45s ease}
@keyframes rfIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.rf-q{font:400 clamp(28px,2.6vw,38px)/1.2 var(--fig);color:var(--ink);margin:0 0 44px}
.rf-pills{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}
.rf-pill{height:46px;padding:0 36px;border:1px solid var(--ink);border-radius:999px;background:transparent;color:var(--ink);font:500 14px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .25s ease,color .25s ease}
.rf-pill:hover,.rf-pill:focus-visible,.rf-pill.is-on{background:var(--ink);color:#fff}
.rf-rows{display:grid;gap:34px;text-align:left}
.rf-row{display:flex;align-items:flex-end;gap:24px;border-bottom:1px solid var(--ink);padding-bottom:18px}
.rf-row span{flex:0 0 150px;font:500 13px/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.rf-row span em{display:block;font-style:normal;letter-spacing:0;text-transform:none;color:#8a8a8a;font-weight:400}
.rf-row input{flex:1;min-width:0;border:0;background:none;outline:0;font:400 20px/26px var(--sans);color:var(--ink);padding:4px 0}
.rf-row:focus-within{border-bottom-width:2px;padding-bottom:17px}
.rf-send{margin-top:48px;height:72px;padding:0 56px;border:0;border-radius:999px;background:var(--ink);color:#fff;font:500 15px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.rf-send:disabled{opacity:.35;cursor:default}
.rf-back{display:block;margin:24px auto 0;padding:10px 0 4px;min-height:44px;background:none;border:0;border-bottom:1px solid var(--ink);font:500 14px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);cursor:pointer}
.rf-step[data-step="when"] .rf-back{margin-top:40px}
.rf-call{margin-top:120px}
.rf-call p{font:500 13px/1.4 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--text);margin:0 0 14px}
.rf-call a{display:inline-block;margin:0 16px;padding:8px 0 5px;border-bottom:1px solid var(--ink);font:500 15px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
@media (max-width:767px){
  .rf{padding:80px 0 72px}
  .rf-sub{font-size:17px;margin-top:24px}
  .rf-form{margin-top:48px}
  .rf-q{margin-bottom:28px}
  .rf-pills{gap:10px}
  .rf-pill{padding:0 22px;height:48px;font-size:13px}
  .rf-row{flex-direction:column;align-items:stretch;gap:8px}
  .rf-row span{flex:none}
  .rf-call{margin-top:72px}
  .rf-call a{display:block;margin:6px auto;width:max-content}
}
@media (prefers-reduced-motion:reduce){.rf-step.on{animation:none}}
.rf-form{max-width:1040px}
.rf-step[data-step="info"]{max-width:760px;margin:0 auto}
.rf-row span{flex-basis:180px;white-space:nowrap}
.rf-h{text-wrap:balance}
@media (max-width:767px){.rf-h{font-size:56px;line-height:1.02}.rf-row span{white-space:normal}}
.rf-step[data-step="need"] .rf-pills{max-width:690px;margin:0 auto}
@media (max-width:767px){.rf-row input{flex:none}}
@media (max-width:767px){.rf-row span{flex-basis:auto}}
.rf-more{margin-top:16px}
.rf-more[hidden]{display:none}
.rf-step[data-step="type"] .rf-back{margin-top:40px}
/* Contact fixes from the 2026-10-23 audit and visitor test */
.rf{background:var(--panel)}
.rf-form{scroll-margin-top:calc(var(--header-h) + 24px)}
.rf-q:focus{outline:0}
.rf-step[data-step="done"]{min-height:300px}
.rf-done-sub{font:400 19px/1.5 var(--sans);color:var(--text);margin:-20px 0 0}
.rf-sub{font-size:19px;max-width:36em;text-wrap:balance}
.rf-else.is-on,.rf-else.is-open{background:transparent;color:var(--ink)}
.rf-else::after{content:'';display:inline-block;width:6px;height:6px;margin-left:10px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-3px) rotate(45deg);transition:transform .25s}
.rf-else.is-open::after{transform:translateY(1px) rotate(-135deg)}
@media (hover:hover){.rf-else:hover{background:var(--ink);color:#fff}}
.rf :focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.rf-row{border-bottom-color:#8a8a8a}
.rf-row:focus-within{border-bottom-color:var(--ink)}
.rf-row.bad{border-bottom-color:#b3261e}
.rf-row span b{font-weight:500;color:var(--ink)}
.rf-row span i{font-style:normal}
.rf-row input{min-height:44px}
.rf-err{margin:24px 0 0;font:500 15px/1.4 var(--sans);color:#b3261e;text-align:left}
.rf-call{margin-top:96px}
.rf-call a{padding:15px 0 13px}
@media (max-width:767px){
  .rf-pills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .rf-pill{padding:0 12px}
  .rf-else,.rf-more .rf-pill{grid-column:1/-1}
  .rf-sub{font-size:19px;text-wrap:pretty}
  .rf-call a{margin:0 auto}
  .rf-step[data-step="done"]{min-height:260px}
}
.rf .rf-row input:focus-visible{outline:0}
@media (max-width:767px){.rf-step[data-step="type"] .rf-pill:last-child{grid-column:1/-1}}
.rf-step[data-step="build"] .rf-back{margin-top:40px}@media (max-width:767px){.rf-step[data-step="build"] .rf-pill:last-child{grid-column:1/-1}}
@media (max-width:767px){.rf-step[data-step="build"] .rf-pills{grid-template-columns:1fr}}
/* Contact pills: even grids, equal widths, one gap everywhere (2026-10-24) */
.rf .rf-pills{display:grid;gap:16px;margin:0 auto;max-width:none}
.rf .rf-pills--2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:520px}
.rf .rf-pills--6{grid-template-columns:repeat(3,minmax(0,1fr));max-width:780px}
.rf .rf-pill{width:100%;padding:0 20px}
.rf .rf-step .rf-back{margin-top:40px}
@media (max-width:767px){
  .rf .rf-pills{gap:12px}
  .rf .rf-pills--6{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rf .rf-pill{height:52px;padding:0 10px}
  .rf .rf-pills--2 .rf-pill{grid-column:auto}
}
@media (max-width:767px){.rf .rf-pills--6 .rf-pill:last-child{grid-column:auto}}
@media (max-width:767px){.rf .rf-pill{font-size:12.5px;letter-spacing:.04em;padding:0 6px;white-space:nowrap}}
@media (max-width:340px){.rf .rf-pill{font-size:11.5px;letter-spacing:.02em}}
@media (max-width:767px){.rf [data-step="who"] .rf-pills--2{grid-template-columns:1fr}}
/* Red buttons switched to black (Justin, 2026-10-24). On dark grounds the black button keeps a white hairline so it still reads */
.btn--red{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn--red:hover,.btn--red:focus-visible{background:#fff;color:var(--ink);border-color:var(--ink)}
.hdr .btn--red:hover,.hero .btn--red:hover,.mnav .btn--red:hover{border-color:#fff}
.hdr .hdr-cta.btn--red{background:#fff;color:var(--ink);border-color:#fff}
.hdr .hdr-cta.btn--red:hover,.hdr .hdr-cta.btn--red:focus-visible{background:transparent;color:#fff;border-color:#fff}
/* Pre-launch spacing fixes (audit 2026-10-24). Kept last so they win over the unconditioned rules above */
.ftr-pair .ftr-about{max-width:40ch}
@media (max-width:1100px){
  .ftr-pair{grid-template-columns:1fr;gap:40px}
  .ftr-pair .ftr-omni{padding:40px 0 0;border-left:0;border-top:1px solid var(--rule)}
}
#reviews{padding-top:0}
.paths{padding-bottom:var(--sec)}
.ed-tx .link + .link{margin-left:24px}
.path-d{margin-top:14px}
.sec-head--mid{margin-bottom:33px}
@media (min-width:768px) and (max-width:1100px){.rev blockquote{max-width:62ch}}
@media (max-width:767px){
  .hero .eyebrow{white-space:normal;text-wrap:balance}
  .ftr-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 20px}
  .rf-done-sub{margin-top:-12px}
  .rf-call a + a{margin-top:8px}
}
@media (max-width:400px){.hdr-r{gap:4px}}
