/* Playa Lux - shared styles */
:root{
  --sand:#FAF6EE; --sand-deep:#F1EADC; --card:#FFFFFF; --paper:#FFFFFF;
  --ink:#2C2620; --ink-soft:#6E6253;
  --brand:#1B4C53; --brand-deep:#143B41; --brand-2:#2A6A72; --teal:#007481;
  --brass:#B08A4F; --brass-deep:#8A6A2E;
  --line:#E4DBCB;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--sand);color:var(--ink);font-family:'Manrope',system-ui,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:'Spectral',Georgia,serif;font-weight:500;color:var(--brand);line-height:1.16}
em.script{font-style:italic;color:var(--brass-deep);font-weight:500}
.wrap{max-width:1140px;margin:0 auto;padding:0 26px}
.narrow{max-width:780px}
.eyebrow{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--brass-deep)}
.lead{font-size:19px;color:var(--ink)}

/* language toggle visibility */
[data-lang-es]{display:none}
[data-lang-en-block]{display:block}
[data-lang-es-block]{display:none}
body.lang-es [data-lang-en]{display:none}
body.lang-es [data-lang-es]{display:inline}
body.lang-es [data-lang-en-block]{display:none}
body.lang-es [data-lang-es-block]{display:block}

.btn{display:inline-block;font-family:'Manrope';font-weight:600;font-size:14px;padding:13px 26px;border-radius:3px;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background .2s,color .2s}
.btn-brass{background:var(--brass);color:#fff}
.btn-brass:hover{background:var(--brass-deep)}
.btn-teal{background:var(--brand);color:#fff}
.btn-teal:hover{background:var(--brand-deep)}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.6)}
.btn-ghost:hover{background:rgba(255,255,255,.2)}
.btn-outline{background:transparent;color:var(--brand);border-color:var(--brand)}
.btn-outline:hover{background:var(--brand);color:#fff}
:focus-visible{outline:2px solid var(--brass-deep);outline-offset:3px}

/* header */
.site-head{position:sticky;top:0;z-index:60;background:rgba(250,246,238,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.site-head .bar{display:flex;align-items:center;justify-content:space-between;height:76px;max-width:1140px;margin:0 auto;padding:0 26px}
.site-head .logo img{height:42px;width:auto;display:block}
.nav{display:flex;align-items:center;gap:28px}
.nav a{font-size:14px;font-weight:500;text-decoration:none;color:var(--ink)}
.nav a:hover{color:var(--brand)}
.nav .book{background:var(--brand);color:#fff;padding:9px 18px;border-radius:3px}
.nav .book:hover{background:var(--brand-deep);color:#fff}
.langbtn{background:none;border:1px solid var(--line);border-radius:3px;font:600 12px 'Manrope';color:var(--ink);padding:7px 11px;cursor:pointer;letter-spacing:.05em}
.langbtn:hover{border-color:var(--brand);color:var(--brand)}

/* dropdown */
.dd{position:relative}
.dd>a{display:inline-flex;align-items:center;gap:5px}
.dd-menu{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%) translateY(6px);background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 18px 40px -22px rgba(20,40,42,.45);padding:8px;min-width:220px;opacity:0;visibility:hidden;transition:.18s}
.dd:hover .dd-menu,.dd:focus-within .dd-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.dd-menu a{display:block;padding:10px 14px;border-radius:4px;font-size:14px}
.dd-menu a:hover{background:var(--sand-deep);color:var(--brand)}

/* burger + mobile menu */
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px;margin-right:-8px}
.burger span{display:block;width:24px;height:2px;background:var(--brand);margin:5px 0;transition:.2s}
.mobile-menu{position:fixed;inset:0;z-index:70;background:var(--brand);color:#fff;padding:80px 30px 40px;transform:translateX(100%);transition:transform .26s ease;overflow-y:auto}
.mobile-menu.open{transform:translateX(0)}
.mobile-menu a{display:block;color:#F1E9D8;text-decoration:none;font-family:'Spectral';font-size:24px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.mobile-menu a.sub{font-size:17px;font-family:'Manrope';padding-left:16px;color:#C9D6D2}
.mobile-menu .mlabel{color:#C9A86B;font-size:12px;letter-spacing:.18em;text-transform:uppercase;margin-top:22px;font-weight:600}
.mclose{position:absolute;top:22px;right:24px;background:none;border:0;color:#fff;font-size:30px;cursor:pointer;line-height:1}
@media(max-width:860px){
  .nav{display:none}
  .burger{display:block}
}

/* hero - content bottom-left, readable over photo */
.hero{position:relative;min-height:600px;display:flex;align-items:flex-end;color:#FBF6EC;background:linear-gradient(118deg,#143B41,#1B4C53 45%,#2A6A72 70%,#9A7838);background-size:cover;background-position:center}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(12,26,28,.78) 0%,rgba(12,26,28,.30) 42%,rgba(12,26,28,.08) 75%)}
.hero .inner{position:relative;z-index:2;max-width:1140px;margin:0 auto;width:100%;padding:0 26px 56px}
.hero .rule{width:54px;height:2px;background:var(--brass);margin-bottom:18px}
.hero h1{color:#FBF6EC;font-size:clamp(32px,5vw,54px);font-weight:500;max-width:17ch}
.hero p{font-size:clamp(15px,2vw,19px);color:#F1E9D8;margin-top:14px;max-width:44ch}
.hero .cta{margin-top:24px;display:flex;flex-direction:row;gap:11px;flex-wrap:wrap}
@media(max-width:560px){
  .hero{min-height:78vh}
  .hero .inner{padding-bottom:42px}
  .hero .cta .btn{flex:1;text-align:center;min-width:0;padding-left:14px;padding-right:14px}
}

/* page hero */
.page-hero{position:relative;color:#FBF6EC;background:linear-gradient(118deg,#143B41,#1B4C53 55%,#2A6A72);padding:64px 0 56px}
.page-hero .eyebrow{color:#C9A86B}
.page-hero h1{color:#FBF6EC;font-size:clamp(30px,4.5vw,46px);margin-top:10px}
.page-hero p{color:#F1E9D8;font-size:18px;margin-top:14px;max-width:56ch}

/* sections */
.section{padding:76px 0}
.section.alt{background:var(--sand-deep)}
.section.dark{background:var(--brand);color:#EDE4D2}
.section.dark h2{color:var(--paper)} .section.dark .eyebrow{color:#C9A86B}
.shead{max-width:64ch}
.shead.center{margin:0 auto;text-align:center}
.shead h2{font-size:clamp(26px,3.4vw,38px);margin-top:10px}
.shead p{font-size:17px;color:var(--ink-soft);margin-top:14px}

/* features */
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px;margin-top:42px}
.feature{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:30px 28px}
.feature .ic{width:46px;height:46px;border-radius:50%;background:var(--sand-deep);display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.feature h3{font-size:21px}
.feature p{font-size:14.5px;color:var(--ink-soft);margin-top:9px}

/* property grid + cards + carousel */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:26px;margin-top:40px}
.grid.three{grid-template-columns:repeat(3,1fr)}
@media(max-width:920px){.grid.three{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.grid.three{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-3px);box-shadow:0 16px 36px -22px rgba(20,40,42,.45)}
.carousel{position:relative;height:220px;overflow:hidden}
.carousel .slides{display:flex;height:100%;transition:transform .35s ease}
.carousel .slide{min-width:100%;height:100%;background-size:cover;background-position:center}
.carousel .tag{position:absolute;top:12px;left:12px;z-index:3;background:rgba(20,40,42,.72);color:#F1E9D8;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;padding:5px 11px;border-radius:2px}
.carousel .arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;background:rgba(255,255,255,.85);border:0;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:16px;color:var(--brand);display:flex;align-items:center;justify-content:center}
.carousel .arrow:hover{background:#fff}
.carousel .prev{left:10px} .carousel .next{right:10px}
.carousel .dots{position:absolute;bottom:11px;left:50%;transform:translateX(-50%);z-index:3;display:flex;gap:6px}
.carousel .dots i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer}
.carousel .dots i.on{background:#fff}
.card .body{padding:20px 22px 24px;display:flex;flex-direction:column;flex:1}
.card h3{font-size:22px}
.card .loc{font-family:'Spectral';font-style:italic;color:var(--brass-deep);font-size:15px;margin-top:2px}
.card .facts{font-size:14px;color:var(--ink-soft);margin-top:11px}
.card .desc{font-size:13.5px;color:var(--ink-soft);margin-top:9px;flex:1}
.card .btn{margin-top:18px;text-align:center;width:100%}
.more-row{text-align:center;margin-top:42px}

/* pillars (services) */
.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-top:42px}
.pillar{border-left:2px solid var(--brass);padding:6px 0 6px 22px}
.pillar h3{font-size:21px}
.pillar ul{list-style:none;margin-top:12px}
.pillar li{font-size:14.5px;color:var(--ink-soft);padding:5px 0 5px 20px;position:relative}
.pillar li::before{content:"";position:absolute;left:0;top:13px;width:7px;height:7px;border-radius:50%;background:var(--teal)}
.pillar .btn{margin-top:16px}

/* trust bar / stats */
.trust{background:var(--brand);color:#EDE4D2;border-radius:10px;padding:36px 28px;margin-top:0}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:24px}
.stat{text-align:center}
.stat .n{font-family:'Spectral';font-size:40px;color:#fff;font-weight:600;line-height:1}
.trust .stat .n{color:#fff}
.stat .l{font-size:12.5px;color:var(--ink-soft);margin-top:8px;letter-spacing:.02em}
.trust .stat .l{color:#A9BCBC}

/* split */
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:40px;align-items:center}
.split .img{min-height:320px;border-radius:8px;background:linear-gradient(135deg,#1B4C53,#143B41);background-size:cover;background-position:center;position:relative}
.split .img span{position:absolute;right:14px;bottom:12px;font-family:'Spectral';font-style:italic;font-size:13px;color:#EBE2D0;opacity:.82}
.split h2{font-size:clamp(24px,3vw,32px)}
.split p{font-size:16px;margin-top:14px}

/* map / where */
.maprow{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:32px;margin-top:40px;align-items:stretch}
.map-frame{border:1px solid var(--line);border-radius:8px;overflow:hidden;min-height:320px}
.map-frame iframe{width:100%;height:100%;min-height:320px;border:0;display:block}
.cbox{background:var(--card);border:1px solid var(--line);border-radius:7px;padding:22px 24px;margin-bottom:14px}
.cbox .lbl{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-deep);font-weight:600}
.cbox a,.cbox p{font-size:16px;color:var(--ink);text-decoration:none;margin-top:6px;display:block;line-height:1.5}
.cbox a:hover{color:var(--brand)}

/* reviews */
.reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:42px}
.review{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:28px 26px;display:flex;flex-direction:column}
.review .stars{color:var(--brass);font-size:15px;letter-spacing:2px}
.review .quote{font-family:'Spectral';font-size:17.5px;line-height:1.55;color:var(--ink);margin-top:14px;flex:1}
.review .who{margin-top:18px;font-size:13.5px;color:var(--ink-soft)}
.review .who b{color:var(--brand);font-weight:600;font-family:'Manrope'}

/* floating whatsapp */
.wa-float{position:fixed;right:20px;bottom:20px;z-index:80;width:58px;height:58px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px -8px rgba(0,0,0,.4);transition:transform .15s}
.wa-float:hover{transform:scale(1.06)}
.wa-float svg{width:30px;height:30px;fill:#fff}

/* footer */
.foot{background:var(--brand);color:#E7E0D0;padding:54px 0 30px}
.foot img{height:54px;margin-bottom:18px;filter:brightness(0) invert(1);opacity:.92}
.foot .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:26px}
.foot a{color:#E7E0D0;text-decoration:none;font-size:14px;display:block;margin-top:7px}
.foot a:hover{color:#fff}
.foot h4{color:#fff;font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-family:'Manrope';font-weight:600}
.foot .base{margin-top:36px;padding-top:20px;border-top:1px solid rgba(255,255,255,.16);font-size:13px;color:#A9BCBC;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.foot .base a{display:inline;margin:0}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* service-page checklist */
.checklist{list-style:none;margin-top:28px;max-width:640px}
.checklist li{position:relative;padding:14px 0 14px 34px;border-bottom:1px solid var(--line);font-size:16.5px;color:var(--ink)}
.checklist li::before{content:"✓";position:absolute;left:2px;top:13px;color:var(--brass-deep);font-weight:700}
.svc-nav{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}

/* header right-side controls (lang + burger) */
.bar-ctrl{display:flex;align-items:center;gap:12px}

/* homepage: 6 homes on desktop/tablet, first 3 on mobile */
@media(max-width:620px){.grid.three .card:nth-child(n+4){display:none}}

/* about: team photo strip */
.team-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:38px}
.team-photos>div{height:230px;border-radius:8px;background-size:cover;background-position:center;border:1px solid var(--line)}
@media(max-width:640px){.team-photos{grid-template-columns:1fr 1fr}}

/* reviews horizontal scroller */
.reviews-wrap{position:relative;margin-top:42px}
.reviews-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:2px 2px 12px;-webkit-overflow-scrolling:touch}
.reviews-track::-webkit-scrollbar{height:6px}
.reviews-track::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.reviews-track .review{scroll-snap-align:start;flex:0 0 calc((100% - 48px)/3)}
@media(max-width:900px){.reviews-track .review{flex:0 0 calc((100% - 24px)/2)}}
@media(max-width:620px){.reviews-track .review{flex:0 0 86%}}
.rev-arrow{position:absolute;top:calc(50% - 6px);transform:translateY(-50%);z-index:5;width:42px;height:42px;border-radius:50%;background:#fff;border:1px solid var(--line);color:var(--brand);font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px -8px rgba(20,40,42,.4)}
.rev-arrow:hover{background:var(--sand-deep)}
.rev-arrow.prev{left:-10px}
.rev-arrow.next{right:-10px}
@media(max-width:620px){.rev-arrow{display:none}}

.card .from-price{margin:0 0 14px;font-size:14px;color:var(--brand);letter-spacing:.01em}
.card .from-price b{font-weight:700;font-size:15px}

/* homepage date search -> Guesty overview */
.hv-search{display:flex;justify-content:center;align-items:flex-end;gap:14px;flex-wrap:wrap;max-width:760px;margin:0 auto}
.hv-search-field{display:flex;flex-direction:column;gap:7px;text-align:left}
.hv-search-field label{font:700 11px/1 'Manrope',sans-serif;color:var(--brand,#1B4C53);letter-spacing:.08em;text-transform:uppercase}
.hv-search-field input{height:52px;border:1px solid var(--line,#E4DAC4);border-radius:10px;padding:0 16px;background:#fff;font:400 15px/1 'Manrope',sans-serif;color:var(--ink,#1A1612);min-width:180px;cursor:pointer}
.hv-search-field input:focus{outline:none;border-color:var(--brass,#B08A4F)}
.hv-search .hv-search-btn{height:52px;padding:0 30px}
@media(max-width:620px){.hv-search{flex-direction:column;align-items:stretch;max-width:340px}.hv-search-field input{width:100%;box-sizing:border-box}.hv-search .hv-search-btn{width:100%}}

/* ============================================================
   PLAYA LUX - warm theme.
   High View is coastal/teal + brass. Playa Lux is terracotta,
   sand and sage: softer, more personal, rounder edges.
   ============================================================ */
:root{
  --sand:#FDF8F1; --sand-deep:#F5EDE1; --card:#FFFFFF;
  --ink:#2E251D; --ink-soft:#6B5B4B;
  --brand:#9C4F2C;        /* terracotta - headings, primary */
  --brand-deep:#7C3B1E;
  --brand-2:#C2734A;
  --teal:#5F8478;         /* sage, used sparingly */
  --brass:#C97F4E; --brass-deep:#A25E33;
  --line:#EADFCF;
}
h1,h2,h3,h4{color:var(--ink)}
.page-hero h1,.home-hero h1{letter-spacing:-.01em}
.eyebrow{color:var(--brand)}
.btn{border-radius:999px;padding:13px 28px}
.nav .book{border-radius:999px;padding:10px 20px}
.langbtn{border-radius:999px}

/* wordmark replaces the logo image */
.wordmark{font-family:'Spectral',Georgia,serif;font-size:25px;font-weight:500;letter-spacing:.005em;color:var(--brand);text-decoration:none}
.foot-mark{display:inline-block;margin-bottom:22px;color:#F3E7D6}

/* home hero */
.home-hero{background-size:cover;background-position:center;color:#fff;padding:150px 0 120px;text-align:center}
.home-hero h1{color:#fff;font-size:clamp(38px,6vw,62px);margin:10px 0 16px}
.home-hero .eyebrow{color:rgba(255,255,255,.85)}
.home-hero-sub{color:rgba(255,255,255,.92);font-size:20px;max-width:640px;margin:0 auto}
.home-hero-cta{margin-top:32px}

/* warm closing block */
.warm-cta{background:var(--sand-deep)}
.warm-cta h2{font-size:clamp(26px,3.4vw,36px)}
.warm-cta-body{font-size:18px;color:var(--ink-soft);max-width:560px;margin:14px auto 0;line-height:1.65}
.center{text-align:center}
.shead-sub{color:var(--ink-soft);margin-top:8px;font-size:16.5px}

/* cards - softer */
.card{border-radius:18px;overflow:hidden;background:var(--card);border:1px solid var(--line)}
.card .carousel{border-radius:0}
.card h3 a{text-decoration:none}
.card h3 a:hover{color:var(--brand)}
.card-link{display:block;text-decoration:none}
.card .tag{background:rgba(46,37,29,.72);color:#fff;border-radius:999px;font-size:12px;padding:5px 11px}
.empty{color:var(--ink-soft);font-size:17px;padding:30px 0}

/* filters */
.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:30px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.filter{display:flex;flex-direction:column;gap:6px}
.filter span{font:600 11px/1 Manrope,sans-serif;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft)}
.filter select{font:500 14px Manrope,sans-serif;padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);min-width:160px}
.filter-count{margin-left:auto;font-size:14px;color:var(--ink-soft)}

/* two-up (about) */
.two-up{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.two-up-item{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px}
.two-up-item h3{font-size:21px;margin-bottom:10px}
.two-up-item p{color:var(--ink-soft)}
@media(max-width:760px){.two-up{grid-template-columns:1fr}}

/* contact */
.contact-ways{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:26px}
.cw{display:block;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;text-decoration:none}
.cw:hover{border-color:var(--brand-2)}
.cw-k{display:block;font:600 11px/1 Manrope,sans-serif;letter-spacing:.09em;text-transform:uppercase;color:var(--brand);margin-bottom:7px}
.cw-v{display:block;font-size:16px;color:var(--ink)}

/* checklist - warmer marker */
.checklist li::marker{color:var(--brand-2)}

/* property detail tweaks to match */
.pd-card{background:var(--sand-deep);border-color:var(--line);border-radius:20px}
.pd-card-lead{color:var(--ink)}
.pd-gallery img{border-radius:16px}
.av-free{background:#EAF1E9;color:#4A6B4F}

/* ============ crisper header ============ */
.site-head{background:rgba(253,248,241,.86);backdrop-filter:saturate(1.5) blur(14px);border-bottom:1px solid rgba(234,223,207,.9);box-shadow:0 1px 0 rgba(46,37,29,.03)}
.site-head .bar{height:72px}
.wordmark{font-size:27px;letter-spacing:-.012em;line-height:1;display:inline-block;padding-top:2px}
.wordmark::first-letter{color:var(--brand-deep)}
.nav{gap:26px}
.nav a{font-size:14.5px;font-weight:500;letter-spacing:.005em;color:var(--ink);opacity:.85;transition:opacity .15s,color .15s}
.nav a:hover{opacity:1;color:var(--brand)}
.nav .book{background:var(--brand);color:#fff;opacity:1;font-weight:600;box-shadow:0 1px 2px rgba(124,59,30,.2)}
.nav .book:hover{background:var(--brand-deep);color:#fff}

/* ============ hero ============ */
.home-hero{padding:170px 0 130px}
.home-hero h1{font-size:clamp(40px,6.2vw,68px);line-height:1.05;text-shadow:0 2px 24px rgba(30,24,18,.28)}
.home-hero-sub{font-size:21px;text-shadow:0 1px 14px rgba(30,24,18,.3)}
.home-hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.page-hero{padding:74px 0 56px;background:var(--sand-deep);border-bottom:1px solid var(--line)}
.page-hero h1{font-size:clamp(32px,4.6vw,50px);margin:8px 0 12px}
.page-hero p{color:var(--ink-soft);font-size:18px;max-width:640px}

/* ============ finder ============ */
.finder-band{padding:0;margin-top:-46px;position:relative;z-index:5}
.finder{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px 26px;display:flex;flex-wrap:wrap;align-items:flex-end;gap:18px;box-shadow:0 12px 34px rgba(46,37,29,.09)}
.finder .btn{margin-left:auto}
.finder-note{width:100%;margin:0;font-size:13px;color:var(--ink-soft)}
@media(max-width:700px){.finder .btn{margin-left:0;width:100%;text-align:center}}

/* ============ richer cards ============ */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:26px}
.card{display:flex;flex-direction:column;transition:transform .18s,box-shadow .18s}
.card:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(46,37,29,.11)}
.card .body{padding:22px 22px 20px;display:flex;flex-direction:column;flex:1}
.card .loc{font:600 11px/1 Manrope,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);margin-bottom:8px}
.card h3{font-size:22px;margin-bottom:8px}
.card .desc{color:var(--ink-soft);font-size:14.5px;line-height:1.6}
.pills{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 16px}
.pill{font:600 11.5px/1 Manrope,sans-serif;padding:6px 11px;border-radius:999px;background:var(--sand-deep);color:var(--ink-soft)}
.pill-accent{background:#F6E4D8;color:var(--brand-deep)}
.card-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}
.price{font-size:15px;color:var(--ink)}
.price-ask{font-size:13.5px;color:var(--ink-soft)}
.card-cta{font:600 13.5px Manrope,sans-serif;color:var(--brand);text-decoration:none;white-space:nowrap}
.card-cta:hover{color:var(--brand-deep)}

/* ============ trio ============ */
.trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.trio-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px}
.trio-card h3{font-size:22px;margin-bottom:12px}
.trio-card p{color:var(--ink-soft);font-size:15px;line-height:1.65}
.trio-link{display:inline-block;margin-top:16px;font:600 14px Manrope,sans-serif;color:var(--brand);text-decoration:none}

/* ============ stats ============ */
.stats-band{background:var(--brand);padding:56px 0}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:26px;text-align:center}
.stat-n{display:block;font:500 42px/1 Spectral,serif;color:#fff}
.stat-l{display:block;margin-top:8px;font:600 11.5px/1 Manrope,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.8)}

/* ============ faq ============ */
.faq{margin-top:12px}
.faq-item{border-bottom:1px solid var(--line);padding:4px 0}
.faq-item summary{cursor:pointer;list-style:none;padding:18px 0;font:500 18px/1.4 Spectral,serif;color:var(--ink);display:flex;justify-content:space-between;gap:16px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';color:var(--brand);font:400 24px/1 Manrope,sans-serif;flex-shrink:0}
.faq-item[open] summary::after{content:'−'}
.faq-item p{color:var(--ink-soft);padding:0 0 20px;font-size:15.5px;line-height:1.7;max-width:60ch}

/* ============ closing ============ */
.closing{background:var(--sand-deep);border-top:1px solid var(--line)}
.closing-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:26px}

/* ============ reviews / shead ============ */
.shead{margin-bottom:30px}
.shead h2{font-size:clamp(27px,3.6vw,38px)}
.shead.center{text-align:center}
.shead.center .shead-sub{margin-left:auto;margin-right:auto;max-width:600px}
.reviews-track{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.review{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px}
.review .stars{color:var(--brass);letter-spacing:2px;margin-bottom:12px}
.review .quote{font:italic 400 16px/1.65 Spectral,serif;color:var(--ink)}
.review .who{margin-top:14px;font-size:13.5px;color:var(--ink-soft)}

/* ============ FIX: footer wordmark inherited the dark-red first letter ============ */
.foot-mark, .foot-mark::first-letter { color: #F3E7D6 !important; }

/* ============ feature grid + icons (Pacific standard) ============ */
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:38px 32px}
.feature{display:flex;flex-direction:column;gap:6px}
.feature-icon{width:46px;height:46px;border-radius:12px;background:#F6E4D8;color:var(--brand);display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px}
.feature-icon.sage{background:#E6EFE9;color:#4F7A70}
.feature h3{font:600 19.5px/1.3 Manrope,sans-serif;letter-spacing:-.005em;margin:0 0 4px;color:var(--ink)}
.feature p{color:var(--ink-soft);font-size:14.5px;line-height:1.62;margin:0}

/* chips */
.chips{display:flex;flex-wrap:wrap;gap:12px}
.chip{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 18px 9px 10px;font:500 14.5px Manrope,sans-serif;color:var(--ink)}
.chip .feature-icon{width:30px;height:30px;border-radius:999px;margin:0}
.chip .feature-icon svg{width:17px;height:17px}

/* italic second clause in headings */
em.script{font-style:italic;font-weight:400;font-family:'Spectral',Georgia,serif;color:var(--brand-2)}
.page-hero-img em.script,.home-hero em.script{color:#F0C9AE}

/* image page hero */
.page-hero-img{background-size:cover;background-position:center;border-bottom:0;padding:120px 0 90px}
.page-hero-img h1,.page-hero-img .page-hero-sub{color:#fff}
.page-hero-img h1{text-shadow:0 2px 20px rgba(30,24,18,.3)}
.page-hero-img .eyebrow{color:rgba(255,255,255,.86)}
.page-hero-sub{font-size:19px;max-width:640px;margin-top:12px;line-height:1.6}
.page-hero-img .page-hero-sub{color:rgba(255,255,255,.92)}

/* ============================================================
   PROPERTY DETAIL - structure ported from pacific-pm-site
   ============================================================ */
.pdp-hero{position:relative;height:70vh;min-height:520px;background-size:cover;background-position:center;margin-top:-1px}
.pdp-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,24,18,.10) 0%,rgba(30,24,18,.72) 100%)}
.pdp-hero-overlay{position:absolute;bottom:0;left:0;right:0;padding:56px 0 46px;z-index:2;color:#fff}
.pdp-hero-overlay .eyebrow{color:#F0C9AE;font-weight:700}
.pdp-hero-overlay h1{color:#fff;font-size:clamp(38px,5.4vw,62px);line-height:1.04;margin:10px 0 16px;text-shadow:0 2px 22px rgba(30,24,18,.3)}
.pdp-stats{display:flex;flex-wrap:wrap;align-items:center;font:500 15px Manrope,sans-serif;color:rgba(255,255,255,.94);gap:0}
.pdp-stats > span{display:inline-flex;align-items:center;gap:7px}
.pdp-stats > span + span::before{content:"·";margin:0 14px;opacity:.6}
.pdp-stats em{font-style:normal;font-weight:700}

.pdp-top{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:52px;align-items:start;padding:clamp(40px,5vw,64px) 0 56px}
.pdp-main h2{font-size:clamp(26px,3.2vw,34px);margin-bottom:14px}
.pdp-main p{color:var(--ink-soft);font-size:16.5px;line-height:1.78;margin-bottom:16px}
.pdp-quote{font:italic 400 21px/1.55 Spectral,serif!important;color:var(--brand-deep)!important;border-left:3px solid var(--brand-2);padding-left:20px;margin:4px 0 24px}

/* the booking / availability card - sticky, right column */
.pdp-book{min-width:0;position:sticky;top:92px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 10px 30px rgba(46,37,29,.07)}
.pdp-book-rating{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink-soft);margin-bottom:10px}
.pdp-book-rating .stars{color:var(--brass);letter-spacing:-1px}
.pdp-book-rating strong{color:var(--ink);font-size:15px}
.pdp-book-price{font:500 27px/1 Spectral,serif;color:var(--ink);margin-bottom:10px}
.pdp-book-price small{font:400 13.5px Manrope,sans-serif;color:var(--ink-soft);margin-left:4px}
.pdp-book-prompt{font-size:13.5px;line-height:1.6;color:var(--ink-soft);margin-bottom:16px}
.pdp-book .calendar-block{padding:0;border:0;border-radius:0;background:none}
.pdp-book-btn{display:block;text-align:center;margin-top:12px}
.pdp-incl{list-style:none;padding:16px 0 0;margin:16px 0 0;border-top:1px solid var(--line)}
.pdp-incl li{font-size:13px;color:var(--ink-soft);padding:5px 0 5px 19px;position:relative}
.pdp-incl li::before{content:'✓';position:absolute;left:0;color:var(--brand-2);font-weight:700}
.pdp-book-alt{margin:14px 0 0;text-align:center;font-size:13px}
.pdp-book-alt a{color:#8A7B66}

.pdp-fullwidth{padding:56px 0}
.pdp-fullwidth h2,.section-deep h2{font-size:clamp(26px,3.2vw,34px)}
.pdp-sub{color:var(--ink-soft);font-size:16px;margin:8px 0 22px;max-width:62ch}
.section-deep{background:var(--sand-deep)}

.pdp-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:24px 0;border-radius:14px;overflow:hidden}
.pdp-shot{display:block;line-height:0}
.pdp-shot img{width:100%;height:250px;object-fit:cover;transition:transform .35s}
.pdp-shot:hover img{transform:scale(1.03)}

.pdp-amenities-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:36px 28px;margin:24px 0}
.pdp-amenity-group h3{font:600 12px/1 Manrope,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);margin-bottom:14px}
.pdp-amenity-group ul{list-style:none;padding:0}
.pdp-amenity-group li{font-size:14.5px;color:var(--ink-soft);padding:6px 0 6px 20px;position:relative}
.pdp-amenity-group li::before{content:'';position:absolute;left:0;top:13px;width:6px;height:6px;border-radius:50%;background:var(--brand-2)}

.pdp-loc{display:grid;grid-template-columns:1.5fr 1fr;gap:34px;align-items:start;margin-top:6px}
.pdp-map{border-radius:16px;overflow:hidden;border:1px solid var(--line);line-height:0}
.pdp-map iframe{width:100%;height:340px;border:0}
.pdp-dist h3{font:600 12px/1 Manrope,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);margin-bottom:12px}
.pdp-dist ul{list-style:none;padding:0}
.pdp-dist li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--ink-soft)}
.pdp-dist b{color:var(--ink);font-weight:600;white-space:nowrap}

.pdp-highlights{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;margin:24px 0}
.pdp-highlight{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px}
.pdp-highlight-cat{font:600 10.5px/1 Manrope,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);margin-bottom:10px}
.pdp-highlight h3{font-size:19px;margin-bottom:8px}
.pdp-highlight p{color:var(--ink-soft);font-size:14.5px;line-height:1.6}

.pd-others{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.pd-other{display:block;text-decoration:none;color:inherit}
.pd-other img{width:100%;height:170px;object-fit:cover;border-radius:14px;margin-bottom:10px}
.pd-other-name{display:block;font:500 17px/1.3 Spectral,serif;color:var(--ink)}
.pd-other-facts{display:block;font-size:13.5px;color:#8A7B66;margin-top:3px}

@media(max-width:980px){
  .pdp-top{grid-template-columns:1fr;gap:34px}
  .pdp-book{position:static}
  .pdp-loc{grid-template-columns:1fr}
  .pdp-gallery{grid-template-columns:repeat(2,1fr)}
  .pdp-hero{height:56vh;min-height:420px}
}
@media(max-width:600px){.pdp-gallery{grid-template-columns:1fr}.pdp-shot img{height:230px}}

/* ============ CALENDAR - rules matched to the ported widget's real class names
   (my earlier hand-written ones used classes the widget never emits) ============ */
.calendar-head{
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 20px;
}
.calendar-month{
  font-family: 'Spectral',Georgia,serif;
  font-size: 22px;
  font-weight: 500;
  color: var(--ink);
}
.calendar-month-year{
  font-size: 14px;
  color: var(--ink-soft);
  margin-left: 6px;
  font-family: 'Manrope',sans-serif;
}
.calendar-nav{
  display: flex; gap: 6px;
}
.calendar-arrow{
  width: 36px; height: 36px;
  background: #F7FAF6;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  font-size: 18px; line-height: 1;
  display: inline-flex; align-items: center; justify-content: center;
}
.calendar-arrow:hover{ background: #F6E4D8; border-color: var(--brand); color: var(--brand); }
.calendar-arrow:disabled{ opacity: 0.4; cursor: not-allowed; }
.calendar-grid{
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px;
}
.calendar-weekday{
  font-size: 11px;
  font-weight: 600;
  color: #B6A793;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;
  padding: 8px 0;
}
.calendar-day{
  aspect-ratio: 1;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px;
  font-weight: 500;
  color: var(--ink);
  border-radius: 8px;
  position: relative;
}
.calendar-day.empty{ color: transparent; }
.calendar-day.past{ color: #B6A793; opacity: 0.5; }
.calendar-day.available{
  background: #F7FAF6;
}
.calendar-day.booked{
  background: #EFE7DC;
  color: #B6A793;
  text-decoration: line-through;
}
.calendar-day.today{
  outline: 2px solid var(--brand);
  outline-offset: -2px;
}
.calendar-legend{
  display: flex; gap: 18px; margin-top: 18px;
  font-size: 12px; color: var(--ink-soft);
}
.calendar-legend-dot{
  display: inline-block;
  width: 12px; height: 12px;
  border-radius: 3px;
  margin-right: 6px;
  vertical-align: middle;
}
.calendar-legend-dot.avail{ background: #F7FAF6; border: 1px solid var(--line); }
.calendar-legend-dot.booked{ background: #EFE7DC; border: 1px solid var(--line); }
.calendar-loading{
  padding: 60px 20px;
  text-align: center;
  color: var(--ink-soft);
  font-size: 14px;
}
/* =============================================================================
   CALENDAR DATE PICKER (click-to-select for booking)
   ============================================================================= */
.calendar-day.available{
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.calendar-day.available:hover{
  background: #F6E4D8;
  color: var(--ink);
}
.calendar-day.selected-start,
.calendar-day.selected-end{
  background: var(--ink);
  color: #fff;
  font-weight: 700;
}
.calendar-day.selected-start{ border-radius: 50% 0 0 50%; }
.calendar-day.selected-end{ border-radius: 0 50% 50% 0; }
.calendar-day.selected-start.selected-end{
  border-radius: 50%;
}
.calendar-selected-summary{
  background: #EFE7DC;
  padding: 16px 18px;
  border-radius: 10px;
  margin-top: 18px;
  font-size: 14px;
  display: flex; justify-content: space-between; align-items: center;
  gap: 14px;
}
.calendar-selected-summary strong{ color: var(--ink); font-weight: 600; }
.calendar-selected-summary .clear{
  background: transparent;
  border: none;
  color: var(--ink-soft);
  font-size: 13px;
  cursor: pointer;
  text-decoration: underline;
}
/* Calendar layout - one month per view (use nav arrows to browse) */
.calendar-months{
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}
.calendar-month-block{ background: #fff; border-radius: 12px; padding: 18px; border: 1px solid var(--line); }
.calendar-month{
  font-family: 'Spectral',Georgia,serif;
  font-size: 22px;
  font-weight: 500;
  color: var(--ink);
  margin-right: 8px;
}
.calendar-month-year{
  font-size: 14px;
  color: var(--ink-soft);
  font-weight: 500;
}
.calendar-head{
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 14px;
}
.calendar-nav{ display: flex; gap: 8px; }
.calendar-arrow{
  width: 32px; height: 32px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: #fff;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  color: var(--ink);
}
.calendar-arrow:hover{ background: #EFE7DC; }
.calendar-grid{
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}
.calendar-weekday{
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  color: #B6A793;
  padding: 6px 0;
}
.calendar-day{
  aspect-ratio: 1;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px;
  font-weight: 500;
  border-radius: 8px;
  color: var(--ink);
  position: relative;
}
.calendar-day.empty{ background: transparent; }
.calendar-day.past{ color: #B6A793; opacity: 0.4; }
.calendar-day.booked{
  color: #B6A793;
  text-decoration: line-through;
  background: #EFE7DC;
}
.calendar-day.today{
  outline: 2px solid var(--brand);
  outline-offset: -2px;
}
.calendar-day.available{
  background: #F7FAF6;
}
.calendar-loading{
  padding: 40px 24px;
  text-align: center;
  font-size: 14px;
  color: var(--ink-soft);
}
/* Calendar legend */
.calendar-legend{
  display: flex; gap: 18px; flex-wrap: wrap;
  margin-top: 16px;
  font-size: 12.5px;
  color: var(--ink-soft);
}
.calendar-legend .legend-item{
  display: inline-flex; align-items: center; gap: 6px;
}
.calendar-legend .legend-dot{
  width: 12px; height: 12px;
  border-radius: 3px;
  display: inline-block;
}
.calendar-legend .legend-dot.available{ background: #F7FAF6; border: 1px solid var(--line); }
.calendar-legend .legend-dot.booked{ background: #EFE7DC; border: 1px solid var(--line); text-decoration: line-through; }
.calendar-legend .legend-dot.selected-start{ background: var(--ink); }
.pdp-book .calendar-block, .pdp-book [data-calendar],
  .pdp-book .calendar-months, .pdp-book .calendar-grid{ max-width: 100%; min-width: 0; box-sizing: border-box; }
.pdp-book .calendar-day{
  cursor: pointer;
  transition: background 0.15s;
}
.pdp-book .calendar-day:not(.is-past):not(.is-booked):hover{
  background: #F6E4D8;
}
.pdp-book .calendar-day.is-selected{
  background: var(--brand);
  color: white;
  font-weight: 600;
}
.pdp-book .calendar-day{ font-size: 13px; }
/* Calendar grid must shrink to fit the column */
  .pdp-book .calendar-months{ width: 100%; }
.pdp-book .calendar-month-block{ padding: 12px; }
.pdp-book .calendar-grid{ width: 100%; }
.pdp-book .calendar-day{ font-size: 13px; }
.pdp-book .calendar-month-block{ padding: 8px; }
.pdp-book .calendar-day{ font-size: 12px; }
/* Calendar in-range (between selected start and end) - canonical rule */
.calendar-day.in-range{
  background: #F6E4D8;
  color: var(--ink);
}
.calendar-footnote{margin-top:14px;font-size:13px;line-height:1.55;color:var(--ink-soft)}
.calendar-footnote.warn{background:#FBF1E7;border-left:3px solid var(--brand-2);padding:11px 13px;border-radius:0 9px 9px 0}
.calendar-day.selected-start,.calendar-day.selected-end{background:var(--brand);color:#fff}

/* the booking column is a real column, not a sliver - the calendar needs 7 usable cells */
.pdp-book .calendar-month-block{padding:14px;border:0;background:none}
.pdp-book .calendar-day{font-size:13px}
.pdp-book .calendar-grid{gap:3px}
@media(min-width:981px) and (max-width:1100px){.pdp-top{grid-template-columns:minmax(0,1fr) 330px;gap:36px}}

/* Calendar must shrink to its column - grid children default to min-width:auto,
   which was letting the 7-column grid overflow the booking card by ~116px. */
.pdp-book, .pdp-book *{box-sizing:border-box}
.pdp-book .calendar-block,
.pdp-book [data-calendar],
.pdp-book .calendar-months,
.pdp-book .calendar-month-block,
.pdp-book .calendar-grid{max-width:100%;min-width:0;width:100%}
.pdp-book .calendar-grid > *{min-width:0}
.pdp-book .calendar-day{min-width:0;font-size:12.5px}
.pdp-book .calendar-head{gap:8px;flex-wrap:wrap}
.pdp-book .calendar-month{font-size:18px}
.pdp-book .calendar-selected-summary{flex-wrap:wrap;gap:8px;font-size:13px;padding:12px 14px}
.pdp-book .calendar-legend{gap:12px;font-size:11.5px}

/* ============================================================
   LANGUAGE VISIBILITY GUARD - keep last.
   [data-lang-es]{display:none} is specificity 0,1,0, so any rule like
   `.pdp-stats span{display:inline-flex}` (0,1,1) silently un-hides the
   Spanish and both languages render side by side. This re-asserts it
   above any component rule. See docs/BILINGUAL.md.
   ============================================================ */
body:not(.lang-es) [data-lang-es]{display:none!important}
body:not(.lang-es) [data-lang-es-block]{display:none!important}
body.lang-es [data-lang-en]{display:none!important}
body.lang-es [data-lang-en-block]{display:none!important}
body.lang-es [data-lang-es]{display:inline!important}
body.lang-es [data-lang-es-block]{display:block!important}

/* whole-property unit breakdown - a list, not a wall of specs in a paragraph */
.pdp-units{margin:26px 0 8px;border-top:1px solid var(--line);padding-top:22px}
.pdp-units h3{font:600 12px/1 Manrope,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);margin-bottom:14px}
.pdp-units ul{list-style:none;padding:0}
.pdp-units li{display:grid;grid-template-columns:150px 110px 1fr;gap:14px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--line)}
.pdp-unit-name{font:500 16px/1.3 Spectral,serif;color:var(--ink)}
.pdp-unit-size{font:600 12.5px Manrope,sans-serif;color:var(--brand)}
.pdp-unit-desc{font-size:14px;color:var(--ink-soft);line-height:1.55}
@media(max-width:700px){.pdp-units li{grid-template-columns:1fr;gap:3px}}

/* ============ gallery: 6 shown, toggle, lightbox ============ */
.pdp-gallery-wrap{position:relative}
.pdp-gallery.is-collapsed .pdp-shot:nth-child(n+7){display:none}
.pdp-shot{padding:0;border:0;background:none;cursor:zoom-in;display:block;line-height:0;overflow:hidden}
.pdp-gallery-toggle-wrap{margin-top:18px;text-align:center}
.pdp-gallery-toggle{background:#fff;border:1px solid var(--line);border-radius:999px;padding:11px 22px;font:600 14px Manrope,sans-serif;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.pdp-gallery-toggle:hover{border-color:var(--brand-2);color:var(--brand)}
.pl-lightbox{position:fixed;inset:0;z-index:300;background:rgba(24,19,14,.94);display:none;align-items:center;justify-content:center}
.pl-lightbox.open{display:flex}
.pl-lightbox img{max-width:92vw;max-height:88vh;border-radius:8px}
.pl-lb-close{position:absolute;top:18px;right:24px;background:none;border:0;color:#fff;font-size:40px;line-height:1;cursor:pointer}
.pl-lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);border:0;color:#fff;font-size:34px;width:52px;height:52px;border-radius:50%;cursor:pointer}
.pl-lb-nav.prev{left:20px}.pl-lb-nav.next{right:20px}
.pl-lb-nav:hover{background:rgba(255,255,255,.24)}
.pl-lb-count{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.8);font:500 13px Manrope,sans-serif}

/* ============ sticky property sub-bar ============ */
.pdp-stickybar{position:fixed;top:0;left:0;right:0;z-index:55;background:rgba(253,248,241,.96);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line);transform:translateY(-100%);transition:transform .25s ease;box-shadow:0 2px 14px rgba(46,37,29,.06)}
.pdp-stickybar.show{transform:translateY(0)}
.pdp-stickybar-inner{display:flex;align-items:center;justify-content:space-between;height:64px;gap:20px}
.pdp-stickybar-left{display:flex;align-items:center;gap:22px;min-width:0}
.pdp-stickybar-name{font:500 17px/1 Spectral,serif;color:var(--ink);white-space:nowrap}
.pdp-stickybar-left a{font:500 13.5px Manrope,sans-serif;color:var(--ink-soft);text-decoration:none;white-space:nowrap}
.pdp-stickybar-left a:hover{color:var(--brand)}
.pdp-stickybar-right{display:flex;align-items:center;gap:14px;flex-shrink:0}
.pdp-stickybar-rating{font:600 13.5px Manrope,sans-serif;color:var(--brass)}
.pdp-stickybar .btn{padding:9px 18px;font-size:13.5px}
.pdp-mobilebar{display:none}
@media(max-width:900px){
  .pdp-stickybar{display:none}
  .pdp-mobilebar{position:fixed;left:0;right:0;bottom:0;z-index:55;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#fff;border-top:1px solid var(--line);transform:translateY(110%);transition:transform .25s ease;box-shadow:0 -2px 16px rgba(46,37,29,.1)}
  .pdp-mobilebar.show{transform:translateY(0)}
  .pdp-mobilebar span{font:500 13.5px Manrope,sans-serif;color:var(--ink-soft)}
  .pdp-mobilebar .btn{padding:11px 18px;font-size:13.5px}
}
.pdp-units-note{font-size:14px;color:var(--ink-soft);line-height:1.6;margin:-4px 0 14px;max-width:62ch}
a.pdp-unit-name{color:var(--brand);text-decoration:none}
a.pdp-unit-name:hover{text-decoration:underline}

/* ============ nav active state + drawer (Pacific pattern) ============ */
.nav a.active{color:var(--brand);font-weight:600}
.nav a.book.active{color:#fff}
body.drawer-open{overflow:hidden}
.drawer-backdrop{position:fixed;inset:0;background:rgba(30,24,18,.55);z-index:65;opacity:0;pointer-events:none;transition:opacity .25s ease}
.drawer-backdrop.open{opacity:1;pointer-events:auto}
.mobile-menu{width:min(86vw,360px);left:auto;right:0;inset:0 0 0 auto;box-shadow:-12px 0 32px -8px rgba(30,24,18,.25)}
.mobile-menu a.active{opacity:1;font-weight:700}

/* ============ photo bands + map bands ============ */
.photo-band{padding:0;margin:0}
.photo-band-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.photo-band-shot{height:300px;background-size:cover;background-position:center}
.photo-band-cap{text-align:center;font:italic 400 15px/1.6 Spectral,serif;color:var(--ink-soft);padding:16px 20px 0;margin:0}
.map-band{border-radius:16px;overflow:hidden;border:1px solid var(--line);line-height:0}
.map-band iframe{width:100%;height:380px;border:0;filter:saturate(.85)}
@media(max-width:800px){.photo-band-grid{grid-template-columns:1fr}.photo-band-shot{height:220px}.photo-band-shot:nth-child(n+3){display:none}}

/* ============ forms ============ */
.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:52px;align-items:start}
.contact-side h3{font:600 12px/1 Manrope,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);margin-bottom:14px}
.contact-side{position:sticky;top:96px}
.pl-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:26px}
.fld{display:flex;flex-direction:column;gap:6px;grid-column:1/-1}
.fld.half{grid-column:span 1}
.fld label{font:600 12px/1.3 Manrope,sans-serif;letter-spacing:.04em;color:var(--ink)}
.fld .opt{font-weight:400;color:var(--ink-soft);text-transform:none;letter-spacing:0}
.fld input,.fld select,.fld textarea{font:400 15px Manrope,sans-serif;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;width:100%}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(194,115,74,.15)}
.fld textarea{resize:vertical;min-height:120px}
.pl-form .btn{grid-column:1/-1;justify-self:start}
.hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
.form-err{grid-column:1/-1;margin:0;color:#A32D2D;font-size:14px;background:#FCEBEB;border-radius:10px;padding:11px 14px}
.form-note{grid-column:1/-1;margin:0;font-size:13.5px;color:var(--ink-soft)}
.form-done{grid-column:1/-1;background:var(--sand-deep);border-radius:16px;padding:30px}
.form-done h3{font-size:22px;margin-bottom:8px}
.form-done p{color:var(--ink-soft);font-size:15px}
@media(max-width:900px){.contact-layout{grid-template-columns:1fr;gap:32px}.contact-side{position:static}.pl-form{grid-template-columns:1fr}.fld.half{grid-column:1/-1}}

/* ============ email capture ============ */
.ec-backdrop{position:fixed;inset:0;z-index:200;background:rgba(30,24,18,.6);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .25s ease}
.ec-backdrop.open{opacity:1}
.ec-card{position:relative;background:var(--sand);border-radius:22px;padding:38px 34px 30px;max-width:440px;width:100%;text-align:center;box-shadow:0 20px 60px rgba(30,24,18,.3);transform:translateY(10px);transition:transform .25s ease}
.ec-backdrop.open .ec-card{transform:translateY(0)}
.ec-close{position:absolute;top:12px;right:16px;background:none;border:0;font-size:30px;line-height:1;color:var(--ink-soft);cursor:pointer}
.ec-eyebrow{font:600 11px/1 Manrope,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);margin:0 0 10px}
.ec-head{font:500 29px/1.2 Spectral,serif;color:var(--ink);margin:0 0 12px}
.ec-head em{font-style:italic;color:var(--brand)}
.ec-sub{font-size:14.5px;line-height:1.6;color:var(--ink-soft);margin:0 0 20px}
.ec-form{display:flex;gap:10px;flex-wrap:wrap}
.ec-form input[type=email]{flex:1;min-width:180px;font:400 15px Manrope,sans-serif;border:1px solid var(--line);border-radius:999px;padding:12px 18px;background:#fff}
.ec-form input[type=email]:focus{outline:none;border-color:var(--brand-2)}
.ec-err{color:#A32D2D;font-size:13.5px;margin:12px 0 0}
.ec-dismiss{background:none;border:0;color:var(--ink-soft);font:400 13px Manrope,sans-serif;margin-top:16px;cursor:pointer;text-decoration:underline}
.pdp-gallery-toggle .label{font-weight:600}
.pdp-gallery-toggle .icon{color:var(--brand);font-size:15px;line-height:1}

/* ============================================================
   DESIGN SYSTEM PASS
   Buttons: squared with a soft corner, not pills. One primary
   (terracotta fill), one secondary (outline), one for dark grounds.
   ============================================================ */
:root{ --brown-deep:#5A2F17; }

.btn{border-radius:10px;padding:14px 26px;font-size:14.5px;font-weight:600;letter-spacing:.01em;line-height:1;border:1.5px solid transparent;transition:background .18s,color .18s,border-color .18s}
.btn-primary{background:var(--brand);color:#fff;border-color:var(--brand)}
.btn-primary:hover{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff}
.btn-secondary{background:transparent;color:var(--brand);border-color:var(--brand)}
.btn-secondary:hover{background:#F6E4D8;color:var(--brand-deep);border-color:var(--brand-deep)}
.btn-onDark{background:transparent;color:#fff;border-color:rgba(255,255,255,.65)}
.btn-onDark:hover{background:rgba(255,255,255,.14);color:#fff;border-color:#fff}
.nav .book{border-radius:10px;background:var(--brand);border:1.5px solid var(--brand);color:#fff;padding:10px 18px}
.nav .book:hover{background:var(--brand-deep);border-color:var(--brand-deep)}
.langbtn{border-radius:10px}
.pill,.chip,.filter select,.filter input,.pdp-gallery-toggle,.ec-form input[type=email]{border-radius:10px}
.pdp-stat{border-radius:8px}

/* ============ footer in the deep logo brown ============ */
.foot{background:var(--brown-deep);color:#EFE2D2}
.foot a{color:#EFE2D2;opacity:.86}
.foot a:hover{opacity:1}
.foot h4{color:#fff}
.foot .base{border-top:1px solid rgba(255,255,255,.16);color:rgba(239,226,210,.7)}
.foot-mark,.foot-mark::first-letter{color:#F6E0C8!important}

/* ============ finder: a module, not a bar ============ */
.finder-band{margin-top:-64px}
.finder{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px 28px 22px;box-shadow:0 16px 42px rgba(46,37,29,.11);display:block}
.finder-head{margin-bottom:16px}
.finder-title{font:500 21px/1.3 Spectral,serif;color:var(--ink);margin:4px 0 0}
.finder-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:14px;align-items:end}
.finder-row .filter select,.finder-row .filter input{min-width:0;width:100%}
.finder-row .btn{height:46px;white-space:nowrap}
.finder-note{margin:16px 0 0;font-size:13px;color:var(--ink-soft)}
.filter-dates{margin:0 0 22px;font-size:14px;color:var(--brand-deep);background:#F6E4D8;border-radius:10px;padding:11px 15px}
@media(max-width:1000px){.finder-row{grid-template-columns:repeat(2,minmax(0,1fr))}.finder-row .btn{grid-column:1/-1;width:100%}}
@media(max-width:560px){.finder-row{grid-template-columns:1fr}.finder-band{margin-top:-20px}}

/* ============ intro framing band ============ */
.intro-band{background:var(--sand-deep);border-bottom:1px solid var(--line);padding:44px 0}
.intro-lead{font:400 21px/1.65 Spectral,serif;color:var(--ink);margin:10px 0 0;max-width:62ch;margin-left:auto;margin-right:auto}

/* ============ about: team + pillars + dark band ============ */
.team-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:8px 0 34px}
.team-photos div{height:260px;background-size:cover;background-position:center;border-radius:14px}
.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:30px}
.pillar h3{font:600 19px/1.3 Manrope,sans-serif;color:var(--ink);margin-bottom:10px;padding-top:14px;border-top:2px solid var(--brand-2)}
.pillar p{font-size:14.5px;line-height:1.65;color:var(--ink-soft)}
.section.dark{background:var(--brown-deep);color:#EFE2D2}
.section.dark h2{color:#fff}
.section.dark .eyebrow{color:#E0A87F}
.section.dark em.script{color:#F0C9AE}
.dark-sub{color:rgba(239,226,210,.86);font-size:18px;margin-top:14px;line-height:1.6}
@media(max-width:800px){.team-photos{grid-template-columns:1fr}.team-photos div{height:210px}}

/* photo band without a caption should not leave a gap */
.photo-band-cap:empty{display:none;padding:0}

/* placeholder marker on the About team photos - these must be swapped for real team shots */
.team-photos.is-placeholder div{position:relative}
.team-photos.is-placeholder div::after{content:'';position:absolute;inset:0;background:rgba(30,24,18,.42);border-radius:14px}
.ph-tag{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 18px;color:#fff;font:600 14px/1.4 Manrope,sans-serif;letter-spacing:.04em;text-transform:uppercase}
.ph-note{margin:-22px 0 30px;font-size:13.5px;color:var(--brand-deep);background:#F6E4D8;border-radius:10px;padding:11px 15px;display:inline-block}

/* ============================================================
   FINDER FIX - date inputs were unstyled natives (38px) next to
   styled selects (60px), so the row sat misaligned.
   ============================================================ */
.filter input,
.filter select{font:500 14px Manrope,sans-serif;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);height:44px;box-sizing:border-box;-webkit-appearance:none;appearance:none}
.filter input[type=date]{min-width:0}
.filter input:focus,.filter select:focus{outline:none;border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(194,115,74,.14)}
.filter{gap:7px}
.filter > span{font:600 10.5px/1 Manrope,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.finder-row{align-items:end}
.finder-row .filter{height:auto}
.finder-row .btn{height:44px;padding:0 24px;display:inline-flex;align-items:center;justify-content:center}
.finder-row .filter select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%236B5B4B' stroke-width='1.6' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right 13px center;padding-right:32px}

/* ============ welcome quote ============ */
.welcome{padding:64px 0 56px}
.welcome-quote{margin:0;padding:0;border:0}
.welcome-quote p{font:400 23px/1.68 Spectral,serif;color:var(--ink);margin:0;quotes:'“' '”' '‘' '’'}
.welcome-quote p::before{content:open-quote;color:var(--brand-2)}
.welcome-quote p::after{content:close-quote;color:var(--brand-2)}
.welcome-sign{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:26px}
.welcome-rule{width:46px;height:2px;background:var(--brand-2);margin-bottom:10px}
.welcome-name{font:600 14px/1 Manrope,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--brand)}
.welcome-where{font:italic 400 15px/1 Spectral,serif;color:var(--ink-soft)}

/* ============ homepage about teaser ============ */
.about-teaser{background:var(--sand-deep)}
.about-teaser-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.about-teaser-body{font-size:16.5px;line-height:1.72;color:var(--ink-soft);margin:14px 0 24px}
.about-teaser-photos{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.about-teaser-photos div{height:250px;background-size:cover;background-position:center;border-radius:14px;position:relative}
.about-teaser-photos.is-placeholder div::after{content:'';position:absolute;inset:0;background:rgba(30,24,18,.42);border-radius:14px}
@media(max-width:900px){.about-teaser-grid{grid-template-columns:1fr;gap:30px}.about-teaser-photos div{height:200px}}

/* ============================================================
   ABOUT / SHARED FIXES
   - the striped pillar headings are gone; about now uses the same
     icon grid as /services and /owners
   - image heroes were only 390px, so a 2560px photo showed as a slice
   ============================================================ */
.pillar h3{border-top:0;padding-top:0}
.pillars{display:none}

.page-hero-img{min-height:clamp(400px,46vw,560px);display:flex;align-items:flex-end;padding:0 0 64px;background-position:center 42%}
.page-hero-img .wrap{width:100%}
.page-hero-img h1{font-size:clamp(38px,5.2vw,60px);margin-bottom:14px}

/* intro band now carries a real heading, so the lead never floats */
.intro-band{padding:56px 0 52px}
.intro-head{font-size:clamp(28px,3.8vw,40px);margin:10px 0 16px}
.intro-lead{font:400 20px/1.68 Spectral,serif;color:var(--ink);max-width:62ch;margin:0 auto}
.intro-sub{font-size:16px;line-height:1.7;color:var(--ink-soft);max-width:62ch;margin:16px auto 0}

/* team photos sit above the role grid, so give them room */
.team-photos{margin-bottom:14px}
.ph-note{margin:0 0 34px}
.page-hero-img .page-hero-sub{text-shadow:0 1px 14px rgba(30,24,18,.45);max-width:56ch}

/* ============================================================
   DATE FIELDS - the native segment highlight and picker default
   to the OS blue, which fights the whole palette. Recolour them.
   ============================================================ */
input[type=date]{accent-color:var(--brand);color-scheme:light;font-variant-numeric:tabular-nums}
input[type=date]::selection,
input[type=number]::selection,
input[type=text]::selection,
input[type=email]::selection,
input[type=tel]::selection,
textarea::selection{background:#F0CDB4;color:var(--brand-deep)}
/* the day / month / year segments highlight blue on focus in WebKit */
input[type=date]::-webkit-datetime-edit-day-field:focus,
input[type=date]::-webkit-datetime-edit-month-field:focus,
input[type=date]::-webkit-datetime-edit-year-field:focus{background:#F0CDB4;color:var(--brand-deep);border-radius:4px;outline:none}
input[type=date]::-webkit-datetime-edit{color:var(--ink)}
input[type=date]:invalid::-webkit-datetime-edit,
input[type=date]:not(:focus):placeholder-shown::-webkit-datetime-edit{color:var(--ink-soft)}
input[type=date]::-webkit-datetime-edit-text{color:var(--ink-soft);padding:0 2px}
/* the little calendar glyph - tint it to the brand instead of grey-blue */
input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.55;
  filter:invert(29%) sepia(38%) saturate(1360%) hue-rotate(343deg) brightness(92%) contrast(89%)}
input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}
input[type=date]:focus{border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(194,115,74,.14)}

/* ============ mobile: fewer choices, friendlier ============ */
@media(max-width:700px){
  .finder .hide-sm{display:none}
  .finder{padding:22px 20px 20px}
  .finder-title{font-size:19px}
  .finder-row{grid-template-columns:1fr 1fr;gap:12px}
  .finder-row .filter:nth-child(3){grid-column:1/-1}
  .finder-row .btn{grid-column:1/-1;width:100%}
  .finder-note{font-size:12.5px}
}

/* ============================================================
   MOBILE OVERFLOW FIX
   The off-canvas drawer is translated off to the right. Its children
   are static inside it, so they extended the document's scrollWidth and
   the whole site could be dragged sideways on narrow screens.
   overflow-x:clip (not hidden) stops that without creating a scroll
   container, so position:sticky on the header keeps working.
   ============================================================ */
html{overflow-x:clip}
body{overflow-x:clip;max-width:100%}
.mobile-menu{visibility:hidden}
.mobile-menu.open{visibility:visible}

/* ============================================================
   MOBILE BOOKING BAR + WHATSAPP
   The float sat on top of the bar. Lift it clear on mobile and let
   the bar's CTA jump to the booking panel instead of opening a chat.
   ============================================================ */
@media(max-width:900px){
  body:has(.pdp-mobilebar.show) .wa-float{bottom:88px}
  .wa-float{transition:bottom .25s ease}
  .pdp-mobilebar{padding:10px 14px}
  .pdp-mobilebar span{font-size:13px;line-height:1.3}
  .pdp-mobilebar .btn{padding:10px 16px;font-size:13px;white-space:nowrap}
}

/* ============ property page: key numbers ============ */
.pdp-keynums{margin:30px 0 6px;padding-top:24px;border-top:1px solid var(--line)}
.pdp-keynums h3{font:600 12px/1 Manrope,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);margin-bottom:18px}
.pdp-keynums-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.keynum{background:var(--sand-deep);border-radius:14px;padding:20px 16px;text-align:center}
.keynum-n{display:block;font:500 32px/1 Spectral,serif;color:var(--brand-deep);font-variant-numeric:lining-nums}
.keynum-n.is-small{font-size:20px;line-height:1.5}
.keynum-l{display:block;margin-top:8px;font:600 11px/1.35 Manrope,sans-serif;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft)}

/* ============================================================
   PROPERTY PAGE ON MOBILE
   Read the story first, then the booking panel - the panel is tall
   and was landing on top of the copy. The sticky bar jumps to it.
   ============================================================ */
@media(max-width:980px){
  .pdp-top{display:flex;flex-direction:column;gap:0;padding-top:34px}
  .pdp-main{order:1;width:100%;min-width:0}
  .pdp-top aside{order:2;width:100%;margin-top:34px}
  .pdp-book{position:static;padding:22px 20px}
  .pdp-book .calendar-grid{gap:4px}
  .pdp-keynums-grid{grid-template-columns:repeat(2,1fr)}
  .pdp-hero-overlay{padding:40px 0 32px}
  .pdp-stats{font-size:13.5px}
  .pdp-stats > span + span::before{margin:0 9px}
  .pdp-main p{font-size:16px}
  .pdp-quote{font-size:19px!important;padding-left:16px}
  body{padding-bottom:0}
}
/* the sticky bar covers the last section - give the page room to breathe past it */
@media(max-width:900px){
  body:has(.pdp-mobilebar) .foot{padding-bottom:96px}
}

/* ============ mobile booking bar, Pacific style ============ */
@media(max-width:900px){
  .pdp-mobilebar{padding:11px 14px 12px;gap:10px;align-items:center}
  .pdp-mobilebar-meta{display:flex;flex-direction:column;gap:2px;min-width:0}
  .pdp-mobilebar-rate{font:500 17px/1.1 Spectral,serif;color:var(--ink);white-space:nowrap}
  .pdp-mobilebar-rate small{font:400 12px Manrope,sans-serif;color:var(--ink-soft);margin-left:3px}
  .pdp-mobilebar-sub{font:400 12px/1.2 Manrope,sans-serif;color:var(--ink-soft);display:flex;align-items:center;gap:5px;white-space:nowrap}
  .pdp-mobilebar-sub b{color:var(--brass);font-weight:600}
  .pdp-mobilebar .btn{flex-shrink:0}
}

/* ============================================================
   DATE RANGE PICKER - replaces the native date inputs, which
   cannot be styled and show nothing readable on mobile.
   ============================================================ */
.filter-dates-field{grid-column:span 2}
.dr{position:relative}
.dr-field{width:100%;height:44px;display:flex;align-items:center;gap:9px;padding:0 14px;background:#fff;border:1px solid var(--line);border-radius:10px;cursor:pointer;font:500 14px Manrope,sans-serif;color:var(--ink);text-align:left}
.dr-field:hover{border-color:var(--brand-2)}
.dr-field.is-open{border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(194,115,74,.14)}
.dr-ico{color:var(--brand);display:inline-flex;flex-shrink:0}
.dr-val{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dr-dim{color:var(--ink-soft)}
.dr-arrow{color:var(--brand-2);margin:0 3px}
.dr-pop{position:absolute;top:calc(100% + 10px);left:0;z-index:80;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 48px rgba(46,37,29,.16);padding:18px;display:none;min-width:min(560px,86vw)}
.dr-pop.open{display:block}
.dr-head{display:flex;justify-content:space-between;margin-bottom:6px}
.dr-nav{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:var(--sand);color:var(--ink);font-size:17px;line-height:1;cursor:pointer}
.dr-nav:hover{background:#F6E4D8;border-color:var(--brand-2);color:var(--brand)}
.dr-months{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.dr-mname{font:500 15px/1 Spectral,serif;color:var(--ink);text-align:center;margin:0 0 12px}
.dr-dow,.dr-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.dr-dow span{font:600 10px/1 Manrope,sans-serif;color:#A99C88;text-align:center;padding-bottom:7px}
.dr-day{aspect-ratio:1;border:0;background:none;border-radius:8px;font:500 13px Manrope,sans-serif;color:var(--ink);cursor:pointer;padding:0}
.dr-day:hover:not(:disabled){background:#F6E4D8;color:var(--brand-deep)}
.dr-past{color:#DCD4C6;cursor:default}
.dr-in{background:#F9EBE0;border-radius:0}
.dr-sel{background:var(--brand)!important;color:#fff!important}
.dr-start{border-radius:8px 0 0 8px}
.dr-end{border-radius:0 8px 8px 0}
.dr-sel.dr-start.dr-end,.dr-sel:only-child{border-radius:8px}
.dr-pad{aspect-ratio:1}
.dr-foot{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.dr-clear{background:none;border:0;color:var(--ink-soft);font:400 13.5px Manrope,sans-serif;text-decoration:underline;cursor:pointer}
.dr-done{background:var(--brand);color:#fff;border:0;border-radius:10px;padding:10px 20px;font:600 13.5px Manrope,sans-serif;cursor:pointer}
@media(max-width:700px){
  .filter-dates-field{grid-column:1/-1}
  .dr-pop{position:fixed;left:12px;right:12px;top:auto;bottom:12px;min-width:0;max-height:76vh;overflow-y:auto}
  .dr-months{grid-template-columns:1fr;gap:18px}
}
.foot-credit{text-decoration:underline;text-underline-offset:2px}
.foot-credit:hover{opacity:1;color:#fff}

/* ============ team photos ============ */
.team-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:8px 0 38px}
.team-card{margin:0}
.team-shot{height:300px;background-size:cover;background-position:center 28%;border-radius:16px}
.team-card figcaption{display:flex;flex-direction:column;gap:2px;padding:14px 2px 0}
.team-name{font:500 18px/1.2 Spectral,serif;color:var(--ink)}
.team-role{font:600 11px/1.3 Manrope,sans-serif;letter-spacing:.09em;text-transform:uppercase;color:var(--brand)}
@media(max-width:820px){.team-photos{grid-template-columns:1fr;gap:22px}.team-shot{height:260px}}
.shead.center.shead-roomy{margin-bottom:52px}
.map-dark{margin-top:30px;border-color:rgba(255,255,255,.18)}

/* ============ logo ============ */
.logo{display:inline-flex;align-items:center;line-height:0}
.logo-img{height:58px;width:auto;display:block}
@media(max-width:700px){.logo-img{height:40px}}
.cf-group{border:0;padding:0;margin:0;display:contents}
.cf-group[hidden]{display:none}
.pdp-main .rich strong{color:var(--ink);font-weight:600}
