/* 2040 Sorrento Place listing page. Layered on top of site.css chrome. */
:root{ --ls-ink:#14161c; --ls-mut:#6d7280; --ls-line:#e6e2da; --ls-red:#E41738; --ls-navy:#16264a; --ls-cream:#faf8f4; }
.ls{ color:var(--ls-ink); font-family:Inter,system-ui,sans-serif; }
.ls .wrap{ max-width:1140px; margin:0 auto; padding:0 22px; }
.ls h1,.ls h2,.ls h3{ font-family:Oswald,Inter,sans-serif; letter-spacing:.4px; margin:0; }
.ls-kicker{ font-size:12px; letter-spacing:2.4px; text-transform:uppercase; color:var(--ls-red); font-weight:700; margin:0 0 6px; }
.ls-kicker.light{ color:#ffb3c0; }
.ls-lead{ font-size:17px; color:var(--ls-mut); max-width:760px; margin:0 0 22px; line-height:1.6; }

/* HERO */
.ls-hero{ background-size:cover; background-position:center; min-height:min(88vh,780px); display:flex; align-items:flex-end; color:#fff; }
.ls-hero-in{ padding:0 22px 54px; width:100%; }
.ls-eyebrow{ font-size:12.5px; letter-spacing:3px; text-transform:uppercase; color:#ffd9df; margin:0 0 8px; font-weight:700; }
.ls-hero h1,.ls-hero .ls-sub,.ls-hero .ls-price,.ls-hero .ls-eyebrow{ color:#fff !important; }
.ls-hero h1{ font-size:clamp(34px,6.2vw,68px); line-height:1.02; text-shadow:0 3px 18px rgba(0,0,0,.75),0 1px 3px rgba(0,0,0,.6); }
.ls-hero .ls-sub,.ls-hero .ls-quick span{ text-shadow:0 2px 10px rgba(0,0,0,.7); }
.ls-sub{ font-size:clamp(15px,2vw,19px); opacity:.94; margin:6px 0 0; }
.ls-price{ font-family:Oswald,sans-serif; font-size:clamp(30px,5vw,50px); font-weight:700; margin:14px 0 0; text-shadow:0 3px 18px rgba(0,0,0,.8),0 1px 3px rgba(0,0,0,.6); }
.ls-quick{ display:flex; flex-wrap:wrap; gap:10px; margin:18px 0 0; }
.ls-quick span{ background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.3); backdrop-filter:blur(6px); padding:8px 15px; border-radius:999px; font-size:13.5px; }
.ls-quick b{ font-family:Oswald,sans-serif; font-size:16px; margin-right:5px; }
.ls-herobtns{ display:flex; gap:11px; flex-wrap:wrap; margin-top:24px; }
.ls-btn{ display:inline-block; background:var(--ls-red); color:#fff; text-decoration:none; font-weight:800; font-size:14.5px; padding:13px 26px; border-radius:9px; border:2px solid var(--ls-red); transition:transform .08s,box-shadow .08s; }
.ls-btn:hover{ transform:translateY(-1px); box-shadow:0 8px 22px rgba(228,23,56,.32); }
.ls-btn.ghost{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.75); }
.ls-btn.big{ font-size:16.5px; padding:16px 30px; }

/* HOOK */
.ls-hook{ background:var(--ls-navy); color:#fff; padding:30px 0; }
.ls-hook p{ margin:0; color:#fff; font-family:Oswald,sans-serif; font-size:clamp(17px,2.5vw,25px); line-height:1.42; letter-spacing:.3px; }

/* SECTIONS */
.ls-sec{ padding:58px 0; }
.ls-sec.shade{ background:var(--ls-cream); border-top:1px solid var(--ls-line); border-bottom:1px solid var(--ls-line); }
.ls-sec h2{ font-size:clamp(24px,3.6vw,36px); margin:0 0 16px; }
.ls-sec p{ font-size:16px; line-height:1.68; color:#3c4048; margin:0 0 14px; }
.ls-two{ display:grid; grid-template-columns:1.55fr 1fr; gap:38px; align-items:start; }
@media(max-width:900px){ .ls-two{ grid-template-columns:1fr; } }
.ls-facts{ background:#fff; border:1px solid var(--ls-line); border-radius:14px; padding:20px 22px; box-shadow:0 2px 14px rgba(0,0,0,.05); position:sticky; top:90px; }
.ls-facts h3{ font-size:17px; margin:0 0 12px; }
.ls-facts table{ width:100%; border-collapse:collapse; font-size:14px; }
.ls-facts td{ padding:7px 0; border-bottom:1px solid #f0ece4; }
.ls-facts td:first-child{ color:var(--ls-mut); }
.ls-facts td:last-child{ text-align:right; font-weight:600; }
.ls-facts tr:last-child td{ border-bottom:0; }

/* FEATURES */
.ls-feats{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:12px; }
.ls-feats li{ background:#fff; border:1px solid var(--ls-line); border-left:4px solid var(--ls-red); border-radius:10px; padding:14px 17px; }
.ls-feats b{ display:block; font-size:15px; margin-bottom:3px; }
.ls-feats span{ font-size:13.5px; color:var(--ls-mut); line-height:1.5; }

  background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.78)); }
.ls-photo{ margin:22px 0 0; }
.ls-photo img{ width:100%; border-radius:14px; display:block; }
.ls-photo figcaption{ font-size:13px; color:var(--ls-mut); margin-top:8px; }

/* CAPTURE */
.ls-cap{ background:linear-gradient(135deg,#101725,#2a1016 70%); color:#fff; padding:58px 0; }
.ls-capgrid{ display:grid; grid-template-columns:1fr 1fr; gap:38px; align-items:start; }
@media(max-width:900px){ .ls-capgrid{ grid-template-columns:1fr; } }
.ls-cap h2,.ls-cap p{ color:#fff; }
.ls-capcopy h2{ font-size:clamp(26px,4vw,40px); margin:0 0 14px; color:#fff !important; }
.ls-capcopy p{ font-size:16.5px; line-height:1.65; color:#dfe3ea; margin:0 0 14px; }
.ls-capnote{ font-size:15px !important; color:#b9c0cc !important; }
.ls-capcall{ margin-top:22px; }
.ls-form{ background:#fff; color:var(--ls-ink); border-radius:16px; padding:26px 26px 22px; box-shadow:0 18px 50px rgba(0,0,0,.4); }
.ls-form h3{ font-size:21px; margin:0 0 16px; }
.ls-form label{ display:block; font-size:12.5px; font-weight:700; letter-spacing:.4px; color:#4a4f58; margin-bottom:12px; text-transform:uppercase; }
.ls-form input,.ls-form select,.ls-form textarea{ display:block; width:100%; box-sizing:border-box; margin-top:5px; padding:12px 13px; border:1px solid #d6d1c8; border-radius:9px;
  font-size:16px; font-family:inherit; font-weight:400; text-transform:none; letter-spacing:0; color:var(--ls-ink); background:#fff; }
.ls-form input:focus,.ls-form select:focus,.ls-form textarea:focus{ outline:none; border-color:var(--ls-red); box-shadow:0 0 0 3px rgba(228,23,56,.13); }
.ls-form textarea{ resize:vertical; }
#f_hp{ position:absolute; left:-9999px; width:1px; height:1px; }
.ls-form button{ width:100%; box-sizing:border-box; border:0; background:var(--ls-red); color:#fff; font-weight:800; font-size:16.5px; padding:15px; border-radius:10px; cursor:pointer; font-family:inherit; }
.ls-form button:hover{ background:#c00f2c; }
.ls-form button:disabled{ background:#bbb; cursor:default; }
.ls-formnote{ font-size:12.5px; color:var(--ls-mut); margin:11px 0 0; text-align:center; }
.ls-formnote.warn{ color:#b3261e; font-weight:600; }
.ls-thanks{ font-size:15.5px; line-height:1.6; color:#3c4048; }

/* AGENT */
.ls-agent{ display:grid; grid-template-columns:150px 1fr; gap:26px; align-items:start; background:#fff; border:1px solid var(--ls-line); border-radius:16px; padding:28px; box-shadow:0 3px 18px rgba(0,0,0,.06); }
@media(max-width:700px){ .ls-agent{ grid-template-columns:1fr; } }
.ls-agentphoto{ width:150px; height:150px; border-radius:50%; object-fit:cover; object-position:center top; display:block;
  border:4px solid #fff; box-shadow:0 4px 18px rgba(0,0,0,.18); }
.ls-agentbody h2{ font-size:31px; margin:0 0 3px; }
.ls-agenttitle{ color:var(--ls-red); font-weight:700; font-size:14.5px; margin:0 0 12px !important; }
.ls-award{ font-size:13px !important; color:var(--ls-mut) !important; font-style:italic; }
.ls-agentbtns{ display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; }
.ls-agentbtns .ghost{ background:#fff; color:var(--ls-red); border-color:var(--ls-red); }

.ls-disc{ background:#f2efe9; color:#7d7a73; font-size:11.5px; line-height:1.6; padding:20px 0; }

  color:#fff; font-size:34px; line-height:1; width:52px; height:64px; border-radius:9px; cursor:pointer; }

  background:var(--ls-red); color:#fff; text-decoration:none; font-weight:800; padding:15px; border-radius:11px; box-shadow:0 10px 28px rgba(0,0,0,.32); }
@media(max-width:760px){ .ls-facts{ position:static; } }

/* CAROUSEL */
.cx{ margin-top:6px; }
.cx-stage{ position:relative; background:#11141b; border-radius:14px; overflow:hidden; aspect-ratio:3/2; cursor:zoom-in; }
.cx-slide{ position:absolute; inset:0; margin:0; opacity:0; transition:opacity .28s ease; pointer-events:none; }
.cx-slide.on{ opacity:1; pointer-events:auto; }
.cx-slide img{ width:100%; height:100%; object-fit:cover; display:block; }
.cx-nav{ position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:54px; height:66px; border-radius:10px; cursor:pointer;
  background:rgba(12,15,22,.5); border:1px solid rgba(255,255,255,.32); color:#fff; font-size:34px; line-height:1; }
.cx-nav:hover{ background:rgba(12,15,22,.8); }
.cx-nav.prev{ left:14px; } .cx-nav.next{ right:14px; }
.cx-bar{ position:absolute; left:0; right:0; bottom:0; z-index:2; display:flex; align-items:baseline; gap:12px; flex-wrap:wrap;
  padding:34px 20px 15px; color:#fff; background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.82)); pointer-events:none; }
.cx-group{ font-size:11px; letter-spacing:2.2px; text-transform:uppercase; color:#ffb3c0; font-weight:700; }
.cx-cap{ font-size:15.5px; font-weight:600; flex:1; min-width:170px; }
.cx-count{ font-size:13px; opacity:.82; font-variant-numeric:tabular-nums; }
.cx-rail{ display:flex; gap:8px; overflow-x:auto; padding:11px 2px 4px; }
.cx-thumb{ flex:0 0 108px; height:76px; padding:0; border:2px solid transparent; border-radius:8px; overflow:hidden; cursor:pointer; background:#eee; opacity:.55; transition:opacity .15s,border-color .15s; }
.cx-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.cx-thumb:hover{ opacity:.9; }
.cx-thumb.on{ opacity:1; border-color:var(--ls-red); }
@media(max-width:640px){
  .cx-stage{ aspect-ratio:4/3; border-radius:11px; }
  .cx-nav{ width:42px; height:54px; font-size:27px; }
  .cx-cap{ font-size:13.5px; } .cx-thumb{ flex:0 0 84px; height:60px; }
}

/* MODAL VIEWER */
.cxm{ position:fixed; inset:0; z-index:9999; background:rgba(8,10,15,.96); display:flex; align-items:center; justify-content:center; }
.cxm[hidden]{ display:none; }
.cxm-frame{ display:flex; align-items:center; justify-content:center; width:100%; height:100%; padding:56px 78px 78px; box-sizing:border-box; }
.cxm-frame img{ max-width:100%; max-height:100%; object-fit:contain; border-radius:5px; box-shadow:0 24px 70px rgba(0,0,0,.7); }
.cxm-x{ position:absolute; top:12px; right:18px; z-index:2; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.32);
  color:#fff; font-size:30px; line-height:1; width:46px; height:46px; border-radius:50%; cursor:pointer; }
.cxm-x:hover{ background:rgba(255,255,255,.24); }
.cxm-nav{ position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:54px; height:70px; border-radius:10px; cursor:pointer;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.28); color:#fff; font-size:36px; line-height:1; }
.cxm-nav:hover{ background:rgba(255,255,255,.2); }
.cxm-nav.prev{ left:16px; } .cxm-nav.next{ right:16px; }
.cxm-bar{ position:absolute; bottom:20px; left:0; right:0; z-index:2; display:flex; gap:14px; justify-content:center; align-items:baseline;
  color:#fff; font-size:14.5px; padding:0 70px; }
.cxm-bar span:last-child{ opacity:.72; font-variant-numeric:tabular-nums; }
@media(max-width:640px){
  .cxm-frame{ padding:52px 8px 70px; }
  .cxm-nav{ width:40px; height:56px; font-size:26px; } .cxm-nav.prev{ left:5px; } .cxm-nav.next{ right:5px; }
  .cxm-bar{ font-size:12.5px; padding:0 12px; flex-direction:column; gap:3px; }
}

/* BRAND BAND */
.ls-brand{ background:var(--ls-cream); border-top:1px solid var(--ls-line); border-bottom:1px solid var(--ls-line); padding:44px 0; text-align:center; }
.ls-brandmark{ width:min(280px,64vw); height:auto; display:block; margin:0 auto 14px; }
.ls-brandline{ font-family:Oswald,sans-serif; font-size:clamp(15px,2.2vw,19px); letter-spacing:2.4px; text-transform:uppercase; color:#5a5f68; margin:0; }
.ls-brandline b{ color:var(--ls-ink); }
.ls-botbtn{ display:inline-flex; align-items:center; gap:9px; background:#1a1a1a; color:#fff; text-decoration:none; font-weight:800; font-size:15px;
  padding:14px 26px; border-radius:999px; box-shadow:0 6px 20px rgba(0,0,0,.22); }
.ls-botbtn:hover{ transform:translateY(-1px); }
.ls-botzap{ background:var(--ls-red); border-radius:6px; padding:2px 7px; font-size:13px; }

/* TOP ACTION STRIP (replaces the old sticky bottom bar so nothing overlaps) */
.ls-act{ background:#fff; border-bottom:1px solid var(--ls-line); padding:16px 0; }
.ls-actin{ display:flex; gap:11px; justify-content:center; align-items:center; flex-wrap:wrap; }
.ls-act .ls-btn{ padding:14px 30px; }
.ls-act .ghost{ background:#fff; color:var(--ls-red); border-color:var(--ls-red); }

/* VIDEO TOUR */
.vt{ position:relative; aspect-ratio:16/9; border-radius:14px; overflow:hidden; background:#0d1017; cursor:pointer; box-shadow:0 10px 34px rgba(0,0,0,.16); }
.vt-poster{ width:100%; height:100%; object-fit:cover; display:block; filter:brightness(.66); transition:filter .25s, transform .5s; }
.vt:hover .vt-poster{ filter:brightness(.55); transform:scale(1.02); }
.vt-play{ position:absolute; inset:0; margin:auto; width:82px; height:58px; padding:0; border:0; background:none; cursor:pointer; }
.vt-play .vt-bg{ fill:#212121; opacity:.82; transition:fill .2s,opacity .2s; }
.vt:hover .vt-play .vt-bg{ fill:var(--ls-red); opacity:1; }
.vt-label{ position:absolute; left:18px; bottom:16px; color:#fff; font-size:12px; letter-spacing:2.4px; text-transform:uppercase; font-weight:700;
  background:rgba(0,0,0,.42); border:1px solid rgba(255,255,255,.28); padding:6px 13px; border-radius:999px; backdrop-filter:blur(4px); }
.vt iframe{ width:100%; height:100%; border:0; display:block; }
@media(max-width:640px){ .vt{ border-radius:11px; } .vt-play{ width:64px; height:45px; } .vt-label{ font-size:10.5px; left:12px; bottom:12px; } }

/* LISTING AGENT PHOTO */
.ls-agentphoto{ width:150px; height:150px; border-radius:50%; object-fit:cover; object-position:center top; display:block;
  border:4px solid #fff; box-shadow:0 4px 18px rgba(0,0,0,.18); background:#eee; }
@media(max-width:700px){ .ls-agentphoto{ margin:0 auto 4px; } }
