/* DR Coastal Properties — landing page shared stylesheet */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--ink:#0a3d47;--sand:#faf9f7;--sand2:#f3efe8;--gold:#b68b5b;--line:#e6e6e6;--muted:#5a6b70}
html{scroll-behavior:smooth}
body{font-family:'Karla',system-ui,sans-serif;color:#222;background:#fff;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--ink);text-decoration:none}
a:hover{color:var(--gold)}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;color:var(--ink);letter-spacing:-0.01em}
h1{font-size:clamp(2.25rem,5vw,4rem);line-height:1.05}
h2{font-size:clamp(1.75rem,3.5vw,2.75rem);line-height:1.15;margin-bottom:1.25rem}
h3{font-size:1.4rem;margin-bottom:0.6rem}
p{margin-bottom:1rem;color:#444}
.wrap{max-width:1200px;margin:0 auto;padding:0 1.75rem}
.narrow{max-width:820px;margin:0 auto;padding:0 1.75rem}

/* Header */
.nav{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 2.25rem;max-width:1500px;margin:0 auto;gap:2rem}
.logo{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;line-height:1.1;color:var(--ink)}
.logo .logo-sub{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.55rem;color:var(--ink);font-weight:500;white-space:nowrap;display:flex;flex-direction:column;gap:.1rem;letter-spacing:-0.005em;line-height:1.05;transition:color .2s}
.logo .logo-sub strong{font-weight:500}
.logo .logo-sub em{font-family:'Karla',sans-serif;font-style:normal;font-size:.58rem;color:var(--muted);font-weight:700;letter-spacing:.2em;text-transform:uppercase;margin-top:.1rem}
.logo:hover .logo-sub{color:var(--gold)}
@media(max-width:720px){.logo .logo-sub{font-size:1.25rem}.logo .logo-sub em{font-size:.54rem;letter-spacing:.16em}}
.nav-links{display:flex;gap:2.25rem;align-items:center;list-style:none;font-size:1.02rem}
.nav-links > li{position:relative}
.nav-links a{font-weight:500;color:#333;transition:color .2s}
.nav-links a.nav-active{color:var(--gold)}
.nav-dropdown > button{background:none;border:0;cursor:pointer;font:inherit;font-weight:500;font-size:1.02rem;color:#333;display:inline-flex;align-items:center;gap:.3rem;padding:0;transition:color .2s}
.nav-dropdown > button:hover,.nav-dropdown:hover > button{color:var(--gold)}
.nav-dropdown > button::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transition:transform .25s;display:inline-block;margin-left:.15rem}
.nav-dropdown:hover > button::after,.nav-dropdown.is-open > button::after{transform:rotate(-135deg) translate(-3px,-3px)}
.nav-dropdown-menu{position:absolute;top:calc(100% + 14px);right:0;min-width:220px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 40px -20px rgba(10,61,71,.18);padding:.5rem 0;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .22s,transform .22s,visibility .22s;list-style:none;z-index:60}
.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown.is-open .nav-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}
.nav-dropdown-menu a{display:block;padding:.65rem 1.25rem;font-size:.9rem;color:#333;font-weight:500;transition:background .15s,color .15s}
.nav-dropdown-menu a:hover{background:var(--sand);color:var(--gold)}
.nav-dropdown-menu li + li a{border-top:1px solid var(--line)}

/* Hidden admin dropdown — only visible when localStorage flag is set */
.nav-admin{ display:none !important }
body.is-admin .nav-admin{ display:list-item !important }
.nav-admin-btn{ display:inline-flex !important; align-items:center; gap:.4rem; background:transparent; border:1px solid var(--line); border-radius:999px; padding:.4rem .85rem; font-family:inherit; font-size:.78rem; font-weight:600; letter-spacing:.04em; color:var(--muted); cursor:pointer; transition:background .2s,color .2s,border-color .2s }
.nav-admin-btn:hover{ background:var(--ink); color:#fff; border-color:var(--ink) }
.nav-admin-btn svg{ flex-shrink:0; opacity:.85 }
.nav-admin-btn::after{ display:none !important } /* suppress dropdown caret on admin pill */
/* Always-on tiny "Admin" entry link (sign-in path) — shown when logged out */
.admin-entry{
  display:block;
  margin-top:.55rem;
  list-style:none;
}
.admin-entry-link{
  display:inline-flex; align-items:center; gap:.4rem;
  font-family:'Karla',sans-serif;
  font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; font-weight:700;
  color:var(--muted,#7a8084); text-decoration:none; opacity:.7;
  transition:opacity .2s, color .2s;
}
.admin-entry-link:hover{ opacity:1; color:var(--ink,#0a3d47) }
.admin-entry-link svg{ flex-shrink:0; opacity:.6 }

/* Stealth owner-login dot — small visible · just before "© 2026..." in the footer */
.drcp-stealth{
  display:inline-block;
  margin-right:.45rem;
  font-size:18pt;
  line-height:1;
  color:var(--ink,#0a3d47);
  opacity:1;
  text-decoration:none;
  cursor:pointer;
  font-weight:700;
  vertical-align:middle;
  user-select:none;
  transition:color .2s, transform .2s;
}
.drcp-stealth:hover{ color:var(--gold,#b5894a); transform:scale(1.2) }
.drcp-stealth:focus-visible{ outline:1px dashed var(--gold,#b5894a); outline-offset:2px }

/* Admin wheel — inline footer panel (under language row), mounted only when JWT-authenticated */
.admin-wheel{
  display:block;
  margin-top:.85rem;
  padding-top:.85rem;
  border-top:1px dashed var(--line,#d9d3c4);
  font-family:'Karla',sans-serif;
  list-style:none;
}
.admin-wheel.is-stowed{ display:none }
.aw-label{
  display:flex; align-items:center; gap:.45rem;
  font-size:.62rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted,#7a8084); margin-bottom:.55rem; font-weight:700;
}
.aw-label svg{ flex-shrink:0; color:#1f8a4d }
.aw-label span{ flex:1 }
.aw-hide{
  background:transparent; border:0; color:var(--muted,#7a8084); cursor:pointer;
  font-size:1.1rem; line-height:1; padding:0 .35rem; border-radius:999px;
  transition:color .2s, background .2s;
}
.aw-hide:hover{ color:var(--ink,#0a3d47); background:rgba(0,0,0,.05) }
.aw-list{
  display:flex; flex-wrap:wrap; gap:.35rem .4rem; align-items:center;
}
.aw-link{
  display:inline-flex; align-items:center; padding:.32rem .7rem;
  border:1px solid var(--line,#d9d3c4); border-radius:999px;
  background:#fff; color:var(--ink,#0a3d47);
  font-family:inherit; font-size:.72rem; font-weight:600; letter-spacing:.04em;
  text-decoration:none; cursor:pointer;
  transition:background .2s, color .2s, border-color .2s, transform .15s;
}
.aw-link:hover{
  background:var(--ink,#0a3d47); color:#fff; border-color:var(--ink,#0a3d47);
  transform:translateY(-1px);
}
.aw-link-danger{ color:#a8332b; border-color:rgba(168,51,43,.3); background:#fff }
.aw-link-danger:hover{ background:#a8332b; color:#fff; border-color:#a8332b }
@media (max-width:640px){
  .aw-list{ gap:.3rem }
  .aw-link{ padding:.28rem .6rem; font-size:.68rem }
}
/* Button-style dropdown menu items (e.g., the m²↔ft² converter that opens a popover) */
.nav-dropdown-menu .nav-dd-tool{display:block;width:100%;text-align:left;background:transparent;border:0;font:inherit;padding:.65rem 1.25rem;font-size:.9rem;color:#333;font-weight:500;cursor:pointer;transition:background .15s,color .15s;font-family:inherit}
.nav-dropdown-menu .nav-dd-tool:hover{background:var(--sand);color:var(--gold)}
.nav-dropdown-menu li + li .nav-dd-tool{border-top:1px solid var(--line)}

/* Sotheby's-style hover: gold underline-from-center on top-level nav items (desktop only) */
@media (min-width:901px){
  .nav-links > li{position:relative}
  .nav-links > li:not(:has(.nav-lang)):not(:has(.cta-call)):not(:has(.nav-calc-btn))::after{
    content:"";position:absolute;left:50%;bottom:-8px;width:0;height:1.5px;background:var(--gold);
    transition:width .35s cubic-bezier(.4,0,.2,1),left .35s cubic-bezier(.4,0,.2,1);pointer-events:none
  }
  .nav-links > li:not(:has(.nav-lang)):not(:has(.cta-call)):not(:has(.nav-calc-btn)):hover::after{
    width:100%;left:0
  }
}
/* Separate CTA cluster from text links with a subtle left margin */
.nav-links > li:has(.nav-lang-btn){margin-left:1.25rem}
.nav-links > li:has(.cta-email){margin-left:.75rem}
.nav-links > li:has(.cta-call){margin-left:.5rem}
/* Language toggle */
.nav-lang{display:inline-flex;align-items:center;gap:2px;background:#f5f2ed;border:1px solid var(--line);border-radius:999px;padding:3px;font-size:.72rem;letter-spacing:.08em;font-weight:700}
.nav-lang-btn{background:transparent;border:0;padding:.35rem .65rem;border-radius:999px;color:#5a6770;font:inherit;cursor:pointer;transition:color .2s,background .2s;font-family:inherit;line-height:1}
.nav-lang-btn:hover{color:var(--ink)}
.nav-lang-btn.is-active{background:var(--ink);color:#fff}
.cta-call{background:var(--ink);color:#fff!important;padding:.6rem 1.1rem;border-radius:999px;font-weight:600;font-size:.85rem;display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}
.cta-call:hover{background:var(--gold);color:#fff!important}
.cta-email{background:#b68b5b;color:#fff!important;padding:.6rem 1.1rem;border-radius:999px;font-weight:600;font-size:.85rem;display:inline-flex;align-items:center;gap:.45rem;transition:background .2s,transform .2s,box-shadow .2s;box-shadow:0 2px 8px -2px rgba(232,119,34,.35);white-space:nowrap}
.cta-email:hover{background:#d3661a;color:#fff!important;transform:translateY(-1px);box-shadow:0 4px 12px -2px rgba(232,119,34,.45)}
.cta-email svg{flex-shrink:0}
/* Google Reviews pill — subtle gold accent, between resources and lang toggle */
.nav-links > li:has(.nav-reviews-link){margin-left:.5rem}
.nav-reviews-link{display:inline-flex;align-items:center;gap:.3rem;background:var(--gold);color:#fff!important;border:1px solid var(--gold);padding:.4rem .85rem;border-radius:999px;font-weight:600;font-size:.78rem;letter-spacing:.04em;white-space:nowrap;transition:background .2s,border-color .2s,transform .2s,box-shadow .2s}
.nav-reviews-link:hover{background:var(--ink);border-color:var(--ink);color:#fff!important;transform:translateY(-1px);box-shadow:0 4px 12px rgba(15,30,46,.18)}
/* Gold star inside the credentials list bullet (matches the marquee + nav star tone) */
.ah-credentials .cred-star{color:var(--gold);font-weight:700;display:inline-block;padding:0 .05em}

/* ─────────────────────────────────────────────────────────────
   CLIENT REVIEWS CAROUSEL (homepage)
   Editorial, boutique-luxury aesthetic — fade between slides,
   gold accent, generous whitespace. One review at a time.
   ───────────────────────────────────────────────────────────── */
.reviews-section{background:var(--sand);padding:5.5rem 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.reviews-header{text-align:center;margin-bottom:3rem}
.reviews-eyebrow{color:var(--gold);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;margin-bottom:.85rem}
.reviews-heading{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(1.85rem,3.2vw,2.65rem);line-height:1.15;color:var(--ink);margin:0;max-width:680px;margin-left:auto;margin-right:auto}
.reviews-carousel{position:relative;max-width:820px;margin:0 auto;outline:none}
.reviews-track{position:relative;min-height:300px;display:flex;align-items:center;justify-content:center;padding:0 3rem}
.review-card{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 3rem;opacity:0;visibility:hidden;transition:opacity .6s ease-out}
.review-card.is-active{opacity:1;visibility:visible;position:relative}
.review-stars{color:var(--gold);font-size:1.25rem;letter-spacing:.15em;margin-bottom:1.5rem}
.review-quote{font-family:'Cormorant Garamond',serif;font-weight:400;font-style:italic;font-size:clamp(1.15rem,1.8vw,1.45rem);line-height:1.55;color:var(--ink);margin:0 auto;max-width:680px;position:relative}
.review-quote::before{content:'\201C';position:absolute;top:-1.2rem;left:50%;transform:translateX(-50%);font-size:3rem;color:rgba(184,148,82,.35);font-family:'Cormorant Garamond',serif;line-height:1}
.review-meta{margin-top:1.75rem;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;font-size:.82rem;color:var(--muted);letter-spacing:.04em}
.review-name{color:var(--ink);font-weight:600;letter-spacing:.06em}
.review-divider{color:var(--gold);opacity:.6}
.review-source{display:inline-flex;align-items:center;gap:.35rem;color:var(--gold);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;border:1px solid rgba(184,148,82,.35);padding:.2rem .55rem;border-radius:999px;margin-left:.5rem}
.reviews-arrow{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;background:#fff;border:1px solid var(--line);color:var(--ink);font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;transition:background .2s,color .2s,border-color .2s,transform .2s;z-index:2}
.reviews-arrow:hover{background:var(--gold);color:#fff;border-color:var(--gold);transform:translateY(-50%) scale(1.05)}
.reviews-arrow-prev{left:-.5rem}
.reviews-arrow-next{right:-.5rem}
.reviews-dots{display:flex;justify-content:center;gap:.55rem;margin-top:2rem}
.reviews-dot{width:8px;height:8px;border-radius:50%;border:1px solid var(--gold);background:transparent;cursor:pointer;padding:0;transition:background .25s,transform .25s}
.reviews-dot.is-active{background:var(--gold);transform:scale(1.3)}
.reviews-dot:hover{background:rgba(184,148,82,.5)}
.reviews-cta{text-align:center;margin-top:2.5rem}
.reviews-cta-link{display:inline-block;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold);font-weight:600;font-size:.92rem;padding-bottom:2px;letter-spacing:.04em;transition:color .2s,border-color .2s}
.reviews-cta-link:hover{color:var(--gold);border-color:var(--ink)}

/* ─────────────────────────────────────────────────────────────
   HERO PORTRAIT MARQUEE — continuous-scroll review ribbon
   that sits directly under Sebastian's portrait photo. Tight,
   editorial cards, never stops, pauses on hover.
   ───────────────────────────────────────────────────────────── */
.hero-reviews-marquee{margin:3rem 0 0;padding:2rem 0 2.25rem;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--sand);width:100%;overflow:hidden}
.hero-reviews-header{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap;padding:0 1.5rem}
.hero-reviews-stars{color:var(--gold);font-size:1.05rem;letter-spacing:.18em;line-height:1}
.hero-reviews-meta{color:var(--muted);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.hero-reviews-viewport{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%)}
.hero-reviews-track{display:flex;gap:1.25rem;width:max-content;animation:heroRvScroll 120s linear infinite;padding:.25rem 0}
.hero-reviews-viewport:hover .hero-reviews-track,.hero-reviews-viewport:focus-within .hero-reviews-track{animation-play-state:paused}
@keyframes heroRvScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.hero-rv-tile{flex:0 0 auto;width:340px;background:#fff;border:1px solid var(--rule);border-radius:8px;padding:1.1rem 1.2rem;display:flex;flex-direction:column;gap:.6rem;box-shadow:0 1px 3px rgba(15,30,46,.05)}
.hero-rv-stars{color:var(--gold);font-size:.82rem;letter-spacing:.14em;line-height:1}
.hero-rv-text{margin:0;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:.96rem;line-height:1.55;color:var(--ink);font-weight:400}
.hero-rv-author{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;font-size:.74rem;color:var(--muted);letter-spacing:.04em;border-top:1px solid var(--rule);padding-top:.6rem;margin-top:auto}
.hero-rv-author > span:first-child{color:var(--ink);font-weight:600;letter-spacing:.06em}
.hero-rv-when{color:var(--gold);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;white-space:nowrap}
@media (prefers-reduced-motion: reduce){
  .hero-reviews-track{animation:none}
}
@media(max-width:900px){
  .hero-rv-tile{width:280px;padding:.9rem 1rem}
  .hero-rv-text{font-size:.88rem}
}
@media(max-width:720px){
  .reviews-section{padding:4rem 0}
  .reviews-track{padding:0 1rem;min-height:340px}
  .review-card{padding:0 .5rem}
  .reviews-arrow{width:36px;height:36px}
  .reviews-arrow-prev{left:-.25rem}
  .reviews-arrow-next{right:-.25rem}
  .review-source{display:block;margin:.5rem 0 0;width:fit-content;margin-left:auto;margin-right:auto}
  .review-meta{flex-direction:column;gap:.35rem}
  .review-divider{display:none}
}
@media(max-width:900px){
  .nav-links{
    display:none;
    position:fixed;top:0;right:0;bottom:0;
    width:min(86vw, 360px);
    background:#fff;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:5.5rem 1.5rem 2rem;
    z-index:1000;
    overflow-y:auto;
    box-shadow:-20px 0 60px -20px rgba(10,20,22,.25);
    transform:translateX(100%);
    transition:transform .3s cubic-bezier(.4,0,.2,1);
    font-size:1.05rem;
  }
  .nav-links.is-open{ display:flex; transform:translateX(0); }
  .nav-links > li{ width:100%; padding:.85rem 0; border-bottom:1px solid var(--rule,#E5E0D8); margin:0; }
  .nav-links > li:last-child{ border-bottom:0; }
  .nav-links > li:has(.nav-lang-btn),
  .nav-links > li:has(.cta-call),
  .nav-links > li:has(.nav-calc-btn){ margin:0; }
  .nav-links a{ display:block; color:var(--ink,#0a3d47); font-weight:600; }
  .nav-links .nav-dropdown-menu{ position:static; box-shadow:none; padding:.5rem 0 0 1rem; background:transparent; border:0; }
  .nav-links .nav-dropdown-menu li{ padding:.45rem 0; border:0; }
  .nav-links .nav-dropdown-menu a{ font-weight:500; color:var(--muted,#5f6a6d); font-size:.92rem; }
  .nav-links .nav-dropdown > button{ width:100%; text-align:left; padding:0; border:0; background:transparent; color:var(--ink,#0a3d47); font-weight:600; font-size:1.05rem; font-family:inherit; cursor:pointer; }
  .nav-links .nav-lang, .nav-links li:has(.cta-call){ padding-top:1.2rem; }
  .cta-call,.cta-email{display:inline-flex}
  /* Hamburger trigger */
  .nav-toggle{
    display:inline-flex; align-items:center; justify-content:center;
    width:44px; height:44px; padding:0;
    background:transparent; border:0; cursor:pointer;
    color:var(--ink,#0a3d47); position:relative; z-index:1001;
  }
  .nav-toggle svg{ width:26px; height:26px; }
  .nav-toggle .ic-close{ display:none; }
  .nav-toggle.is-open .ic-open{ display:none; }
  .nav-toggle.is-open .ic-close{ display:block; }
  /* Backdrop */
  .nav-backdrop{
    position:fixed; inset:0; background:rgba(10,20,22,.5);
    z-index:999; opacity:0; pointer-events:none;
    transition:opacity .3s ease;
  }
  .nav-backdrop.is-on{ opacity:1; pointer-events:auto; }
  body.nav-locked{ overflow:hidden; }
}
@media(min-width:901px){ .nav-toggle{ display:none; } }

/* Hero */
.hero{position:relative;min-height:62vh;display:flex;align-items:flex-start;justify-content:center;text-align:center;padding:6rem 1.75rem 5rem;background:#0a3d47;color:#fff;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background-image:url('/assets/hero-poster.jpg');background-size:cover;background-position:center;z-index:0}
/* Plain variant — solid brand teal, no beach image (used on blog, tools, sub-pillars, area guides) */
.hero.hero-plain{min-height:38vh;padding:4rem 1.75rem 3rem}
.hero.hero-plain::before{display:none!important;background-image:none!important}
.hero.hero-plain .eyebrow,.hero.hero-plain h1,.hero.hero-plain .lede,.hero.hero-plain .brand-row,.hero.hero-plain .stars{text-shadow:none}
.hero.hero-plain .hero-credit{display:none}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease;z-index:0;pointer-events:none;display:none}
.hero-video.is-ready{opacity:1}
@media (min-width: 900px){.hero-video{display:block}}
@media (prefers-reduced-motion: reduce){.hero-video{display:none !important}}
.hero>*:not(.hero-video):not(.hero-still):not(.hf-track){position:relative;z-index:2}
.hero .eyebrow,.hero h1,.hero .lede,.hero .brand-row,.hero .stars{text-shadow:0 2px 12px rgba(0,0,0,.55),0 1px 2px rgba(0,0,0,.35)}
.hero-inner{max-width:1100px;margin:0 auto;width:100%}
.eyebrow{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:1.25rem;font-weight:600}
.hero .eyebrow{font-size:clamp(.95rem,1.4vw,1.15rem);letter-spacing:.28em;margin-bottom:1.5rem}
.hero h1{color:#fff;margin-bottom:1.25rem;max-width:none;font-size:clamp(2.75rem,6.2vw,5rem);line-height:1.05}
.hero .lede{font-size:clamp(1.05rem,1.8vw,1.25rem);color:rgba(255,255,255,.95);max-width:780px;margin:0 auto 2rem;font-weight:300}
.hero .brand-row{justify-content:center}
.btn{display:inline-block;padding:.95rem 1.75rem;border-radius:999px;font-weight:600;font-size:.95rem;transition:all .25s;text-decoration:none;border:none;cursor:pointer}
.btn-primary{background:var(--gold);color:#fff!important}
.btn-primary:hover{background:#fff;color:var(--ink)!important;transform:translateY(-2px)}
.btn-ghost{background:transparent;color:#fff!important;border:1.5px solid rgba(255,255,255,.5)}
.btn-ghost:hover{background:rgba(255,255,255,.1);border-color:#fff}

/* Sections */
section{padding:5rem 0}
section.alt{background:var(--sand)}
.section-pill{display:inline-block;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);background:rgba(182,139,91,.1);padding:.4rem 1rem;border-radius:999px;margin-bottom:1.25rem;font-weight:600}
.grid{display:grid;gap:1.75rem}
.grid-2{grid-template-columns:1fr 1fr}
.grid-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.grid-2,.grid-3{grid-template-columns:1fr}}

/* Listing cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:2rem}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:transform .3s,box-shadow .3s}
.card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -20px rgba(10,61,71,.25)}
.card img{width:100%;height:220px;object-fit:cover;display:block}
.card-media{position:relative;width:100%;height:220px;overflow:hidden;background:#0a3d47}
.card-carousel{display:flex;width:100%;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.card-carousel::-webkit-scrollbar{display:none}
.card-carousel img{flex:0 0 100%;width:100%;height:220px;object-fit:cover;scroll-snap-align:start;user-select:none}
.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:999px;border:0;background:rgba(255,255,255,.92);color:var(--ink);font-size:1.25rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.25);opacity:0;transition:opacity .2s,background .2s;z-index:3}
.card-media:hover .carousel-arrow{opacity:.95}
.carousel-arrow:hover{background:var(--gold);color:#fff}
.carousel-prev{left:.6rem}
.carousel-next{right:.6rem}
.carousel-dots{position:absolute;bottom:.55rem;left:50%;transform:translateX(-50%);display:flex;gap:5px;padding:.3rem .5rem;background:rgba(10,20,22,.6);border-radius:999px;z-index:3;pointer-events:none}
.carousel-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55);transition:background .2s,transform .2s}
.carousel-dot.is-active{background:#fff;transform:scale(1.35)}
.carousel-expand{position:absolute;top:.75rem;right:.75rem;width:32px;height:32px;border-radius:8px;border:0;background:rgba(10,20,22,.78);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s;z-index:4}
.carousel-expand:hover{background:var(--gold);transform:scale(1.08)}
.card-media[data-count="1"] .carousel-expand{display:none}
@media (max-width:640px){.carousel-arrow{display:none}}
.card-body{padding:1.5rem}
.card-title{font-family:'Cormorant Garamond',serif;font-size:1.4rem;color:var(--ink);margin-bottom:.25rem}
.card-title a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s,color .2s}
.card-title a:hover{color:var(--gold);border-bottom-color:var(--gold)}
.card-detail-btn{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1rem;background:var(--gold);color:#fff!important;border-radius:999px;font-size:.82rem;font-weight:600;letter-spacing:.02em;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s;box-shadow:0 2px 8px -2px rgba(182,139,91,.4)}
.card-detail-btn:hover{background:#9b724a;transform:translateY(-1px);box-shadow:0 6px 14px -4px rgba(182,139,91,.55)}
.card-detail-btn svg{flex-shrink:0}
.card-loc{font-size:.82rem;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;margin-bottom:.75rem}
.card-price{font-size:1.1rem;color:var(--gold);font-weight:700;margin-bottom:.75rem}
.card-specs{display:flex;gap:.5rem;flex-wrap:wrap}
.chip{font-size:.72rem;background:var(--sand2);color:var(--ink);padding:.35rem .7rem;border-radius:999px;font-weight:600}

/* Rich facts row — beds/baths/m² */
.card-facts{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.75rem;font-size:.88rem;color:#556;padding-bottom:.7rem;border-bottom:1px dashed var(--line)}
.card-facts .fact{display:inline-flex;align-items:baseline;gap:.3rem}
.card-facts .fact strong{color:var(--ink);font-weight:700;font-size:1rem;font-family:'Cormorant Garamond',serif}

/* Amenity badges — ocean view, pool, furnished */
.card-amenities{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.75rem}
.amen{font-size:.72rem;padding:.28rem .65rem;border-radius:6px;font-weight:600;letter-spacing:.01em;background:rgba(10,61,71,.06);color:var(--ink)}
.amen-sea{background:rgba(10,61,71,.1);color:#0a3d47}
.amen-garden{background:rgba(76,175,80,.12);color:#2e7d32}
.amen-pool{background:rgba(33,150,243,.12);color:#1565c0}
.amen-furn{background:rgba(182,139,91,.14);color:#8a6a3f}

/* Photo gallery badge on cards */
.gallery-badge{position:absolute;top:.9rem;right:.9rem;background:#0a3d47;color:#fff;border:0;padding:.4rem .75rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.04em;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:all .2s;z-index:3;font-family:inherit}
.gallery-badge:hover{background:var(--gold);transform:scale(1.04)}
.gallery-badge svg{flex-shrink:0}

/* GLightbox — truly full-screen */
.glightbox-container .gcontainer,.glightbox-container .gslide{background:#000!important}
.glightbox-container .gslide-image{padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;width:100vw!important;height:100vh!important}
.glightbox-container .gslide-image img{width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important;border-radius:0!important;box-shadow:none!important;object-fit:contain!important;transition:all .25s ease}
.glightbox-container.native-size .gslide-image img{width:auto!important;height:auto!important;object-fit:none!important;image-rendering:-webkit-optimize-contrast}
.glightbox-container .gslide-media{max-width:none!important;max-height:none!important}
.glightbox-container .gslide-title{font-family:'Cormorant Garamond',serif;font-size:1.4rem;color:#fff}
.glightbox-container .gslide-desc{color:rgba(255,255,255,.72);letter-spacing:.05em}
.glightbox-container .gslide-description{position:fixed!important;bottom:0;left:0;right:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.85))!important;padding:3rem 1.5rem 1.25rem!important;max-width:none!important;text-align:center}
.glightbox-container .gnext,.glightbox-container .gprev{background:rgba(255,255,255,.1)!important;border:1px solid rgba(255,255,255,.15)!important;width:52px!important;height:52px!important}
.glightbox-container .gclose{background:rgba(255,255,255,.1)!important;border:1px solid rgba(255,255,255,.15)!important;width:44px!important;height:44px!important;top:1.25rem!important;right:1.25rem!important}
.gl-size-toggle{position:fixed;top:1.25rem;left:1.25rem;z-index:999999;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);color:#fff;padding:.5rem .9rem;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;gap:.45rem;font-family:inherit;transition:background .2s,border-color .2s}
.gl-size-toggle:hover{background:var(--gold);border-color:var(--gold)}
.gl-size-toggle svg{width:14px;height:14px;flex-shrink:0}
.glightbox-container .gnext:hover,.glightbox-container .gprev:hover,.glightbox-container .gclose:hover{background:var(--gold)!important;border-color:var(--gold)!important}

/* Inline editor (admin only) */
.drc-edit-launcher{position:fixed;bottom:1rem;right:1rem;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:9000;opacity:.35;transition:all .25s;box-shadow:0 4px 12px -4px rgba(10,61,71,.15)}
.drc-edit-launcher:hover{opacity:1;transform:scale(1.06);color:var(--gold);border-color:var(--gold)}
.drc-edit-launcher.authed{opacity:.55;border-color:var(--gold);color:var(--gold)}
.drc-edit-bar{position:fixed;top:0;left:0;right:0;background:linear-gradient(90deg,#0A3D47,#164E59);color:#fff;padding:.65rem 1.25rem;display:flex;gap:1rem;align-items:center;z-index:9100;box-shadow:0 4px 14px -4px rgba(0,0,0,.35);font-size:.9rem}
.drc-edit-bar .drc-edit-status{font-weight:700;color:var(--gold);letter-spacing:.05em}
.drc-edit-bar .drc-edit-hint{color:rgba(255,255,255,.7);font-size:.82rem;flex:1}
.drc-edit-btn{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;padding:.4rem .95rem;border-radius:6px;cursor:pointer;font-family:inherit;font-size:.82rem;font-weight:600;transition:all .2s}
.drc-edit-btn:hover{background:rgba(255,255,255,.2)}
.drc-edit-btn-primary{background:var(--gold);border-color:var(--gold)}
.drc-edit-btn-primary:hover{background:#9d7647}
body.drc-edit-on{padding-top:48px}
body.drc-edit-on .drc-editable{cursor:text;transition:all .15s}
body.drc-edit-on .drc-editable:hover{outline:2px dashed rgba(182,139,91,.55);outline-offset:4px;background:rgba(182,139,91,.05);border-radius:4px}
body.drc-edit-on .drc-editing{outline:2px solid var(--gold)!important;outline-offset:4px;background:rgba(182,139,91,.08)!important;border-radius:4px;box-shadow:0 0 0 4px rgba(182,139,91,.15)}
.drc-edit-toast{position:fixed;bottom:5rem;right:1.25rem;background:var(--ink);color:#fff;padding:.7rem 1.1rem;border-radius:8px;font-size:.88rem;font-weight:600;opacity:0;transform:translateY(12px);transition:opacity .25s,transform .25s;z-index:9200;box-shadow:0 8px 20px -6px rgba(0,0,0,.35);pointer-events:none}
.drc-edit-toast.show{opacity:1;transform:translateY(0)}
.drc-edit-toast[data-type="err"]{background:#c23a3a}
.drc-edit-prompt{position:fixed;inset:0;background:rgba(10,20,22,.6);display:flex;align-items:center;justify-content:center;z-index:9300}
.drc-edit-prompt-card{background:#fff;padding:2rem;border-radius:14px;min-width:320px;box-shadow:0 20px 60px -20px rgba(0,0,0,.4)}
.drc-edit-prompt-title{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--ink);margin-bottom:1rem;font-weight:600}
.drc-edit-pwd{width:100%;padding:.75rem 1rem;border:1px solid var(--line);border-radius:8px;font-family:inherit;font-size:1rem;margin-bottom:1rem}
.drc-edit-pwd:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(182,139,91,.15)}
.drc-edit-prompt-row{display:flex;gap:.6rem;justify-content:flex-end}
.drc-edit-prompt-row .drc-edit-btn{background:var(--sand2);color:var(--ink);border-color:var(--line)}
.drc-edit-prompt-row .drc-edit-btn-primary{background:var(--gold);color:#fff;border-color:var(--gold)}
.drc-edit-prompt-err{color:#c23a3a;font-size:.85rem;margin-top:.8rem;font-weight:600}
.card-wa{display:none}
.card-share{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1rem;background:transparent;color:var(--gold);border:1px solid rgba(182,139,91,.55);border-radius:999px;font-size:.82rem;font-weight:600;letter-spacing:.02em;cursor:pointer;font-family:inherit;transition:background .2s,border-color .2s,color .2s,transform .2s}
.card-share:hover{background:rgba(182,139,91,.08);border-color:var(--gold);transform:translateY(-1px)}
.card-share svg{flex-shrink:0}

/* Card actions row (WhatsApp + Map) */
.card-actions{display:flex;gap:.45rem;margin-top:1rem;flex-wrap:wrap}
.card-map-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .95rem;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:999px;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit}
.card-map-btn:hover{border-color:var(--gold);color:var(--gold)}
.card-map-btn svg{flex-shrink:0}

/* Card expandable details */
.card-details{margin-top:.85rem}
.card-details summary{list-style:none;cursor:pointer;font-size:.82rem;font-weight:700;color:var(--gold);display:inline-flex;align-items:center;gap:.35rem;letter-spacing:.02em;padding:.3rem 0;transition:color .2s;user-select:none}
.card-details summary::-webkit-details-marker{display:none}
.card-details summary::after{content:"▾";font-size:.8rem;transition:transform .25s}
.card-details[open] summary::after{transform:rotate(180deg)}
.card-details .less-txt{display:none}
.card-details[open] .more-txt{display:none}
.card-details[open] .less-txt{display:inline}
.card-desc{font-size:.88rem;line-height:1.55;color:#4a5558;margin:.85rem 0 .2rem;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.card-details[open] + .card-desc,.card-details[open] ~ .card-desc{-webkit-line-clamp:unset;overflow:visible}
.card-features{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.7rem}
.feat{font-size:.68rem;background:rgba(182,139,91,.12);color:var(--gold);padding:.22rem .55rem;border-radius:6px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}
.card-distances{margin-top:.8rem;padding-top:.7rem;border-top:1px dashed var(--line)}
.card-distances-label{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:.4rem}
.card-distances ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:.2rem .8rem}
.card-distances li{display:flex;justify-content:space-between;font-size:.8rem;color:#556}
.card-distances li strong{color:var(--ink);font-weight:700}

/* FAQ */
.faq details{background:#fff;border:1px solid var(--line);padding:1.5rem 1.75rem;border-radius:12px;margin-bottom:1rem}
.faq summary{cursor:pointer;font-weight:600;color:var(--ink);font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;align-items:center}
.faq summary::after{content:'+';font-size:1.5rem;color:var(--gold);font-weight:300}
.faq details[open] summary::after{content:'−'}
.faq details p{margin-top:1rem;color:#555;line-height:1.75}

/* Contact */
.contact-block{background:var(--sand);color:var(--ink);padding:5rem 1.75rem;border-top:1px solid var(--line)}
.contact-block h2{color:var(--ink)}
.contact-block .lede{color:var(--muted)}
.form{display:grid;gap:1rem;max-width:640px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:600px){.form-row{grid-template-columns:1fr}}
.form input,.form select,.form textarea{padding:1rem 1.25rem;background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);font-family:inherit;font-size:1rem;width:100%;transition:border-color .2s,box-shadow .2s}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(182,139,91,.15)}
.form input::placeholder,.form textarea::placeholder{color:#94a1a5}
.form option{color:#222}
.form-msg{font-size:.93rem;min-height:1.4rem;color:var(--ink)}

/* Footer */
footer{background:var(--sand);color:var(--muted);padding:4rem 1.75rem 1.5rem;border-top:1px solid var(--line)}
.f-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2.5rem;padding-bottom:2.5rem;border-bottom:1px solid var(--line)}
.f-inner h4{color:var(--ink);font-family:'Karla',sans-serif;font-size:.82rem;letter-spacing:.15em;text-transform:uppercase;margin-bottom:1rem;font-weight:700}
.f-inner ul{list-style:none}
.f-inner li{margin-bottom:.5rem;font-size:.93rem}
.f-inner a{color:var(--muted);transition:color .2s}
.f-inner a:hover{color:var(--gold)}
.f-logo{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--ink);margin-bottom:.75rem}
.f-tag{font-size:.95rem;color:var(--muted);max-width:380px}
.f-bot{max-width:1200px;margin:1.5rem auto 0;display:flex;justify-content:space-between;font-size:.82rem;color:#8a969a;flex-wrap:wrap;gap:1rem}
@media(max-width:800px){.f-inner{grid-template-columns:1fr 1fr}}

/* Internal link block */
.xlinks{background:var(--sand);padding:4rem 1.75rem}
.xlinks ul{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.75rem;margin-top:1.5rem}
.xlinks li a{display:block;padding:1rem 1.25rem;background:#fff;border:1px solid var(--line);border-radius:10px;transition:all .2s;font-weight:500}
.xlinks li a:hover{border-color:var(--gold);transform:translateX(4px)}
.xlinks li a small{display:block;color:var(--muted);font-size:.78rem;font-weight:400;margin-top:.25rem}

/* Utility */
.prose p{margin-bottom:1.25rem;color:#3f4a4d;line-height:1.8}
.prose h2{margin-top:2.5rem}
.prose h3{margin-top:2rem;color:var(--ink)}
.prose ul{margin:1rem 0 1.5rem 1.5rem}
.prose li{margin-bottom:.5rem;color:#3f4a4d}
.prose strong{color:var(--ink)}
.prose blockquote{border-left:3px solid var(--gold);padding:.5rem 0 .5rem 1.5rem;margin:1.5rem 0;font-style:italic;color:var(--muted)}
.brand-row{display:flex;align-items:center;gap:1rem;font-size:.93rem;color:var(--muted);margin-bottom:1.5rem}
.brand-row .stars{color:var(--gold);letter-spacing:.05em}

/* Reveal */
[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
[data-reveal].is-in{opacity:1;transform:translateY(0)}

/* ─────────────────────────────────────────────────────────────
   LUXURY HOMEPAGE ANIMATIONS — subtle, editorial, professional
   ───────────────────────────────────────────────────────────── */

/* 1. Word-by-word fade-in for editorial H1 */
.ah-h1 .word{
  display:inline-block;
  opacity:0;
  transform:translateY(14px);
  transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);
}
.ah-text.is-in .ah-h1 .word{ opacity:1; transform:translateY(0); }
.ah-text.is-in .ah-h1 .word:nth-child(1){ transition-delay:.05s }
.ah-text.is-in .ah-h1 .word:nth-child(2){ transition-delay:.13s }
.ah-text.is-in .ah-h1 .word:nth-child(3){ transition-delay:.21s }
.ah-text.is-in .ah-h1 .word:nth-child(4){ transition-delay:.29s }
.ah-text.is-in .ah-h1 .word:nth-child(5){ transition-delay:.37s }
.ah-text.is-in .ah-h1 .word:nth-child(6){ transition-delay:.45s }
.ah-text.is-in .ah-h1 .word:nth-child(7){ transition-delay:.53s }
.ah-text.is-in .ah-h1 .word:nth-child(8){ transition-delay:.61s }
.ah-text.is-in .ah-h1 .word:nth-child(9){ transition-delay:.69s }
.ah-text.is-in .ah-h1 .word:nth-child(n+10){ transition-delay:.77s }

/* 2. Staggered fade-in for credential bullets */
.ah-credentials li{
  opacity:0;
  transform:translateX(-12px);
  transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1);
}
.ah-text.is-in .ah-credentials li{ opacity:1; transform:translateX(0); }
.ah-text.is-in .ah-credentials li:nth-child(1){ transition-delay:.85s }
.ah-text.is-in .ah-credentials li:nth-child(2){ transition-delay:.93s }
.ah-text.is-in .ah-credentials li:nth-child(3){ transition-delay:1.01s }
.ah-text.is-in .ah-credentials li:nth-child(4){ transition-delay:1.09s }
.ah-text.is-in .ah-credentials li:nth-child(5){ transition-delay:1.17s }
.ah-text.is-in .ah-credentials li:nth-child(6){ transition-delay:1.25s }

/* 3. CTAs fade in last, after credentials */
.ah-cta-row .ah-cta{
  opacity:0;
  transform:translateY(8px);
  transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1),background .25s ease,box-shadow .25s ease;
}
.ah-text.is-in .ah-cta-row .ah-cta{ opacity:1; transform:translateY(0); }
.ah-text.is-in .ah-cta-row .ah-cta:nth-child(1){ transition-delay:1.4s,1.4s,0s,0s }
.ah-text.is-in .ah-cta-row .ah-cta:nth-child(2){ transition-delay:1.5s,1.5s,0s,0s }

/* 4. Soft curtain reveal on portrait image */
.ah-portrait-frame{ position:relative; }
.ah-portrait-frame::after{
  content:'';
  position:absolute; inset:0;
  background:#eceae3;
  z-index:2;
  transform-origin:center top;
  transform:scaleY(1);
  transition:transform 1.1s cubic-bezier(.76,0,.24,1);
}
.ah-portrait-wrap.is-in .ah-portrait-frame::after{
  transform:scaleY(0);
  transition-delay:.3s;
}
.ah-portrait-frame img{
  transform:scale(1.05);
  transition:transform 1.4s cubic-bezier(.22,1,.36,1);
}
.ah-portrait-wrap.is-in .ah-portrait-frame img{
  transform:scale(1);
  transition-delay:.5s;
}
.ah-portrait-caption{
  opacity:0;
  transform:translateY(8px);
  transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1);
}
.ah-portrait-wrap.is-in .ah-portrait-caption{
  opacity:1; transform:translateY(0);
  transition-delay:1.2s;
}

/* 5. Editorial gold underline-draw on links (in-content prose) */
.about-hero a:not(.ah-cta):not(.logo):not(.nav-active),
.life-cta,
.blog-section a:not(.btn):not(.ah-cta){
  position:relative;
  background-image:linear-gradient(var(--gold),var(--gold));
  background-size:0% 1px;
  background-position:0% 100%;
  background-repeat:no-repeat;
  transition:background-size .4s cubic-bezier(.22,1,.36,1),color .25s ease;
}
.about-hero a:not(.ah-cta):not(.logo):not(.nav-active):hover,
.life-cta:hover,
.blog-section a:not(.btn):not(.ah-cta):hover{
  background-size:100% 1px;
}

/* 6. Stats blocks (cost-of-living etc.) — gentle scale-up on view */
.life-stat{
  opacity:0;
  transform:translateY(10px);
  transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1);
}
.life-stat.is-in{ opacity:1; transform:translateY(0); }
.life-stat:nth-child(1).is-in{ transition-delay:0s }
.life-stat:nth-child(2).is-in{ transition-delay:.1s }
.life-stat:nth-child(3).is-in{ transition-delay:.2s }
.life-stat:nth-child(4).is-in{ transition-delay:.3s }

/* 7. Smooth-scroll for in-page anchors */
html{ scroll-behavior:smooth; }

/* 8. Honor user preference */
@media (prefers-reduced-motion: reduce){
  [data-reveal],
  .ah-h1 .word,
  .ah-credentials li,
  .ah-cta-row .ah-cta,
  .ah-portrait-frame img,
  .ah-portrait-caption,
  .life-stat{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
  .ah-portrait-frame::after{ display:none; }
  html{ scroll-behavior:auto; }
}

/* ── Rich article layout ─────────────────────────────── */
.byline{display:flex;align-items:center;gap:1rem;padding:1.5rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:2rem 0;font-size:.9rem;color:var(--muted)}
.byline-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--ink),var(--gold));color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:600}
.byline strong{color:var(--ink);font-weight:700}
.byline .dot{color:#bbb}

/* TL;DR key-takeaways box (AEO-critical — LLMs quote this) */
.tldr{background:linear-gradient(180deg,#fff 0%,var(--sand) 100%);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:12px;padding:1.75rem 2rem;margin:2rem 0}
.tldr h3{font-family:'Karla',sans-serif;font-size:.82rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem}
.tldr ul{list-style:none;margin:0;padding:0}
.tldr li{padding:.45rem 0 .45rem 1.75rem;position:relative;color:#2d3a3d;line-height:1.6;font-size:.97rem}
.tldr li::before{content:'→';position:absolute;left:0;color:var(--gold);font-weight:700}

/* Table of contents */
.toc{background:var(--sand);border-radius:10px;padding:1.25rem 1.75rem;margin:2rem 0;font-size:.93rem}
.toc-label{font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:.5rem}
.toc ol{margin:0;padding-left:1.25rem;color:var(--ink)}
.toc ol li{margin-bottom:.35rem}
.toc a{color:var(--ink);text-decoration:none;border-bottom:1px dotted var(--gold)}
.toc a:hover{color:var(--gold)}

/* Article body */
.article-body{max-width:740px;margin:0 auto;padding:0 1.75rem}
.article-body h2{margin-top:3rem;font-size:clamp(1.5rem,2.5vw,2rem);scroll-margin-top:80px}
.article-body h3{margin-top:2rem;font-size:1.25rem}
.article-body p{font-size:1.05rem;line-height:1.85;color:#2d3a3d}
.article-body ul,.article-body ol{margin:1rem 0 1.5rem 1.5rem}
.article-body li{font-size:1.03rem;line-height:1.75;color:#2d3a3d;margin-bottom:.5rem}
.article-body blockquote{border-left:3px solid var(--gold);padding:1rem 1.5rem;margin:2rem 0;background:var(--sand);font-style:italic;color:var(--muted);font-size:1.02rem;border-radius:0 8px 8px 0}
.article-body blockquote footer{margin-top:.5rem;font-style:normal;font-size:.85rem;color:#777}
.article-body .callout{background:#fff;border:1px solid var(--line);padding:1.25rem 1.5rem;border-radius:10px;margin:1.5rem 0}
.article-body .callout strong{color:var(--ink)}
.article-body a{color:var(--gold);border-bottom:1px dotted var(--gold)}
.article-body a:hover{color:var(--ink);border-color:var(--ink)}

.updated-date{font-size:.82rem;color:var(--muted);margin-bottom:1rem;letter-spacing:.02em}
.updated-date .dot{margin:0 .5rem;color:#ccc}

/* Filter pills */
.filter-pills{display:flex;gap:.6rem;flex-wrap:wrap;margin:1.5rem 0}
.filter-pill{padding:.5rem 1.1rem;background:#fff;border:1px solid var(--line);border-radius:999px;cursor:pointer;font-size:.85rem;font-weight:600;color:#555;transition:all .2s}
.filter-pill:hover{border-color:var(--gold);color:var(--ink)}
.filter-pill.active{background:var(--ink);color:#fff;border-color:var(--ink)}

/* Price + sort controls — match filter-pill visuals but tinted */
.toolbar{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;margin:1rem 0 .5rem}
.toolbar-label{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-right:.25rem}
.price-pills,.sort-pills{display:flex;gap:.45rem;flex-wrap:wrap}
.price-pill,.sort-pill{padding:.42rem .95rem;background:#fff;border:1px solid var(--line);border-radius:999px;cursor:pointer;font-size:.8rem;font-weight:600;color:#555;transition:all .2s;font-family:inherit}
.price-pill:hover,.sort-pill:hover{border-color:var(--gold);color:var(--ink)}
.price-pill.active{background:var(--gold);color:#fff;border-color:var(--gold)}
.sort-pill.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.result-counter{font-size:.85rem;color:var(--muted);margin-left:auto;font-weight:600}
@media(max-width:720px){.result-counter{margin-left:0;width:100%}}

/* View toggle: Grid / Map */
.view-toggle{display:inline-flex;gap:0;margin:.5rem 0 1.5rem;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px;box-shadow:0 1px 3px rgba(0,0,0,.03)}
.view-btn{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1.1rem;background:transparent;border:0;color:var(--muted);font-size:.85rem;font-weight:600;cursor:pointer;border-radius:999px;transition:all .2s;font-family:inherit}
.view-btn:hover{color:var(--ink)}
.view-btn.active{background:var(--ink);color:#fff}
.view-btn svg{flex-shrink:0}

/* Map view */
.map-view{width:100%;height:620px;border-radius:14px;overflow:hidden;box-shadow:0 2px 20px -10px rgba(10,61,71,.2);border:1px solid var(--line);background:#e8eeef}
@media(max-width:700px){.map-view{height:480px}}

.dr-pin{background:transparent;border:0;filter:drop-shadow(0 3px 6px rgba(0,0,0,.3))}
.leaflet-popup-content-wrapper{border-radius:12px;padding:0;overflow:hidden;box-shadow:0 10px 30px -10px rgba(10,61,71,.3)}
.leaflet-popup-content{margin:0;width:260px!important}
.map-popup-img{width:100%;height:140px;object-fit:cover;display:block}
.map-popup-body{padding:.9rem 1rem 1rem}
.map-popup-title{font-family:'Cormorant Garamond',serif;font-size:1.15rem;color:var(--ink);font-weight:600;line-height:1.2;margin-bottom:.2rem}
.map-popup-loc{font-size:.75rem;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.5rem}
.map-popup-price{font-size:.98rem;color:var(--gold);font-weight:700;margin-bottom:.65rem}
.map-popup-specs{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:.75rem}
.map-popup-specs .chip{font-size:.65rem;padding:.25rem .55rem}
.map-popup-note{display:block;font-size:.7rem;color:#8a969b;margin:.55rem 0 .75rem;padding:.4rem .6rem;background:rgba(10,61,71,.04);border-radius:6px;letter-spacing:.01em;line-height:1.35}
.map-popup-note.exact{color:#0a3d47;background:rgba(182,139,91,.14);font-weight:600}
.map-popup-actions{display:flex;gap:.4rem}
.map-popup-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.4rem .75rem;border-radius:999px;font-size:.75rem;font-weight:700;text-decoration:none;transition:all .2s;flex:1;justify-content:center;border:1px solid var(--line);background:#fff;color:var(--ink)!important}
.map-popup-btn:hover{border-color:var(--ink)}
.map-popup-btn.primary{background:#25D366;color:#fff!important;border-color:#25D366}
.map-popup-btn.primary:hover{background:#1EBE57}

/* Listing hidden by filter */
.card[hidden]{display:none}

/* CTA banner */
.cta-banner{background:linear-gradient(135deg,var(--ink) 0%,#14525e 100%);color:#fff;border-radius:14px;padding:2.5rem 2rem;margin:3rem 0;text-align:center}
.cta-banner h3{color:#fff;font-size:1.6rem;margin-bottom:.75rem}
.cta-banner p{color:rgba(255,255,255,.8);margin-bottom:1.5rem}

/* Homepage lifestyle — vertical stacked story blocks */
.lifestyle-stack{display:flex;flex-direction:column;gap:0;margin-top:2.5rem}
.life-row{display:block;border-top:1px solid var(--line);padding:4.5rem 0}
.life-row:first-child{border-top:none;padding-top:2rem}
.life-row:last-child{border-bottom:1px solid var(--line);padding-bottom:4.5rem}
.life-visual{display:none}
.life-content{display:flex;flex-direction:column;max-width:900px;margin:0 auto;padding:0 1rem}
.life-content .life-eyebrow{font-size:.82rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:.85rem}
.life-content h3{font-family:'Cormorant Garamond',serif;font-size:clamp(2.25rem,3.6vw,3rem);line-height:1.05;color:var(--ink);margin-bottom:1.1rem;font-weight:500}
.life-content .life-lede{font-size:1.15rem;line-height:1.65;color:#3f4a4d;margin-bottom:1.75rem;max-width:780px}
.life-visual .life-overlay{display:none}
.life-visual .life-tag{display:none}
/* Editorial stat matrix — replaces the old bulleted .life-facts */
.life-matrix{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin:2.5rem 0 2rem;border-top:1px solid rgba(10,61,71,.12);padding:0}
.life-matrix-cell{position:relative;padding:1.85rem 2.5rem 1.85rem 0;border-bottom:1px solid rgba(10,61,71,.12)}
.life-matrix-cell:nth-child(even){padding-right:0;padding-left:2.5rem;border-left:1px solid rgba(10,61,71,.12)}
.life-matrix-label{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:700;margin:0 0 .7rem;display:block}
.life-matrix-value{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(1.85rem,2.8vw,2.5rem);line-height:1;color:var(--ink);font-weight:500;margin:0 0 .65rem;letter-spacing:-0.005em}
.life-matrix-note{font-size:.92rem;line-height:1.55;color:#5a6770;margin:0;max-width:38ch}
@media (max-width:720px){
  .life-matrix{grid-template-columns:1fr;margin:2rem 0 1.5rem}
  .life-matrix-cell{padding:1.5rem 0!important;border-left:none!important}
}
.life-cta{display:inline-flex;align-items:center;gap:.5rem;color:var(--ink);font-weight:700;font-size:.95rem;text-decoration:none;border-bottom:2px solid var(--gold);padding-bottom:.35rem;align-self:flex-start;transition:gap .25s}
.life-cta:hover{gap:.85rem}
.life-cta.soon{color:#8a969b;border-bottom-color:#d6cfc5;cursor:default;pointer-events:none}

/* Inline guide signup form (replaces "Guide publishing May 2026 →" CTA) */
.guide-signup{margin-top:.25rem;max-width:520px;padding:1.25rem 1.35rem;background:var(--sand);border:1px solid var(--line);border-radius:12px;box-shadow:0 2px 8px -4px rgba(10,61,71,.08)}
.guide-signup-title{font-family:'Cormorant Garamond',serif;font-size:1.35rem;line-height:1.2;color:var(--ink);margin:0 0 .2rem;font-weight:600}
.guide-signup-sub{font-size:.88rem;color:#5a6770;line-height:1.5;margin:0 0 .9rem}
.guide-signup-sub strong{color:var(--gold);font-weight:700;letter-spacing:.04em}
.guide-signup form{display:flex;gap:.5rem;flex-wrap:wrap}
.guide-signup input[type="email"]{flex:1 1 240px;padding:.7rem .95rem;border:1px solid var(--line);border-radius:8px;font-size:.95rem;font-family:inherit;background:#fff;color:var(--ink);outline:none;transition:border-color .2s,box-shadow .2s}
.guide-signup input[type="email"]:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,148,82,.18)}
.guide-signup button{padding:.7rem 1.2rem;border:0;border-radius:8px;background:var(--ink);color:#fff;font-weight:700;font-size:.9rem;cursor:pointer;transition:background .2s,transform .2s;font-family:inherit;letter-spacing:.02em}
.guide-signup button:hover{background:var(--gold);transform:translateY(-1px)}
.guide-signup button:disabled{opacity:.6;cursor:not-allowed;transform:none}
.guide-signup-msg{font-size:.82rem;margin:.65rem 0 0;min-height:1em}
.guide-signup-msg[data-type="ok"]{color:#2d6a4f}
.guide-signup-msg[data-type="err"]{color:#b84a4a}
.guide-signup-note{font-size:.72rem;color:#8a969b;margin:.5rem 0 0;letter-spacing:.02em}
@media(max-width:900px){
  .life-row,.life-row.reverse{grid-template-columns:1fr;padding:2.75rem 0;gap:1.5rem}
  .life-content,.life-row.reverse .life-content{padding:0}
  .life-row.reverse .life-visual{order:1}
  .life-row.reverse .life-content{order:2}
  .life-visual{min-height:260px}
  .life-content h3{font-size:2rem}
}

/* Intro strip under hero */
.intro-strip{background:#fff;padding:5.5rem 2rem;border-bottom:1px solid var(--line)}
.intro-strip .wrap{max-width:1180px;margin:0 auto;text-align:left}
.intro-grid{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:5rem;align-items:start}
.intro-side{position:sticky;top:6rem}
.intro-strip .intro-eyebrow{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:1.1rem}
.intro-heading{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,3.4vw,2.75rem);color:var(--ink);font-weight:500;margin:0 0 2rem;line-height:1;letter-spacing:-0.005em}
.intro-traits{list-style:none;padding:0;margin:0;border-top:1px solid rgba(10,61,71,.12);display:flex;flex-direction:column}
.intro-traits li{display:flex;gap:1.1rem;align-items:baseline;padding:1.05rem 0;border-bottom:1px solid rgba(10,61,71,.12);font-size:.98rem;line-height:1.45;color:var(--ink);font-weight:500}
.intro-trait-num{flex:0 0 auto;font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--gold);font-size:.95rem;font-weight:500;letter-spacing:.04em;min-width:1.8rem}
.intro-body{font-size:1.08rem;line-height:1.75;color:#3f4a4d}
.intro-opener{font-family:'Cormorant Garamond',serif;font-size:clamp(1.65rem,2.4vw,2rem);line-height:1.25;color:var(--ink);font-weight:500;margin:0 0 1.5rem;letter-spacing:-0.005em}
.intro-body p{margin:0 0 1.25rem}
.intro-pullquote{margin:2.2rem 0 2.2rem;padding:0 0 0 1.6rem;border-left:3px solid var(--gold);font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.4rem;line-height:1.35;color:var(--ink);font-weight:500}
.intro-close{color:var(--ink);font-weight:500}
.intro-signoff{margin-top:2.5rem;padding-top:2rem;border-top:1px solid rgba(10,61,71,.12)}
.intro-strip .intro-signature{font-family:'Mr Dafoe',cursive;font-size:clamp(2.8rem,5vw,4.2rem);color:var(--ink);line-height:1;display:inline-block;padding:0;border-bottom:none;letter-spacing:0}
.intro-strip .intro-signature-note{font-family:'Karla',sans-serif;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-top:.6rem;display:block}
@media (max-width:860px){
  .intro-strip{padding:3.5rem 1.5rem}
  .intro-grid{grid-template-columns:1fr;gap:2.5rem}
  .intro-side{position:static}
}

/* Properties Near You */
.near-you-section{padding:5rem 2rem 4.5rem;background:linear-gradient(180deg,#fff 0%,var(--sand) 100%);text-align:center}
.near-you-section .wrap{max-width:1100px;margin:0 auto}
.near-you-section h2{font-family:'Cormorant Garamond',serif;font-size:2.4rem;color:var(--ink);margin:.9rem 0 1.2rem;font-weight:500}
.near-lede{max-width:620px;margin:0 auto 1.75rem;font-size:1.02rem;line-height:1.7;color:#4a5558}
.near-enable-btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border:0;font-family:inherit;background:var(--ink);color:#fff!important;padding:.95rem 1.75rem;border-radius:999px;font-weight:600;font-size:.98rem;box-shadow:0 6px 20px -10px rgba(10,61,71,.5);transition:all .22s}
.near-enable-btn:hover{background:#0d4e58;transform:translateY(-1px);box-shadow:0 10px 26px -8px rgba(10,61,71,.55)}
.near-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.5rem;text-align:left}
@media(max-width:900px){.near-grid{grid-template-columns:1fr}}
.near-card{position:relative}
.near-distance-badge{position:absolute;top:1rem;left:1rem;z-index:2;background:#0a3d47;color:#fff;padding:.35rem .85rem;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.05em}
.near-map{width:100%;height:360px;border-radius:14px;overflow:hidden;margin-top:2.5rem;border:1px solid var(--line);box-shadow:0 2px 20px -10px rgba(10,61,71,.2)}
.near-privacy{margin-top:1.75rem;font-size:.82rem;color:var(--muted);letter-spacing:.02em}

/* ============ Blog editorial typography ============ */
.blog-section{margin:3.5rem 0 2.5rem;padding-top:2.5rem;border-top:1px solid rgba(10,61,71,.12)}
.blog-section:first-of-type{border-top:none;padding-top:1rem}
.blog-eyebrow{font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:.85rem}
.blog-h2{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,3.6vw,3rem);line-height:1.05;color:var(--ink);font-weight:500;margin:0 0 1.5rem;letter-spacing:-0.005em}
.blog-lede{font-family:'Cormorant Garamond',serif;font-size:clamp(1.35rem,1.9vw,1.6rem);line-height:1.4;color:var(--ink);font-weight:500;font-style:italic;margin:0 0 2rem;max-width:42em}
.blog-section p{font-size:1.08rem;line-height:1.85;color:#3f4a4d;margin:0 0 1.35rem;max-width:44em}
.blog-section p em{color:var(--ink);font-style:italic}
.blog-pullquote{margin:2.2rem 0;padding:0 0 0 1.6rem;border-left:3px solid var(--gold);font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(1.35rem,1.9vw,1.55rem);line-height:1.35;color:var(--ink);font-weight:500;max-width:38em}
.blog-list{list-style:none;padding:0;margin:1.75rem 0;max-width:44em;display:flex;flex-direction:column;gap:.85rem}
.blog-list li{display:flex;gap:.75rem;padding-left:1.1rem;border-left:2px solid rgba(10,61,71,.12);font-size:1.02rem;line-height:1.6;color:#3f4a4d}
.blog-list li strong{color:var(--ink);font-weight:700}
.blog-close{color:var(--ink)!important;font-weight:500}

/* Inline editor per-element status badge */
.drc-edit-badge{display:none;position:absolute;top:-.5rem;right:-.5rem;font-size:.68rem;letter-spacing:.04em;padding:.18rem .55rem;border-radius:999px;font-weight:700;z-index:9099;white-space:nowrap;pointer-events:none;font-family:'Karla',sans-serif;box-shadow:0 2px 6px -2px rgba(0,0,0,.25)}
body.drc-edit-on .drc-edit-badge[data-state="dirty"]{display:inline-block;background:#b68b5b;color:#fff}
body.drc-edit-on .drc-edit-badge[data-state="saving"]{display:inline-block;background:#B89452;color:#fff}
body.drc-edit-on .drc-edit-badge[data-state="saved"]{display:inline-block;background:#2d6a4f;color:#fff;animation:drcBadgeFade .9s ease-out}
body.drc-edit-on .drc-edit-badge[data-state="error"]{display:inline-block;background:#b84a4a;color:#fff;pointer-events:auto;cursor:pointer}
@keyframes drcBadgeFade{from{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}
body.drc-edit-on .drc-editable{position:relative}
body.drc-edit-on #drcSaveStatus{color:#fff}
body.drc-edit-on #drcSaveStatus[data-state="dirty"]{color:#b68b5b}
body.drc-edit-on #drcSaveStatus[data-state="saving"]{color:#B89452}
body.drc-edit-on #drcSaveStatus[data-state="saved"]{color:#6fcf97}
body.drc-edit-on #drcSaveStatus[data-state="error"]{color:#ff6b6b}

/* ============ Sq Meter/Sq Foot Calculator ============ */
.nav-calc-btn{display:inline-flex;align-items:center;gap:.4rem;background:transparent;border:1px solid var(--line);border-radius:999px;padding:.45rem .85rem;font-family:inherit;font-size:.82rem;font-weight:600;letter-spacing:.02em;color:var(--ink);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.nav-calc-btn:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.nav-calc-btn svg{flex-shrink:0}

.drc-calc-panel{position:fixed;inset:0;z-index:9500;pointer-events:none}
.drc-calc-backdrop{position:absolute;inset:0;background:rgba(10,20,22,.3);opacity:0;transition:opacity .25s}
.drc-calc-card{position:absolute;top:0;right:0;bottom:0;width:min(440px,92vw);background:#fff;box-shadow:-8px 0 40px -10px rgba(0,0,0,.25);transform:translateX(100%);transition:transform .32s cubic-bezier(.19,1,.22,1);display:flex;flex-direction:column;overflow-y:auto}
.drc-calc-panel.is-open{pointer-events:auto}
.drc-calc-panel.is-open .drc-calc-backdrop{opacity:1}
.drc-calc-panel.is-open .drc-calc-card{transform:translateX(0)}

.drc-calc-head{display:flex;align-items:flex-start;justify-content:space-between;padding:1.75rem 1.75rem 1.25rem;border-bottom:1px solid var(--line)}
.drc-calc-eyebrow{font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:.4rem}
.drc-calc-title{font-family:'Cormorant Garamond',serif;font-size:1.55rem;color:var(--ink);margin:0;font-weight:500;line-height:1.1}
.drc-calc-close{background:transparent;border:0;font-size:1.85rem;line-height:1;color:var(--muted);cursor:pointer;padding:0 .25rem;transition:color .2s}
.drc-calc-close:hover{color:var(--ink)}

.drc-calc-ref{margin:1rem 1.75rem 0;padding:.75rem 1rem;background:var(--sand);border:1px solid var(--line);border-radius:8px}
.drc-calc-ref-label{font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:.2rem}
.drc-calc-ref-name{font-family:'Cormorant Garamond',serif;font-size:1.08rem;color:var(--ink);font-weight:500}
.drc-calc-ref-name span{color:var(--muted);font-size:.88rem;font-family:'Karla',sans-serif;font-weight:400}

.drc-calc-body{padding:1.5rem 1.75rem;display:flex;flex-direction:column;gap:1.15rem}
.drc-calc-field label{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:.45rem}
.drc-calc-input-row{display:flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:8px;background:#fff;transition:border-color .2s,box-shadow .2s;overflow:hidden}
.drc-calc-input-row:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,148,82,.18)}
.drc-calc-input-row input{flex:1;padding:.7rem .9rem;border:0;outline:none;font:inherit;font-size:1.05rem;color:var(--ink);background:transparent;min-width:0}
.drc-calc-unit{padding:.7rem .85rem;color:var(--muted);font-size:.92rem;font-weight:600;background:#faf9f7;border-left:1px solid var(--line);white-space:nowrap}
.drc-calc-unit-left{border-left:0;border-right:1px solid var(--line)}
.drc-calc-hint{font-size:.75rem;color:var(--muted);margin:.4rem 0 0;font-style:italic}

.drc-calc-results{margin:0 1.75rem;padding:1.25rem 1.25rem;background:var(--sand);border-radius:10px;border:1px solid var(--line);display:flex;flex-direction:column;gap:.75rem}
.drc-calc-result-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.drc-calc-result-label{font-size:.82rem;color:var(--muted);letter-spacing:.04em}
.drc-calc-result-value{font-family:'Cormorant Garamond',serif;font-size:1.45rem;font-weight:500;color:var(--ink);line-height:1;letter-spacing:-0.005em}
.drc-calc-result-total{padding-top:.75rem;border-top:1px solid rgba(10,61,71,.15)}
.drc-calc-result-total .drc-calc-result-label{color:var(--ink);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.7rem}
.drc-calc-result-total .drc-calc-result-value{font-size:1.75rem;color:var(--gold)}

/* Editable area-unit rows (ft², ha, acres) — input styled like the result value */
.drc-calc-result-row--editable{align-items:center}
.drc-calc-result-row--editable .drc-calc-result-label{cursor:pointer}
.drc-calc-result-input{flex:0 1 auto;width:11rem;max-width:55%;text-align:right;font-family:'Cormorant Garamond',serif;font-size:1.45rem;font-weight:500;color:var(--ink);background:transparent;border:1px solid transparent;border-radius:6px;padding:.25rem .55rem;outline:none;transition:border-color .2s,background .2s,box-shadow .2s;font-variant-numeric:tabular-nums}
.drc-calc-result-input:hover{border-color:var(--line);background:#fff}
.drc-calc-result-input:focus{border-color:var(--gold);background:#fff;box-shadow:0 0 0 3px rgba(184,148,82,.18)}
.drc-calc-result-input::placeholder{color:var(--muted);opacity:.5}

.drc-calc-foot{padding:1.25rem 1.75rem 1.75rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:auto}
.drc-calc-note{font-size:.72rem;color:var(--muted);margin:0;font-style:italic}
.drc-calc-reset{background:transparent;border:1px solid var(--line);color:var(--ink);padding:.55rem 1rem;border-radius:6px;font-family:inherit;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s}
.drc-calc-reset:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* "Calc in ft²" button on each listing card */
.card-calc-btn{display:inline-flex;align-items:center;gap:.35rem;background:transparent;border:1px solid var(--line);color:var(--ink);padding:.45rem .8rem;border-radius:6px;font-family:inherit;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .2s}
.card-calc-btn:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.card-calc-btn svg{flex-shrink:0}

@media (max-width:540px){
  .drc-calc-card{width:100%}
  .drc-calc-head{padding:1.25rem 1.25rem 1rem}
  .drc-calc-body{padding:1.25rem}
  .drc-calc-results{margin:0 1.25rem}
  .drc-calc-foot{padding:1.25rem}
}

/* ─────────────────────────────────────────────────────────────
   LAND GUIDE CALLOUT — clean white card linking to the full guide
   ───────────────────────────────────────────────────────────── */
.land-guide-callout{padding:5rem 0;background:#fff}
.land-guide-callout .narrow{max-width:880px;margin:0 auto;padding:0 1.5rem}
.lgc-card{
  background:#fff;border:1px solid var(--line);border-radius:18px;
  padding:3rem 2.5rem;text-align:center;
}
.lgc-eyebrow{
  font-family:'Karla',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold);margin-bottom:.85rem;
}
.lgc-title{
  font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(1.85rem,4vw,2.6rem);font-weight:500;
  color:var(--ink);letter-spacing:-.012em;line-height:1.08;margin:0 0 1rem;
}
.lgc-sub{
  font-family:'Karla',sans-serif;font-size:1rem;line-height:1.7;color:#3f4a4d;
  max-width:620px;margin:0 auto 1.85rem;
}
.lgc-chips{
  display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem;margin-bottom:2.1rem;
}
.lgc-chips a{
  font-family:'Karla',sans-serif;font-size:.78rem;font-weight:600;letter-spacing:.02em;
  padding:.5rem 1rem;border:1px solid var(--line);border-radius:999px;
  color:var(--ink);background:#fff;text-decoration:none;
  transition:border-color .25s,color .25s,background .25s;
}
.lgc-chips a:hover{border-color:var(--gold);color:var(--gold);background:#fff}
.lgc-cta{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.95rem 1.6rem;background:var(--ink);color:#fff!important;border-radius:999px;
  font-family:'Karla',sans-serif;font-size:.85rem;font-weight:700;letter-spacing:.04em;
  text-decoration:none;transition:background .25s,transform .2s;
}
.lgc-cta:hover{background:var(--gold);transform:translateY(-1px)}
.lgc-cta svg{transition:transform .25s}
.lgc-cta:hover svg{transform:translateX(3px)}
@media (max-width:600px){
  .land-guide-callout{padding:3.5rem 0}
  .lgc-card{padding:2.25rem 1.5rem;border-radius:14px}
  .lgc-chips{gap:.4rem}
  .lgc-chips a{font-size:.73rem;padding:.42rem .85rem}
}


/* ─────────────────────────────────────────────────────────────
   SAVE LISTINGS — heart, floating pill, slide-out drawer, toast
   ───────────────────────────────────────────────────────────── */

/* Heart on every card-media (top-left to avoid the expand button) */
.card-save{
  position:absolute;top:.75rem;left:.75rem;width:34px;height:34px;border-radius:999px;border:0;
  background:rgba(10,20,22,.75);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;
  -webkit-transition:background .25s ease,transform .2s ease,color .25s ease;z-index:4;
}
.card-save:hover{background:rgba(10,20,22,.85);transform:scale(1.06)}
.card-save svg{transition:fill .25s ease,stroke .25s ease}
.card-save.is-saved{background:#fff;color:var(--gold)}
.card-save.is-saved svg{fill:var(--gold);stroke:var(--gold)}
.card-save.is-pop{animation:drcp-heart-pop .42s cubic-bezier(.34,1.56,.64,1)}
@keyframes drcp-heart-pop{
  0%{transform:scale(1)}
  35%{transform:scale(1.32)}
  60%{transform:scale(.94)}
  100%{transform:scale(1)}
}
.card-save:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* "Save listing" CTA in the listing-detail sticky sidebar */
.ldp-save-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  width:100%;padding:.85rem 1rem;border:1.5px solid var(--ink);background:transparent;color:var(--ink);
  border-radius:999px;font-family:'Karla',sans-serif;font-size:.85rem;font-weight:600;letter-spacing:.04em;
  cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .2s;
}
.ldp-save-btn:hover{background:var(--ink);color:#fff}
.ldp-save-btn.is-saved{background:rgba(182,139,91,.08);border-color:var(--gold);color:var(--gold)}
.ldp-save-btn.is-saved:hover{background:var(--gold);color:#fff;border-color:var(--gold)}
.ldp-save-btn.is-pop{animation:drcp-heart-pop .42s cubic-bezier(.34,1.56,.64,1)}
.ldp-save-btn svg{flex-shrink:0;transition:fill .25s,stroke .25s}
.ldp-save-btn.is-saved svg{fill:var(--gold);stroke:var(--gold)}

/* Floating "Shortlist (N)" pill — bottom-right, shows when count > 0 */
.saved-pill{
  position:fixed;right:1.5rem;bottom:1.5rem;z-index:90;
  display:none;align-items:center;gap:.55rem;padding:.85rem 1.15rem .85rem 1rem;border:0;cursor:pointer;
  background:var(--ink);color:#fff;border-radius:999px;font-family:'Karla',sans-serif;font-size:.85rem;font-weight:600;letter-spacing:.03em;
  box-shadow:0 12px 32px -10px rgba(10,61,71,.45),0 4px 12px -4px rgba(0,0,0,.18);
  transform:translateY(80px) scale(.9);opacity:0;transition:transform .35s cubic-bezier(.34,1.56,.64,1),opacity .25s ease,background .25s ease;
}
.saved-pill.is-visible{display:inline-flex;transform:translateY(0) scale(1);opacity:1}
.saved-pill:hover{background:var(--gold)}
.saved-pill svg{fill:var(--gold);transition:fill .25s ease}
.saved-pill:hover svg{fill:#fff}
.saved-pill-count{
  display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 .42rem;border-radius:999px;
  background:var(--gold);color:#fff;font-size:.72rem;font-weight:700;letter-spacing:0;line-height:1;transition:background .25s ease,color .25s ease;
}
.saved-pill:hover .saved-pill-count{background:#fff;color:var(--gold)}

/* Overlay + drawer */
.saved-overlay{
  position:fixed;inset:0;background:rgba(10,20,22,.45);-webkit-opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:99;
}
.saved-overlay.is-open{opacity:1;pointer-events:auto}

.saved-drawer{
  position:fixed;top:0;right:0;bottom:0;width:min(420px,92vw);background:var(--sand);
  display:flex;flex-direction:column;z-index:100;transform:translateX(100%);transition:transform .38s cubic-bezier(.4,0,.2,1);
  box-shadow:-12px 0 40px -8px rgba(10,20,22,.25);
}
.saved-drawer.is-open{transform:translateX(0)}

.saved-drawer-hd{
  display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
  padding:1.6rem 1.5rem 1.2rem;border-bottom:1px solid var(--line);background:#fff;
}
.saved-drawer-eyebrow{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600;margin:0 0 .35rem;font-family:'Karla',sans-serif}
.saved-drawer-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.85rem;font-weight:500;color:var(--ink);margin:0;letter-spacing:-.005em;line-height:1.05}
.saved-drawer-close{
  flex-shrink:0;width:36px;height:36px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);
  cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .25s,color .25s,border-color .25s;
}
.saved-drawer-close:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

.saved-drawer-body{flex:1;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:.85rem}

.saved-card{
  display:grid;grid-template-columns:96px 1fr auto;gap:.95rem;padding:.7rem;background:#fff;border:1px solid var(--line);border-radius:14px;
  transition:border-color .25s,box-shadow .25s;
}
.saved-card:hover{border-color:var(--gold);box-shadow:0 8px 22px -10px rgba(10,61,71,.18)}
.saved-card-thumb{display:block;width:96px;height:96px;border-radius:10px;overflow:hidden;background:var(--ink)}
.saved-card-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.saved-card-thumb:hover img{transform:scale(1.05)}
.saved-card-body{min-width:0;display:flex;flex-direction:column;gap:.18rem;padding:.1rem 0}
.saved-card-name{
  font-family:'Cormorant Garamond',serif;font-size:1.18rem;font-weight:500;color:var(--ink);line-height:1.15;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  text-decoration:none;transition:color .2s;
}
.saved-card-name:hover{color:var(--gold)}
.saved-card-loc{font-size:.78rem;color:var(--muted);margin-top:.05rem;font-family:'Karla',sans-serif}
.saved-card-price{font-size:.95rem;color:var(--gold);font-weight:700;font-family:'Karla',sans-serif;margin-top:.18rem}
.saved-card-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.32rem;font-size:.7rem;color:var(--muted);font-family:'Karla',sans-serif}
.saved-card-meta span{padding:.18rem .5rem;background:var(--sand2);border-radius:999px;font-weight:600;letter-spacing:.02em}
.saved-card-meta .saved-card-ref{background:transparent;color:var(--muted);padding:.18rem 0;font-weight:500;letter-spacing:.06em}

.saved-card-rm{
  align-self:flex-start;width:28px;height:28px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--muted);
  cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,border-color .2s;flex-shrink:0;
}
.saved-card-rm:hover{background:#fff5f5;color:#c84545;border-color:#c84545}

.saved-drawer-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2.5rem 1.5rem;color:var(--muted)}
.saved-drawer-empty-icon{width:72px;height:72px;border-radius:999px;background:var(--sand2);color:var(--gold);display:flex;align-items:center;justify-content:center;margin-bottom:1.1rem}
.saved-drawer-empty-title{font-family:'Cormorant Garamond',serif;font-size:1.4rem;color:var(--ink);margin:0 0 .4rem;font-weight:500}
.saved-drawer-empty-sub{font-family:'Karla',sans-serif;font-size:.85rem;line-height:1.55;color:var(--muted);margin:0;max-width:260px}

.saved-drawer-ft{padding:1.1rem 1.25rem 1.25rem;background:#fff;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.55rem}
.saved-drawer-cta-row{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
.saved-drawer-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.85rem .75rem;border-radius:999px;
  font-family:'Karla',sans-serif;font-size:.8rem;font-weight:700;letter-spacing:.04em;text-decoration:none;
  border:0;cursor:pointer;transition:background .25s,color .25s,transform .2s,border-color .25s;line-height:1.1;
}
.saved-drawer-cta.primary{background:var(--ink,#0a3d47);color:#fff}
.saved-drawer-cta.primary:hover{background:#082d35;transform:translateY(-1px)}
.saved-drawer-cta.alt{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.saved-drawer-cta.alt:hover{background:var(--ink);color:#fff;transform:translateY(-1px)}
.saved-drawer-quick{
  display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem .85rem;padding-top:.35rem;
  border-top:1px dashed var(--line);margin-top:.25rem;
}
.saved-drawer-quick-link{
  display:inline-flex;align-items:center;gap:.35rem;background:transparent;border:0;padding:.4rem .25rem;
  font-family:'Karla',sans-serif;font-size:.74rem;font-weight:600;letter-spacing:.04em;
  color:var(--muted);text-decoration:none;cursor:pointer;transition:color .2s;
}
.saved-drawer-quick-link:hover{color:var(--ink)}
.saved-drawer-quick-link.saved-drawer-clear-quick:hover{color:#c84545}

/* ──────────────────────────────────────────────────────────────────
   SHORTLIST MODALS — Send-to-Sebastian + Share-with-anyone
   ────────────────────────────────────────────────────────────────── */
.sl-modal{
  position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .22s ease;
  font-family:'Karla',sans-serif;
}
.sl-modal.is-open{opacity:1;pointer-events:auto}
.sl-modal-backdrop{position:absolute;inset:0;background:rgba(8,18,22,.62);backdrop-filter:blur(4px)}
.sl-modal-card{
  position:relative;background:#fff;border-radius:14px;padding:2rem 1.75rem 1.6rem;
  width:min(94vw,500px);max-height:92vh;overflow-y:auto;
  box-shadow:0 24px 60px rgba(0,0,0,.28),0 4px 14px rgba(0,0,0,.12);
  transform:translateY(12px) scale(.98);transition:transform .25s cubic-bezier(.2,.8,.2,1);
}
.sl-modal.is-open .sl-modal-card{transform:translateY(0) scale(1)}
.sl-modal-close{
  position:absolute;top:.85rem;right:.85rem;background:transparent;border:0;cursor:pointer;
  color:var(--muted);padding:.35rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;
  transition:background .2s,color .2s;
}
.sl-modal-close:hover{background:var(--sand2);color:var(--ink)}
.sl-modal-eyebrow{
  font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold,#b5894a);
  margin:0 0 .5rem;font-weight:600;
}
.sl-modal-title{
  font-family:'Cormorant Garamond',serif;font-size:1.7rem;line-height:1.15;color:var(--ink);
  margin:0 0 .55rem;font-weight:500;letter-spacing:-.005em;
}
.sl-modal-sub{font-size:.85rem;line-height:1.55;color:var(--muted);margin:0 0 1.3rem}
.sl-modal-form{display:flex;flex-direction:column;gap:.95rem}
.sl-field-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
@media (max-width:480px){.sl-field-row{grid-template-columns:1fr}}
.sl-field{display:flex;flex-direction:column;gap:.3rem}
.sl-field>span{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);font-weight:600}
.sl-field>span em{color:#c84545;font-style:normal;margin-left:.2rem}
.sl-field input,.sl-field textarea{
  width:100%;padding:.7rem .85rem;border:1px solid var(--line,#d9d3c4);border-radius:8px;
  font-family:inherit;font-size:.9rem;color:var(--ink);background:#fff;
  transition:border-color .2s,box-shadow .2s;resize:vertical;
}
.sl-field input:focus,.sl-field textarea:focus{
  outline:0;border-color:var(--ink);box-shadow:0 0 0 3px rgba(10,61,71,.08);
}
.sl-field-help{font-size:.72rem;color:var(--muted);margin:-.45rem 0 .15rem;line-height:1.4}
.sl-modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.4rem;flex-wrap:wrap}
.sl-btn-primary,.sl-btn-secondary{
  padding:.85rem 1.4rem;border-radius:999px;font-family:'Karla',sans-serif;font-size:.8rem;font-weight:700;
  letter-spacing:.05em;cursor:pointer;border:0;transition:background .25s,color .25s,transform .2s,opacity .2s;
}
.sl-btn-primary{background:var(--ink);color:#fff}
.sl-btn-primary:hover:not(:disabled){background:#082d35;transform:translateY(-1px)}
.sl-btn-primary:disabled{opacity:.6;cursor:wait}
.sl-btn-secondary{background:transparent;color:var(--muted);border:1.5px solid var(--line)}
.sl-btn-secondary:hover{color:var(--ink);border-color:var(--ink)}
.sl-modal-trust{font-size:.7rem;color:var(--muted);text-align:center;margin:1rem 0 0;letter-spacing:.04em}
.sl-modal-success{text-align:center;padding:1.5rem 0 .5rem}
.sl-success-icon{
  width:64px;height:64px;border-radius:999px;background:#e8f4ec;color:#1f8a4d;
  display:inline-flex;align-items:center;justify-content:center;margin-bottom:.85rem;
}
.sl-modal-success h4{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--ink);margin:0 0 .35rem;font-weight:500}
.sl-modal-success p{color:var(--muted);font-size:.88rem;margin:0}

/* Share modal */
.sl-share-linkbox{
  display:flex;gap:.4rem;background:var(--sand2,#f5f1e8);border-radius:10px;padding:.4rem;margin-bottom:1rem;
  border:1px solid var(--line);
}
.sl-share-linkbox input{
  flex:1;background:transparent;border:0;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.78rem;
  color:var(--ink);padding:.5rem .65rem;outline:0;min-width:0;
}
.sl-share-copy{
  display:inline-flex;align-items:center;gap:.35rem;background:var(--ink);color:#fff;border:0;border-radius:7px;
  padding:.55rem .9rem;font-family:'Karla',sans-serif;font-size:.74rem;font-weight:700;letter-spacing:.05em;cursor:pointer;
  transition:background .2s,opacity .2s;white-space:nowrap;
}
.sl-share-copy:hover:not(:disabled){background:#082d35}
.sl-share-copy:disabled{opacity:.55;cursor:wait}
.sl-share-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.55rem;margin-bottom:.85rem}
.sl-share-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.85rem .6rem;border-radius:10px;
  border:1.5px solid var(--line);background:#fff;color:var(--ink);
  font-family:'Karla',sans-serif;font-size:.78rem;font-weight:600;letter-spacing:.03em;cursor:pointer;
  transition:background .2s,color .2s,border-color .2s,transform .15s,opacity .2s;
}
.sl-share-btn:hover:not(:disabled){border-color:var(--ink);background:var(--ink);color:#fff;transform:translateY(-1px)}
.sl-share-btn:disabled{opacity:.5;cursor:wait}
.sl-share-wa:hover:not(:disabled){background:#25d366;border-color:#25d366;color:#fff}

/* ──────────────────────────────────────────────────────────────────
   GLOBAL LISTING SEARCH
   ────────────────────────────────────────────────────────────────── */
.nav-search-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;border:0;background:transparent;color:var(--ink);
  border-radius:50%;cursor:pointer;transition:background .2s,color .2s;
}
.nav-search-btn:hover{background:rgba(10,61,71,.08);color:var(--gold)}
.drcp-search-overlay{
  position:fixed;inset:0;z-index:9000;background:rgba(10,20,22,.55);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  display:flex;align-items:flex-start;justify-content:center;padding:5rem 1rem 2rem;
  opacity:0;pointer-events:none;transition:opacity .18s ease;
}
.drcp-search-overlay.is-open{opacity:1;pointer-events:auto}
.drcp-search-panel{
  width:100%;max-width:640px;background:#fff;border-radius:14px;
  box-shadow:0 30px 80px rgba(0,0,0,.35);overflow:hidden;
  transform:translateY(-8px);transition:transform .22s ease;
}
.drcp-search-overlay.is-open .drcp-search-panel{transform:translateY(0)}
.drcp-search-bar{display:flex;align-items:center;gap:.7rem;padding:1rem 1.2rem;border-bottom:1px solid var(--line)}
.drcp-search-bar svg{color:var(--muted);flex-shrink:0}
.drcp-search-input{
  flex:1;border:0;background:transparent;font-family:'Karla',sans-serif;
  font-size:1.05rem;color:var(--ink);outline:0;padding:.2rem 0;
}
.drcp-search-input::placeholder{color:#a3a8aa}
.drcp-search-kbd{
  font-family:ui-monospace,SFMono-Regular,monospace;font-size:.65rem;letter-spacing:.05em;
  background:#f3efe5;color:var(--muted);padding:.2rem .45rem;border-radius:4px;border:1px solid var(--line);
}
.drcp-search-results{max-height:60vh;overflow-y:auto;padding:.5rem 0}
.drcp-search-hint,.drcp-search-empty{padding:1.5rem;text-align:center;color:var(--muted);font-size:.92rem;margin:0}
.drcp-search-list{list-style:none;margin:0;padding:0}
.drcp-search-item a{
  display:flex;align-items:center;gap:.9rem;padding:.7rem 1.2rem;text-decoration:none;color:var(--ink);
  transition:background .15s;
}
.drcp-search-item a:hover,.drcp-search-item a:focus{background:#fbf8f1;outline:0}
.drcp-search-item img,.drcp-search-thumb-placeholder{
  width:54px;height:42px;border-radius:6px;object-fit:cover;flex-shrink:0;background:#eee5d2;
}
.drcp-search-item-body{flex:1;min-width:0}
.drcp-search-item-name{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.05rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drcp-search-item-name mark{background:#fff3c1;color:inherit;padding:0 2px;border-radius:2px}
.drcp-search-item-meta{font-size:.78rem;color:var(--muted);display:flex;gap:.6rem;align-items:center;margin-top:.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drcp-search-item-meta .drcp-search-price{color:var(--gold);font-weight:600}
.drcp-search-item-meta .drcp-search-ref{font-family:ui-monospace,SFMono-Regular,monospace;font-size:.72rem;background:#f3efe5;padding:1px 6px;border-radius:3px}
.drcp-search-count{padding:.6rem 1.2rem;text-align:right;font-size:.72rem;color:var(--muted);margin:0;border-top:1px solid var(--line)}
@media (max-width:600px){
  .drcp-search-overlay{padding:3rem .6rem 1rem}
  .drcp-search-kbd{display:none}
  .drcp-search-item img,.drcp-search-thumb-placeholder{width:42px;height:34px}
}

/* Toast */
.drcp-toast{
  position:fixed;left:50%;bottom:5.5rem;transform:translateX(-50%) translateY(20px);
  background:var(--ink);color:#fff;font-family:'Karla',sans-serif;font-size:.82rem;font-weight:600;letter-spacing:.02em;
  padding:.8rem 1.25rem;border-radius:999px;box-shadow:0 10px 28px -8px rgba(10,20,22,.35);
  opacity:0;pointer-events:none;transition:opacity .25s ease,transform .3s cubic-bezier(.34,1.56,.64,1);z-index:110;
}
.drcp-toast.is-on{opacity:1;transform:translateX(-50%) translateY(0)}

@media (max-width:560px){
  .saved-pill{right:1rem;bottom:1rem;padding:.75rem 1rem .75rem .9rem;font-size:.8rem}
  .saved-drawer-hd{padding:1.3rem 1.15rem 1rem}
  .saved-drawer-title{font-size:1.55rem}
  .saved-card{grid-template-columns:78px 1fr auto;gap:.7rem}
  .saved-card-thumb{width:78px;height:78px}
}


/* ─── Buyer Tools Grid ─── */
.tools-grid-section{background:#fff;padding:4rem 1.5rem 3rem}
.tools-grid-section.alt{background:var(--sand2,#f3efe8)}
.tools-grid-inner{max-width:1240px;margin:0 auto}
.tools-grid-head{text-align:center;margin-bottom:2.5rem}
.tools-grid-head .eyebrow{display:inline-block;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:.6rem}
.tools-grid-head h2{font-family:'Cormorant Garamond',serif;font-size:clamp(1.8rem,3vw,2.4rem);color:var(--ink);font-weight:500;margin:0 0 .6rem;line-height:1.15}
.tools-grid-head p{color:var(--muted);max-width:60ch;margin:0 auto;font-size:1.02rem}
.tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.4rem}
.tool-card{position:relative;display:flex;flex-direction:column;background:var(--sand);border:1px solid var(--line);border-radius:14px;padding:1.8rem 1.6rem 1.5rem;text-decoration:none;color:inherit;cursor:pointer;transition:transform .25s,box-shadow .25s,border-color .25s,background .25s;overflow:hidden;font-family:inherit;text-align:left}
.tools-grid-section.alt .tool-card{background:#fff}
.tool-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold);opacity:0;transition:opacity .25s}
.tool-card:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:0 14px 32px -16px rgba(10,61,71,.22);background:#fff}
.tools-grid-section.alt .tool-card:hover{background:var(--sand)}
.tool-card:hover::before{opacity:1}
.tool-icon{width:54px;height:54px;border-radius:14px;background:rgba(182,139,91,.14);color:var(--gold);display:inline-flex;align-items:center;justify-content:center;margin-bottom:1.1rem;transition:background .25s,color .25s}
.tool-card:hover .tool-icon{background:var(--gold);color:#fff}
.tool-eyebrow{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:700;margin:0 0 .35rem}
.tool-title{font-family:'Cormorant Garamond',serif;font-size:1.45rem;color:var(--ink);font-weight:500;margin:0 0 .55rem;line-height:1.2}
.tool-desc{color:var(--muted);font-size:.9rem;line-height:1.55;margin:0 0 1.2rem;flex:1}
.tool-cta{display:inline-flex;align-items:center;gap:.4rem;padding:.7rem 1.1rem;border-radius:999px;background:var(--ink);color:#fff!important;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-family:'Karla',sans-serif;border:none;cursor:pointer;align-self:flex-start;transition:background .25s,transform .25s}
.tool-card:hover .tool-cta{background:var(--gold)}
.tool-cta svg{transition:transform .25s}
.tool-card:hover .tool-cta svg{transform:translateX(3px)}
@media (max-width:520px){.tools-grid-section{padding:3rem 1rem 2rem}.tool-card{padding:1.5rem 1.3rem 1.2rem}}

/* ─── Featured Listings Carousel ─── */
.feat-carousel-section{padding:4rem 1.5rem;background:#fff}
.feat-carousel-section.alt{background:var(--sand2,#f3efe8)}
.feat-carousel-inner{max-width:1320px;margin:0 auto}
.feat-carousel-head{text-align:center;margin-bottom:2.25rem}
.feat-carousel-head .eyebrow{display:inline-block;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:.55rem}
.feat-carousel-head h2{font-family:'Cormorant Garamond',serif;font-size:clamp(1.9rem,3.2vw,2.6rem);color:var(--ink);font-weight:500;margin:0 0 .55rem;line-height:1.12}
.feat-carousel-head p{color:var(--muted);max-width:60ch;margin:0 auto;font-size:1.02rem;line-height:1.6}

.feat-carousel{position:relative}
.feat-carousel-viewport{overflow-x:auto;overflow-y:visible;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:1rem .5rem 1.5rem}
.feat-carousel-viewport::-webkit-scrollbar{display:none}
.feat-carousel .cards{display:flex;gap:1.5rem;grid-template-columns:none;padding:0}
.feat-carousel .cards .card{flex:0 0 calc((100% - 3rem)/3);scroll-snap-align:start;min-width:280px;position:relative}

/* Featured ribbon on every carousel card */
.feat-carousel .cards .card::after{
  content:'FEATURED';position:absolute;top:14px;right:14px;z-index:3;
  padding:.35rem .7rem;background:var(--gold);color:#fff;
  font-family:'Karla',sans-serif;font-size:.62rem;letter-spacing:.18em;font-weight:700;
  border-radius:999px;pointer-events:none;
  box-shadow:0 3px 10px -2px rgba(182,139,91,.45);
}

/* Arrow buttons */
.feat-arrow{position:absolute;top:45%;width:50px;height:50px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 14px -4px rgba(10,61,71,.18);transition:background .2s,color .2s,transform .2s,border-color .2s;z-index:4}
.feat-arrow:hover{background:var(--gold);color:#fff;border-color:var(--gold);transform:translateY(-50%) scale(1.05)}
.feat-arrow:disabled{opacity:.35;cursor:not-allowed;transform:translateY(-50%)}
.feat-arrow.is-prev{left:-22px;transform:translateY(-50%)}
.feat-arrow.is-next{right:-22px;transform:translateY(-50%)}

/* Dot pagination */
.feat-dots{display:flex;justify-content:center;gap:.55rem;margin-top:.5rem}
.feat-dot{width:8px;height:8px;border-radius:999px;background:rgba(10,61,71,.22);border:none;cursor:pointer;padding:0;transition:background .25s,width .25s}
.feat-dot.is-active{background:var(--gold);width:28px}
.feat-dot:hover{background:var(--gold)}

@media (max-width:1024px){
  .feat-carousel .cards .card{flex:0 0 calc((100% - 1.5rem)/2)}
  .feat-arrow{display:none}
}
@media (max-width:640px){
  .feat-carousel .cards .card{flex:0 0 calc(100% - 1rem)}
  .feat-carousel-section{padding:3rem 1rem}
}

/* ─── Recently Viewed strip (auto-injected before footer) ─────────── */
.rv-strip{
  background:var(--sand, #F5F2ED);
  border-top:1px solid var(--rule, #E5E0D8);
  padding:2.4rem 0;
}
.rv-inner{ max-width:1280px; margin:0 auto; padding:0 2rem; }
.rv-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:1.2rem; }
.rv-eyebrow{
  font-family:'Karla', sans-serif; font-size:.72rem; font-weight:700;
  letter-spacing:.24em; text-transform:uppercase; color:var(--gold, #B89452);
}
.rv-clear{
  background:transparent; border:0; padding:.3rem .6rem; cursor:pointer;
  font-family:'Karla', sans-serif; font-size:.72rem; font-weight:600;
  letter-spacing:.06em; color:var(--muted, #5f6a6d); text-transform:uppercase;
}
.rv-clear:hover{ color:var(--danger, #C0392B); }
.rv-row{
  display:grid; gap:.85rem;
  grid-template-columns:repeat(auto-fit, minmax(170px, 1fr));
}
.rv-card{
  display:flex; flex-direction:column; gap:.55rem;
  background:#fff; border:1px solid var(--rule, #E5E0D8); border-radius:8px;
  padding:.55rem; text-decoration:none; color:var(--ink, #0a3d47);
  transition:transform .15s ease, border-color .2s ease, box-shadow .2s ease;
}
.rv-card:hover{ transform:translateY(-2px); border-color:var(--gold, #B89452); box-shadow:0 8px 20px -12px rgba(10,20,22,.2); }
.rv-thumb{
  width:100%; aspect-ratio:4/3; background:#e9e6df; border-radius:5px;
  overflow:hidden; position:relative;
}
.rv-thumb img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .35s ease, opacity .25s ease;
}
.rv-card:hover .rv-thumb img{ transform:scale(1.04) }
.rv-info{ padding:0 .15rem .15rem; line-height:1.3; }
.rv-name{ font-size:.82rem; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rv-price{ font-size:.7rem; color:var(--muted, #5f6a6d); margin-top:.18rem; }
@media (max-width:600px){
  .rv-strip{ padding:1.8rem 0; }
  .rv-inner{ padding:0 1.2rem; }
  .rv-row{ grid-template-columns:repeat(auto-fit, minmax(130px, 1fr)); gap:.6rem; }
  .rv-name{ font-size:.76rem; }
}


/* ═════════════════════════════════════════════════════════════════
   HERO KEN BURNS (added 2026-02-06)
   Subtle, slow drift on Sebastian's portrait — adds life to the
   static photo without being visually distracting. The existing
   word-by-word H1 reveal + credentials cascade are already handled
   by the original [data-reveal] system in shared.js.
   To roll back: delete this entire block.
   ═════════════════════════════════════════════════════════════════ */
.about-hero .ah-portrait-frame img{
  animation: heroKenBurns 28s ease-in-out infinite alternate;
  transform-origin: center center;
  will-change: transform;
}
@keyframes heroKenBurns{
  0%  { transform: scale(1)     translate(0,    0); }
  100%{ transform: scale(1.045) translate(-1%, -.8%); }
}
@media (prefers-reduced-motion: reduce){
  .about-hero .ah-portrait-frame img{ animation: none !important; transform: none !important; }
}
