/* =====================================================================
   Sean Cooper Real Estate Group — design system
   Structure and motion replicate timsmithrealestategroup.com (Luxury Presence).
   Colors come from brand-guidelines.md. Role assignments are PROPOSED until approved.
   ===================================================================== */

/* ---------- Fonts: Helvetica Neue LT Std (self-hosted; webfont license required before launch) ---------- */
/* Newsreader (variable, opsz 6-72; SIL Open Font License, Google Fonts). Registered as "Newsreader Display" = the display optical size (opsz 72), used for the home statement headline. */
@font-face{font-family:"Newsreader Display";src:url("../fonts/Newsreader-VariableFont_opsz-wght.ttf") format("truetype");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader Display";src:url("../fonts/Newsreader-Italic-VariableFont_opsz-wght.ttf") format("truetype");font-weight:200 800;font-style:italic;font-display:swap}
@font-face{font-family:"Helvetica Neue LT Std";font-weight:100;font-style:normal;font-display:swap;src:url("../fonts/HelveticaNeueLTStd-Th.woff2") format("woff2"),url("../fonts/HelveticaNeueLTStd-Th.woff") format("woff")}
@font-face{font-family:"Helvetica Neue LT Std";font-weight:200;font-style:normal;font-display:swap;src:url("../fonts/HelveticaNeueLTStd-UltLt.woff2") format("woff2"),url("../fonts/HelveticaNeueLTStd-UltLt.woff") format("woff")}
@font-face{font-family:"Helvetica Neue LT Std";font-weight:300;font-style:normal;font-display:swap;src:url("../fonts/HelveticaNeueLTStd-Lt.woff2") format("woff2"),url("../fonts/HelveticaNeueLTStd-Lt.woff") format("woff")}
@font-face{font-family:"Helvetica Neue LT Std";font-weight:300;font-style:italic;font-display:swap;src:url("../fonts/HelveticaNeueLTStd-LtIt.woff2") format("woff2"),url("../fonts/HelveticaNeueLTStd-LtIt.woff") format("woff")}
@font-face{font-family:"Helvetica Neue LT Std";font-weight:400;font-style:normal;font-display:swap;src:url("../fonts/HelveticaNeueLTStd-Roman.woff2") format("woff2"),url("../fonts/HelveticaNeueLTStd-Roman.woff") format("woff")}
@font-face{font-family:"Helvetica Neue LT Std";font-weight:400;font-style:italic;font-display:swap;src:url("../fonts/HelveticaNeueLTStd-It.woff2") format("woff2"),url("../fonts/HelveticaNeueLTStd-It.woff") format("woff")}
@font-face{font-family:"Helvetica Neue LT Std";font-weight:500;font-style:normal;font-display:swap;src:url("../fonts/HelveticaNeueLTStd-Md.woff2") format("woff2"),url("../fonts/HelveticaNeueLTStd-Md.woff") format("woff")}
@font-face{font-family:"Helvetica Neue LT Std";font-weight:500;font-style:italic;font-display:swap;src:url("../fonts/HelveticaNeueLTStd-MdIt.woff2") format("woff2"),url("../fonts/HelveticaNeueLTStd-MdIt.woff") format("woff")}
@font-face{font-family:"Helvetica Neue LT Std";font-weight:700;font-style:normal;font-display:swap;src:url("../fonts/HelveticaNeueLTStd-Bd.woff2") format("woff2"),url("../fonts/HelveticaNeueLTStd-Bd.woff") format("woff")}
@font-face{font-family:"Helvetica Neue LT Std";font-weight:900;font-style:normal;font-display:swap;src:url("../fonts/HelveticaNeueLTStd-Hv.woff2") format("woff2"),url("../fonts/HelveticaNeueLTStd-Hv.woff") format("woff")}
@font-face{font-family:"Helvetica Neue LT Std Condensed";font-weight:300;font-style:normal;font-display:swap;src:url("../fonts/HelveticaNeueLTStd-LtCn.woff2") format("woff2"),url("../fonts/HelveticaNeueLTStd-LtCn.woff") format("woff")}
@font-face{font-family:"Helvetica Neue LT Std Condensed";font-weight:400;font-style:normal;font-display:swap;src:url("../fonts/HelveticaNeueLTStd-Cn.woff2") format("woff2"),url("../fonts/HelveticaNeueLTStd-Cn.woff") format("woff")}
@font-face{font-family:"Helvetica Neue LT Std Condensed";font-weight:500;font-style:normal;font-display:swap;src:url("../fonts/HelveticaNeueLTStd-MdCn.woff2") format("woff2"),url("../fonts/HelveticaNeueLTStd-MdCn.woff") format("woff")}
@font-face{font-family:"Helvetica Neue LT Std Extended";font-weight:200;font-style:normal;font-display:swap;src:url("../fonts/HelveticaNeueLTStd-UltLtEx.woff2") format("woff2"),url("../fonts/HelveticaNeueLTStd-UltLtEx.woff") format("woff")}
@font-face{font-family:"Helvetica Neue LT Std Extended";font-weight:400;font-style:normal;font-display:swap;src:url("../fonts/HelveticaNeueLTStd-Ex.woff2") format("woff2"),url("../fonts/HelveticaNeueLTStd-Ex.woff") format("woff")}
@font-face{font-family:"Helvetica Neue LT Std Extended";font-weight:500;font-style:normal;font-display:swap;src:url("../fonts/HelveticaNeueLTStd-MdEx.woff2") format("woff2"),url("../fonts/HelveticaNeueLTStd-MdEx.woff") format("woff")}
@font-face{font-family:"Helvetica Neue LT Std Extended";font-weight:900;font-style:normal;font-display:swap;src:url("../fonts/HelveticaNeueLTStd-HvEx.woff2") format("woff2"),url("../fonts/HelveticaNeueLTStd-HvEx.woff") format("woff")}

/* ---------- Tokens ---------- */
:root{
  /* Confirmed SCREG palette (brand-guidelines.md v0.5) — never alter these values */
  --screg-blue:#698dac;
  --screg-blue-light:#a3b7cb;
  --screg-blue-dark:#455f75;
  --screg-grey-dark:#404041;
  --screg-highlight:#337dbc;   /* user-supplied 2026-09-17 (replaced #1d83da, which replaced #227ac5) */
  /* Proposed neutrals — pending approval */
  --white:#ffffff;
  --off-white:#f4f6f8;
  --screg-near-black:#191919;             /* supplied by user 2026-09-17 for dark page/sticky-header backgrounds (trial) */
  /* Proposed role mapping (swap any of these to re-theme the whole site) */
  --c-dark:var(--screg-near-black);       /* dark section backgrounds, sticky header, site footer (Tim Smith: #202123) */
  --c-deep:var(--screg-blue-dark);        /* side menu, hero/page-hero, stats band */
  --c-text:var(--screg-grey-dark);        /* body copy on light */
  --c-text-muted:rgba(64,64,65,.72);
  --c-accent:var(--screg-highlight);      /* confirmed highlight: pills, eyebrows on light, focus */
  --c-accent-soft:var(--screg-blue);      /* dividers, secondary accents, link hover on dark */
  --c-star:#d6bd85;                        /* muted pastel gold for review stars; sits with the blues (Sean, 2026-09-26) — PROPOSED, not in the confirmed palette */
  --c-panel:var(--screg-blue-light);      /* tinted panels, eyebrows on dark */
  --c-line:rgba(64,64,65,.2);
  --c-line-light:rgba(255,255,255,.25);
  --overlay-dark:rgba(64,64,65,.45);
  --overlay-hero:rgba(69,95,117,.35);
  /* Type scale (Tim Smith values) */
  --font:"Helvetica Neue LT Std","Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-cn:"Helvetica Neue LT Std Condensed",var(--font);
  --font-ex:"Helvetica Neue LT Std Extended",var(--font);
  --h1:70px;--h2:48px;--h3:30px;--h4:21px;--h5:17px;--h6:16px;--body:16px;
  /* Layout */
  --section-pad:96px;--container:1400px;--container-pad:50px;--header-h:100px;
  --ease-hero:cubic-bezier(.835,0,.19,1);
}
@media (max-width:1200px){:root{--h1:56px;--h2:40px}}
@media (max-width:768px){:root{--section-pad:64px;--container-pad:25px;--h1:40px;--h2:32px;--h3:24px;--h4:19px;--header-h:80px}}

/* ---------- Accessibility: visible keyboard focus, skip link, reduced motion (2026-09-26) ---------- */
:focus:not(:focus-visible){outline:none}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--c-accent);outline-offset:3px;border-radius:2px}
.bg-dark :focus-visible,.bg-deep :focus-visible,.site-header :focus-visible,.side-menu :focus-visible,.site-footer :focus-visible,.hero :focus-visible,.page-hero :focus-visible{outline-color:#fff}
.form-field input:focus-visible,.form-field textarea:focus-visible,.form-field select:focus-visible{outline:none;border-bottom-width:2px}
.skip-link{position:absolute;top:-100px;left:16px;z-index:2000;padding:12px 18px;background:var(--c-dark);color:#fff;font-weight:700;font-size:14px;letter-spacing:1px;text-transform:uppercase;border-radius:0 0 6px 6px;transition:top .2s}
.skip-link:focus{top:0;outline:3px solid var(--c-accent);outline-offset:0}
main:focus{outline:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .wow{visibility:visible!important}
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--font);font-size:var(--body);line-height:1.6;color:var(--c-text);background:var(--white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
body.no-scroll{overflow:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
h1,h2,h3,h4,h5,h6{margin:0 0 .5em;font-weight:400;line-height:1.25}
.h1{font-size:var(--h1);line-height:1.2}
/* All h2 headings: Newsreader Display Regular (opsz 72, wght 400), title case in the markup; 22px gap to whatever follows (Sean, 2026-09-26) */
.h2,h2{font-family:"Newsreader Display",Georgia,"Times New Roman",serif;font-variation-settings:"opsz" 72;font-weight:400;font-size:var(--h2);line-height:1.15;letter-spacing:0;margin-bottom:22px}
h2 strong,h2 b{font-weight:400}
.h3,h3{font-size:var(--h3);line-height:1.3}
.h4,h4{font-size:var(--h4);line-height:1.5}
.h6{font-size:var(--h6);line-height:1.5}
.eyebrow,h5{font-size:var(--h5);font-weight:700;line-height:1.4;text-transform:uppercase;letter-spacing:2px;margin:0 0 22px}
p{margin:0 0 1em}
strong,b{font-weight:700}
.text-center{text-align:center}
.font-lora{font-family:"Lora",Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:0}
.font-lora strong{font-weight:600}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--container-pad);width:100%}
.container--narrow{max-width:960px}
.section{padding:var(--section-pad) 0}
.section--half{padding:calc(var(--section-pad)/2) 0}
.section--half .gallery__header:last-child{margin-bottom:0}
.section--top{padding-bottom:0;display:flow-root} /* flow-root keeps the last heading's margin inside the dark section instead of collapsing out as a white gap */
.section--flush{padding:0}
.bg-dark{background:var(--c-dark);color:#fff}
.bg-deep{background:var(--c-dark);color:#fff}   /* was dark blue; user wants the page bottoms to match the site grey (2026-09-18) */
.bg-light{background:var(--white);color:var(--c-text)}
.bg-panel{background:var(--off-white);color:var(--c-text)}
/* Eyebrow / h5 labels: logo light blue on dark and photo backgrounds site-wide; the highlight blue stays on white and tinted panels (Sean, 2026-09-26) */
.bg-dark .eyebrow,.bg-deep .eyebrow,.image-section .eyebrow,.bg-dark h5,.bg-deep h5,.image-section h5{color:var(--screg-blue-light)}
.bg-light .eyebrow,.bg-panel .eyebrow,.bg-light h5,.bg-panel h5{color:var(--c-accent)}
.lead{font-size:16px;line-height:1.7}
.muted{color:var(--c-text-muted)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.placeholder-note{display:inline-block;font-size:10px;letter-spacing:2px;text-transform:uppercase;padding:3px 8px;border:1px dashed currentColor;opacity:.55;margin-bottom:12px}

/* ---------- Buttons & links ---------- */
.btn{display:inline-block;font-family:var(--font);font-size:14px;font-weight:700;letter-spacing:1.5px;line-height:1;text-transform:uppercase;padding:20px 46px;border:2px solid currentColor;background:transparent;color:inherit;cursor:pointer;text-align:center;max-width:100%;transition:background-color .3s,color .3s,border-color .3s}
.btn--sm{padding:14px 28px;font-size:12px}
.btn--dark{color:var(--c-text);border-color:var(--c-text)}
.btn--dark:hover{background:var(--c-text);color:#fff}
.btn--dark-filled{background:var(--c-text);border-color:var(--c-text);color:#fff}
.btn--dark-filled:hover{background:var(--c-accent);border-color:var(--c-accent);color:#fff}
.btn--light{color:#fff;border-color:#fff}
.btn--light:hover{background:#fff;color:var(--c-dark)}
.btn--light-filled{background:#fff;border-color:#fff;color:var(--c-dark)}
.btn--light-filled:hover{background:var(--c-accent);border-color:var(--c-accent);color:#fff}
.btn--accent{background:var(--c-accent);border-color:var(--c-accent);color:#fff}
.btn--accent:hover{background:var(--c-deep);border-color:var(--c-deep)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}
.btn-row--center{justify-content:center}
@media (max-width:768px){.btn--mob-full{width:100%}}
/* Underline-fill link (hero CTAs) */
.link-bar{position:relative;display:inline-block;padding-bottom:14px;font-size:16px;font-weight:300;letter-spacing:5px;text-transform:uppercase;color:#fff;transition:color .3s}
.link-bar__track{position:absolute;left:0;bottom:0;width:100%;height:1px;background:rgba(255,255,255,.44)}
.link-bar__fill{position:absolute;left:0;top:0;height:100%;width:0;background:#fff;transition:width .3s}
.link-bar:hover .link-bar__fill,.link-bar:focus-visible .link-bar__fill{width:100%}
/* Text link with underline reveal */
.link{position:relative;display:inline-block;font-size:12px;letter-spacing:2px;text-transform:uppercase;padding-bottom:6px;cursor:pointer}
.link::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;transition:width .2s ease}
.link:hover::after{width:100%}

/* ---------- Header ---------- */
.site-header{position:fixed;top:0;left:0;width:100%;height:var(--header-h);z-index:1000;color:#fff;transition:background-color .3s ease,transform .3s ease,height .3s ease}
.site-header.is-scrolled{background:var(--c-dark);box-shadow:0 2px 12px rgba(0,0,0,.15)}
.site-header .container{max-width:1440px;padding:0 15px;display:flex;align-items:center;height:100%}
.navbar{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:70px;padding:8px 0 7px}
.logo-group{display:flex;align-items:center;gap:29px;flex-shrink:0;margin-right:10px;z-index:911}
.logo{display:flex;flex-direction:column;line-height:1;flex-shrink:0;color:inherit}
.logo--brokerage{padding-left:0;border-left:0}
.logo__name{font-size:26px;font-weight:700;letter-spacing:1px;text-transform:uppercase}
.logo__sub{font-size:10px;letter-spacing:4px;text-transform:uppercase;font-weight:400;margin-top:7px;opacity:.85}
.logo__img{max-height:78px;width:auto;max-width:260px;object-fit:contain;transition:opacity .3s}
.logo__img--brokerage{max-height:42px;max-width:100px}
.logo:hover .logo__img{opacity:.85}
.logo__img--dark{display:none}
.main-nav{margin-left:auto;margin-right:16px} /* 16 + the Access button's 12px padding = 28px to its label, matching the 28px between Access and Menu (Sean, 2026-09-26) */
.main-nav>ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;justify-content:flex-end}
.main-nav__item{position:relative;padding:0;margin:0}
.main-nav__link{display:block;padding:12px 13px;font-size:13px;font-weight:400;letter-spacing:1.5px;text-transform:uppercase;line-height:1.08;color:inherit;background:transparent;border:0;cursor:pointer}
.main-nav__link span{position:relative;white-space:nowrap}
.main-nav__link span::after{content:"";position:absolute;left:0;bottom:-3px;display:block;height:1px;width:0;background:rgba(255,255,255,.6);transition:width .2s ease}
.main-nav__link:hover span::after,.main-nav__item.is-open>.main-nav__link span::after{width:100%}
.main-nav__item--cta{margin-left:13px}
.main-nav__item--cta .main-nav__link{position:relative;isolation:isolate;border:1px solid currentColor;border-radius:15px;padding:10px 22px;transition:border-color .3s,color .3s}
.main-nav__item--cta .main-nav__link span::after{display:none}
/* Contact Us hover = frosted glass with a hint of the light brand blue (--screg-blue-light), faded in on a pseudo so the fill stays smooth (Sean, 2026-09-26) */
.main-nav__item--cta .main-nav__link::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:linear-gradient(135deg,rgba(163,183,203,.24),rgba(163,183,203,.1));box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 0 0 1px rgba(163,183,203,.18),0 8px 18px -8px rgba(0,0,0,.45);-webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%);opacity:0;transition:opacity .3s ease}
.main-nav__item--cta .main-nav__link:hover::before,.main-nav__item--cta .main-nav__link:focus-visible::before{opacity:1}
.main-nav__item--cta .main-nav__link:hover,.main-nav__item--cta .main-nav__link:focus-visible{color:#fff;border-color:rgba(255,255,255,.85)}
/* Dropdown = frosted "liquid glass" panel (2026-09-26, Sean's ask: Apple-glass look that picks up the page behind it).
   The panel blurs + saturates whatever sits behind it (hero photo at the top of the page, page sections once scrolled) under a
   dark blue-black tint, with a light-catching gradient rim, a top sheen and a soft lift shadow, like macOS / iOS 26 menus.
   Tokens: --glass-rgb (tint colour), --glass-a (tint opacity; raised once the header is scrolled so white text stays readable
   over white sections), --glass-blur, --glass-radius. The tint alone (no blur) is the fallback where backdrop-filter is unsupported.
   Markup is unchanged (layout.js: .sub-nav > ul > li > a); ::before is the invisible hover bridge across the 10px gap, ::after the rim. */
.sub-nav{--glass-rgb:34,44,56;--glass-a:.26;--glass-blur:26px;--glass-radius:9px; /* was 18px; Sean asked for half (2026-09-26) */
  position:absolute;left:0;top:calc(100% + 10px);min-width:240px;max-width:320px;padding:7px;border-radius:var(--glass-radius);color:#fff;isolation:isolate;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") 0 0/160px 160px,radial-gradient(150% 80% at 0% 0%,rgba(255,255,255,.2),rgba(255,255,255,0) 58%),linear-gradient(115deg,rgba(255,255,255,.14) 0%,rgba(255,255,255,.04) 30%,rgba(255,255,255,0) 52%,rgba(255,255,255,.05) 100%),rgba(var(--glass-rgb),var(--glass-a)); /* frosted grain (inline SVG noise, ~7% white) over a light-catching sheen over the tint */
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);backdrop-filter:blur(var(--glass-blur)) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -1px 0 rgba(255,255,255,.05),0 1px 2px rgba(0,0,0,.18),0 12px 28px -6px rgba(0,0,0,.35),0 30px 60px -18px rgba(0,0,0,.45);
  opacity:0;visibility:hidden;transform:translateY(-8px) scale(.96);transform-origin:18px 0;
  transition:opacity .22s ease,transform .34s cubic-bezier(.2,.9,.3,1.15),visibility .34s;z-index:5}
.site-header.is-scrolled .sub-nav{--glass-a:.68} /* darker once the header is solid so white text stays readable over white sections; Sean asked for a light tint at the top (2026-09-26) */
.sub-nav::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.sub-nav::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,.55),rgba(255,255,255,.12) 30%,rgba(255,255,255,.05) 60%,rgba(255,255,255,.32));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}
.sub-nav ul{list-style:none;margin:0;padding:0;display:block;background:transparent;position:relative}
.sub-nav li{border-radius:calc(var(--glass-radius) - 3px); /* 6px pills inside the 9px panel */opacity:0;transform:translateY(-5px);transition:opacity .28s ease,transform .32s cubic-bezier(.2,.8,.2,1)}
.sub-nav li+li{margin-top:1px}
.sub-nav a{position:relative;isolation:isolate;display:block;padding:15px 16px;border-radius:inherit;color:rgba(255,255,255,.94);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.35);transition:color .18s}
/* hover / focus = translucent brand-blue glass pill (logo blues, between --screg-blue-dark and --screg-highlight), faded in on a pseudo so it stays smooth */
.sub-nav a::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:linear-gradient(135deg,rgba(76,108,140,.9),rgba(45,112,170,.9));box-shadow:inset 0 1px 0 rgba(255,255,255,.32),inset 0 0 0 1px rgba(163,183,203,.38),0 8px 18px -8px rgba(51,125,188,.75);opacity:0;transition:opacity .18s ease}
.sub-nav li:hover>a::before,.sub-nav li:focus-within>a::before{opacity:1}
.sub-nav li:hover>a,.sub-nav li:focus-within>a{color:#fff}
/* Third tier (2026-09-26): a child with its own children (Success Stories > notable sales) gets a chevron and a flyout panel that
   opens beside the parent pill on hover / keyboard focus. Same glass panel; the ::before bridge is moved to the gap on its left. */
.sub-nav li{position:relative}
.sub-nav__item--has-sub>a{padding-right:34px}
.sub-nav__item--has-sub>a::after{content:"";position:absolute;right:14px;top:50%;width:6px;height:6px;border-right:1.5px solid currentColor;border-top:1.5px solid currentColor;transform:translateY(-50%) rotate(45deg);opacity:.7}
.sub-nav--flyout{left:calc(100% + 6px);top:-7px;transform:translateX(-8px) scale(.96);transform-origin:0 22px}
.sub-nav--flyout::before{left:-12px;right:auto;top:0;bottom:0;width:12px;height:auto}
.sub-nav__item--has-sub:hover>.sub-nav--flyout,.sub-nav__item--has-sub:focus-within>.sub-nav--flyout{opacity:1;visibility:visible;transform:none}
.sub-nav__item--has-sub:hover>.sub-nav--flyout li,.sub-nav__item--has-sub:focus-within>.sub-nav--flyout li{opacity:1;transform:none}
.main-nav__item:hover>.sub-nav,.main-nav__item.is-open>.sub-nav,.main-nav__item:focus-within>.sub-nav{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.main-nav__item:hover>.sub-nav li,.main-nav__item.is-open>.sub-nav li,.main-nav__item:focus-within>.sub-nav li{opacity:1;transform:none}
/* items settle in one after another when the panel opens (the li only transitions opacity/transform, so these delays never touch the hover pill) */
.main-nav__item:hover>.sub-nav li:nth-child(2),.main-nav__item.is-open>.sub-nav li:nth-child(2),.main-nav__item:focus-within>.sub-nav li:nth-child(2){transition-delay:.04s}
.main-nav__item:hover>.sub-nav li:nth-child(3),.main-nav__item.is-open>.sub-nav li:nth-child(3),.main-nav__item:focus-within>.sub-nav li:nth-child(3){transition-delay:.08s}
.main-nav__item:hover>.sub-nav li:nth-child(4),.main-nav__item.is-open>.sub-nav li:nth-child(4),.main-nav__item:focus-within>.sub-nav li:nth-child(4){transition-delay:.12s}
.main-nav__item:hover>.sub-nav li:nth-child(n+5),.main-nav__item.is-open>.sub-nav li:nth-child(n+5),.main-nav__item:focus-within>.sub-nav li:nth-child(n+5){transition-delay:.16s}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.sub-nav{--glass-a:.96}}
@media (prefers-reduced-motion:reduce){.sub-nav,.sub-nav li{transform:none;transition-delay:0s}}
.hamburger{display:flex;flex-direction:column;align-items:center;border:0;background:transparent;padding:28px 13px 28px 16px;color:inherit;cursor:pointer}
.hamburger__label{display:block;width:26px;margin-top:15px;font-family:var(--font);font-size:7px;font-weight:100;line-height:1;letter-spacing:2.45px;text-transform:uppercase;text-align:left;white-space:nowrap;color:currentColor;opacity:.9}
.hamburger__bars{position:relative;display:block;width:26px;height:2px;background:currentColor;transition:.2s transform ease}
.hamburger__bars::before,.hamburger__bars::after{content:"";display:block;width:26px;height:2px;background:currentColor;position:absolute;left:0;top:0;transition:.2s transform ease}
.hamburger__bars::before{transform:translateY(-9px)}
.hamburger__bars::after{transform:translateY(9px)}
.hamburger:hover .hamburger__bars::before{transform:translateY(-7px)}
.hamburger:hover .hamburger__bars::after{transform:translateY(7px)}
@media (max-width:1380px){.main-nav{display:none}} /* header needs ~1368px for logo + nav + hamburger + accessibility button (measured 2026-09-26); was 1260, which let the nav overflow between 1260 and 1304 even before the button */
@media (max-width:768px){.logo-group{gap:15px}.logo--brokerage{padding-left:0}.logo__img{max-height:56px;max-width:190px}.logo__img--brokerage{max-height:30px;max-width:72px}.logo__name{font-size:20px}.logo__sub{font-size:8px;letter-spacing:3px}.hamburger{padding:20px 6px}}
@media (max-width:400px){.logo--brokerage{display:none}}

/* ---------- Full-screen menu (hamburger) ---------- */
.side-menu{position:fixed;inset:0;z-index:1100;display:none}
.side-menu.is-open{display:block}
.side-menu__panel{position:absolute;inset:0;background:var(--c-dark);color:#fff;display:flex;animation:slideIn .35s cubic-bezier(.4,0,.2,1) forwards}
.side-menu.is-closing .side-menu__panel{animation:slideOut .3s ease-in forwards}
.side-menu__close{position:absolute;top:22px;right:26px;width:40px;height:40px;border:0;background:transparent;cursor:pointer;color:#fff;z-index:3;opacity:.85;transition:opacity .3s,transform .3s}
.side-menu__close:hover{opacity:1;transform:rotate(90deg)}
.side-menu__close::before,.side-menu__close::after{content:"";position:absolute;left:50%;top:50%;width:24px;height:1.5px;background:currentColor}
.side-menu__close::before{transform:translate(-50%,-50%) rotate(45deg)}
.side-menu__close::after{transform:translate(-50%,-50%) rotate(-45deg)}
.side-menu__photo{flex:0 0 40%;background-size:cover;background-position:center}
.side-menu__content{flex:1 1 auto;display:flex;flex-direction:column;justify-content:space-between;padding:90px 80px 50px;overflow-y:auto}
.side-menu__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:64px 40px;align-content:start}
.side-menu__group{min-width:0}
.side-menu__heading{font-size:17px;font-weight:400;letter-spacing:2.5px;text-transform:uppercase;margin:0 0 18px;color:#fff}
.side-menu__heading a{position:relative;transition:color .25s}
.side-menu__heading a::after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:1px;background:currentColor;transition:width .25s}
.side-menu__heading a:hover::after{width:100%}
.side-menu__sub{list-style:none;margin:0;padding:0}
.side-menu__sublink{display:inline-block;padding:5px 0;font-size:13px;letter-spacing:.3px;color:rgba(255,255,255,.72);transition:color .25s,transform .25s}
.side-menu__sublink:hover{color:#fff;transform:translateX(4px)}
.side-menu__sub--nested{margin:2px 0 8px 14px;padding-left:12px;border-left:1px solid rgba(255,255,255,.18)} /* third tier under Success Stories */
.side-menu__sub--nested .side-menu__sublink{font-size:12px;padding:4px 0;color:rgba(255,255,255,.6)}
.side-menu__brand{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:40px 0 24px}
.side-menu__brand a{display:flex;justify-content:center;width:100%}
.side-menu__brand img{max-height:247px;width:auto;max-width:70%}
.side-menu__footer{margin-top:24px;padding-top:26px;border-top:1px solid var(--c-line-light);font-size:13px;line-height:1.8;opacity:.9;display:flex;flex-wrap:wrap;align-items:center;gap:6px 36px}
.side-menu__footer a:hover{color:var(--screg-blue-light)}
.side-menu__footer .social{margin-top:0}
@media (max-width:1100px){.side-menu__content{padding:80px 48px 40px}.side-menu__grid{gap:44px 28px}}
@media (max-width:900px){
  .side-menu__panel{flex-direction:column}
  .side-menu__photo{flex:0 0 160px;order:-1}
  .side-menu__content{padding:36px 28px 40px}
  .side-menu__grid{grid-template-columns:repeat(2,1fr);gap:34px 24px}
  .side-menu__heading{font-size:15px;margin-bottom:12px}
  .side-menu__brand{padding:28px 0 12px}
  .side-menu__brand img{max-height:169px}
}
@media (max-width:520px){.side-menu__grid{grid-template-columns:1fr}.side-menu__photo{flex-basis:130px}}
.social{display:flex;gap:14px;margin-top:18px}
.social a{display:inline-flex;width:38px;height:38px;border:1px solid var(--c-line-light);border-radius:50%;align-items:center;justify-content:center;transition:all .3s}
.social a:hover{background:#fff;color:var(--c-deep);border-color:#fff}
.social svg{width:16px;height:16px;fill:currentColor}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;color:#fff;overflow:hidden;display:flex;align-items:flex-end;background:var(--c-deep)}
.media-bg{position:absolute;inset:0;overflow:hidden}
.media-bg__poster{position:absolute;inset:0;background-size:cover;background-position:center}
.media-bg__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 2s var(--ease-hero)}
.media-bg__video.is-playing{opacity:1}
.media-bg__overlay{position:absolute;inset:0;background:var(--overlay,var(--overlay-hero))}
@media (max-width:900px){.media-bg__video{display:none}}
.hero__content{position:relative;z-index:2;width:100%;padding:calc(var(--header-h) + 40px) 40px 100px 100px}
.hero__titles{margin:0}
.hero__title{font-size:var(--h1);font-weight:200;line-height:1.15;text-transform:uppercase;letter-spacing:2px;margin:0;white-space:pre-line}
.hero__title strong{font-weight:500}
.hero__title--long{font-size:calc(var(--h1) * .74);letter-spacing:2.5px;line-height:1.2}
.hero__subtitle{display:block;margin-top:26px;font-size:12px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;opacity:.8;line-height:1.9}
.hero__subtitle p{margin:0}
.hero__ctas{display:flex;flex-wrap:wrap;gap:40px;margin-top:34px}
@media (max-width:1200px){.hero__content{padding-left:40px}}
@media (max-width:768px){.hero__content{padding:calc(var(--header-h) + 30px) 25px 60px}.hero__ctas{gap:24px}.hero__title{letter-spacing:1px}}
@media (max-width:480px){.hero__title{font-size:min(var(--h1),7.6vw)}} /* keeps "REAL ESTATE GROUP" on one line on phones */
/* Inner page hero */
.page-hero{position:relative;min-height:62vh;display:flex;align-items:flex-end;color:#fff;background:var(--c-deep);overflow:hidden}
.page-hero--short{min-height:42vh}
.page-hero__content{position:relative;z-index:2;width:100%;padding:calc(var(--header-h) + 40px) 40px 80px 100px}
.page-hero__title{font-size:var(--h1);font-weight:200;text-transform:uppercase;letter-spacing:2px;line-height:1.15;margin:0}
.page-hero__sub{margin-top:18px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;opacity:.8}
@media (max-width:1200px){.page-hero__content{padding-left:40px}}
@media (max-width:768px){.page-hero__content{padding:calc(var(--header-h) + 30px) 25px 50px}}

/* ---------- Gallery cards ---------- */
.gallery{padding:30px 0 10px}
.gallery--padded{padding:var(--section-pad) 0}
.gallery__row{display:flex;flex-wrap:wrap;margin:0 -7px}
.gallery__col{width:33.333%;padding:0 7px;margin-bottom:14px;display:flex}
.gallery--6 .gallery__col{width:16.666%}
.gallery--4 .gallery__col{width:25%}
.gallery--2 .gallery__col{width:50%}
.gallery-card{position:relative;flex-grow:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;aspect-ratio:1/1.215;padding:20px 15px;overflow:hidden;cursor:pointer;color:#fff;background:var(--c-dark)}
.gallery-card::after{display:none}
.gallery--tall .gallery-card{height:700px;aspect-ratio:auto}
.gallery--tall .gallery-card::after{display:none}
.gallery-card::before{content:"";position:absolute;inset:0;z-index:1;background-color:transparent;background-image:linear-gradient(to bottom,rgba(0,0,0,0) 60%,rgba(0,0,0,.95));opacity:.6;transition:background-color .3s,opacity .3s}
.gallery-card:hover::before{background-color:rgba(0,0,0,.5);opacity:1}
.gallery-card__preview{position:absolute;inset:0;overflow:hidden}
.gallery-card__preview img{width:100%;height:100%;object-fit:cover;transform:translate3d(0,0,0);transition:transform .75s ease-out}
.gallery-card:hover .gallery-card__preview img{transform:scale(1.05)}
.gallery-card__title{position:relative;z-index:2;width:100%;margin:0;color:#fff;font-size:var(--h3);font-weight:400;text-transform:uppercase;text-align:center;letter-spacing:2px;transition:transform .3s}
.gallery-card__title::after{content:"";position:absolute;left:25%;bottom:-14px;width:50%;border-bottom:1px solid currentColor;opacity:0;transition:opacity .3s,transform .3s}
.gallery-card:hover .gallery-card__title{transform:translateY(-30px)}
.gallery-card:hover .gallery-card__title::after{opacity:.8;transform:translateY(0)}
.gallery-card__meta{position:absolute;left:15px;right:15px;bottom:12px;z-index:2;margin:0;text-align:center;font-size:12px;letter-spacing:2px;text-transform:uppercase;opacity:0;transform:translateY(10px);transition:all .3s}
.gallery-card:hover .gallery-card__meta{opacity:.9;transform:none}
.gallery--4 .gallery-card__title{font-size:18px;letter-spacing:1.5px}
.gallery--6 .gallery-card__title{font-size:15px;letter-spacing:1.5px}
.gallery__header{max-width:80%;margin:0 auto 40px;text-align:center}
@media (max-width:992px){.gallery__col,.gallery--4 .gallery__col{width:50%}.gallery--6 .gallery__col{width:33.333%}.gallery--tall .gallery-card{height:480px}}
@media (max-width:600px){.gallery__col,.gallery--4 .gallery__col,.gallery--2 .gallery__col{width:100%}.gallery--6 .gallery__col{width:50%}.gallery--tall .gallery-card{height:380px}}

/* Windowed gallery: the three panels share one full-width background (parallax via fixed attachment, as on the reference site) */
.gallery--windows{--gallery-bg:url("../img/gallery-bg.jpg");--gallery-hover-logo:url("../img/gallery-hover-logo.png")}
.gallery--windows .gallery-card__preview{background-image:var(--gallery-bg);background-size:cover;background-position:center;background-repeat:no-repeat}
.gallery--windows .gallery-card__preview>img{display:none}
.gallery--windows .gallery__row{margin:0 -1.5px}
.gallery--windows .gallery__col{padding:0 1.5px;margin-bottom:3px}
.gallery--full{width:100%;max-width:none;padding:0}
.gallery--full .gallery__row{margin:0}
.gallery--full .gallery__col:first-child{padding-left:0}
.gallery--full .gallery__col:last-child{padding-right:0}
.gallery--full .gallery__col:last-child{margin-bottom:0}
@media (min-width:1000px){.gallery--windows .gallery-card__preview{background-attachment:fixed}}
.gallery--windows .gallery-card::before{background-image:linear-gradient(to bottom,rgba(0,0,0,.3) 32.6%,#000);opacity:.4}
.gallery--windows .gallery-card:hover::before{background-image:none;background-color:rgba(0,0,0,.65);opacity:1}
.gallery--windows .gallery-card__title{font-weight:200;letter-spacing:3px}
.gallery--windows .gallery-card:hover .gallery-card__title{transform:translateY(-45px)}
.gallery--windows .gallery-card__title::after{display:none}
.gallery--windows .gallery-card__preview::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background-image:var(--gallery-hover-logo);background-repeat:no-repeat;background-position:center 42%;background-size:auto 23%;opacity:0;transition:opacity .25s ease}
.gallery--windows .gallery-card:hover .gallery-card__preview::before{opacity:.6}
@media (hover:none){.gallery--windows .gallery-card__preview::before{display:none}}
/* Below 1000px there is no fixed-attachment parallax, so the shared-photo trick does not work. Each panel gets
   its own square photo instead (mobile-only images, outpainted to 1:1). Tablets show the three squares side by side;
   phones stack them full width. Desktop above 1000px is untouched. */
@media (max-width:999px){
  .gallery--windows{--gallery-mobile-1:url("../img/gallery-mobile-search.jpg");--gallery-mobile-2:url("../img/gallery-mobile-valuation.jpg");--gallery-mobile-3:url("../img/gallery-mobile-contact.jpg")}
  .gallery--windows .gallery__col:nth-child(1) .gallery-card__preview{background-image:var(--gallery-mobile-1)}
  .gallery--windows .gallery__col:nth-child(2) .gallery-card__preview{background-image:var(--gallery-mobile-2)}
  .gallery--windows .gallery__col:nth-child(3) .gallery-card__preview{background-image:var(--gallery-mobile-3)}
  .gallery--windows .gallery__row{margin:0}
  .gallery--windows .gallery__col,.gallery--windows.gallery--full .gallery__col{width:33.333%;padding:0;margin-bottom:0}
  .gallery--windows .gallery__col+.gallery__col{border-left:3px solid var(--c-dark)}
  .gallery--windows.gallery--tall .gallery-card{height:auto;aspect-ratio:1/1}
  .gallery--windows .gallery-card::before{background-image:linear-gradient(to bottom,rgba(0,0,0,0) 45%,rgba(0,0,0,.8));opacity:1}
}
@media (max-width:600px){
  .gallery--windows .gallery__col,.gallery--windows.gallery--full .gallery__col{width:100%}
  .gallery--windows .gallery__col+.gallery__col{border-left:0;border-top:3px solid var(--c-dark)}
  .gallery--windows.gallery--tall .gallery-card{padding:20px 15px}
  .gallery--windows .gallery-card__title{font-size:18px;font-weight:300;letter-spacing:2.5px}
}

/* ---------- Boxed text ---------- */
.boxed{text-align:center}
.boxed__inner{max-width:80%;margin:0 auto}
.boxed__icon{width:80px;margin:0 auto 45px;opacity:.9}
.boxed h2,.boxed h3{margin-bottom:22px}
.boxed h3 strong{font-weight:700}
.boxed h2 strong{font-weight:400}
.boxed p{font-size:16px;line-height:1.7;max-width:100%;margin:0 auto 1.4em}
.boxed .btn-row{justify-content:center;margin-top:30px}
/* Wide variant: text block spans 70% of the page width */
.boxed--wide .container{max-width:none;padding:0}
.boxed--wide .boxed__inner{max-width:80%;margin:0 auto}
.boxed--wide p{max-width:100%}
/* Marketing intro: body copy runs ~75% of the container (Sean, 2026-09-25) */
.boxed--intro .boxed__inner{max-width:80%}
.boxed--intro p{max-width:100%}
@media (max-width:768px){.boxed--intro .boxed__inner{max-width:100%}}
.statement__title{font-size:var(--h3);line-height:1.35;margin-bottom:.5em}
.statement__title strong{display:block;font-size:var(--h2);font-weight:700;color:var(--c-accent);margin-top:.15em}
/* Home page (Sean, 2026-09-26): eyebrows on dark sections use the logo light blue instead of the highlight blue; full-width body copy runs 80% of the container */
/* All centered text sections (section heads, boxed bands, gallery and testimonial headers) run 80% of the container (Sean, 2026-09-26) */
@media (max-width:768px){.boxed__inner,.section-head,.gallery__header,.testimonials__header{max-width:100%}}
/* Home statement accent line: Newsreader Display Light (opsz 72, wght 300), 25% larger than h2 + logo light blue (Sean, 2026-09-26) */
.statement__title strong.statement__title-serif{font-family:"Newsreader Display",Georgia,"Times New Roman",serif;font-variation-settings:"opsz" 72;font-weight:300;font-size:calc(var(--h2) * 1.25);line-height:1.15;color:var(--screg-blue-light);letter-spacing:.01em;margin-top:22px}
.boxed .statement__title,.statement__title{margin-bottom:22px} /* equal gaps between the three lines of the statement (Sean, 2026-09-26) */

/* ---------- Image section (background photo + overlay) ---------- */
.image-section{position:relative;background-size:cover;background-position:center;color:#fff;overflow:hidden}
.image-section::before{content:"";position:absolute;inset:0;background:var(--overlay,var(--overlay-dark))}
.image-section>*{position:relative;z-index:1}
.image-section--fixed{background-attachment:fixed}
/* Text-over-photo legibility: soft shadow so white copy holds up on bright
   areas of a photograph without darkening the whole image with more overlay. */
.image-section--legible .boxed__inner,
.image-section--legible .work__inner,
.image-section--legible h1,.image-section--legible h2,
.image-section--legible .eyebrow,.image-section--legible p{text-shadow:0 1px 3px rgba(25,25,25,.55),0 2px 14px rgba(25,25,25,.45)}
.image-section--legible .btn{text-shadow:none}
@media (max-width:1024px){.image-section--fixed{background-attachment:scroll}}

/* ---------- Film / video feature ---------- */
.film{position:relative;min-height:82vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;background:var(--c-dark)}
.film__content{position:relative;z-index:2;max-width:780px;padding:120px 25px}
.film__content h2{font-size:var(--h2);margin-bottom:22px}
.film__content h2 span{display:block;font-weight:200;font-size:var(--h3);letter-spacing:4px;text-transform:uppercase;margin-top:.4em}
.film__content p{font-size:16px;line-height:1.75;opacity:.9;max-width:640px;margin:20px auto 0}
.film__play{display:inline-flex;align-items:center;gap:16px;margin-top:36px;font-size:13px;letter-spacing:3px;text-transform:uppercase;cursor:pointer;background:none;border:0;color:#fff;font-family:inherit}
.film__play-icon{width:64px;height:64px;border:2px solid #fff;border-radius:50%;display:grid;place-items:center;transition:all .3s}
.film__play-icon::after{content:"";border-left:14px solid currentColor;border-top:9px solid transparent;border-bottom:9px solid transparent;margin-left:4px}
.film__play:hover .film__play-icon{background:#fff;color:var(--c-dark);transform:scale(1.06)}

/* ---------- Testimonials ---------- */
.testimonials{padding:var(--section-pad) 0}
.testimonials__header{text-align:center;max-width:80%;margin:0 auto 56px}
/* Section-break header used on the dark bands (Featured Listings, Marketing, Media): blue caps eyebrow, white headline, one quiet line under it. Mirrors .testimonials__header. */
.section-head{text-align:center;max-width:80%;margin:0 auto}
.section-head__sub{font-size:16px;letter-spacing:.5px;opacity:.9;margin:0}
.testimonials__slider .slick-track{display:flex}
.testimonials__slider .slick-slide{height:auto;display:flex}
.testimonial{display:flex!important;flex-direction:column;align-items:center;justify-content:space-between;text-align:center;padding:50px 20px 8px;width:100%}
.testimonial__top{max-width:540px;margin:0 auto}
.testimonial__pic{width:104px;height:104px;border-radius:50%;background:var(--c-deep);color:#fff;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:300;letter-spacing:1px;margin:0 auto 25px;overflow:hidden;border:1px solid var(--c-line-light)}
.bg-light .testimonial__pic{background:var(--c-panel);color:var(--c-deep)}
.testimonial__pic.testimonial__pic--logo{background:transparent;border:0;border-radius:0;width:auto;height:96px;overflow:visible}
.testimonial__pic.testimonial__pic--logo img{width:auto;height:96px;max-width:none;object-fit:contain}
.bg-light .testimonial__pic.testimonial__pic--logo img{content:url("../img/sc-mark-blue.png")}
.testimonial__pic img{width:100%;height:100%;object-fit:cover}
.testimonial__author{font-size:var(--h4);margin:0 0 20px;font-weight:400}
.testimonial__text{font-size:var(--h4);font-weight:300;letter-spacing:1.5px;line-height:1.55;margin:0 auto 3rem;quotes:none}
.testimonial .btn{margin-top:auto}
.slider-arrows{display:flex;justify-content:center;align-items:center;gap:22px;margin-top:40px;flex-wrap:wrap}
.slider-arrows .btn{margin:0 6px}
.testimonials__cta{text-align:center;margin-top:32px}
.btn--zillow:hover{background:var(--c-accent)!important;border-color:var(--c-accent)!important;color:#fff!important}
.testimonial__stars{color:var(--c-star);letter-spacing:3px;font-size:16px;line-height:1;margin:0 0 14px}
.testimonial__stars--inline{letter-spacing:2px;font-size:14px;margin:0}
.testimonial__meta{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;opacity:.7;margin:-12px 0 18px}
.testimonials__rating{font-size:14px;letter-spacing:.5px;opacity:.9;margin:0}
.testimonials__loading{text-align:center;padding:50px 20px;opacity:.6;font-size:13px;letter-spacing:2px;text-transform:uppercase}
.slider-arrow{width:46px;height:46px;border-radius:50%;border:1px solid currentColor;background:transparent;color:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .3s;opacity:.8}
.slider-arrow:hover{opacity:1;background:#fff;color:var(--c-dark)}
.bg-light .slider-arrow:hover{background:var(--c-text);color:#fff}
.slider-arrow svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}

/* ---------- Split (image + text) ---------- */
.split{display:flex;align-items:stretch}
.split--reverse{flex-direction:row-reverse}
.split__img{flex:0 0 50%;position:relative;overflow:hidden}
.split__img-inner{position:relative;width:100%;height:100%;min-height:100%;padding-bottom:79%}
.split__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;transition:opacity .5s linear,visibility .5s}
.split__img .img-secondary{opacity:0;visibility:hidden}
/* Black-and-white until hover (reference-site team photo behaviour) */
.split__img--bw img{filter:grayscale(1);transition:filter .7s ease,opacity .5s linear,visibility .5s}
.split__img--bw:hover img{filter:grayscale(0)}
.agent--bw .agent__img img{filter:grayscale(1)}
.agent--bw:hover .agent__img img{filter:grayscale(0)}
@media (hover:none){.split__img--bw img,.agent--bw .agent__img img{filter:none}}
.split__img:hover .img-secondary{opacity:1;visibility:visible}
.split__img--contain{background:var(--white)}
.split__img--contain img{object-fit:contain;object-position:center;padding:8%;box-sizing:border-box}
/* Whole image kept visible (listing-page screenshot on marketing.html): letterboxed on the section colour instead of cropped */
.split__img img.split__img--fit{object-fit:contain;object-position:center;background:var(--c-dark)}
.split__text{flex:0 0 50%;display:flex;align-items:center;padding:70px 0 70px 120px}
.split--reverse .split__text{padding:70px 120px 70px 0}
.split__text-inner{max-width:600px;padding:0 var(--container-pad) 0 0}
.split--reverse .split__text-inner{padding:0 0 0 var(--container-pad)}
.split h2{font-size:var(--h2);line-height:1.15;margin-bottom:22px}
.split h2 strong{display:block;font-weight:400}
/* Editorial heading: small italic Light kicker in the logo light blue over a large Regular name (Meet Sean Cooper, 2026-09-26) */
.h2-editorial em{display:block;font-style:italic;font-weight:300;font-size:.62em;line-height:1;color:var(--c-accent);letter-spacing:.02em;margin:0 0 10px}
.bg-dark .h2-editorial em,.bg-deep .h2-editorial em{color:var(--screg-blue-light)}
.h2-editorial strong{display:block;font-size:1.25em;font-weight:400;line-height:1.02;letter-spacing:-.01em}
.split .eyebrow{margin-bottom:22px}
.split p{font-size:16px;line-height:1.75}
.split__stat{font-size:var(--h4);font-weight:500}
.split hr{border:0;border-top:1px solid var(--c-line);margin:14px 0}
.bg-dark .split hr,.bg-deep .split hr{border-color:var(--c-line-light)}
.split .btn-row{margin-top:30px}
.split__num{font-family:var(--font-ex);font-size:13px;letter-spacing:5px;text-transform:uppercase;color:var(--c-accent);margin-bottom:16px}
.bg-dark .split__num,.bg-deep .split__num{color:var(--c-panel)}
@media (max-width:992px){.split,.split--reverse{flex-direction:column}.split__img-inner{padding-bottom:66%}.split__text,.split--reverse .split__text{padding:50px var(--container-pad)}.split__text-inner,.split--reverse .split__text-inner{padding:0;max-width:100%}}

/* ---------- Featured listings ---------- */
.listings{padding:var(--section-pad) 0}
.listings__header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:30px;gap:20px}
.listings__nav{display:flex;gap:30px;list-style:none;margin:0;padding:0}
.listings__track{margin:0 -12px}
.listings__track .slick-slide{padding:0 12px}
.listing{position:relative;transition:.4s ease-in-out;margin-bottom:25px}
.listing__img{position:relative;padding-bottom:66%;overflow:hidden;background:rgba(0,0,0,.2)}
.listing__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .75s ease-out}
.listing:hover .listing__img img{transform:scale(1.04)}
.listing__label{position:absolute;top:16px;left:16px;background:var(--c-accent);color:#fff;font-size:11px;font-weight:400;letter-spacing:2px;text-transform:uppercase;padding:8px 14px;z-index:2}
.listing__text{padding:20px 0 0}
.listing__text h4{font-size:var(--h4);margin:0 0 7px;font-weight:400}
.listing__text p{margin:0 0 4px;font-size:13px;opacity:.8}
.listing__text h5{font-size:var(--h5);font-weight:400;margin:10px 0 0;letter-spacing:1px;text-transform:none;color:inherit}
.listing__hover{position:absolute;left:0;top:0;width:100%;padding-bottom:66%;background:rgba(255,255,255,.75);opacity:0;transition:opacity .2s linear;z-index:3}
.listing__hover .btn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap}
.listing:hover .listing__hover{opacity:1}
.listings__all{text-align:center;margin-top:20px}
@media (max-width:991px){.listing__hover{display:none}}
@media (max-width:768px){.listings__header{flex-direction:column;align-items:flex-start}}
/* Featured Listings — live Lofty widget (index.html). The iframe is cross-origin, so only the frame box is stylable here; card layout, colours and the "View More" button are set in Lofty's widget editor. Height is set at runtime by the widget's postMessage (see the inline script in index.html). */
.section-head--listings{margin-bottom:40px}
.listings__footer{margin-top:var(--section-pad)} /* "Marketing" lead-in: section-pad above (this margin) and below (section padding) so it sits centred in the dark band */
.listings__widget{width:100%;overflow:hidden}
/* The widget's own page paints a white #app and its grid wrapper carries an inline margin-bottom:60px, so the last 60px of the reported height is a white bar. Clip it here; the vendor height script stays untouched. */
.listings__widget iframe{display:block;width:100%;min-height:520px;border:0;background:transparent;margin-bottom:-60px}

/* ---------- Stats band ---------- */
.stats{position:relative;padding:calc(var(--section-pad)*1.5) 0;color:#fff;text-align:center;overflow:hidden;background:var(--c-deep)}
.stats__grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.stat{padding:20px 30px}
.stat+.stat{border-left:1px solid rgba(255,255,255,.3)}
.stat__value{font-size:56px;font-weight:200;line-height:1.1;margin:0}
.stats--window .stat__value{font-weight:300}/* home stats band: Light face, one step heavier than the 200 default (no face exists between 200 and 300) */
.stat__title{font-size:13px;letter-spacing:4px;text-transform:uppercase;line-height:1.82;margin:14px 0 0;opacity:.9;animation:slideUp 1s ease-out both}
/* Parallax video window: the video is fixed to the viewport and clipped to the section, so the band scrolls over it */
.video-window,.stats--window{position:relative;color:#fff;overflow:hidden;clip-path:inset(0);background:var(--c-dark)}
.stats--window .media-bg__poster{background-color:var(--c-dark)}
.video-window .media-bg__poster{background-size:cover;background-position:center}
.video-window .media-bg__video,.stats--window .media-bg__video{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100lvh;object-fit:cover}
.video-window>.container{position:relative;z-index:2}
@media (max-width:900px){.video-window,.stats--window{clip-path:none}}
@media (max-width:768px){.stats__grid{grid-template-columns:1fr}.stat+.stat{border-left:0;border-top:1px solid rgba(255,255,255,.3)}}

/* ---------- Press logos ---------- */
.press{padding:var(--section-pad) 0;text-align:center}
.press__title{font-size:var(--h2);margin-bottom:40px}
.press__track .slick-slide{padding:0 20px}
.press__logo{display:flex;align-items:center;justify-content:center;height:70px;filter:grayscale(1);opacity:.65;transition:opacity .3s,filter .3s}
.press__logo:hover{opacity:1;filter:none}
.press__logo img{max-height:50px;width:auto}
/* Affiliation logo grid: every logo sits in an identical tile, in color */
.press__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:18px;align-items:center}
.press__tile{height:96px;display:flex;align-items:center;justify-content:center;padding:14px 16px;transition:transform .3s}
.press__tile:hover{transform:translateY(-3px)}
.press__tile img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.press__tile--wide img{max-height:44px}
.press__tile img[src$="car-logo-full.png"]{max-height:64px}
@media (max-width:1100px){.press__grid{grid-template-columns:repeat(4,1fr)}}
@media (max-width:640px){.press__grid{grid-template-columns:repeat(2,1fr);gap:10px}.press__tile{height:80px}}
.press__placeholder{font-family:var(--font-ex);font-size:12px;letter-spacing:3px;text-transform:uppercase;border:1px solid var(--c-line);padding:18px 22px;color:var(--c-text);white-space:nowrap}

/* ---------- Work-with-us banner ---------- */
.work{padding:calc(var(--section-pad)*1.6) 0;text-align:center}
/* "Let's Work Together" bands: H1 in the site H1 style (thin uppercase Helvetica), site-wide (Sean, 2026-09-26) */
.work h1,.work .work__title{font-family:var(--font);font-size:var(--h1);font-weight:200;text-transform:uppercase;letter-spacing:2px;line-height:1.15;margin:0 0 22px}
.work__desc{max-width:640px;margin:0 auto 36px;font-size:16px;line-height:1.75;opacity:.95}

/* ---------- Facebook feed (home: "Follow Us on Facebook") ---------- */
.fbfeed{padding:var(--section-pad) 0}
.fbfeed__top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:34px;flex-wrap:wrap}
.fbfeed__title{font-size:var(--h3);margin:0 0 6px}
.fbfeed__handle{font-size:var(--h4);opacity:.75;transition:opacity .3s}
.fbfeed__handle:hover{opacity:1}
.fbfeed__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.fbfeed__tile{position:relative;display:block;padding-bottom:100%;background:rgba(255,255,255,.08);overflow:hidden;color:#fff}
.fbfeed__tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .75s ease-out}
.fbfeed__tile:hover img{transform:scale(1.06)}
.fbfeed__over{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:14px;background:linear-gradient(to top,rgba(25,25,25,.85),rgba(25,25,25,0) 65%);opacity:0;transition:opacity .35s}
.fbfeed__tile:hover .fbfeed__over,.fbfeed__tile:focus-visible .fbfeed__over{opacity:1}
.fbfeed__over svg,.fbfeed__foot svg{width:18px;height:18px;fill:#fff;flex:none}
.fbfeed__over svg{margin-bottom:8px}
.fbfeed__date{font-size:10px;letter-spacing:2px;text-transform:uppercase;opacity:.85}
.fbfeed__tile--text{background:var(--c-deep)}
.fbfeed__excerpt{position:absolute;top:0;left:0;right:0;bottom:46px;padding:18px 18px 0;font-size:13px;line-height:1.55;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 28px),transparent)}
.fbfeed__foot{position:absolute;left:18px;right:18px;bottom:14px;display:flex;align-items:center;gap:10px;opacity:.85}
.fbfeed__play{position:absolute;top:50%;left:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:rgba(25,25,25,.55);border:1px solid rgba(255,255,255,.65);transition:background .3s}
.fbfeed__play::after{content:"";position:absolute;left:17px;top:13px;border-style:solid;border-width:8px 0 8px 13px;border-color:transparent transparent transparent #fff}
.fbfeed__tile:hover .fbfeed__play{background:rgba(51,125,188,.85)}
.fbfeed__tile--cover img{filter:brightness(.42)}
.fbfeed__tile--cover:hover img{filter:brightness(.55)}
.fbfeed__tile--follow{background:var(--c-deep)}
.fbfeed__follow{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;text-align:center;font-size:10px;letter-spacing:2px;text-transform:uppercase;line-height:1.6;transition:background .3s}
.fbfeed__tile--follow:hover .fbfeed__follow{background:rgba(255,255,255,.06)}
.fbfeed__follow img{position:static;width:34%;height:auto;object-fit:contain;transition:none;margin-bottom:4px}
.fbfeed__follow svg{width:16px;height:16px;fill:#fff}
.fbfeed__grid--skeleton .fbfeed__tile{animation:fbfeed-pulse 1.6s ease-in-out infinite}
@keyframes fbfeed-pulse{0%,100%{opacity:.55}50%{opacity:1}}
.fbfeed__grid--live{animation:fbfeed-in .6s ease-out both}
@keyframes fbfeed-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.fbfeed__grid--skeleton .fbfeed__tile,.fbfeed__grid--live{animation:none}}
/* Plugin mode (no feedUrl): heading + Follow button on the left, Facebook's timeline on the right */
.fbfeed--plugin .container{display:grid;grid-template-columns:minmax(0,1fr) 500px;gap:60px;align-items:center}
.fbfeed--plugin .fbfeed__top{flex-direction:column;align-items:flex-start;margin:0;gap:28px}
.fbfeed--plugin .fbfeed__title{font-size:var(--h2);font-weight:200;text-transform:uppercase;letter-spacing:3px;line-height:1.15;margin-bottom:12px}
.fbfeed__plugin{max-width:500px;margin:0 auto;min-height:120px;width:100%}
.fbfeed__plugin .fb-page,.fbfeed__plugin .fb-page>span,.fbfeed__plugin .fb-page iframe{width:100%!important;display:block}
.fbfeed__plugin .fb-xfbml-parse-ignore{margin:0;padding:24px;text-align:center;border:1px solid rgba(255,255,255,.2)}
@media (max-width:992px){.fbfeed__grid{grid-template-columns:repeat(3,1fr)}.fbfeed--plugin .container{grid-template-columns:1fr;gap:34px}.fbfeed--plugin .fbfeed__top{gap:20px}.fbfeed--plugin .fbfeed__plugin{margin:0}}
@media (max-width:600px){.fbfeed__grid{grid-template-columns:repeat(2,1fr)}.fbfeed__excerpt{font-size:12px;padding:14px 14px 0;bottom:40px}.fbfeed__foot{left:14px;right:14px;bottom:12px}}

/* ---------- Forms ---------- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 24px}
.form-field{display:flex;flex-direction:column}
.form-field--full{grid-column:1/-1}
.form-field label{font-size:11px;letter-spacing:2px;text-transform:uppercase;margin-bottom:6px;opacity:.7}
.form-field input,.form-field textarea,.form-field select{border:0;border-bottom:1px solid var(--c-line);padding:12px 0;font:inherit;font-size:15px;background:transparent;color:inherit;outline:none;border-radius:0;transition:border-color .3s}
.bg-dark .form-field input,.bg-dark .form-field textarea,.bg-deep .form-field input,.bg-deep .form-field textarea,.bg-dark .form-field select,.bg-deep .form-field select{border-bottom-color:var(--c-line-light)}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-bottom-color:var(--c-accent)}
.bg-dark .form-field input:focus,.bg-deep .form-field input:focus,.bg-dark .form-field textarea:focus,.bg-deep .form-field textarea:focus{border-bottom-color:#fff}
.form-field textarea{min-height:110px;resize:vertical}
.form__footer{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:10px}
.form__consent{font-size:11px;line-height:1.6;opacity:.7;max-width:420px}
.mls-disclaimer{font-size:11px;line-height:1.7;opacity:.6;margin:18px auto 0;max-width:1100px;text-align:center}
.form__success{display:none;text-align:center;padding:30px 0}
.form-wrap.is-sent form{display:none}
.form-wrap.is-sent .form__success{display:block}
@media (max-width:600px){.form-grid{grid-template-columns:1fr}}

/* ---------- Footer ---------- */
.site-footer{background:var(--c-dark);color:#fff;padding:90px 0 40px}
.site-footer h3{font-size:var(--h3);margin-bottom:46px}
.footer__grid{display:grid;grid-template-columns:1.1fr 1fr 1.3fr;gap:60px;align-items:start}
.footer__heading{font-size:var(--h4);margin:0 0 24px}
.footer__cell{margin-bottom:22px;padding-left:36px;position:relative}
.footer__cell svg{position:absolute;left:0;top:4px;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4;opacity:.8}
.footer__label{font-size:11px;letter-spacing:2px;text-transform:uppercase;opacity:.65;margin:0 0 4px}
.footer__link{font-size:16px;color:#fff;transition:color .3s;display:block}
.footer__link:hover{color:var(--screg-blue-light)}
.footer__addr{font-size:16px;line-height:1.5;margin:0}
/* Footer right column: logos + license/disclosure, right-aligned (replaced the Send a Message form, Sean 2026-09-26) */
.footer__links{display:grid;grid-template-columns:auto auto;justify-content:start;gap:0 36px}
.footer__links .footer__link{white-space:nowrap}
@media (max-width:640px){.footer__links{grid-template-columns:1fr}}
.footer__brandcol{text-align:right}
.footer__brandcol .logo-group{justify-content:flex-end}
.footer__brandcol .footer__logos{margin:0 0 28px}
.footer__brandcol .footer__legal p:last-child{margin-left:auto;max-width:34ch}
@media (max-width:640px){.footer__brandcol{text-align:left}.footer__brandcol .logo-group{justify-content:flex-start}.footer__brandcol .footer__legal p:last-child{margin-left:0}}
.footer__logos{margin-top:60px;margin-bottom:28px}
.footer__logos .logo__img{max-height:84px}
.footer__logos .logo__img--brokerage{max-height:44px}
.footer__legal{font-size:12px;line-height:1.75;opacity:.85}
.footer__legal p{margin:0 0 10px}
.footer__brand{font-size:14px;text-transform:uppercase;letter-spacing:1px;margin-bottom:14px}
.footer__mls{font-size:12px;line-height:1.75;opacity:.85;margin-top:48px}
.footer__mls p{margin:0}
.footer__mls .footer__eho{margin-top:14px}
.footer__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:70px;padding-top:24px;border-top:1px solid var(--c-line-light);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;opacity:.8}
.footer__bottom a:hover{color:var(--screg-blue-light)}
@media (max-width:992px){.footer__grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.footer__grid{grid-template-columns:1fr;gap:40px}}

/* ---------- Modal ---------- */
.modal{position:fixed;inset:0;z-index:1200;display:none;align-items:center;justify-content:center;padding:20px}
.modal.is-open{display:flex}
.modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72)}
.modal__dialog{position:relative;background:#fff;color:var(--c-text);width:100%;max-width:680px;padding:64px 54px 48px;animation:slideUp .45s ease-out;max-height:92vh;overflow:auto}
.modal__dialog h2{font-size:var(--h2);margin-bottom:22px}
.modal__dialog .eyebrow{color:var(--c-accent)}
.modal--video .modal__dialog{max-width:1100px;padding:0;background:#000;color:#fff;overflow:visible}
.modal__video{position:relative;padding-bottom:56.25%}
.modal__video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.modal__close{position:absolute;top:18px;right:18px;width:34px;height:34px;border:0;background:transparent;cursor:pointer;color:inherit;z-index:2}
.modal--video .modal__close{top:-44px;right:0;color:#fff}
.modal__close::before,.modal__close::after{content:"";position:absolute;left:50%;top:50%;width:24px;height:2px;background:currentColor}
.modal__close::before{transform:translate(-50%,-50%) rotate(45deg)}
.modal__close::after{transform:translate(-50%,-50%) rotate(-45deg)}
@media (max-width:600px){.modal__dialog{padding:56px 24px 32px}}

/* ---------- "Let's Connect" pill + pop-up (all screen sizes, like the reference site) ---------- */
.connect{position:fixed;left:19px;bottom:-60px;z-index:998;display:flex;gap:13px;opacity:0;transition:bottom .3s,opacity .3s}
.connect.is-visible{bottom:28px;opacity:1}
.connect__btn{height:48px;padding:0 26px;display:inline-flex;align-items:center;gap:10px;text-transform:uppercase;border-radius:25px;color:#fff;background:var(--c-dark);border:2px solid #a6a6a6;font-family:var(--font);font-size:11px;font-weight:500;letter-spacing:1px;line-height:16px;cursor:pointer;box-shadow:0 0 0 0 rgba(255,255,255,.45);animation:pulsate 2s ease infinite;transition:background-color .3s,border-color .3s}
.connect__btn:hover{border-color:#fff}
.connect__btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .3s}
.connect.is-open .connect__btn{animation:none;box-shadow:none}
.connect.is-open .connect__btn svg{transform:rotate(180deg)}
.connect__popup{position:fixed;left:19px;bottom:28px;z-index:1150;width:min(637px,calc(100vw - 38px));background:#fff;color:var(--c-text);border-radius:16px;padding:44px 56px 40px;box-shadow:0 20px 60px rgba(0,0,0,.35);opacity:0;visibility:hidden;transform:translateY(24px);transition:opacity .3s,transform .3s,visibility .3s}
.connect__popup.is-open{opacity:1;visibility:visible;transform:translateY(0)}
.connect__popup .eyebrow{color:var(--c-accent)}
.connect__popup h3{font-size:var(--h3);margin-bottom:.3em}
.connect__close{position:absolute;top:14px;right:12px;width:44px;height:44px;border:0;background:transparent;cursor:pointer;color:inherit}
.connect__close::before,.connect__close::after{content:"";position:absolute;left:50%;top:50%;width:22px;height:2px;background:currentColor}
.connect__close::before{transform:translate(-50%,-50%) rotate(45deg)}
.connect__close::after{transform:translate(-50%,-50%) rotate(-45deg)}
.connect__backdrop{position:fixed;inset:0;z-index:1140;background:rgba(0,0,0,.35);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.connect__backdrop.is-open{opacity:1;visibility:visible}
@media (max-width:1024px){
  .connect{left:19px;right:19px;justify-content:center}
  .connect__popup{left:0;right:0;bottom:0;width:100%;border-radius:16px 16px 0 0;padding:32px 24px 28px;max-height:88vh;overflow-y:auto;transform:translateY(100%)}
  .connect__popup.is-open{transform:translateY(0)}
}

/* ---------- Team grid ---------- */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.agent{position:relative}
.agent__img{position:relative;padding-bottom:125%;overflow:hidden;background:var(--off-white)}
.agent__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;transition:opacity .5s linear,transform .75s ease-out,filter .7s ease}
.agent__img .img-secondary{opacity:0}
.agent:hover .img-secondary{opacity:1}
.agent:hover .agent__img img{transform:scale(1.03)}
.agent__img-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--c-text-muted);border:1px dashed var(--c-line)}
.agent__body{padding:22px 0 0}
.agent__name{font-size:var(--h4);margin:0 0 4px}
.agent__role{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--c-accent);margin:0 0 12px}
.agent__contact{font-size:13px;line-height:1.7;opacity:.85}
.agent__contact a:hover{color:var(--c-accent)}
@media (max-width:992px){.team-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.team-grid{grid-template-columns:1fr}}

/* ---------- Content blocks ---------- */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 30px}
.feature{padding:36px 30px;border:1px solid var(--c-line);transition:border-color .3s,transform .3s}
.feature:hover{border-color:var(--c-accent);transform:translateY(-4px)}
.bg-dark .feature,.bg-deep .feature{border-color:var(--c-line-light)}
.bg-dark .feature:hover,.bg-deep .feature:hover{border-color:var(--c-panel)}
.feature--clickable{cursor:pointer}
.feature--clickable:hover .link::after{width:100%}
.feature__num{font-family:var(--font-ex);font-size:12px;letter-spacing:4px;color:var(--c-accent);margin-bottom:18px}
/* About page: brand-blue line icons on the "What Guides Every Transaction" cards */
.feature__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.feature__top .feature__num{margin-bottom:0}
.feature__icon{width:44px;height:44px;color:var(--c-accent);flex:0 0 44px}
.feature__icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.bg-dark .feature__num,.bg-deep .feature__num{color:var(--c-panel)}
.feature h3{font-size:var(--h4);margin-bottom:12px}
.feature p{font-size:14px;line-height:1.7;margin:0;opacity:.9}
@media (max-width:992px){.feature-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.feature-grid{grid-template-columns:1fr}}
.prose{max-width:820px;margin:0 auto;font-size:16px;line-height:1.8}
.prose h2{font-size:var(--h3);margin:2em 0 .6em}
.prose h2:first-child{margin-top:0}
.prose ul{padding-left:20px}
/* Privacy & Terms (privacy.html): long-form legal copy inside .prose */
.legal h3{font-size:var(--h5);font-weight:700;letter-spacing:.5px;margin:2em 0 .5em}
.legal .legal__meta+h3,.legal .legal__meta+p+h3{margin-top:1.4em}
.legal li{margin-bottom:.55em}
.legal a{text-decoration:underline;text-decoration-color:var(--c-accent-soft);text-underline-offset:3px;transition:color .3s}
.legal a:hover{color:var(--c-accent)}
.legal__meta{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--c-text-muted);margin:-.4em 0 1.6em}
.legal__toc{display:flex;flex-wrap:wrap;gap:10px 30px;margin:8px 0 56px;padding-bottom:22px;border-bottom:1px solid var(--c-line);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase}
.legal__toc a{text-decoration:none;color:var(--c-text);padding-bottom:4px;border-bottom:2px solid transparent;transition:border-color .3s,color .3s}
.legal__toc a:hover{color:var(--c-accent);border-color:var(--c-accent)}
.legal__toc+h2{margin-top:0}
.legal__rule{border:0;border-top:1px solid var(--c-line);margin:72px 0}
.legal [id]{scroll-margin-top:calc(var(--header-h) + 24px)}
@media (max-width:768px){.legal__rule{margin:48px 0}}
/* Buyer Questionnaire (buyer-questionnaire.html): full-bleed Jotform card embed on the site's dark background (the form's own page background is the same #191919) */
.quiz-section{padding-bottom:0}
.quiz-section .gallery__header{margin-bottom:48px}
.quiz-section__note{opacity:.8}
/* Jotform embed. The form's "Powered by Jotform" footer is position:fixed to the bottom of the iframe viewport (44px tall on desktop), so the
   iframe is rendered --jf-footer taller than the visible box and the wrapper clips that strip (Sean, 2026-09-26). Removing branding in Jotform's own
   settings (paid plans) is the cleaner route; this hides it visually until then. */
.quiz-embed{--jf-footer:48px;width:100%;margin:0;background:var(--c-dark);height:clamp(640px,88vh,920px);overflow:hidden;position:relative}
.quiz-embed iframe{display:block;width:100%;height:calc(100% + var(--jf-footer));border:0;background:var(--c-dark)}
@media (max-width:768px){.quiz-section .gallery__header{margin-bottom:32px}.quiz-embed{height:clamp(560px,80vh,760px);--jf-footer:0px}} /* Jotform hides its footer on phones */
.work .eyebrow{margin:-4px 0 18px}
.map-placeholder{position:relative;padding-bottom:45%;background:var(--off-white);border:1px dashed var(--c-line);display:flex;align-items:center;justify-content:center}
.map-placeholder span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--c-text-muted)}

/* ---------- Home Prep Concierge page ---------- */
.page-hero--center{align-items:center;text-align:center}
.page-hero--center .page-hero__content{padding:calc(var(--header-h) + 60px) 40px 90px}
.page-hero__kicker{font-size:12px;letter-spacing:.25em;text-transform:uppercase;opacity:.9;margin:0 auto 22px;max-width:640px;line-height:1.9}
.gallery-card--static{cursor:default}
.gallery--windows-like .gallery__row{margin:0}
.gallery--windows-like .gallery__col{padding:0 1.5px;margin-bottom:3px}
.gallery--windows-like .gallery__col:first-child{padding-left:0}
.gallery--windows-like .gallery__col:last-child{padding-right:0}
.gallery--windows-like .gallery-card{height:520px;aspect-ratio:auto}
.gallery--windows-like .gallery-card::after{display:none}
.gallery--windows-like .gallery-card__title{font-weight:200;letter-spacing:3px}
.gallery--windows-like .gallery-card__title::after{display:none}
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:44px 30px;text-align:center;max-width:960px;margin:0 auto}
.service__icon{width:40px;height:40px;margin:0 auto 14px;stroke:var(--c-text);fill:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;display:block}
.service__name{font-size:14px;letter-spacing:.5px;margin:0}
.didyou{display:grid;grid-template-columns:1fr 1.2fr;gap:70px;align-items:center}
.didyou__title{font-size:var(--h1);font-weight:200;text-transform:uppercase;letter-spacing:2px;line-height:1.1;margin:0}
.didyou__stats{border-left:1px solid rgba(255,255,255,.35);padding-left:60px}
.didyou__stat{margin-bottom:34px}
.didyou__value{font-size:46px;font-weight:200;color:var(--c-panel);line-height:1.1;margin-bottom:8px}
.didyou__text{font-size:12px;letter-spacing:2px;text-transform:uppercase;line-height:1.9;margin:0;max-width:440px}
.didyou__note{font-size:11px;opacity:.7;margin:26px 0 0;letter-spacing:.3px}
.ba-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.ba{cursor:pointer;outline:none}
.ba__frame{position:relative;padding-bottom:70%;overflow:hidden;background:#000}
.ba__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .6s ease}
.ba__img--after{opacity:0}
.ba.is-after .ba__img--after,.ba:focus-visible .ba__img--after{opacity:1}
@media (hover:hover){.ba:hover .ba__img--after{opacity:1}}
.ba__label{position:absolute;top:16px;left:16px;z-index:2;font-size:11px;letter-spacing:3px;text-transform:uppercase;background:rgba(25,25,25,.78);color:#fff;padding:8px 14px}
.ba__label::after{content:"Before"}
.ba.is-after .ba__label::after{content:"After"}
@media (hover:hover){.ba:hover .ba__label::after{content:"After"}}
.ba__hint{position:absolute;right:16px;bottom:14px;z-index:2;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#fff;opacity:.75}
.ba__caption{padding:20px 0 0}
.ba__tags{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--c-accent);margin:0 0 8px}
.ba__title{font-size:var(--h4);margin:0 0 6px}
.ba__result{font-size:14px;opacity:.85;margin:0}
.ba__title a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .3s}
.ba__title a:hover,.ba__title a:focus-visible{border-color:currentColor}
.ba__more{display:inline-block;margin-top:12px;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:2px;transition:border-color .3s}
.ba__more:hover,.ba__more:focus-visible{border-color:#fff}
.feature-grid--4{grid-template-columns:repeat(4,1fr);gap:24px}
.roi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;max-width:960px;margin:0 auto}
.roi{background:#fff;border:1px solid var(--c-line);padding:30px}
.roi h4{font-size:var(--h4);margin:0 0 4px}
.roi__city{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--c-accent);margin:0 0 14px}
.roi__tags{font-size:12px;opacity:.8;margin:0 0 16px}
.roi table{width:100%;border-collapse:collapse;font-size:14px}
.roi td{padding:9px 0;border-top:1px solid var(--c-line)}
.roi td:last-child{text-align:right}
.roi__gain{margin:16px 0 0;font-weight:700}
@media (max-width:1000px){.feature-grid--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){.didyou{grid-template-columns:1fr;gap:34px}.didyou__stats{border-left:0;border-top:1px solid rgba(255,255,255,.35);padding:30px 0 0}.ba-grid{grid-template-columns:1fr}.gallery--windows-like .gallery-card{height:380px}}
@media (max-width:700px){.services{grid-template-columns:repeat(2,1fr)}.roi-grid{grid-template-columns:1fr}.feature-grid--4{grid-template-columns:1fr}}

/* Zillow reviews feed */
.zillow-feed{max-width:960px;margin:0 auto}
.zillow-feed__empty{text-align:center;padding:40px 20px;border:1px dashed var(--c-line)}
.zillow-feed__empty p{margin-bottom:18px;font-size:15px}
.zillow-feed--live{border:0}

/* ---------- Our Marketing Strategy page (marketing.html) ---------- */
/* Split half that holds a figure (chart or device mock-up) instead of a photo */
.split__panel{flex:0 0 50%;display:flex;align-items:center;justify-content:center;padding:80px var(--container-pad);min-height:100%}
.split__panel--studio{background:linear-gradient(160deg,#f4f6f8 0%,#e4e9ee 55%,#d5dce3 100%)}
.bg-dark .split__panel--studio{background:linear-gradient(160deg,#eef1f4 0%,#dbe1e7 55%,#cbd3db 100%)}
/* "Where buyers come from": three columns — text | SVG donut | legend */
.donut-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,.8fr);gap:64px;align-items:center}
.donut-row__text p:last-child{margin-bottom:0}
.donut-row__chart{display:flex;justify-content:center}
.donut__chart{position:relative;width:100%;max-width:506px}
.donut__chart svg{width:100%;height:auto;display:block}
.donut__center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}
.donut__big{font-size:clamp(56px,6.5vw,97px);font-weight:200;line-height:1;color:var(--c-text)}
.donut__small{font-size:13px;letter-spacing:4px;text-transform:uppercase;margin-top:12px;color:var(--c-text-muted)}
.donut__legend{list-style:none;margin:0;padding:0;font-size:13px;width:100%}
.donut__legend li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--c-line)}
.donut__legend li:last-child{border-bottom:0}
.donut__swatch{width:12px;height:12px;flex:0 0 12px}
.donut__pct{margin-left:auto;font-weight:700;letter-spacing:1px;padding-left:16px}
.donut__source{font-size:11px;line-height:1.6;color:var(--c-text-muted);margin:18px 0 0}
.donut__source .placeholder-note{margin:6px 0 0}
@media (max-width:1100px){.donut-row{grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:48px}.donut-row__text{grid-column:1 / -1;max-width:640px}.donut__big{font-size:clamp(48px,7vw,80px)}}
@media (max-width:640px){.donut-row{grid-template-columns:1fr;gap:36px}.donut__chart{max-width:340px;margin:0 auto}.donut__big{font-size:clamp(44px,15vw,64px)}.donut__small{font-size:11px;letter-spacing:3px;margin-top:8px}}
/* "Exposure to buyers": right-aligned intro beside a two-column list of syndication sites */
.syndicate{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);gap:70px;align-items:start}
.syndicate__intro{text-align:right;padding-top:10px}
.syndicate__kicker{font-size:12px;letter-spacing:4px;text-transform:uppercase;font-weight:200;opacity:.85;margin:0 0 6px}
.syndicate__title{font-size:var(--h3);font-weight:200;text-transform:uppercase;letter-spacing:2px;line-height:1.25;margin:0 0 22px}
.syndicate__title strong{font-weight:700;display:block}
.syndicate__intro p{font-size:14px;line-height:1.75;opacity:.9;margin:0}
.syndicate__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 60px}
.syndicate__list li{padding:17px 0 15px;border-bottom:1px solid rgba(255,255,255,.35);font-size:12px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;line-height:1.4}
.syndicate__list li:nth-child(-n+2){border-top:1px solid rgba(255,255,255,.35)}
@media (max-width:992px){.syndicate{grid-template-columns:1fr;gap:40px}.syndicate__intro{text-align:left}}
@media (max-width:600px){.syndicate__list{grid-template-columns:1fr;gap:0}.syndicate__list li:nth-child(2){border-top:0}}
/* Device / print mock-ups: real SCREG imagery inside simple CSS frames. Swap any of them for a rendered photo when one exists. */
.mock-stage{position:relative;padding:0 120px 56px 0}
/* iPhone (15/16 proportions: 19.5:9 screen, Dynamic Island, titanium frame). Screen = screenshot of this site at phone width (assets/img/mock-site-mobile.jpg; recapture whenever the home page changes). */
.mock-phone{width:250px;aspect-ratio:1179/2556;background:#3a3a3d;border-radius:44px;padding:9px;box-shadow:0 30px 60px -20px rgba(25,25,25,.55),inset 0 0 0 1.5px #6b6b6f;position:relative;z-index:2;box-sizing:border-box}
.mock-phone::before,.mock-phone::after{content:"";position:absolute;background:#2c2c2f;border-radius:2px}
.mock-phone::before{left:-3px;top:96px;width:3px;height:30px;box-shadow:0 52px 0 #2c2c2f,0 100px 0 #2c2c2f;} /* mute + volume */
.mock-phone::after{right:-3px;top:150px;width:3px;height:64px} /* side button */
.mock-phone__screen{position:absolute;inset:9px;background:#191919;border-radius:36px;overflow:hidden;color:var(--c-text);font-size:10px;line-height:1.4}
.mock-phone__island{position:absolute;left:50%;top:10px;width:76px;height:22px;transform:translateX(-50%);background:#000;border-radius:14px;z-index:3}
.mock-phone__status{position:absolute;top:13px;left:22px;right:22px;display:flex;justify-content:space-between;font-size:10px;font-weight:700;color:#fff;z-index:3;letter-spacing:.2px}
.mock-phone__site{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.mock-phone__home{position:absolute;left:50%;bottom:7px;width:96px;height:4px;transform:translateX(-50%);background:rgba(255,255,255,.85);border-radius:3px;z-index:3}
.mock-card{position:absolute;right:-6px;bottom:-16px;width:200px;background:#fff;padding:8px 8px 10px;box-shadow:0 24px 50px -18px rgba(25,25,25,.45);transform:rotate(6deg);z-index:1}
.mock-card img{display:block;width:100%;aspect-ratio:500/261;object-fit:cover}
.split__panel .mock-card__label{margin:8px 0 0;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--c-text)}
/* Email mock-up: a mail-client message header (avatar, from / to / subject / time) over a branded HTML email body */
.mock-mail{width:min(100%,440px);background:#fff;border-radius:10px;box-shadow:0 30px 60px -20px rgba(25,25,25,.4);color:var(--c-text);font-size:12px;line-height:1.5;overflow:hidden}
.mock-mail__bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#f2f4f7;border-bottom:1px solid var(--c-line)}
.mock-mail__dots{display:flex;gap:6px;flex:0 0 auto}
.mock-mail__dots span{width:10px;height:10px;border-radius:50%;background:#e0443e}
.mock-mail__dots span:nth-child(2){background:#f4bf4f}.mock-mail__dots span:nth-child(3){background:#61c554}
.mock-mail__tools{margin-left:auto;display:flex;gap:10px}
.mock-mail__tools svg{width:14px;height:14px;fill:none;stroke:#7c8896;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.mock-mail__head{display:flex;gap:12px;padding:14px 16px 12px;border-bottom:1px solid var(--c-line)}
.mock-mail__avatar{width:38px;height:38px;border-radius:50%;background:var(--c-accent);color:#fff;display:flex;align-items:center;justify-content:center;flex:0 0 38px}
.mock-mail__avatar img{width:20px;height:auto}
.mock-mail__meta{flex:1;min-width:0}
.mock-mail__line{display:flex;justify-content:space-between;gap:10px;font-size:11px}
.mock-mail__sender{font-weight:700;font-size:12px}
.mock-mail__time{color:var(--c-text-muted);font-size:10px;white-space:nowrap}
.split__panel .mock-mail__to{margin:2px 0 0;font-size:10px;color:var(--c-text-muted)}
.mock-mail__subject{display:block;margin-top:4px;font-size:13px;font-weight:700;line-height:1.3}
.mock-mail__body{padding:16px 16px 18px}
.mock-mail__brand{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:10px;letter-spacing:2px;text-transform:uppercase}
.mock-mail__brand img{width:22px;height:auto}
.mock-mail__img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;margin:0 0 12px}
.mock-mail__h{font-size:15px;line-height:1.3;margin:0 0 6px}
.split__panel .mock-mail p{margin:0 0 12px;font-size:12px;line-height:1.5}
.mock-mail__btn{display:inline-block;background:var(--c-accent);color:#fff;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:10px 16px}
.split__panel .mock-mail__foot{margin:16px 0 0;padding-top:10px;border-top:1px solid var(--c-line);font-size:9px;line-height:1.6;color:var(--c-text-muted)}
.mock-browser{width:min(100%,540px);background:#fff;box-shadow:0 30px 60px -20px rgba(0,0,0,.5);color:var(--c-text);font-size:11px;overflow:hidden}
.mock-browser__bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#eef1f4;border-bottom:1px solid var(--c-line)}
.mock-browser__url{flex:1;background:#fff;border-radius:4px;padding:5px 10px;font-size:10px;color:var(--c-text-muted)}
.mock-browser__hero{position:relative;aspect-ratio:2/1;overflow:hidden}
.mock-browser__hero img{width:100%;height:100%;object-fit:cover}
.mock-browser__badge{position:absolute;top:12px;left:12px;background:var(--c-accent);color:#fff;font-size:9px;letter-spacing:2px;text-transform:uppercase;padding:6px 10px}
.mock-browser__body{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 16px 16px}
.mock-browser__title{font-size:15px;margin:0 0 3px}
.split__panel .mock-browser__meta{margin:0;color:var(--c-text-muted);font-size:10px;letter-spacing:1px;text-transform:uppercase}
.mock-browser__links{display:flex;gap:6px 12px;font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--c-accent);flex-wrap:wrap;justify-content:flex-end;padding-top:4px}
.mock-flyers{position:relative;width:min(100%,310px);aspect-ratio:8.5/11;margin:0 0 0 30px}
.mock-flyer{position:absolute;inset:0;background:#fff;box-shadow:0 30px 60px -20px rgba(25,25,25,.45);color:var(--c-text);display:flex;flex-direction:column;overflow:hidden}
.mock-flyer--back{transform:rotate(-8deg) translate(-36px,-18px);opacity:.92}
.mock-flyer__img{flex:0 0 52%;overflow:hidden}
.mock-flyer__img img{width:100%;height:100%;object-fit:cover}
.mock-flyer__body{padding:16px 18px 14px;flex:1;display:flex;flex-direction:column}
.split__panel .mock-flyer__kicker{font-size:9px;letter-spacing:3px;text-transform:uppercase;color:var(--c-accent);margin:0 0 6px}
.mock-flyer__title{font-size:15px;line-height:1.25;margin:0 0 4px}
.split__panel .mock-flyer__sub{font-size:10px;color:var(--c-text-muted);margin:0 0 10px}
.split__panel .mock-flyer__foot{margin:auto 0 0;padding-top:10px;border-top:1px solid var(--c-line);font-size:8px;letter-spacing:.4px;text-transform:uppercase;line-height:1.6;color:var(--c-text-muted);white-space:nowrap;overflow:hidden}
@media (max-width:480px){.split__panel .mock-flyer__foot{font-size:7px;letter-spacing:.2px}}
@media (max-width:992px){.split__panel{padding:60px var(--container-pad)}}
@media (max-width:480px){.mock-stage{padding:0 0 56px}.mock-card{right:-10px;width:160px}.mock-phone{width:220px}.mock-flyers{margin-left:20px;width:min(100%,250px)}.mock-flyer--back{transform:rotate(-8deg) translate(-22px,-14px)}}

/* ---------- Success story pages (story-*.html) ---------- */
/* Hero: white kicker above the address (eyebrows over photography use white, see brand-guidelines.md), city line under it */
.page-hero__eyebrow{font-size:12px;font-weight:700;letter-spacing:.25em;text-transform:uppercase;color:#fff;opacity:.95;margin:0 0 18px}
.page-hero__sub--place{opacity:.9;letter-spacing:.22em}
/* Home page marketing section head: larger type to fill the dark band (Sean, 2026-09-25) */
.section-head--marketing .eyebrow{font-size:16px;letter-spacing:.22em}
.section-head--marketing h2{font-size:calc(var(--h2) * 1.15)}
.modal__dialog .muted{margin-top:0}
.section-head--marketing .section-head__sub{font-size:17px}
/* Result band: headline + three figures on the dark-blue stats band */
.story-stats{padding:var(--section-pad) 0}
/* Brand gradient on the result band of all three story pages: Sean's two colours (2026-09-27), the lighter #4f86b8 at the top-left
   running to the darker #405d77 at the bottom-right. White copy measures 3.9:1 at the very light corner (large type only there),
   ~5:1 through the middle where the 13px stat labels sit, and 6.9:1 at the dark end. */
.story-stats--brand{background:linear-gradient(135deg,#4f86b8 0%,#405d77 100%)}
.story-stats--brand .stat+.stat{border-left-color:rgba(255,255,255,.35)}
.story-stats .section-head{margin-bottom:44px}
.story-stats .section-head h2{margin-bottom:0}
.story-stats .section-head h2 strong{font-weight:400}
.story-stats .stat__title{animation:none}
.story-stats .btn-row{margin-top:48px}
/* Before / after: a wide pair spanning both columns, used for the headline transformation */
.ba--wide{grid-column:1 / -1}
.ba--wide .ba__frame{padding-bottom:56%}
/* Finished-home photo strip */
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.photo-grid--2{grid-template-columns:repeat(2,1fr)}
.photo-grid figure{margin:0;position:relative;overflow:hidden;background:#000}
.photo-grid img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .75s ease-out}
.photo-grid figure:hover img{transform:scale(1.04)}
.photo-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 18px 14px;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#fff;background:linear-gradient(to top,rgba(0,0,0,.65),rgba(0,0,0,0));pointer-events:none}
@media (max-width:900px){.ba--wide .ba__frame{padding-bottom:66%}}
@media (max-width:768px){.photo-grid,.photo-grid--2{grid-template-columns:1fr 1fr;gap:6px}.photo-grid figcaption{font-size:10px;letter-spacing:1.5px;padding:26px 12px 10px}}
@media (max-width:480px){.photo-grid,.photo-grid--2{grid-template-columns:1fr}}

/* ---------- Blog: index (blog.html) + article pages (blog-*.html) ---------- */
/* Lora (Google Fonts, OFL licence) is linked from the blog pages only; the rest of the site stays Helvetica Neue.
   Index = the reference Luxury Presence blog landing (full-height photo hero, dark grid of photo cards, pagination).
   Article = the reference magazine article: full-bleed hero photo, white headline panel pushed up over it,
   one narrow serif column, no sidebars. */
/* Index hero: full-height photo, title centred */
.blog-hero{min-height:100vh;min-height:100svh;align-items:center;text-align:center}
.blog-hero .page-hero__content{padding:calc(var(--header-h) + 40px) 40px 80px}
.blog-hero__title{font-size:calc(var(--h1) * 1.15);font-weight:100;letter-spacing:.18em;text-transform:uppercase;line-height:1.1;margin:0}
.blog-hero__sub{max-width:560px;margin:22px auto 0;font-size:14px;letter-spacing:.06em;line-height:1.8;opacity:.9}
/* Category filter row (client-side; ?cat=slug deep links) */
.blog-filter{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 34px;padding:0 0 48px;margin:0;list-style:none}
.blog-filter a{display:inline-block;padding:8px 0;font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.6);border-bottom:2px solid transparent;transition:color .3s,border-color .3s}
.blog-filter a:hover,.blog-filter a.is-active{color:#fff;border-color:var(--c-accent)}
/* Post grid: photo cards with a gradient, category, uppercase title, date and Read More; the newest post spans two columns */
.blog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:36px}
.blog-card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;aspect-ratio:100/70;overflow:hidden;color:#fff;background:var(--c-deep);isolation:isolate}
.blog-card--featured{grid-column:span 2;aspect-ratio:21/9}
.blog-card__img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transform:translate3d(0,0,0);transition:transform .75s ease-out}
.blog-card::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to bottom,rgba(0,0,0,.12) 20%,rgba(0,0,0,.6) 58%,rgba(0,0,0,.9));transition:background-color .3s}
.blog-card:hover .blog-card__img{transform:scale(1.05)}
.blog-card:hover::before{background-color:rgba(0,0,0,.25)}
.blog-card__body{position:relative;padding:46px 36px 40px}
.blog-card__cat{display:inline-block;margin:0 0 12px;font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--c-panel)}
.blog-card__title{margin:0 0 14px;font-size:24px;font-weight:400;letter-spacing:1.5px;text-transform:uppercase;line-height:1.35;max-width:560px}
.blog-card--featured .blog-card__title{font-size:32px;max-width:720px}
.blog-card__date{display:block;margin:0 0 22px;font-size:12px;letter-spacing:1.5px;opacity:.75}
.blog-card .link{color:#fff}
.blog-card:hover .link::after{width:100%}
.blog-card.is-hidden{display:none}
.blog-empty{text-align:center;padding:40px 0;font-size:14px;opacity:.7}
/* Pagination */
.blog-pagination{display:flex;justify-content:center;align-items:center;gap:6px;margin:48px 0 0;padding:0;list-style:none}
.blog-pagination a,.blog-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;font-size:12px;font-weight:700;letter-spacing:1px;color:#fff;border:1px solid transparent;transition:background-color .3s,color .3s}
.blog-pagination a:hover,.blog-pagination .is-active{background:#fff;color:var(--c-dark)}
.blog-pagination .is-disabled{opacity:.35;pointer-events:none}
.blog-pagination svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}
@media (max-width:1100px){.blog-grid{gap:24px}.blog-card--featured{aspect-ratio:16/9}.blog-card__body{padding:36px 28px 32px}}
@media (max-width:640px){.blog-grid{grid-template-columns:1fr;gap:16px}.blog-card,.blog-card--featured{grid-column:auto;aspect-ratio:4/3}.blog-card__body{padding:24px 20px 22px}.blog-card__title,.blog-card--featured .blog-card__title{font-size:18px}.blog-filter{gap:4px 20px;padding-bottom:36px}.blog-hero__title{letter-spacing:.12em}}

/* Article: full-bleed hero under the transparent header, headline panel overlapping the photo, one column */
.post-hero{position:relative;height:74vh;min-height:440px;max-height:840px;background:var(--c-deep);overflow:hidden}
.post-hero img{width:100%;height:100%;object-fit:cover}
.post-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(25,25,25,.5),rgba(25,25,25,0) 45%)}
.post-head{position:relative;z-index:2;max-width:960px;margin:-170px auto 0;padding:52px 72px 8px;background:#fff}
.post-head__top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}
.post-crumbs{margin:0;font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--c-text-muted)}
.post-crumbs a{transition:color .3s}
.post-crumbs a:hover{color:var(--c-accent)}
.post-crumbs .is-current{color:var(--c-accent)}
.post-crumbs span+span::before{content:"/";margin:0 10px;opacity:.5}
.post-title{font-family:"Lora",Georgia,"Times New Roman",serif;font-size:50px;font-weight:400;line-height:1.18;margin:0 0 20px;color:var(--c-dark)}
.post-deck{font-family:"Lora",Georgia,"Times New Roman",serif;font-size:21px;font-weight:400;line-height:1.55;color:var(--c-text);margin:0 0 30px;max-width:780px}
.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 0;margin:0;padding:22px 0;border-top:1px solid var(--c-line);font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--c-text-muted)}
.post-meta span+span::before{content:"\00b7";margin:0 14px;opacity:.6}
.post-meta a{transition:color .3s}
.post-meta a:hover{color:var(--c-accent)}
.post-body{max-width:720px;margin:0 auto;padding:36px 0 40px;font-family:"Lora",Georgia,"Times New Roman",serif;font-size:18px;line-height:1.8;color:var(--c-text)}
.post-body>p{margin:0 0 1.5em}
.post-body a{text-decoration:underline;text-decoration-color:var(--c-accent-soft);text-decoration-thickness:1px;text-underline-offset:4px;transition:color .3s}
.post-body a:hover{color:var(--c-accent)}
.post-body h2{font-family:"Lora",Georgia,"Times New Roman",serif;font-size:30px;font-weight:500;line-height:1.3;margin:2.4em 0 .7em;color:var(--c-dark)}
.post-body h3{font-family:"Lora",Georgia,"Times New Roman",serif;font-size:22px;font-weight:500;margin:2em 0 .6em}
.post-body .post-num{display:block;margin-bottom:10px;font-family:var(--font-ex);font-size:12px;font-weight:400;letter-spacing:4px;color:var(--c-accent)}
.post-body ul,.post-body ol{padding-left:22px;margin:0 0 1.5em}
.post-body li{margin-bottom:.5em}
.post-body strong{font-weight:600}
.post-body figure{margin:2.4em 0}
.post-body figure img{width:100%;height:auto}
.post-body figcaption{margin-top:12px;font-family:var(--font);font-size:12px;line-height:1.6;letter-spacing:.02em;color:var(--c-text-muted)}
.post-body .post-figure--wide{width:960px;max-width:calc(100vw - 2 * var(--container-pad));margin:2.4em 0 2.4em 50%;transform:translateX(-50%)}
.post-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.post-pair>div{position:relative}
.post-pair img{aspect-ratio:4/3;object-fit:cover}
.post-pair__label{position:absolute;left:12px;top:12px;padding:6px 10px;font-family:var(--font);font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#fff;background:rgba(25,25,25,.7)}
.post-quote{margin:2.6em 0;padding:8px 0 8px 32px;border-left:2px solid var(--c-accent);font-family:"Lora",Georgia,"Times New Roman",serif;font-size:26px;font-style:italic;font-weight:400;line-height:1.45;color:var(--c-dark)}
.post-quote p{margin:0}
.post-quote cite{display:block;margin-top:14px;font-family:var(--font);font-size:11px;font-style:normal;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--c-text-muted)}
.post-body .placeholder-note,.post-head .placeholder-note{font-family:var(--font)}
/* Foot: share, tags, author */
.post-foot{max-width:720px;margin:0 auto;padding:8px 0 var(--section-pad)}
.post-share{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:26px 0;border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line)}
.post-share__label{margin:0 auto 0 0;font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--c-text-muted)}
.share-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--c-line);border-radius:50%;background:transparent;color:var(--c-text);cursor:pointer;transition:all .3s}
.share-btn:hover{background:var(--c-dark);border-color:var(--c-dark);color:#fff}
.share-btn.is-copied{background:var(--c-accent);border-color:var(--c-accent);color:#fff}
.share-btn svg{width:16px;height:16px;fill:currentColor}
.post-tags{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 0}
.post-tags a{padding:7px 14px;border:1px solid var(--c-line);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;transition:all .3s}
.post-tags a:hover{border-color:var(--c-accent);color:var(--c-accent)}
.post-author{display:flex;gap:28px;align-items:center;margin-top:56px;padding:34px 0 0;border-top:1px solid var(--c-line)}
.post-author img{width:96px;height:96px;border-radius:50%;object-fit:cover;object-position:top;flex-shrink:0}
.post-author__name{margin:0 0 6px;font-size:var(--h4);font-weight:400}
.post-author__bio{margin:0 0 14px;font-size:14px;line-height:1.7;color:var(--c-text-muted)}
.post-author .btn-row{gap:10px 24px;align-items:center}
/* Recent articles: image, category, serif title, Read More */
.post-recent .section-head{margin-bottom:44px}
.recent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 30px}
.recent-card{display:block;color:inherit}
.recent-card__img{overflow:hidden;aspect-ratio:3/2;background:var(--off-white)}
.recent-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .75s ease-out}
.recent-card:hover .recent-card__img img{transform:scale(1.05)}
.recent-card__cat{display:block;margin:20px 0 10px;font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--c-accent)}
.recent-card__title{margin:0 0 16px;font-family:"Lora",Georgia,"Times New Roman",serif;font-size:22px;font-weight:400;line-height:1.35;transition:color .3s}
.recent-card:hover .recent-card__title{color:var(--c-accent)}
.recent-card:hover .link::after{width:100%}
@media (max-width:1024px){.post-title{font-size:42px}}
@media (max-width:900px){.recent-grid{grid-template-columns:1fr 1fr}}
@media (max-width:768px){
  .post-hero{height:58vh;min-height:320px}
  .post-head{margin:-70px 0 0;padding:32px 24px 4px}
  .post-title{font-size:32px}.post-deck{font-size:18px}
  .post-meta{gap:8px 20px}.post-meta span+span::before{display:none}
  .post-body{padding:24px 0 32px;font-size:17px;line-height:1.75}
  .post-body h2{font-size:25px}
  .post-body .post-figure--wide{width:auto;max-width:none;margin:2em 0;transform:none}
  .post-quote{font-size:22px;padding-left:22px}
  .post-author{flex-direction:column;align-items:flex-start;gap:18px}
  .recent-grid{grid-template-columns:1fr;gap:34px}
}

/* ---------- Motion ---------- */
@keyframes fadeInUp{from{opacity:0;transform:translate3d(0,40px,0)}to{opacity:1;transform:none}}
@keyframes fadeInDown{from{opacity:0;transform:translate3d(0,-40px,0)}to{opacity:1;transform:none}}
@keyframes fadeInLeft{from{opacity:0;transform:translate3d(-40px,0,0)}to{opacity:1;transform:none}}
@keyframes fadeInRight{from{opacity:0;transform:translate3d(40px,0,0)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideInLeft{from{opacity:0;transform:translate3d(-12%,0,0)}to{opacity:1;transform:none}}
@keyframes zoomIn{from{opacity:0;transform:scale3d(.9,.9,.9)}to{opacity:1;transform:none}}
@keyframes slideUp{0%{transform:translateY(100%);opacity:0}100%{transform:translateY(0);opacity:1}}
@keyframes slideIn{0%{transform:translateX(100%)}100%{transform:translateX(0)}}
@keyframes slideOut{0%{transform:translateX(0)}100%{transform:translateX(100%)}}
@keyframes pulsate{0%{box-shadow:0 0 0 0 rgba(255,255,255,.45)}70%{box-shadow:0 0 0 16px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
.animated{animation-duration:1s;animation-fill-mode:both}
.animated.fast{animation-duration:.8s}
.animated.faster{animation-duration:.5s}
.animated.slow{animation-duration:2s}
.fadeInUp{animation-name:fadeInUp}
.fadeInDown{animation-name:fadeInDown}
.fadeInLeft{animation-name:fadeInLeft}
.fadeInRight{animation-name:fadeInRight}
.fadeIn{animation-name:fadeIn}
.slideInLeft{animation-name:slideInLeft;animation-timing-function:cubic-bezier(.22,.61,.36,1)}
.zoomIn{animation-name:zoomIn}
.wow{visibility:hidden}
.wow.animated{visibility:visible}
.animate-on-scroll{opacity:0;transform:translateY(60px);transition:opacity .5s ease,transform .5s ease}
.animate-on-scroll.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .wow{visibility:visible}
  .animate-on-scroll{opacity:1;transform:none}
  .media-bg__video{display:none}
}
/* Slick overrides */
.slick-slider{user-select:auto}
.slick-list,.slick-track{outline:none}

/* ---------- Listing photo carousel + lightbox (story pages, 2026-09-26) ----------
   Main stage (Slick, slide) above a six-up filmstrip with glass arrows on each side (Slick, pages of 6/4/3). Thumbs balloon on hover, dim when
   inactive and squash slightly while the strip is being dragged; the incoming main photo settles from a 6% zoom.
   Clicking the stage opens .lightbox, a frosted-glass full-screen viewer (same glass language as .sub-nav) with an X,
   prev/next, keyboard arrows, Esc and touch swipe. Markup: story-7213-via-lomas.html; behaviour: screg.js. */
.photo-carousel{--pc-radius:6px;position:relative}
.photo-carousel__stage{position:relative;overflow:hidden;border-radius:var(--pc-radius);background:#0d0f12;box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.photo-carousel__main{position:relative}
.photo-carousel__main .slick-list{cursor:grab}
.photo-carousel__main .slick-list.dragging{cursor:grabbing}
.photo-carousel__slide{display:block;width:100%;padding:0;border:0;background:#0d0f12;color:inherit;cursor:zoom-in;overflow:hidden}
.photo-carousel__slide img{display:block;width:100%;height:auto;aspect-ratio:3/2;max-height:min(78vh,820px);object-fit:cover}
.photo-carousel__arrow{position:absolute;top:50%;z-index:3;width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.35);color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  background:rgba(34,44,56,.34);-webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%);
  opacity:0;transform:translateY(-50%);transition:opacity .3s,background .3s,color .3s}
.photo-carousel__arrow--prev{left:18px}
.photo-carousel__arrow--next{right:18px}
.photo-carousel__stage:hover .photo-carousel__arrow,.photo-carousel__arrow:focus-visible{opacity:1}
.photo-carousel__arrow:hover{background:rgba(255,255,255,.92);color:var(--c-dark)}
.photo-carousel__arrow svg,.lightbox__arrow svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media (hover:none){.photo-carousel__arrow{opacity:1}}
.photo-carousel__bar{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding:48px 22px 16px;pointer-events:none;color:#fff;font-size:11px;letter-spacing:2px;text-transform:uppercase;background:linear-gradient(to top,rgba(0,0,0,.6),rgba(0,0,0,0))}
.photo-carousel__count{font-variant-numeric:tabular-nums;opacity:.85;white-space:nowrap}
.photo-carousel__count b{font-weight:700;font-size:13px}
.photo-carousel__sep{margin:0 5px;opacity:.6}
/* Filmstrip: six thumbs per page between two glass arrows (4 at tablet, 3 at phone). The list overflows visibly so a hovered
   thumb can grow past its slot; the wrapper's padding + overflow:hidden does the clipping. The strip browses independently of the
   main stage: .is-current (set by screg.js) marks the photo on stage, and the strip pages to it when it changes. */
.photo-carousel__strip{display:flex;align-items:center;gap:10px;margin-top:12px}
.photo-carousel__strip-arrow{flex:0 0 auto;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.3);color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  background:rgba(34,44,56,.42);-webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%);transition:background .3s,color .3s,transform .3s}
.photo-carousel__strip-arrow:hover{background:rgba(255,255,255,.92);color:var(--c-dark)}
.photo-carousel__strip-arrow:active{transform:scale(.92)}
.photo-carousel__strip-arrow svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.photo-carousel__thumbs{flex:1 1 auto;min-width:0;padding:14px 0 10px;overflow:hidden}
.photo-carousel__thumbs .slick-list{overflow:visible;cursor:grab}
.photo-carousel__thumbs .slick-list.dragging{cursor:grabbing}
.photo-carousel__thumbs .slick-slide{position:relative;padding:0 5px}
.photo-carousel__thumbs .slick-slide:hover{z-index:2}
.photo-carousel__thumb{display:block;width:100%;padding:0;border:0;border-radius:4px;overflow:hidden;background:#0d0f12;cursor:pointer;opacity:.5;
  box-shadow:0 0 0 2px transparent;transform:scale(1);transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .35s,box-shadow .35s}
.photo-carousel__thumb img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.photo-carousel__thumb:hover,.photo-carousel__thumb:focus-visible{opacity:1;transform:scale(1.12) translateY(-3px);box-shadow:0 14px 26px -12px rgba(0,0,0,.9)}
.photo-carousel__thumbs .is-current .photo-carousel__thumb{opacity:1;box-shadow:0 0 0 2px var(--screg-blue-light)}
.photo-carousel__thumbs .is-current .photo-carousel__thumb:hover{box-shadow:0 0 0 2px var(--screg-blue-light),0 14px 26px -12px rgba(0,0,0,.9)}
.photo-carousel__thumbs.is-dragging .photo-carousel__thumb{transform:scale(.94);transition-duration:.25s}
@media (max-width:768px){
  .photo-carousel__strip{gap:6px}.photo-carousel__strip-arrow{width:34px;height:34px}.photo-carousel__strip-arrow svg{width:16px;height:16px}
  .photo-carousel__arrow{width:42px;height:42px}.photo-carousel__arrow--prev{left:10px}.photo-carousel__arrow--next{right:10px}
  .photo-carousel__bar{padding:36px 14px 12px;font-size:10px;letter-spacing:1.5px}
}
/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:1300;display:none;align-items:center;justify-content:center;color:#fff}
.lightbox.is-open{display:flex}
.lightbox:focus{outline:none}
.lightbox__backdrop{position:absolute;inset:0;background:rgba(14,17,22,.86);-webkit-backdrop-filter:blur(22px) saturate(140%);backdrop-filter:blur(22px) saturate(140%);opacity:0;transition:opacity .35s}
.lightbox.is-in .lightbox__backdrop{opacity:1}
.lightbox__figure{position:relative;z-index:1;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:100vw;opacity:0;transform:scale(.94);transition:opacity .4s,transform .5s cubic-bezier(.2,.8,.2,1)}
.lightbox.is-in .lightbox__figure{opacity:1;transform:none}
.lightbox__img{display:block;max-width:94vw;max-height:84vh;width:auto;height:auto;border-radius:4px;box-shadow:0 40px 90px -30px rgba(0,0,0,.9);transition:opacity .22s}
.lightbox__img.is-out{opacity:0}
.lightbox__cap{margin-top:14px;display:flex;gap:18px;align-items:baseline;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.85)}
.lightbox__cap-count{font-variant-numeric:tabular-nums;opacity:.7}
.lightbox__close,.lightbox__arrow{position:absolute;z-index:2;width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.3);color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  background:rgba(34,44,56,.42);-webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%);transition:background .3s,color .3s}
.lightbox__close:hover,.lightbox__arrow:hover{background:rgba(255,255,255,.92);color:var(--c-dark)}
.lightbox__close{top:22px;right:22px}
.lightbox__close::before,.lightbox__close::after{content:"";position:absolute;left:50%;top:50%;width:22px;height:2px;background:currentColor}
.lightbox__close::before{transform:translate(-50%,-50%) rotate(45deg)}
.lightbox__close::after{transform:translate(-50%,-50%) rotate(-45deg)}
.lightbox__arrow{top:50%;transform:translateY(-50%)}
.lightbox__arrow--prev{left:22px}
.lightbox__arrow--next{right:22px}
@media (max-width:768px){
  .lightbox__close{top:12px;right:12px;width:44px;height:44px}
  .lightbox__img{max-height:70vh}
  .lightbox__figure{padding-bottom:70px}
  .lightbox__arrow{width:44px;height:44px;top:auto;bottom:18px;transform:none}
  .lightbox__arrow--prev{left:auto;right:calc(50% + 8px)}
  .lightbox__arrow--next{right:auto;left:calc(50% + 8px)}
}

/* ---- Audit fixes 2026-09-27 ---- */
/* Images now carry width/height attributes (no layout shift while loading); keep the aspect ratio when they scale down */
img{height:auto}
/* Lead forms: honeypot field and the network-error message (see the .js-form handler in screg.js) */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0;pointer-events:none}
.form__error{display:none;margin:14px 0 0;font-size:13px;line-height:1.6;color:#b3261e}
.form-wrap.is-error .form__error{display:block}
.form__error a{color:inherit;text-decoration:underline}
/* Eyebrow labels over photo bands: the light panel tint measured 2.2-3.3:1 against the dimmed photos on the featured-sale,
   valuation, legal-hero and questionnaire bands, so on image sections eyebrows are white (4.6-6.7:1 measured 2026-09-27). */
.image-section .eyebrow{color:#fff}
