/* Shpresa Lita | The Tony Nabhan Collective
   Font: Jost (same family as tonynabhancollective.com), self-hosted.
   All selectors are prefixed sl- so they never collide with a WordPress theme. */

@font-face{font-family:"Jost";src:url("../fonts/jost-latin.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Jost";src:url("../fonts/jost-latin-italic.woff2") format("woff2");font-weight:100 900;font-style:italic;font-display:swap}

:root{
  --sl-bg:#0A0E16;
  --sl-bg-2:#0E141F;
  --sl-card:#111925;
  --sl-card-2:#162031;
  --sl-line:rgba(255,255,255,.14);
  --sl-line-2:rgba(255,255,255,.24);
  --sl-text:#F4F1EC;
  --sl-muted:#BAC1CB;
  --sl-dim:#A7B0BC;      /* raised from #8F98A6: 8.81:1 on --sl-bg, 8.05:1 on --sl-card */
  --sl-red-ink:#F2665D;  /* brand red lifted for small informative red text: >= 5.3:1 on every dark surface */
  --sl-red:#E1251B;
  --sl-red-2:#C21D14;
  --sl-green:#3FB57A;
  --sl-gold:#D9B77A;
  --sl-radius:4px;
  --sl-max:1240px;
  --sl-gutter:clamp(16px,4vw,40px);
  --sl-ease:cubic-bezier(.2,.7,.1,1);
  --sl-ease-out:cubic-bezier(.16,1,.3,1);
  --sl-header-h:84px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body.sl-body{margin:0;background:var(--sl-bg);color:var(--sl-text);font-family:"Jost",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:17px;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.sl-body img,.sl-body video{max-width:100%;display:block}
.sl-body a{color:inherit;text-decoration:none}
.sl-body button{font-family:inherit}
.sl-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sl-skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--sl-red);color:#fff;padding:10px 16px;border-radius:var(--sl-radius);transition:top .2s}
.sl-skip:focus{top:12px}
:focus-visible{outline:2px solid var(--sl-red);outline-offset:3px}

.sl-wrap{width:100%;max-width:var(--sl-max);margin:0 auto;padding:0 var(--sl-gutter)}
.sl-section{position:relative;padding:clamp(60px,7.4vw,100px) 0;overflow:hidden}

/* ---------- Type ---------- */
.sl-eyebrow{display:inline-flex;flex-wrap:wrap;align-items:center;gap:10px 14px;font-size:12px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--sl-muted);margin:0 0 18px}
.sl-eyebrow i{font-style:normal;color:var(--sl-red)}
.sl-rule{display:block;width:56px;height:2px;background:var(--sl-red);margin:0 0 22px;transform-origin:left}
.sl-h1,.sl-h2{font-weight:600;letter-spacing:-.032em;line-height:.96;margin:0 0 20px;color:var(--sl-text)}
.sl-h1{font-size:clamp(3rem,7.4vw,6.4rem)}
.sl-h2{font-size:clamp(2.4rem,5.4vw,4.6rem)}
.sl-h3{font-size:clamp(1.3rem,2vw,1.6rem);font-weight:500;letter-spacing:-.01em;line-height:1.15;margin:0}
.sl-dot{color:var(--sl-red)}
.sl-lede{font-size:clamp(1.05rem,1.5vw,1.3rem);font-weight:300;color:var(--lt-text,#DAD7D1);max-width:36ch;margin:0 0 32px;line-height:1.5}
.sl-small{font-size:15px;color:var(--sl-dim);line-height:1.55}

/* ---------- Buttons ---------- */
.sl-btn{--h:54px;display:inline-flex;align-items:center;justify-content:center;gap:14px;height:var(--h);padding:0 28px;border-radius:var(--sl-radius);font-size:13px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;border:1px solid transparent;cursor:pointer;transition:background .3s var(--sl-ease),color .3s,border-color .3s,transform .3s var(--sl-ease);white-space:nowrap;position:relative;overflow:hidden}
.sl-btn svg{width:18px;height:18px;flex:none;transition:transform .35s var(--sl-ease-out)}
.sl-btn:hover svg{transform:translateX(5px)}
.sl-btn--red{background:var(--sl-red);color:#fff}
.sl-body a.sl-btn--red,.sl-body a.sl-skip{color:#fff} /* beats .sl-body a{color:inherit}: white on red is 4.69:1, the cream it inherited was 4.16:1 */
.sl-btn--red:hover{background:var(--sl-red-2)}
.sl-btn--ghost{border-color:rgba(255,255,255,.75);color:#fff;background:rgba(10,14,22,.25);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.sl-btn--ghost:hover{background:#fff;color:var(--sl-bg)}
.sl-btn--line{border-color:var(--sl-line-2);color:var(--lt-hi,#fff)}
.sl-btn--line:hover{border-color:var(--lt-hi,#fff)}
.sl-btn--sm{--h:44px;padding:0 20px;font-size:12px}
.sl-btn-row{display:flex;flex-wrap:wrap;gap:14px}
.sl-link-arrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;color:var(--lt-hi,#fff)}
.sl-link-arrow svg{width:18px;height:18px;color:var(--sl-red);transition:transform .35s var(--sl-ease-out)}
.sl-link-arrow:hover svg{transform:translateX(5px)}

/* ---------- Header ---------- */
#sl-header{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--sl-header-h);transition:background .4s var(--sl-ease),height .4s var(--sl-ease),box-shadow .4s,border-color .4s;border-bottom:1px solid transparent}
#sl-header.is-solid{background:rgba(9,12,19,.95);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom-color:var(--sl-line);--sl-header-h:70px}
.sl-header__in{height:100%;display:flex;align-items:center;gap:28px;max-width:1400px;margin:0 auto;padding:0 var(--sl-gutter)}
.sl-brand{display:flex;align-items:center;gap:18px;flex:none}
.sl-brand__logo{height:44px;width:auto;transition:height .4s var(--sl-ease)}
#sl-header.is-solid .sl-brand__logo{height:38px}
.sl-brand__sep{width:1px;height:40px;background:var(--sl-line-2)}
.sl-brand__name{display:flex;flex-direction:column;line-height:1.1}
.sl-brand__name strong{font-size:23px;font-weight:500;letter-spacing:.01em}
.sl-brand__name span{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--sl-muted);margin-top:5px}
.sl-nav{margin-left:auto;display:flex;align-items:center;gap:28px}
.sl-nav a{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:#E6E3DD;position:relative;padding:6px 0}
.sl-nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--sl-red);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--sl-ease-out)}
.sl-nav a:hover::after,.sl-nav a.is-active::after{transform:scaleX(1);transform-origin:left}
/* Services dropdown: a disclosure button + panel (site.js toggles .is-open; hover, click, keyboard). */
.sl-nav__dd{position:relative;display:flex;align-items:center}
.sl-nav__btn{display:inline-flex;align-items:center;gap:8px;margin:0;padding:6px 0;border:0;background:none;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;line-height:inherit;color:#E6E3DD;position:relative;cursor:pointer}
.sl-nav__btn::after{content:"";position:absolute;left:0;right:18px;bottom:0;height:1px;background:var(--sl-red);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--sl-ease-out)}
.sl-nav__btn:hover::after,.sl-nav__btn.is-active::after,.sl-nav__dd.is-open .sl-nav__btn::after{transform:scaleX(1);transform-origin:left}
.sl-nav__chev{width:10px;height:10px;flex:none;transition:transform .35s var(--sl-ease-out)}
.sl-nav__dd.is-open .sl-nav__chev{transform:rotate(180deg)}
.sl-nav__menu{position:absolute;top:calc(50% + var(--sl-header-h) / 2);left:-24px;z-index:2;min-width:270px;padding:10px 0;background:rgba(9,12,19,.97);border:1px solid var(--sl-line);border-top-color:var(--sl-line-2);border-radius:0 0 var(--sl-radius) var(--sl-radius);box-shadow:0 30px 60px -24px rgba(0,0,0,.75);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);opacity:0;visibility:hidden;transform:translate3d(0,-8px,0);transition:opacity .25s var(--sl-ease),transform .35s var(--sl-ease-out),visibility .25s}
.sl-nav__menu::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:calc(var(--sl-header-h) / 2)}
.sl-nav__dd.is-open .sl-nav__menu,html:not(.sl-js) .sl-nav__dd:hover .sl-nav__menu,html:not(.sl-js) .sl-nav__dd:focus-within .sl-nav__menu{opacity:1;visibility:visible;transform:none;transition:opacity .25s var(--sl-ease),transform .35s var(--sl-ease-out),visibility 0s}
.sl-nav .sl-nav__menu a{display:block;padding:13px 24px;white-space:nowrap;transition:background .25s,color .25s}
.sl-nav .sl-nav__menu a+a{border-top:1px solid rgba(255,255,255,.06)}
.sl-nav .sl-nav__menu a::after{display:none}
.sl-nav__menu a span{position:relative;display:inline-block;padding:3px 0}
.sl-nav__menu a span::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--sl-red);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--sl-ease-out)}
.sl-nav__menu a:hover,.sl-nav__menu a:focus-visible{background:rgba(255,255,255,.045);color:#fff}
.sl-nav__menu a:focus-visible{outline-offset:-3px}
.sl-nav__menu a:hover span::after,.sl-nav__menu a:focus-visible span::after,.sl-nav__menu a.is-active span::after{transform:scaleX(1);transform-origin:left}
.sl-nav__menu a.is-active{color:#fff}
.sl-header__cta{display:flex;gap:10px}
.sl-burger{display:none;margin-left:auto;width:46px;height:46px;border:1px solid var(--sl-line-2);background:transparent;border-radius:var(--sl-radius);color:#fff;cursor:pointer;position:relative}
.sl-burger span{position:absolute;left:12px;right:12px;height:1.5px;background:#fff;transition:transform .35s var(--sl-ease),opacity .2s}
.sl-burger span:nth-child(1){top:16px}.sl-burger span:nth-child(2){top:22px}.sl-burger span:nth-child(3){top:28px}
.sl-menu-open .sl-burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.sl-menu-open .sl-burger span:nth-child(2){opacity:0}
.sl-menu-open .sl-burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.sl-drawer{position:fixed;inset:0;z-index:99;background:rgba(8,11,17,.97);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;flex-direction:column;justify-content:flex-start;padding:100px var(--sl-gutter) 40px;gap:8px;opacity:0;visibility:hidden;transition:opacity .4s var(--sl-ease),visibility .4s;overflow-y:auto;overscroll-behavior:contain}
.sl-drawer>:first-child{margin-top:auto}
.sl-drawer>:last-child{margin-bottom:auto}
.sl-menu-open .sl-drawer{opacity:1;visibility:visible}
.sl-drawer .sl-drawer__link{font-size:clamp(2rem,9vw,3rem);font-weight:500;letter-spacing:-.02em;line-height:1.25;transform:translateY(20px);opacity:0;transition:transform .6s var(--sl-ease-out),opacity .6s}
.sl-menu-open .sl-drawer .sl-drawer__link{transform:none;opacity:1}
.sl-drawer .sl-drawer__link[aria-current="page"]::after{content:".";color:var(--sl-red)}
/* Services accordion inside the drawer */
.sl-drawer__toggle{display:flex;align-items:center;gap:14px;width:100%;margin:0;padding:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer}
.sl-drawer__chev{width:.5em;height:.5em;flex:none;color:var(--sl-red);transition:transform .4s var(--sl-ease-out)}
.sl-drawer__toggle[aria-expanded="true"] .sl-drawer__chev{transform:rotate(180deg)}
.sl-drawer__sub{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--sl-ease-out)}
.sl-drawer__sub>div{min-height:0;overflow:hidden;visibility:hidden;display:flex;flex-direction:column;transition:visibility .45s}
.sl-drawer__toggle[aria-expanded="true"]+.sl-drawer__sub{grid-template-rows:1fr}
.sl-menu-open .sl-drawer__toggle[aria-expanded="true"]+.sl-drawer__sub>div{visibility:visible}
.sl-drawer__sub a{margin:0 0 0 3px;padding:10px 0 10px 18px;border-left:1px solid var(--sl-line-2);font-size:13px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--sl-muted);transition:color .3s,border-color .3s}
.sl-drawer__sub a:first-child{margin-top:6px}
.sl-drawer__sub a:last-child{margin-bottom:10px}
@media (hover:hover){.sl-drawer__sub a:hover{color:#fff}}
.sl-drawer__sub a[aria-current="page"]{color:#fff;border-left:2px solid var(--sl-red);padding-left:17px}
.sl-drawer .sl-btn-row{margin-top:28px}

/* ---------- Hero ---------- */
#sl-hero{position:relative;min-height:max(680px,100svh);max-height:1000px;display:flex;align-items:center;overflow:hidden;padding:calc(var(--sl-header-h) + 30px) 0 60px;isolation:isolate}
.sl-hero__media{position:absolute;inset:0;z-index:-2;background:#070a10 center/cover no-repeat}
.sl-hero__media video,.sl-hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:opacity 1.2s var(--sl-ease)}
.sl-hero__media video{opacity:0}
.sl-hero__media video.is-playing{opacity:1}
.sl-hero__shade{position:absolute;inset:0;z-index:-1;background:
  linear-gradient(90deg,rgba(7,10,16,.92) 0%,rgba(7,10,16,.72) 34%,rgba(7,10,16,.18) 62%,rgba(7,10,16,.05) 100%),
  linear-gradient(180deg,rgba(7,10,16,.55) 0%,rgba(7,10,16,0) 26%,rgba(7,10,16,0) 62%,var(--sl-bg) 100%),
  radial-gradient(120% 60% at 70% 40%,rgba(225,120,60,.16),transparent 60%)}
.sl-hero__grid{position:relative;width:100%;max-width:1400px;margin:0 auto;padding:0 var(--sl-gutter);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center}
.sl-hero__copy{position:relative;z-index:2;padding:20px 0 40px}
.sl-hero__photo{position:absolute;right:max(0px,calc((100vw - 1400px)/2));bottom:0;height:min(92%,960px);z-index:1;pointer-events:none;will-change:transform}
.sl-hero__photo img{height:100%;width:auto;object-fit:contain;object-position:bottom;filter:drop-shadow(0 30px 60px rgba(0,0,0,.45))}
.sl-hero__cap{position:absolute;right:var(--sl-gutter);bottom:34px;z-index:3;text-align:right;font-size:13px;line-height:1.5;color:#E8E5DF;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.sl-hero__cap strong{display:block;font-weight:500;font-size:15px}
.sl-teambadge{display:inline-flex;align-items:center;gap:14px;margin-top:38px;padding:12px 18px 12px 12px;border:1px solid var(--sl-line-2);border-radius:var(--sl-radius);background:rgba(var(--lt-lo-rgb,10,14,22),.45);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.sl-teambadge img{height:40px;width:auto}
.sl-teambadge span{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--sl-muted);line-height:1.5}
.sl-teambadge strong{display:block;color:var(--lt-hi,#fff);font-weight:500;letter-spacing:.14em}
.sl-scrollcue{position:absolute;left:50%;bottom:20px;width:1px;height:54px;background:linear-gradient(var(--sl-line-2),transparent);overflow:hidden;z-index:3}
.sl-scrollcue::after{content:"";position:absolute;left:0;top:-40%;width:1px;height:40%;background:var(--sl-red);animation:sl-cue 2.2s var(--sl-ease) infinite}
@keyframes sl-cue{to{top:110%}}

/* ---------- Services ---------- */
#sl-services{padding:0 0 clamp(72px,9vw,110px);margin-top:-24px;z-index:4;overflow:visible}
.sl-svc{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.sl-svc__card{position:relative;display:flex;flex-direction:column;background:var(--sl-card);border:1px solid var(--sl-line);border-radius:var(--sl-radius);overflow:hidden;transition:transform .5s var(--sl-ease-out),border-color .4s,box-shadow .5s}
.sl-svc__card:hover{transform:translateY(-6px);border-color:var(--sl-line-2);box-shadow:0 26px 60px -20px rgba(var(--lt-shadow-rgb,0,0,0),.7)}
.sl-svc__img{aspect-ratio:4/3;overflow:hidden;position:relative}
.sl-svc__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--sl-ease-out)}
.sl-svc__card:hover .sl-svc__img img{transform:scale(1.06)}
.sl-svc__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,var(--sl-card))}
.sl-svc__body{padding:4px 22px 22px;display:grid;grid-template-columns:auto 1fr;gap:4px 16px;align-items:start;flex:1}
.sl-svc__body svg.sl-ico{width:40px;height:40px;grid-row:span 2;color:var(--lt-hi,#fff);stroke-width:1.3;margin-top:-2px}
.sl-svc__body p{margin:0;font-size:14px;color:var(--sl-muted);line-height:1.5}
.sl-svc__go{grid-column:2;justify-self:end;margin-top:10px;color:var(--sl-red)}
.sl-svc__go svg{width:22px;height:22px;transition:transform .35s var(--sl-ease-out)}
.sl-svc__card:hover .sl-svc__go svg{transform:translateX(6px)}

/* ---------- Team strip ---------- */
#sl-team{background:linear-gradient(180deg,var(--sl-bg) 0%,var(--sl-bg-2) 100%);border-top:1px solid var(--sl-line);border-bottom:1px solid var(--sl-line)}
.sl-team{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(36px,6vw,80px);align-items:center}
.sl-team__mono{width:clamp(90px,10vw,130px);height:auto;margin-bottom:26px;opacity:.95}
.sl-team__copy p:not(.sl-eyebrow){color:var(--lt-text,#D2CFCA);font-weight:300;font-size:clamp(1rem,1.3vw,1.15rem);max-width:48ch;margin:0 0 28px}
.sl-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--sl-line);border:1px solid var(--sl-line);border-radius:var(--sl-radius);overflow:hidden}
.sl-stat{background:var(--sl-bg-2);padding:clamp(22px,3vw,36px);min-height:150px;display:flex;flex-direction:column;justify-content:flex-end}
.sl-stat b{font-size:clamp(2.2rem,4.2vw,3.4rem);font-weight:400;letter-spacing:-.03em;line-height:1;color:var(--lt-hi,#fff);font-variant-numeric:tabular-nums}
.sl-stat span{margin-top:10px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--sl-muted);line-height:1.5}
.sl-stat--wide{grid-column:span 2;flex-direction:row;align-items:center;gap:20px;min-height:0}
.sl-stat--wide b{font-size:clamp(2.6rem,5vw,4rem);color:var(--sl-red)}
.sl-stat--wide span{margin:0}
.sl-team__note{margin-top:14px}

/* ---------- Section heads on imagery ---------- */
.sl-banner{position:absolute;inset:0;z-index:-1;overflow:hidden}
.sl-banner img,.sl-banner video{width:100%;height:100%;object-fit:cover;opacity:.55;transform:scale(1.08);will-change:transform}
.sl-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--sl-bg) 0%,rgba(10,14,22,.55) 30%,rgba(10,14,22,.7) 60%,var(--sl-bg) 100%),linear-gradient(90deg,rgba(10,14,22,.9),rgba(10,14,22,.2) 70%)}
.sl-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:clamp(28px,3.4vw,42px)}
.sl-head .sl-lede{margin-bottom:0}

/* ---------- Passport ---------- */
.sl-pass{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.sl-pass__card{background:rgba(var(--lt-lo-rgb,17,25,37),.92);border:1px solid var(--sl-line);border-radius:var(--sl-radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .5s var(--sl-ease-out),border-color .4s}
.sl-pass__card:hover{transform:translateY(-6px);border-color:var(--sl-line-2)}
.sl-pass__img{position:relative;flex:none;width:100%;aspect-ratio:16/10;overflow:hidden;background:var(--lt-surface,#0d1522)}
.sl-pass__img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--sl-ease-out)}
.sl-pass__card:hover .sl-pass__img img{transform:scale(1.06)}
.sl-pass__town{margin:6px 0 0;font-size:clamp(1.6rem,2.2vw,2rem);font-weight:500;line-height:1.12;letter-spacing:-.02em;color:var(--lt-hi,#fff)}
.sl-pass__rows{list-style:none;margin:0;padding:10px 20px 6px}
.sl-pass__rows li{display:grid;grid-template-columns:22px 100px 1fr;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--sl-line);font-size:14px}
.sl-pass__rows li:last-child{border-bottom:0}
.sl-pass__rows svg{width:20px;height:20px;color:var(--lt-text,#CFCBC4)}
.sl-pass__rows span{color:var(--sl-muted)}
.sl-pass__card .sl-btn{margin:10px 20px 20px}
.sl-foot-note{margin-top:22px}

/* ---------- Carousel component ----------
   Markup contract and behavior: see the "Carousel component" block in site.js.
   .sl-car is the default skin. Per-carousel layout: set --sl-car-cols (visible items) and
   --sl-car-gap on the .sl-car element; narrow screens switch to fixed-width peeking items. */
#sl-listings{background:var(--sl-bg-2)}
.sl-car{position:relative;--sl-car-cols:3;--sl-car-gap:20px}
.sl-car__track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - (var(--sl-car-cols) - 1) * var(--sl-car-gap)) / var(--sl-car-cols));gap:var(--sl-car-gap);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:4px 2px 10px;overscroll-behavior-x:contain}
.sl-car__track::-webkit-scrollbar{display:none}
.sl-car__track>*{scroll-snap-align:start}
/* Listings cards */
.sl-lcard{scroll-snap-align:start;background:var(--sl-card);border:1px solid var(--sl-line);border-radius:var(--sl-radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .5s var(--sl-ease-out),border-color .4s,box-shadow .5s}
.sl-lcard:hover{transform:translateY(-6px);border-color:var(--sl-line-2);box-shadow:0 26px 60px -24px rgba(var(--lt-shadow-rgb,0,0,0),.8)}
.sl-lcard__img{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--lt-surface,#0c121c)}
.sl-lcard__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--sl-ease-out)}
.sl-lcard:hover .sl-lcard__img img{transform:scale(1.06)}
.sl-status{position:absolute;left:14px;top:14px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;padding:6px 10px;border-radius:2px;background:var(--sl-red);color:#fff}
.sl-status--pending,.sl-status--under-contract{background:#F4F1EC;color:#111}
.sl-status--sold{background:#141b27;color:var(--sl-gold);border:1px solid rgba(217,183,122,.5)}
.sl-status--coming-soon{background:var(--sl-gold);color:#111}
.sl-lcard__body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:6px;flex:1}
.sl-lcard__price{font-size:1.75rem;font-weight:500;letter-spacing:-.02em;line-height:1.1}
.sl-lcard__addr{font-size:15px;color:var(--lt-text,#E4E1DB)}a.sl-lcard__addr{display:block;text-decoration:none;text-underline-offset:3px;text-decoration-thickness:1px}a.sl-lcard__addr:hover,a.sl-lcard__addr:focus-visible{text-decoration:underline;color:var(--lt-hi,#fff)}.sl-lcard__hit{position:absolute;inset:0;z-index:4}.sl-lcard__img .sl-status{z-index:3}.sl-lcard__img .sl-credit--over{z-index:5}
.sl-lcard__city{font-size:13px;color:var(--sl-muted);letter-spacing:.04em}
.sl-lcard__facts{display:flex;gap:16px;margin:10px 0 16px;padding-top:12px;border-top:1px solid var(--sl-line);font-size:13px;color:var(--sl-muted)}
.sl-lcard__facts span{display:inline-flex;align-items:center;gap:6px}
.sl-lcard__facts svg{width:16px;height:16px;color:var(--lt-text,#cfcbc4)}
.sl-lcard .sl-btn{margin-top:auto;width:100%}
.sl-car__ui{display:flex;align-items:center;gap:18px;margin-top:26px}
.sl-car__bar{flex:1;height:2px;background:var(--sl-line);position:relative;overflow:hidden;border-radius:2px}
.sl-car__bar i{position:absolute;left:0;top:0;bottom:0;background:var(--sl-red);width:30%;transition:transform .5s var(--sl-ease),width .5s var(--sl-ease)}
.sl-car__btn{width:50px;height:50px;border-radius:50%;border:1px solid var(--sl-line-2);background:transparent;color:var(--lt-hi,#fff);display:grid;place-items:center;cursor:pointer;transition:background .3s,border-color .3s,opacity .3s}
.sl-car__btn:hover{background:var(--lt-inv,#fff);color:var(--sl-bg)}
.sl-car__btn[disabled]{opacity:.3;pointer-events:none}
.sl-car__btn svg{width:20px;height:20px}
.sl-car__empty{padding:40px;border:1px dashed var(--sl-line-2);border-radius:var(--sl-radius);color:var(--sl-muted);text-align:center}
.sl-skel{background:linear-gradient(100deg,#111925 30%,#18233a 50%,#111925 70%);background-size:300% 100%;animation:sl-skel 1.6s linear infinite}
@keyframes sl-skel{to{background-position:-150% 0}}

/* ---------- Market Pulse ---------- */
.sl-mkt{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.sl-mcard{background:rgba(var(--lt-lo-rgb,17,25,37),.92);border:1px solid var(--sl-line);border-radius:var(--sl-radius);overflow:hidden}
.sl-mcard__img{position:relative;height:120px;overflow:hidden}
.sl-mcard__img img{width:100%;height:100%;object-fit:cover}
.sl-mcard__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(17,25,37,1))}
.sl-mcard__head{display:flex;justify-content:space-between;align-items:center;padding:0 20px 14px;margin-top:-30px;position:relative;z-index:2;border-bottom:1px solid var(--sl-line)}
.sl-mcard__head h3{font-size:1.9rem;font-weight:500;letter-spacing:-.02em;margin:0}
.sl-mcard__head small{font-size:11px;letter-spacing:.2em;color:var(--sl-dim)}
.sl-mcard__grid{display:grid;grid-template-columns:repeat(3,1fr)}
.sl-metric{padding:18px 14px 20px 20px;border-right:1px solid var(--sl-line)}
.sl-metric:last-child{border-right:0}
.sl-mcard__few{margin:0;padding:0 20px 16px;font-size:12.5px;line-height:1.4;color:var(--sl-dim)}
.sl-pass__img--none{display:flex;align-items:flex-end;padding:18px 20px;background:linear-gradient(135deg,#0d1522 0%,#1a2535 100%)}
.sl-pass__img--none span{font-size:clamp(1.6rem,2.6vw,2.2rem);font-weight:600;letter-spacing:-.02em;line-height:1.1;color:rgba(244,241,236,.16)}
.sl-metric label{display:block;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--sl-muted);line-height:1.3;min-height:2.6em}
.sl-metric b{display:block;font-size:clamp(1.25rem,1.8vw,1.55rem);font-weight:500;letter-spacing:-.02em;margin:6px 0 4px;font-variant-numeric:tabular-nums;white-space:nowrap}
.sl-yoy{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-variant-numeric:tabular-nums}
.sl-yoy svg{width:10px;height:10px}
.sl-yoy--up{color:var(--sl-green)}
.sl-yoy--down{color:var(--lt-red,#FF6B5E)}
.sl-yoy{flex-wrap:wrap}
.sl-yoy em{display:block;width:100%;font-style:normal;color:var(--sl-dim);font-size:11.5px;margin-top:1px}
.sl-mkt__foot{display:flex;flex-wrap:wrap;gap:18px 30px;justify-content:space-between;align-items:center;margin-top:30px}

/* ---------- New construction ---------- */
#sl-newbuild{padding:0;min-height:720px;display:flex;align-items:center}
.sl-nb__img{position:absolute;inset:0 38% 0 0;z-index:-1;overflow:hidden}
.sl-nb__img img,.sl-nb__img video{width:100%;height:100%;object-fit:cover;transform:scale(1.08);will-change:transform}
.sl-nb__img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,14,22,.1) 0%,rgba(10,14,22,.35) 55%,var(--sl-bg) 100%),linear-gradient(180deg,var(--sl-bg) 0%,transparent 16%,transparent 84%,var(--sl-bg) 100%)}
.sl-nb{display:grid;grid-template-columns:1fr minmax(0,560px);padding-top:clamp(80px,10vw,130px);padding-bottom:clamp(80px,10vw,130px)}
.sl-nb__copy{grid-column:2}
.sl-nb__tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:40px}
.sl-tile{background:rgba(var(--lt-lo-rgb,17,25,37),.85);border:1px solid var(--sl-line);border-radius:var(--sl-radius);padding:22px 10px 16px;color:var(--lt-hi,#fff);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:12px;font-size:15px;line-height:1.2;transition:border-color .3s,background .3s,transform .4s var(--sl-ease-out);text-align:center;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.sl-tile svg{width:34px;height:34px;stroke-width:1.3}
.sl-tile .sl-tile__arrow{width:18px;height:18px;color:var(--sl-red);transition:transform .35s var(--sl-ease-out)}
.sl-tile:hover{border-color:var(--sl-line-2);transform:translateY(-4px)}
.sl-tile[aria-expanded="true"]{border-color:var(--sl-red);background:rgba(225,37,27,.12)}
.sl-tile[aria-expanded="true"] .sl-tile__arrow{transform:rotate(90deg)}
.sl-nb__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--sl-ease-out),margin .55s var(--sl-ease-out)}
.sl-nb__panel.is-open{grid-template-rows:1fr;margin-top:14px}
.sl-nb__panel>div{overflow:hidden}
.sl-nb__panel p{margin:0;padding:20px 22px;background:rgba(var(--lt-lo-rgb,17,25,37),.92);border:1px solid var(--sl-line);border-left:2px solid var(--sl-red);border-radius:var(--sl-radius);color:var(--lt-text,#D8D5CF);font-size:15.5px;font-weight:300}
.sl-nb__panel p strong{color:var(--lt-hi,#fff);font-weight:500}

/* ---------- Welcome video ---------- */
.sl-video{position:relative;display:block;width:100%;aspect-ratio:16/9;border-radius:var(--sl-radius);overflow:hidden;border:1px solid var(--sl-line);background:#0b1019;cursor:pointer;padding:0;color:#fff;text-align:left}
.sl-video__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--sl-ease-out)}
.sl-video:hover .sl-video__bg{transform:scale(1.04)}
.sl-video__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,11,17,.82) 0%,rgba(8,11,17,.35) 45%,rgba(8,11,17,.05) 70%),linear-gradient(0deg,rgba(8,11,17,.7),transparent 45%)}
.sl-video__person{position:absolute;right:5%;bottom:0;height:94%;width:auto;object-fit:contain;filter:drop-shadow(0 20px 40px rgba(0,0,0,.5));-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14%);mask-image:linear-gradient(90deg,transparent 0,#000 14%)}
.sl-video__play{position:absolute;left:clamp(24px,6%,70px);top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:22px}
.sl-video__btn{width:clamp(72px,8vw,104px);height:clamp(72px,8vw,104px);border-radius:50%;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.6);display:grid;place-items:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);position:relative;transition:background .4s,transform .5s var(--sl-ease-out)}
.sl-video__btn::before{content:"";position:absolute;inset:-10px;border-radius:50%;border:1px solid rgba(255,255,255,.35);animation:sl-pulse 2.6s var(--sl-ease) infinite}
@keyframes sl-pulse{0%{transform:scale(.85);opacity:.9}100%{transform:scale(1.35);opacity:0}}
.sl-video__btn svg{width:30%;height:30%;margin-left:6%}
.sl-video:hover .sl-video__btn{background:var(--sl-red);border-color:var(--sl-red);transform:scale(1.06)}
.sl-video__label strong{display:block;font-size:clamp(1.3rem,2.6vw,2.2rem);font-weight:500;letter-spacing:-.01em;line-height:1.1}
.sl-video__label span{display:block;margin-top:8px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:#D5D1CA}
.sl-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,30px);background:#fff;color:#0A0E16;padding:14px 22px;border-radius:var(--sl-radius);font-size:15px;box-shadow:0 20px 50px rgba(0,0,0,.4);opacity:0;visibility:hidden;transition:all .45s var(--sl-ease-out);z-index:150;max-width:calc(100% - 32px)}
.sl-toast.is-on{opacity:1;visibility:visible;transform:translate(-50%,0)}
.sl-modal{position:fixed;inset:0;z-index:160;background:rgba(5,7,11,.92);display:grid;place-items:center;padding:24px;opacity:0;visibility:hidden;transition:opacity .35s}
.sl-modal.is-on{opacity:1;visibility:visible}
.sl-modal__box{width:min(1100px,100%);aspect-ratio:16/9;background:#000}
.sl-modal__box iframe,.sl-modal__box video{width:100%;height:100%;border:0}
.sl-modal__x{position:absolute;top:18px;right:18px;width:48px;height:48px;border-radius:50%;border:1px solid var(--sl-line-2);background:transparent;color:#fff;font-size:22px;cursor:pointer}

/* ---------- Reviews ---------- */
.sl-rev{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.sl-quote{margin:0;background:rgba(var(--lt-lo-rgb,17,25,37),.9);border:1px solid var(--sl-line);border-radius:var(--sl-radius);padding:30px 28px 26px;display:flex;flex-direction:column;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.sl-quote svg{width:34px;height:34px;color:var(--sl-red);margin-bottom:16px}
.sl-quote blockquote{margin:0 0 22px;font-size:17px;font-weight:300;line-height:1.6;color:var(--lt-text,#E7E4DE);flex:1}
.sl-quote cite{font-style:normal;font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:500}
.sl-quote cite span{display:block;margin-top:6px;color:var(--sl-dim);letter-spacing:.16em;font-size:11px}
.sl-quote cite::before{content:"";display:block;width:30px;height:2px;background:var(--sl-red);margin-bottom:14px}

/* ---------- About ---------- */
#sl-about{background:var(--sl-bg-2)}
.sl-about{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:40px;align-items:end}
.sl-about__photo{position:relative;align-self:stretch;min-height:560px}
.sl-about__photo::before{content:"";position:absolute;left:8%;right:4%;bottom:0;height:78%;background:radial-gradient(80% 70% at 50% 60%,rgba(225,37,27,.18),transparent 70%),linear-gradient(180deg,#152033,#0E141F);border:1px solid var(--sl-line);border-radius:var(--sl-radius)}
.sl-about__photo img{position:absolute;left:50%;bottom:0;transform:translateX(-50%);height:100%;width:auto;max-width:none;object-fit:contain}
.sl-about__mono{position:absolute;right:8%;top:26%;width:90px;opacity:.14}
.sl-pillars{display:flex;margin:34px 0 34px;border-top:1px solid var(--sl-line);border-bottom:1px solid var(--sl-line)}
.sl-pillars div{flex:1;padding:20px 8px;text-align:center;border-right:1px solid var(--sl-line);font-size:12px;letter-spacing:.26em;text-transform:uppercase;font-weight:500}
.sl-pillars div:last-child{border-right:0}
.sl-pillars svg{width:34px;height:34px;margin:0 auto 12px;display:block;stroke-width:1.3}
.sl-contactlist{list-style:none;margin:0;padding:0;display:grid;gap:12px;font-size:15px;color:var(--lt-text,#DCD9D3)}
.sl-contactlist li{display:flex;gap:14px;align-items:flex-start}
.sl-contactlist svg{width:18px;height:18px;flex:none;margin-top:4px;color:var(--lt-hi,#fff)}
.sl-contactlist a:hover{color:var(--lt-hi,#fff);text-decoration:underline;text-underline-offset:4px}
.sl-about__cta{display:flex;gap:26px;align-items:flex-start;flex-wrap:wrap;margin-top:6px}

/* ---------- Contact ---------- */
#sl-contact{min-height:720px}
.sl-contact{display:grid;grid-template-columns:minmax(0,1fr);position:static}
.sl-form{display:grid;grid-template-columns:1fr 1fr;gap:16px 16px;max-width:620px}
.sl-field{display:flex;flex-direction:column;gap:8px}
.sl-field--full{grid-column:1/-1}
.sl-field label{font-size:13px;color:var(--lt-text,#E4E1DB);letter-spacing:.02em}
.sl-field select,.sl-field input,.sl-field textarea{appearance:none;-webkit-appearance:none;width:100%;height:54px;border:1px solid rgba(var(--lt-hi-rgb,255,255,255),.55);background:rgba(var(--lt-lo-rgb,10,14,22),.55);color:var(--lt-hi,#fff);border-radius:var(--sl-radius);padding:0 16px;font:inherit;font-size:15px;transition:border-color .3s,background .3s}
.sl-field textarea{height:96px;padding:14px 16px;resize:vertical}
.sl-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.6'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:20px;padding-right:44px}
.sl-field select option{background:var(--lt-surface,#0E141F);color:var(--lt-hi,#fff)}
.sl-field select:focus,.sl-field input:focus,.sl-field textarea:focus{outline:none;border-color:var(--lt-hi,#fff);background:rgba(var(--lt-lo-rgb,10,14,22),.8)}
.sl-field input::placeholder,.sl-field textarea::placeholder{color:var(--lt-mid,#8f96a3)}
.sl-form .sl-btn{grid-column:1/-1;justify-self:start;min-width:320px;margin-top:8px}
.sl-form__fine{grid-column:1/-1;margin:0}
.sl-hp{position:absolute;left:-9999px}
.sl-form__msg{grid-column:1/-1;font-size:15px;min-height:1em;margin:0}

/* ---------- Closing ---------- */
#sl-closing{padding:clamp(90px,12vw,150px) 0;border-top:1px solid var(--sl-line)}
#sl-closing .sl-banner img,#sl-closing .sl-banner video{opacity:.8}
#sl-closing .sl-banner::after{background:linear-gradient(90deg,rgba(10,14,22,.9) 0%,rgba(10,14,22,.35) 60%,rgba(10,14,22,.2)),linear-gradient(180deg,var(--sl-bg),transparent 30%,transparent 70%,var(--sl-bg))}
.sl-pillline{display:flex;flex-wrap:wrap;gap:14px 26px;font-size:14px;letter-spacing:.34em;text-transform:uppercase;font-weight:500;margin-top:8px}
.sl-pillline span+span::before{content:"|";color:var(--sl-red);margin-right:26px}

/* ---------- Footer ---------- */
#sl-footer{background:#080B11;border-top:1px solid var(--sl-line);padding:70px 0 0;font-size:15px}
.sl-foot{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.1fr;gap:40px;padding-bottom:50px}
.sl-foot__logo{height:62px;width:auto;margin-bottom:22px}
.sl-foot p{color:var(--sl-muted);font-weight:300;margin:0 0 20px;max-width:36ch}
.sl-foot h4{font-size:1.35rem;font-weight:500;margin:0 0 18px;letter-spacing:-.01em}
.sl-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.sl-foot ul a{color:#CFCBC4;transition:color .3s}
.sl-foot ul a:hover{color:#fff}
.sl-foot__tag{font-size:11px;letter-spacing:.42em;text-transform:uppercase;color:var(--sl-dim)}
.sl-legal{border-top:1px solid var(--sl-line);padding:22px 0 28px;display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;align-items:center;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--sl-dim)}
.sl-legal__eho{display:inline-flex;align-items:center;gap:10px}
.sl-legal__eho svg{width:26px;height:26px}

/* ---------- Reveal animation ---------- */
.sl-js [data-reveal]{opacity:0;transform:translate3d(0,34px,0);transition:opacity 1s var(--sl-ease-out),transform 1.1s var(--sl-ease-out),clip-path 1.2s var(--sl-ease-out);transition-delay:var(--sl-d,0s)}
.sl-js [data-reveal="fade"]{transform:none}
.sl-js [data-reveal="left"]{transform:translate3d(-40px,0,0)}
.sl-js [data-reveal="right"]{transform:translate3d(40px,0,0)}
.sl-js [data-reveal="zoom"]{transform:scale(.94)}
.sl-js [data-reveal="mask"]{clip-path:inset(0 0 100% 0);transform:translate3d(0,40px,0)}
.sl-js [data-reveal="rule"]{transform:scaleX(0);opacity:1}
.sl-js [data-reveal="photo"]{transform:translate3d(0,60px,0) scale(.98)}
.sl-js [data-reveal].is-in{opacity:1;transform:none;clip-path:inset(0 0 0 0)}

/* hero intro */
.sl-js #sl-hero .sl-intro{opacity:0;transform:translate3d(0,30px,0);transition:opacity 1.1s var(--sl-ease-out),transform 1.2s var(--sl-ease-out);transition-delay:var(--sl-d,0s)}
.sl-js #sl-hero .sl-intro--photo{transform:translate3d(40px,20px,0)}
.sl-ready #sl-hero .sl-intro{opacity:1;transform:none}

/* ---------- Responsive ---------- */
@media (max-width:1180px){
  .sl-nav{gap:20px}
  .sl-header__cta .sl-btn--ghost{display:none}
  .sl-svc{grid-template-columns:repeat(2,1fr)}
  .sl-car{--sl-car-cols:2}
}
@media (max-width:1024px){
  .sl-nav,.sl-header__cta{display:none}
  .sl-burger{display:block}
  .sl-brand__name strong{font-size:20px}
  .sl-hero__grid{grid-template-columns:1fr}
  .sl-hero__copy{max-width:640px}
  .sl-hero__photo{height:min(72%,720px);right:-12%}
  .sl-hero__shade{background:linear-gradient(90deg,rgba(7,10,16,.9) 0%,rgba(7,10,16,.6) 50%,rgba(7,10,16,.2) 100%),linear-gradient(180deg,rgba(7,10,16,.5) 0%,rgba(7,10,16,0) 26%,rgba(7,10,16,0) 62%,var(--sl-bg) 100%)}
  .sl-team{grid-template-columns:1fr}
  .sl-pass,.sl-mkt,.sl-rev{grid-template-columns:1fr 1fr}
  .sl-pass>:last-child,.sl-mkt>:last-child,.sl-rev>:last-child{grid-column:1/-1}
  .sl-nb__img{inset:0 0 45% 0}
  .sl-nb__img::after{background:linear-gradient(180deg,rgba(10,14,22,.2) 0%,rgba(10,14,22,.5) 60%,var(--sl-bg) 100%)}
  .sl-nb{grid-template-columns:1fr;padding-top:min(52vw,420px)}
  .sl-nb__copy{grid-column:1}
  .sl-about,.sl-contact{grid-template-columns:1fr}
  .sl-about__photo{min-height:520px;order:2}
  .sl-foot{grid-template-columns:1fr 1fr}
  .sl-head{flex-direction:column;align-items:flex-start}
}
@media (max-width:760px){
  :root{--sl-header-h:70px}
  #sl-hero{flex-direction:column;align-items:stretch;min-height:0;max-height:none;padding-bottom:0}
  .sl-hero__copy{padding-bottom:6px}
  .sl-hero__photo{position:relative;right:auto;bottom:auto;height:auto;width:100%;display:flex;justify-content:center;margin-top:8px;opacity:1}
  .sl-hero__photo img{height:min(112vw,470px);width:auto}
  .sl-scrollcue{display:none}
  .sl-eyebrow{font-size:11px;letter-spacing:.22em;gap:6px 10px}
  .sl-btn{white-space:normal;text-align:center;height:auto;min-height:var(--h);padding-top:12px;padding-bottom:12px;line-height:1.4}
  .sl-video__person{height:64%;right:-4%}
  .sl-video__label{max-width:52%}
  .sl-video__label strong{font-size:1.25rem}
  body.sl-body{font-size:16px}
  .sl-brand__logo{height:34px}
  .sl-brand__sep,.sl-brand__name span{display:none}
  .sl-brand__name strong{font-size:18px}
  #sl-hero{padding-top:calc(var(--sl-header-h) + 30px)}
  .sl-hero__shade{background:linear-gradient(180deg,rgba(7,10,16,.8) 0%,rgba(7,10,16,.55) 45%,rgba(7,10,16,.15) 75%,var(--sl-bg) 100%)}
  .sl-hero__cap{display:none}
  .sl-teambadge{margin-top:26px}
  .sl-btn-row .sl-btn{flex:1 1 100%}
  .sl-svc{grid-template-columns:1fr}
  .sl-svc__img{aspect-ratio:16/8}
  .sl-pass,.sl-mkt,.sl-rev{grid-template-columns:1fr}
  .sl-car__track{grid-auto-columns:86%}
  .sl-stats{grid-template-columns:1fr 1fr}
  .sl-stat{min-height:120px}
  .sl-stat--wide{flex-direction:column;align-items:flex-start;gap:8px}
  .sl-nb__tiles{grid-template-columns:1fr 1fr}
  .sl-video{aspect-ratio:4/5}
  .sl-video__bg{object-position:30% 50%}
  .sl-video__play{top:auto;bottom:28px;transform:none;flex-direction:column;align-items:flex-start;gap:16px}
  .sl-form{grid-template-columns:1fr}
  .sl-form .sl-btn{min-width:0;width:100%}
  .sl-pillars div{font-size:10.5px;letter-spacing:.18em;padding:16px 4px}
  .sl-about__photo{min-height:440px}
  .sl-foot{grid-template-columns:1fr}
  .sl-pillline{letter-spacing:.24em;gap:10px 16px}
  .sl-pillline span+span::before{margin-right:16px}
  .sl-metric{padding:16px 10px 18px 14px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .sl-car__track{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
  .sl-js [data-reveal],.sl-js #sl-hero .sl-intro{opacity:1!important;transform:none!important;clip-path:none!important}
}

/* ---------- Shpresa in section heads (per approved mockup) ---------- */
.sl-head{position:relative;z-index:1}
.sl-head>div:first-child,.sl-head>a,.sl-head>.sl-btn{position:relative;z-index:2}
.sl-pass,.sl-mkt,.sl-car{position:relative;z-index:2}
.sl-headphoto{position:absolute;right:22%;bottom:calc(-1 * clamp(36px,5vw,56px) - 70px);height:470px;z-index:0;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,#000 72%,transparent 96%);mask-image:linear-gradient(180deg,#000 72%,transparent 96%)}
.sl-headphoto img{height:100%;width:auto;max-width:none;filter:drop-shadow(0 20px 40px rgba(0,0,0,.45))}
#sl-market .sl-headphoto{right:6%}
.sl-nb{grid-template-columns:minmax(0,1fr) minmax(0,450px) minmax(0,330px)}
.sl-nb__photo{position:absolute;right:max(-60px,calc((100vw - var(--sl-max))/2 - 70px));bottom:0;height:66%;z-index:0;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%);mask-image:linear-gradient(90deg,transparent 0,#000 22%)}
.sl-nb__photo img{height:100%;width:auto;max-width:none;object-fit:contain;object-position:bottom;filter:drop-shadow(0 20px 40px rgba(0,0,0,.5))}
.sl-nb__copy{position:relative;z-index:1}
#sl-reviews .sl-rev{max-width:800px;position:relative;z-index:2}
#sl-reviews .sl-btn-row{position:relative;z-index:2}
.sl-revphoto{position:absolute;right:max(var(--sl-gutter),calc((100vw - var(--sl-max))/2));bottom:0;height:82%;z-index:1;pointer-events:none}
.sl-revphoto img{height:100%;width:auto;max-width:none;object-fit:contain;object-position:bottom;filter:drop-shadow(0 20px 40px rgba(0,0,0,.45))}
@media (max-width:1180px){
  .sl-headphoto{right:4%;height:400px}
  #sl-reviews .sl-rev{max-width:none}
  .sl-revphoto{display:none}
}
@media (max-width:1024px){
  .sl-headphoto{display:none}
  .sl-nb{grid-template-columns:1fr}
  .sl-nb__photo{display:none}
}
#sl-newbuild .sl-h2{font-size:clamp(2.4rem,4.2vw,3.9rem)}

/* ---------- Review round 1 (ChatGPT + Jev) ---------- */
#sl-services{padding-bottom:clamp(56px,6vw,84px)}
.sl-banner img,.sl-banner video{opacity:.72}
.sl-banner::after{background:linear-gradient(180deg,var(--sl-bg) 0%,rgba(10,14,22,.45) 22%,rgba(10,14,22,.55) 70%,var(--sl-bg) 100%),linear-gradient(90deg,rgba(10,14,22,.86),rgba(10,14,22,.25) 72%)}
.sl-banner--soft img,.sl-banner--soft video{opacity:.5}
.sl-banner--soft::after{background:linear-gradient(180deg,var(--sl-bg) 0%,rgba(10,14,22,.6) 25%,rgba(10,14,22,.7) 75%,var(--sl-bg) 100%),linear-gradient(90deg,rgba(10,14,22,.8),rgba(10,14,22,.35))}
.sl-banner--room img,.sl-banner--room video{opacity:.6;object-position:center 40%}
.sl-banner--room::after{background:linear-gradient(90deg,rgba(10,14,22,.95) 0%,rgba(10,14,22,.78) 45%,rgba(10,14,22,.25) 100%),linear-gradient(180deg,var(--sl-bg) 0%,transparent 20%,transparent 80%,var(--sl-bg) 100%)}
#sl-team{background:var(--sl-bg)}
#sl-about{background:var(--sl-bg);padding-bottom:0}
/* Their animated photo bands (SLBgv) sit at z-index:-1: isolate so they paint above the section's own navy fill. */
#sl-team,#sl-about{isolation:isolate}
#sl-team .sl-banner img,#sl-team .sl-banner video{opacity:.75}
/* New construction: the top-down clip is framed on the pool and lawn, not the roof. */
.sl-nb__img img,.sl-nb__img video{object-position:78% 50%}
#sl-about .sl-about{align-items:end}
#sl-about .sl-about>div:first-child{padding-bottom:clamp(60px,7.4vw,100px)}
.sl-about__photo{min-height:640px}
.sl-about__photo::before{display:none}
.sl-about__photo img{height:100%;filter:drop-shadow(0 30px 60px rgba(0,0,0,.5))}
.sl-hero__logo{position:absolute;right:var(--sl-gutter);bottom:112px;height:84px;width:auto;z-index:3;pointer-events:none;filter:drop-shadow(0 2px 14px rgba(0,0,0,.55))}
.sl-closing__script{position:absolute;right:max(var(--sl-gutter),calc((100vw - var(--sl-max))/2 + var(--sl-gutter)));bottom:clamp(40px,6vw,80px);width:clamp(120px,14vw,190px);height:auto;opacity:.95}
#sl-closing .sl-wrap{position:static}
.sl-head__actions{display:flex;flex-direction:column;align-items:flex-end;gap:18px}
.sl-lcard__cta svg{color:var(--sl-red)}
.sl-lcard__cta:hover svg{color:inherit}
.sl-small{color:var(--sl-dim)}
@media (max-width:1024px){
  .sl-head__actions{align-items:flex-start;flex-direction:row;flex-wrap:wrap;align-items:center}
  #sl-hero .sl-hero__logo{top:calc(var(--sl-header-h) + 28px);bottom:auto;height:64px}
  #sl-about{padding-bottom:0}
  .sl-about__photo{min-height:520px;margin-top:10px}
}
@media (max-width:760px){
  .sl-section{padding:56px 0}
  #sl-about{padding-bottom:0}
  #sl-about .sl-about>div:first-child{padding-bottom:0}
  .sl-hero__photo{justify-content:flex-end;margin-top:-18px;padding-right:4px}
  .sl-hero__photo img{height:min(88vw,360px)}
  .sl-hero__copy{padding-bottom:0}
  #sl-hero .sl-hero__logo{top:auto;bottom:24px;left:var(--sl-gutter);right:auto;height:52px}
  /* compact horizontal service cards */
  .sl-svc{gap:12px}
  .sl-svc__card{flex-direction:row;min-height:150px}
  .sl-svc__img{aspect-ratio:auto;width:40%;flex:none}
  .sl-svc__img::after{background:linear-gradient(90deg,transparent 55%,var(--sl-card))}
  .sl-svc__body{padding:16px 16px 14px 14px;grid-template-columns:1fr;gap:6px;align-content:center}
  .sl-svc__body svg.sl-ico{width:30px;height:30px;grid-row:auto}
  .sl-svc__body .sl-h3{font-size:1.15rem}
  .sl-svc__body p{font-size:13.5px}
  .sl-svc__go{grid-column:1;margin-top:2px}
  /* swipe rows instead of long stacks */
  .sl-pass,.sl-mkt,.sl-rev{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:84%;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin:0 calc(-1 * var(--sl-gutter));padding:4px var(--sl-gutter) 12px;scrollbar-width:none;scroll-padding-left:var(--sl-gutter)}
  .sl-pass::-webkit-scrollbar,.sl-mkt::-webkit-scrollbar,.sl-rev::-webkit-scrollbar{display:none}
  .sl-pass>*,.sl-mkt>*,.sl-rev>*{scroll-snap-align:start}
  .sl-pass>:last-child,.sl-mkt>:last-child,.sl-rev>:last-child{grid-column:auto}
  .sl-swipe-hint{display:flex}
  .sl-car__track{grid-auto-columns:84%}
  .sl-small{font-size:14px;line-height:1.55}
  .sl-closing__script{position:relative;right:auto;bottom:auto;display:block;margin-top:26px;width:130px}
  .sl-about__photo{min-height:470px}
  .sl-metric label{font-size:10px}
}
.sl-swipe-hint{display:none;align-items:center;gap:8px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--sl-muted);margin:0 0 14px}
.sl-swipe-hint svg{width:16px;height:16px;color:var(--sl-red)}


/* ---------- Review round 2 (ChatGPT) ---------- */
.sl-revphoto{height:72%;right:max(0px,calc((100vw - var(--sl-max))/2 - 30px));-webkit-mask-image:linear-gradient(180deg,#000 78%,transparent 100%);mask-image:linear-gradient(180deg,#000 78%,transparent 100%)}
.sl-about__photo::after{content:"";position:absolute;left:12%;right:0;top:18%;bottom:0;background:radial-gradient(60% 55% at 50% 55%,rgba(225,37,27,.16),transparent 70%);z-index:-1}
.sl-about__photo{isolation:isolate}
.sl-pillars{margin:30px 0 30px}
.sl-pillars div{padding:14px 6px;font-size:11px}
.sl-pillars svg{width:26px;height:26px;margin-bottom:8px}
.sl-video__shade{background:linear-gradient(90deg,rgba(8,11,17,.92) 0%,rgba(8,11,17,.6) 38%,rgba(8,11,17,.08) 68%),linear-gradient(0deg,rgba(8,11,17,.7),transparent 45%)}
.sl-video__person{height:84%}
.sl-stat{padding:clamp(20px,2.4vw,30px);min-height:136px}
.sl-stat b{font-size:clamp(2.5rem,4.6vw,3.8rem)}
.sl-stat--wide{padding-top:clamp(26px,3vw,38px);padding-bottom:clamp(26px,3vw,38px)}
.sl-stat--wide span{color:var(--lt-text,#E4E1DB)}
.sl-team{align-items:end}
@media (max-width:760px){
  .sl-quote{padding:24px 20px 20px}
  .sl-quote blockquote{font-size:15.5px}
  .sl-closing__script{margin:34px 0 0 auto;width:112px}
  .sl-pillline{margin-top:16px}
  .sl-foot p,.sl-foot ul a{font-size:15px;line-height:1.55}
  .sl-small{font-size:14px;line-height:1.55}
  .sl-legal{font-size:13px;letter-spacing:.06em}
  .sl-video__person{height:56%}
  .sl-video__label span{letter-spacing:.16em}
}

/* ---------- Hero background pause control ---------- */
.sl-hero__pause{position:absolute;left:var(--sl-gutter);bottom:26px;z-index:4;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(10,14,22,.45);color:#fff;display:grid;place-items:center;cursor:pointer;opacity:.7;transition:opacity .3s,background .3s,border-color .3s;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.sl-hero__pause[hidden]{display:none}
.sl-hero__pause:hover,.sl-hero__pause:focus-visible{opacity:1;border-color:#fff}
.sl-hero__pause svg{width:16px;height:16px}
.sl-hero__pause .sl-i-play{display:none}
.sl-hero__pause.is-paused .sl-i-play{display:block}
.sl-hero__pause.is-paused .sl-i-pause{display:none}
@media (max-width:760px){.sl-hero__pause{bottom:auto;top:calc(var(--sl-header-h) + 10px);left:auto;right:var(--sl-gutter);width:36px;height:36px}}

/* ---------- Placeholder pages (buy, sell, invest, business, listings, market, resources) ---------- */
.sl-phero{position:relative;overflow:hidden;isolation:isolate;min-height:min(100svh,860px);display:flex;align-items:center;padding:calc(var(--sl-header-h) + 60px) 0 90px}
.sl-phero .sl-hero__media img{opacity:.85}
.sl-phero .sl-hero__shade{background:linear-gradient(90deg,rgba(7,10,16,.94) 0%,rgba(7,10,16,.78) 42%,rgba(7,10,16,.3) 100%),linear-gradient(180deg,rgba(7,10,16,.6) 0%,rgba(7,10,16,0) 30%,rgba(7,10,16,0) 64%,var(--sl-bg) 100%)}
.sl-phero__copy{position:relative;z-index:2;max-width:720px}
.sl-phero .sl-h1{font-size:clamp(2.9rem,6.4vw,5.6rem);margin-bottom:26px}
.sl-phero__soon{display:inline-flex;align-items:center;gap:12px;margin:0 0 18px;font-size:12px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:#fff}
.sl-phero__soon::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--sl-red);box-shadow:0 0 0 5px rgba(225,37,27,.18)}
.sl-phero .sl-lede{max-width:46ch}
.sl-js .sl-phero .sl-intro{opacity:0;transform:translate3d(0,30px,0);transition:opacity 1.1s var(--sl-ease-out),transform 1.2s var(--sl-ease-out);transition-delay:var(--sl-d,0s)}
.sl-ready .sl-phero .sl-intro{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.sl-js .sl-phero .sl-intro{opacity:1!important;transform:none!important}}
@media (max-width:760px){.sl-phero{min-height:0;padding:calc(var(--sl-header-h) + 56px) 0 64px}}

/* ---------- Header fit with the 7-item nav ----------
   Full nav + both CTAs from 1401px; the ghost "Search Homes" CTA steps aside (it stays in the hero
   and the drawer) from 1181px to 1400px, with tighter spacing up to 1300px; at 1180px and below
   the burger and drawer take over. */
@media (min-width:1181px) and (max-width:1400px){
  .sl-header__in{gap:24px}
  .sl-nav{gap:24px}
  .sl-header__cta .sl-btn--ghost{display:none}
}
@media (min-width:1181px) and (max-width:1300px){
  .sl-header__in{gap:22px}
  .sl-nav{gap:20px}
  .sl-nav>a,.sl-nav__btn{letter-spacing:.16em}
}
@media (max-width:1180px){
  .sl-nav,.sl-header__cta{display:none}
  .sl-burger{display:block}
}

/* ---------- Homepage carousels v2: Town Passport, listings + Shpresa's sales, Market Pulse, testimonials ----------
   All four use the generic .sl-car component (site.js SLCarousel); cards stretch to equal height per carousel. */
.sl-car__track{padding-top:8px}
.sl-car .sl-pass__card,.sl-car .sl-mcard,.sl-car .sl-quote{height:100%}
.sl-credit{margin:0;padding:0 20px 16px;font-size:14px;line-height:1.45;color:var(--sl-dim);letter-spacing:.01em}
.sl-tcard .sl-credit{min-height:calc(2 * 1.45em + 16px)}
.sl-credit a{text-decoration:underline;text-decoration-color:rgba(var(--lt-hi-rgb,255,255,255),.28);text-underline-offset:2px}
.sl-credit a:hover{color:var(--lt-hi,#fff);text-decoration-color:currentColor}
.sl-stale{color:var(--lt-red,#FFB4A8);font-weight:500}
.sl-chip{display:inline-block;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;padding:5px 9px;border-radius:2px;color:var(--lt-hi,#fff);background:rgba(225,37,27,.16);border:1px solid rgba(225,37,27,.7)}
.sl-tcard sup,.sl-mcard sup{font-size:.75em;line-height:0;vertical-align:super;color:var(--sl-gold);margin-left:2px;font-weight:500}

/* Town Passport card (county and town): photo full width on top, then eyebrow, name, tagline, fact rows, CTA, credit.
   No text sits on the photo. County cards (.sl-tcard--county) open the carousel, marked like Market Pulse's county
   cards with a red top edge. */
.sl-tcard__head{padding:18px 20px 0}
.sl-tcard__eyebrow{margin:0;font-size:11px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--sl-dim)}
.sl-tcard--county{position:relative;background:linear-gradient(180deg,rgba(24,35,54,.96),rgba(17,25,37,.96));border-color:var(--sl-line-2)}
.sl-tcard--county::before{content:"";position:absolute;left:0;right:0;top:0;z-index:2;height:3px;background:var(--sl-red)}
.sl-tcard--county .sl-tcard__eyebrow{display:flex;align-items:center;gap:8px;color:var(--lt-red,#FF8A7F)}
.sl-tcard--county .sl-tcard__eyebrow::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--sl-red)}
.sl-tcard.sl-tcard--county .sl-pass__rows li{grid-template-columns:20px minmax(0,150px) 1fr}
.sl-pass__rows span small{display:block;margin-top:2px;font-size:12px;line-height:1.35;color:var(--sl-dim)}
.sl-pass__card:focus{outline:none}
.sl-pass__card:focus-visible{outline:2px solid var(--lt-hi,#fff);outline-offset:-2px}
.sl-tcard button.sl-btn{background:transparent;font-family:inherit}
.sl-tcard button.sl-btn:hover{background:rgba(var(--lt-hi-rgb,255,255,255),.06)}
.sl-tcard__tag{margin:0;padding:10px 20px 0;font-size:14.5px;line-height:1.5;color:var(--sl-muted);min-height:calc(2 * 1.5em + 16px)}
.sl-tcard .sl-pass__rows{padding-top:6px}
.sl-tcard .sl-pass__rows li{grid-template-columns:20px minmax(0,128px) 1fr;padding:10px 0}
.sl-tcard .sl-pass__rows svg{width:18px;height:18px}
.sl-tcard .sl-pass__rows b{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;font-weight:500;color:var(--lt-hi,#fff);font-variant-numeric:tabular-nums}
.sl-tcard .sl-yoy{font-size:12px;font-weight:400}
.sl-tcard .sl-pass__rows .sl-yoy svg{width:9px;height:9px;color:inherit}
.sl-tcard .sl-btn{margin:auto 20px 12px}
.sl-tcard .sl-pass__img{aspect-ratio:16/9}

/* Listings filter */
.sl-seg{display:inline-flex;border:1px solid var(--sl-line-2);border-radius:var(--sl-radius);margin:0 0 22px;position:relative;z-index:2;background:rgba(var(--lt-lo-rgb,10,14,22),.5)}
.sl-seg[hidden]{display:none}
.sl-seg button{height:42px;padding:0 18px;border:0;background:transparent;color:var(--sl-muted);font-size:11.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:background .3s,color .3s;white-space:nowrap}
.sl-seg button+button{border-left:1px solid var(--sl-line-2)}
.sl-seg button:hover{color:var(--lt-hi,#fff)}
.sl-seg button[aria-pressed="true"]{background:var(--lt-inv,#fff);color:var(--sl-bg)}
.sl-seg span{opacity:.6;margin-left:4px;letter-spacing:.05em}

/* Shpresa's sale card: the town photo under a navy wash with the address on top (not a photo of the home) */
.sl-status--deal{background:var(--sl-red);color:#fff;z-index:3;display:inline-flex;align-items:center;gap:7px}
.sl-status--deal::before{content:"";width:6px;height:6px;border-radius:50%;background:#fff}
.sl-deal__img{background:var(--lt-surface,#0d1522);display:flex;flex-direction:column;justify-content:flex-end;gap:10px;padding:0 14px 10px 20px}
.sl-deal__img img{position:absolute;inset:0;filter:saturate(.55) brightness(.85)}
.sl-deal__img::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,18,32,.62) 0%,rgba(10,18,32,.7) 45%,rgba(8,12,20,.92) 100%),linear-gradient(90deg,rgba(14,28,52,.5),rgba(14,28,52,.15))}
.sl-deal__plate{position:relative;z-index:2;display:grid;grid-template-columns:22px 1fr;column-gap:10px;align-items:center}
.sl-deal__plate svg{width:20px;height:20px;color:var(--sl-red);grid-row:1/3;align-self:start;margin-top:5px}
.sl-deal__plate strong{font-size:clamp(1.35rem,1.9vw,1.6rem);font-weight:500;letter-spacing:-.01em;line-height:1.15;color:var(--lt-hi,#fff)}
.sl-deal__plate span{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--lt-text,#D5D9E0);margin-top:4px}
.sl-credit--over{position:relative;z-index:2;padding:0;font-size:14px;color:rgba(var(--lt-hi-rgb,235,238,243),.86)}
.sl-lcard__price small{font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--sl-gold);vertical-align:middle;margin-left:6px}
.sl-lcard__role{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--lt-red,#FF8A7F);margin:2px 0}
.sl-lcard__city i{font-style:normal;color:var(--sl-red);margin:0 4px}
.sl-lcard__facts:empty{border-top:1px solid var(--sl-line);padding-top:0;min-height:0}

/* Market Pulse */
.sl-car .sl-mcard{display:flex;flex-direction:column}
.sl-car .sl-mcard__grid{margin-top:auto}
.sl-mcard__head h3 sup{font-size:.5em}
.sl-mcard--county{background:linear-gradient(180deg,rgba(24,35,54,.96),rgba(17,25,37,.96));border-color:var(--sl-line-2);box-shadow:inset 0 2px 0 var(--sl-red)}
.sl-mcard__chart{padding:14px 18px 0}
.sl-mcard__chart::after{display:none}
.sl-mcard__chart .sl-chip{position:relative;z-index:2}
.sl-spark{position:absolute;left:18px;right:18px;bottom:6px;top:44px;margin:0;display:flex;flex-direction:column}
.sl-spark svg{display:block;width:100%;flex:1;min-height:0;overflow:visible}
.sl-spark figcaption{display:flex;justify-content:space-between;gap:8px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--sl-dim);margin-top:4px;white-space:nowrap}
.sl-mcard--county .sl-mcard__head{margin-top:0;padding-top:10px}
.sl-mcard--county .sl-metric b{font-size:clamp(1.3rem,1.9vw,1.62rem)}
.sl-mkt__note{margin:0;max-width:64ch}
.sl-mkt__note a,[data-towns-note] a{text-decoration:underline}

/* Testimonials */
.sl-car .sl-quote{display:flex;flex-direction:column}
.sl-quote__text{flex:none!important;margin-bottom:14px!important;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;line-clamp:6;overflow:hidden}
.sl-quote.is-open .sl-quote__text{display:block;-webkit-line-clamp:unset;line-clamp:none;overflow:visible}
.sl-quote__more{align-self:flex-start;background:none;border:0;padding:4px 0;margin:0 0 6px;color:var(--lt-hi,#fff);font-size:11.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;text-decoration:underline;text-decoration-color:var(--sl-red);text-underline-offset:5px;text-decoration-thickness:2px}
.sl-quote__more[hidden]{display:none}
.sl-quote figcaption{margin-top:auto;padding-top:14px}
.sl-quote--own cite span{color:var(--lt-text,#E4E1DB)}
.sl-rev__cta{margin-top:34px;position:relative;z-index:2}

@media (max-width:760px){
  .sl-tcard__tag{min-height:calc(3 * 1.5em + 16px);font-size:14px}
  .sl-tcard .sl-pass__rows li{grid-template-columns:18px minmax(0,112px) 1fr;font-size:13.5px}
  .sl-tcard.sl-tcard--county .sl-pass__rows li{grid-template-columns:18px minmax(0,132px) 1fr}
  .sl-seg{display:flex;width:100%}
  .sl-seg button{flex:1 1 auto;padding:0 8px;letter-spacing:.1em;font-size:10.5px;height:auto;min-height:44px;white-space:normal;line-height:1.25}
  .sl-seg span{display:block;margin:2px 0 0}
  .sl-mcard--county .sl-mcard__head h3{font-size:1.6rem}
  .sl-mcard--county .sl-mcard__head small{display:none}
  .sl-spark figcaption span:nth-child(2){display:none}
}

/* ---------- Estimate disclaimer (one component for every calculator, market tool and listing payment estimate) ----------
   Markup comes from SLCalc.disclaimer() in sl-tools.js; it always sits directly under a tool's results. */
.sl-disclaim{display:flex;align-items:flex-start;gap:10px;margin:18px 0 0;padding:12px 14px;border:1px solid var(--sl-line);border-radius:var(--sl-radius);background:rgba(var(--lt-hi-rgb,255,255,255),.03);font-size:15px;line-height:1.5;color:var(--lt-text,#D5D9E0);text-align:left}
.sl-disclaim svg{flex:none;width:18px;height:18px;margin-top:2px;color:var(--lt-text,#D5D9E0)}
.sl-disclaim strong{font-weight:600;color:var(--lt-hi,#fff)}

/* ---------- Dual-color system (light sections) ----------
   .sl-light turns a section into a white canvas (.sl-light--warm: warm off-white #F6F4F0). It redefines the shared
   tokens and the --lt-* variables; every themeable literal in the stylesheets reads var(--lt-<role>, <dark value>),
   so outside .sl-light nothing changes. .sl-dark inside a light section is a dark "instrument panel" island
   (calculators, quizzes, the video player, forms): it restores the dark tokens and unsets the --lt-* variables.
   Contrast on #FFFFFF / #F6F4F0: text #0A0E16 18.9 / 17.4, muted #4A5363 7.9 / 7.2, dim #566070 6.4 / 5.9,
   red ink #C21D14 6.3 / 5.8. */
.sl-light{
  --sl-bg:#FFFFFF;--sl-bg-2:#F6F4F0;--sl-card:#FFFFFF;--sl-card-2:#F6F4F0;
  --sl-line:#E3DFD8;--sl-line-2:#CDC6BB;
  --sl-text:#0A0E16;--sl-muted:#4A5363;--sl-dim:#566070;--sl-red-ink:#C21D14;--sl-green:#1D7348;--sl-gold:#8A6420;
  --lt-hi:#0A0E16;--lt-text:#1F2633;--lt-mid:#4A5363;--lt-red:#C21D14;--lt-green:#1D7348;--lt-gold:#8A6420;
  --lt-inv:#0A0E16;--lt-surface:#FFFFFF;--lt-line-solid:#E3DFD8;
  --lt-hi-rgb:10,14,22;--lt-lo-rgb:255,255,255;--lt-mid-rgb:74,83,99;--lt-gold-rgb:138,100,32;--lt-shadow-rgb:46,38,28;
  --sl-shadow:0 1px 2px rgba(46,38,28,.05),0 14px 34px -22px rgba(46,38,28,.28);
  background:var(--sl-bg);color:var(--sl-text)
}
.sl-light--warm{--sl-bg:#F6F4F0;--sl-bg-2:#FFFFFF}
.sl-dark,.sl-light .sl-dark,.sl-light .sl-deal__img{
  --sl-bg:#0A0E16;--sl-bg-2:#0E141F;--sl-card:#111925;--sl-card-2:#162031;
  --sl-line:rgba(255,255,255,.14);--sl-line-2:rgba(255,255,255,.24);
  --sl-text:#F4F1EC;--sl-muted:#BAC1CB;--sl-dim:#A7B0BC;--sl-red-ink:#F2665D;--sl-green:#3FB57A;--sl-gold:#D9B77A;
  --lt-hi:initial;--lt-text:initial;--lt-mid:initial;--lt-red:initial;--lt-green:initial;--lt-gold:initial;
  --lt-inv:initial;--lt-surface:initial;--lt-line-solid:initial;
  --lt-hi-rgb:initial;--lt-lo-rgb:initial;--lt-mid-rgb:initial;--lt-gold-rgb:initial;--lt-shadow-rgb:initial;
  --sl-shadow:none;
  color:var(--sl-text)
}
/* Light sections always paint their own canvas (beats the per-section #id backgrounds, keeps any background-image). */
#sl-main .sl-section.sl-light,#sl-main .sl-light[class*="-section"]{background-color:var(--sl-bg)}
/* Form controls and toggles drawn with white SVG strokes get navy strokes on light. */
.sl-light .sl-field select,.sl-light .sl-calc__input select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A0E16' stroke-width='1.6'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
.sl-light .sl-dark .sl-field select,.sl-light .sl-dark .sl-calc__input select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.6'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
.sl-light .sl-calc__check input:checked+span::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='m2 6 3 3 5-6'/%3E%3C/svg%3E")}
.sl-light .sl-dark .sl-calc__check input:checked+span::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%230A0E16' stroke-width='2'%3E%3Cpath d='m2 6 3 3 5-6'/%3E%3C/svg%3E")}
.sl-light .sl-field select option{background:#fff;color:#0A0E16}
/* Light cards: white on the canvas, warm hairline, restrained shadow (the dark hover shadows are too heavy here). */
.sl-light .sl-pass__card,.sl-light .sl-lcard,.sl-light .sl-quote,.sl-light .sl-svc__card,.sl-light .sl-mcard{background:#fff;box-shadow:var(--sl-shadow)}
.sl-light .sl-pass__card:hover,.sl-light .sl-lcard:hover,.sl-light .sl-svc__card:hover{box-shadow:0 2px 4px rgba(46,38,28,.05),0 26px 50px -26px rgba(46,38,28,.38)}
.sl-light.sl-section+.sl-light.sl-section:not(.sl-light--warm),.sl-light--warm+.sl-light--warm{border-top:1px solid var(--sl-line)}
/* A short red rule bridges a dark section into a light one. */
.sl-light .sl-rule{background:var(--sl-red)}
.sl-light .sl-eyebrow i{color:var(--sl-red-ink)}
.sl-light .sl-status{--sl-gold:#D9B77A;--sl-red-ink:#F2665D}
.sl-light ::selection{background:rgba(225,37,27,.18);color:#0A0E16}
.sl-light :focus-visible{outline-color:var(--sl-red-2)}
/* ---------- Light polish (homepage + shared light components) ---------- */
/* Ghost buttons on a light canvas become navy outlines; inside a dark island they keep the glass version. */
.sl-light .sl-btn--ghost{border-color:#0A0E16;color:#0A0E16;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.sl-light .sl-btn--ghost:hover{background:#0A0E16;color:#fff}
.sl-light .sl-dark .sl-btn--ghost{border-color:rgba(255,255,255,.75);color:#fff;background:rgba(10,14,22,.25)}
.sl-light .sl-dark .sl-btn--ghost:hover{background:#fff;color:#0A0E16}
/* Photo cards on light keep a crisp photo edge (the fade into the card body reads as a milky veil on white). */
.sl-light .sl-svc__img::after{display:none}
.sl-light .sl-svc__body{padding-top:20px}
/* Services: the hero's navy continues as a band behind the top of the cards, so the cards straddle dark and white.
   The first 24px stay clear because the section overlaps the hero by that much (keeps the hero logo and caption whole). */
#sl-main #sl-services.sl-light{--sl-svc-band:130px;background:linear-gradient(180deg,transparent 0,transparent 24px,#070A10 24px,#070A10 var(--sl-svc-band),var(--sl-bg) var(--sl-svc-band))}
/* A banner inside a light section becomes a barely visible photographic wash (opt in with .sl-banner--wash). */
.sl-light .sl-banner--wash img,.sl-light .sl-banner--wash video{opacity:.16;filter:grayscale(1) invert(1) contrast(1.15);mix-blend-mode:multiply}
.sl-light .sl-banner--wash::after{background:linear-gradient(180deg,var(--sl-bg) 0%,transparent 34%,transparent 66%,var(--sl-bg) 100%)}
/* Contact: warm canvas with a faded luxury-home clip (SLBgv) across the whole band; heading and the dark inset form are
   centered on it. */
#sl-contact.sl-light{isolation:isolate;min-height:0}
#sl-contact .sl-contact{justify-items:center}
#sl-contact .sl-contact__in{width:100%;max-width:760px;display:flex;flex-direction:column;align-items:center;text-align:center}
#sl-contact .sl-contact__in .sl-lede{margin-left:auto;margin-right:auto}
#sl-contact .sl-form{width:100%;max-width:760px;text-align:left;margin-top:8px}
/* Phone: the form fills the width, so the clip sits as a band behind the heading and fades out under the form. */
@media (max-width:760px){
  #sl-contact .sl-banner--wash{bottom:auto;height:min(132vw,560px)}
  #sl-contact.sl-light .sl-banner--wash img,#sl-contact.sl-light .sl-banner--wash video{opacity:.22;object-position:62% 50%}
}
.sl-light .sl-form.sl-dark{max-width:680px;padding:clamp(26px,3vw,40px);background:#0E1521;border-radius:var(--sl-radius);box-shadow:0 2px 4px rgba(10,14,22,.08),0 40px 70px -36px rgba(10,14,22,.6)}
@media (max-width:760px){
  #sl-main #sl-services.sl-light{--sl-svc-band:64px}
  .sl-light .sl-svc__body{padding-top:16px}
  .sl-light .sl-form.sl-dark{padding:22px 18px 20px}
}
/* ---------- Faded background videos (.sl-bgv, see SLBgv in site.js) ----------
   The clip sits behind the section's content at --sl-bgv-o opacity over the section's own background color, under a
   soft gradient so text always reads. Light sections fade the clip into the light canvas instead. */
.sl-bgv{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;--sl-bgv-o:.32;background:var(--sl-bg)}
.sl-bgv img,.sl-bgv video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:var(--sl-bgv-o)}
.sl-bgv video{opacity:0;transition:opacity 1.1s var(--sl-ease)}
.sl-bgv video.is-on{opacity:var(--sl-bgv-o)}
.sl-bgv::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--sl-bg) 0%,transparent 22%,transparent 78%,var(--sl-bg) 100%)}
.sl-light .sl-bgv{--sl-bgv-o:.14}
.sl-light .sl-bgv img,.sl-light .sl-bgv video{filter:grayscale(.35)}
.sl-bgv~.sl-wrap{position:relative;z-index:1}
/* Photo holders animated in place (section banners, the new-construction photo, the listings alert band: any holder with data-sl-bgv): the clip lies exactly
   over the poster img and takes the img's own rules (the "img,video" selector pairs: opacity, filter, blend mode,
   object-position, scale; parallax is mirrored in site.js). It fades in from 0 to that same opacity while the poster fades
   out, so the band keeps the fade of the still photo. The holder's ::after washes paint after the clip, on top. */
[data-sl-bgv]:not(.sl-bgv):not(.sl-hbgv)>video{position:absolute;inset:0;visibility:hidden;pointer-events:none}
[data-sl-bgv]:not(.sl-bgv):not(.sl-hbgv)>video.is-on{visibility:visible;animation:sl-bgv-in 1.1s var(--sl-ease) both}
[data-sl-bgv].is-bgv-on:not(.sl-bgv):not(.sl-hbgv)>img{animation:sl-bgv-out 1.1s var(--sl-ease) forwards}
@keyframes sl-bgv-in{from{opacity:0}}
@keyframes sl-bgv-out{to{opacity:0}}

/* ---------- Oct 20 client round: header call button, homepage hero identity, footer compliance bar ----------
   Header: the red CTA is Shpresa's cell (tel: link). It stays visible beside the burger at 1180px and below,
   and becomes a square phone icon at 760px and below. Hero: no eyebrow or lede; her name sits under a smaller H1;
   the SL logo, team badge and social icons form one cluster in the bottom right corner. Footer: brokerage lockup,
   the official EHO and REALTOR(R) marks, license number and the franchise legend. */
.sl-header__call{gap:10px;letter-spacing:.1em;font-variant-numeric:tabular-nums}
.sl-header__call svg,.sl-drawer__call svg{width:16px;height:16px}
.sl-header__call:hover svg,.sl-drawer__call:hover svg{transform:none}
.sl-drawer__call{letter-spacing:.1em}
@media (min-width:1401px) and (max-width:1520px){
  .sl-header__in{gap:22px}
  .sl-nav{gap:22px}
}
@media (max-width:1180px){
  .sl-header__in{gap:12px}
  .sl-header__cta{display:flex;margin-left:auto}
  .sl-header__cta .sl-btn--ghost{display:none}
  .sl-burger{margin-left:0}
}
@media (max-width:760px){
  #sl-header .sl-header__call{width:46px;height:46px;min-height:46px;padding:0;gap:0;flex:none}
  .sl-header__call span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .sl-header__call svg{width:19px;height:19px}
  .sl-burger{flex:none}
}
/* Under 360px the brand and burger fill the bar; the call button lives in the drawer there. */
@media (max-width:359px){.sl-header__cta{display:none}.sl-burger{margin-left:auto}}

/* Hero type: H1 about 11 percent smaller at every width; her name as a light, widely tracked signature line. */
#sl-hero .sl-h1{font-size:clamp(2.67rem,6.6vw,5.7rem);margin-bottom:26px}
.sl-hero__name{display:flex;align-items:center;gap:18px;margin:0 0 38px;font-size:clamp(1.3rem,2.15vw,2rem);font-weight:350;letter-spacing:.34em;line-height:1.1;text-transform:uppercase;color:#F4F1EC;white-space:nowrap}
.sl-hero__name::before{content:"";flex:none;width:clamp(34px,3.4vw,52px);height:2px;background:var(--sl-red)}

/* Bottom right identity cluster: logo, team badge, social icons. */
.sl-hero__id{position:absolute;right:var(--sl-gutter);bottom:30px;z-index:3;display:flex;flex-direction:column;align-items:flex-end;gap:14px}
#sl-hero .sl-hero__id .sl-hero__logo{position:static;height:80px;width:auto;margin:0 4px 2px 0}
#sl-hero .sl-hero__id .sl-teambadge{margin:0;gap:12px;padding:9px 16px 9px 10px;background:rgba(10,14,22,.55)}
#sl-hero .sl-hero__id .sl-teambadge img{height:34px}
#sl-hero .sl-hero__id .sl-teambadge span{font-size:10.5px;letter-spacing:.2em}
#sl-hero .sl-hero__id .sl-teambadge:hover{border-color:rgba(255,255,255,.5)}
.sl-social{list-style:none;margin:0;padding:0;display:flex;gap:10px}
.sl-social a{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid rgba(244,241,236,.45);color:#F4F1EC;background:rgba(10,14,22,.4);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .3s,color .3s,border-color .3s,transform .3s var(--sl-ease)}
.sl-social svg{width:17px;height:17px}
.sl-social a:hover,.sl-social a:focus-visible{background:#F4F1EC;border-color:#F4F1EC;color:#0A0E16;transform:translateY(-2px)}
@media (max-width:1024px){
  #sl-hero .sl-hero__id .sl-hero__logo{height:66px}
}
@media (max-width:760px){
  .sl-hero__name{margin-bottom:28px;letter-spacing:.28em;gap:14px}
  /* Phone: the cluster joins the flow under her photo as a compact band (logo left, badge over socials right). */
  .sl-hero__id{position:relative;left:auto;right:auto;bottom:auto;display:grid;grid-template-columns:auto auto;grid-template-areas:"logo badge" "logo social";justify-content:start;align-items:center;gap:10px 18px;margin:-30px 0 0;padding:0 var(--sl-gutter) 48px}
  #sl-hero .sl-hero__id .sl-hero__logo{grid-area:logo;height:58px;margin:0}
  #sl-hero .sl-hero__id .sl-teambadge{grid-area:badge}
  .sl-hero__id .sl-social{grid-area:social}
  #sl-hero .sl-hero__id .sl-teambadge{padding:8px 12px 8px 8px;gap:10px}
  #sl-hero .sl-hero__id .sl-teambadge img{height:28px}
  #sl-hero .sl-hero__id .sl-teambadge span{font-size:9.5px;letter-spacing:.16em}
  .sl-social a{width:36px;height:36px}
}

/* Footer: socials under the contact list; the legal bar is a grid of brokerage lockup, marks and fine print. */
.sl-foot ul.sl-social--foot{display:flex;gap:10px;margin-top:24px}
.sl-social--foot a{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.sl-legal{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"broker marks" "fine marks";gap:14px 48px;align-items:center;padding:30px 0 30px}
.sl-legal__broker{grid-area:broker;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 22px}
.sl-legal__firm{font-size:17px;font-weight:500;letter-spacing:.14em;color:#F4F1EC}
.sl-legal__office{font-size:17px;letter-spacing:.06em;color:#F4F1EC;font-variant-numeric:tabular-nums;white-space:nowrap}
.sl-legal__office span{color:var(--sl-dim);margin-right:4px}
.sl-legal__office:hover{text-decoration:underline;text-underline-offset:4px}
.sl-legal__desc{order:3;flex-basis:100%;font-size:14px;letter-spacing:.02em;text-transform:none;color:var(--sl-dim)}
.sl-legal__fine{grid-area:fine;display:flex;flex-wrap:wrap;gap:8px 28px;font-size:13px;letter-spacing:.08em}
.sl-legal__fine span{white-space:nowrap}
/* Marks sit on the solid footer color. The REALTOR mark keeps at least half its block width (about 19px) of clear space. */
.sl-legal__marks{grid-area:marks;display:flex;align-items:center;gap:36px;padding:4px 0 4px 20px}
.sl-legal__eho{width:54px;height:auto}
.sl-legal__realtor{width:40px;height:auto}
@media (max-width:760px){
  .sl-legal{grid-template-columns:1fr;grid-template-areas:"broker" "marks" "fine";gap:22px;padding:26px 0 30px}
  .sl-legal__broker{flex-direction:column;align-items:flex-start;gap:6px}
  .sl-legal__firm{font-size:16px;letter-spacing:.1em}
  .sl-legal__desc{order:0;line-height:1.5}
  .sl-legal__marks{padding:4px 0}
  .sl-legal__fine{flex-direction:column;gap:8px;font-size:12px}
  .sl-legal__fine span{white-space:normal}
}
/* ---------- Animated page heroes (.sl-hbgv, see SLBgv in site.js) ----------
   A page hero's media holder (.sl-hero__media, .sl-sp-hero__media, .sl-lx-hero__media, .mk-hero__media,
   .sl-res-hero__media) carries data-sl-bgv. Its poster img shows at once; the clip fades in over it once it plays.
   Both render at full strength under a near-black veil (::after) set by --sl-hbgv-o, so the crossfade never brightens
   and the stock clips read as dark and faded as the old hero photos. The hero's own shade gradient stays on top, so
   text contrast is unchanged. Reduced Motion and Data Saver keep the poster only (SLBgv never fetches the clip). */
.sl-hbgv{--sl-hbgv-o:.5;background:#070a10;overflow:hidden}
.sl-hbgv img,.sl-hbgv video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sl-hbgv video{opacity:0;transition:opacity 1.2s var(--sl-ease)}
.sl-hbgv video.is-on{opacity:1}
.sl-hbgv::after{content:"";position:absolute;inset:0;background:#070a10;opacity:calc(1 - var(--sl-hbgv-o));pointer-events:none}
@media (max-width:374px){
  #sl-hero .sl-hero__id .sl-teambadge strong{letter-spacing:.08em;white-space:nowrap}
  #sl-hero .sl-hero__id{gap:10px 14px}
  #sl-hero .sl-hero__id .sl-hero__logo{height:52px}
}
