/* High View - property pages (/stay/<slug>). Loaded only on those pages. */

/* header + photo mosaic (photos never stretched past their own size) */
.pdp-head{padding:34px 0 0}
.pdp-head .eyebrow a{color:inherit;text-decoration:none}.pdp-head .eyebrow a:hover{text-decoration:underline}
.pdp-head h1{font-size:clamp(34px,4.4vw,52px);line-height:1.05;margin:10px 0 12px;color:var(--brand)}
.pdp-stats{display:flex;flex-wrap:wrap;align-items:center;font:500 15px Manrope,sans-serif;color:var(--ink-soft);row-gap:8px}
.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;color:var(--ink)}
.pdp-stats svg{color:var(--brass-deep)}
.pdp-mosaic{position:relative;display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:220px 220px;gap:8px;margin-top:24px;border-radius:12px;overflow:hidden}
.pdp-mosaic button{border:0;padding:0;margin:0;background:var(--sand-deep);cursor:zoom-in;overflow:hidden;display:block;min-width:0}
.pdp-mosaic img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s,filter .2s}
.pdp-mosaic button:hover img{transform:scale(1.03);filter:brightness(.94)}
.pdp-mosaic .pm-0{grid-row:1 / span 2}
.pdp-mosaic.n1{grid-template-columns:1fr}.pdp-mosaic.n1 .pm-0{grid-row:auto}.pdp-mosaic.n1{grid-template-rows:440px}
.pdp-mosaic.n2,.pdp-mosaic.n3{grid-template-columns:2fr 1fr}
.pdp-mosaic.n2 .pm-1{grid-row:1 / span 2}
.pdp-mosaic.n4 .pm-3{grid-column:2 / span 2}
.pdp-hero-all{position:absolute;right:14px;bottom:14px;z-index:3;display:inline-flex!important;align-items:center;gap:8px;background:#fff!important;color:var(--ink);border:1px solid var(--line)!important;border-radius:6px;padding:9px 14px!important;font:600 13.5px Manrope,sans-serif;cursor:pointer!important;box-shadow:0 6px 18px rgba(0,0,0,.14)}
.pdp-hero-all:hover{border-color:var(--brand)!important}

/* top: reading column + booking box */
.pdp-top{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:56px;align-items:start;padding:clamp(40px,5vw,66px) 0 60px}
.pdp-main h2{font-size:clamp(28px,3.2vw,36px);margin-bottom:16px}
.pdp-lead p{font:400 21px/1.6 Spectral,Georgia,serif;color:var(--ink);margin-bottom:8px}
.pdp-main .rich p,.pdp-main .rich li{color:var(--ink-soft);font-size:16.5px;line-height:1.78}
.rich p{margin-bottom:14px}
.rich p.lbl{font:500 20px/1.3 Spectral,serif;color:var(--brand);margin:26px 0 8px}
.rich strong{color:var(--ink);font-weight:600}
.rich p.li,.rich li{position:relative;padding-left:20px;margin-bottom:8px}
.rich ul{list-style:none;padding:0;margin:0 0 16px}
.rich p.li::before,.rich li::before{content:"";position:absolute;left:2px;top:.72em;width:6px;height:6px;border-radius:50%;background:var(--brass)}
.pdp-story{margin-top:28px;position:relative}
.pdp-story.is-clamped{max-height:380px;overflow:hidden}
.pdp-story.is-clamped::after{content:"";position:absolute;left:0;right:0;bottom:0;height:120px;background:linear-gradient(180deg,rgba(250,246,238,0),var(--sand))}
.pdp-more{margin-top:12px;background:none;border:0;padding:0;font:600 15px Manrope,sans-serif;color:var(--brand);text-decoration:underline;text-underline-offset:3px;cursor:pointer}

.pdp-keynums{margin:30px 0 0}
.pdp-keynums-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.keynum{background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px 12px;text-align:center}
.keynum-n{display:block;font:500 32px/1 Spectral,serif;color:var(--brand);font-variant-numeric:lining-nums}
.keynum-l{display:block;margin-top:8px;font:600 11px/1.3 Manrope,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}

.pdp-book{position:sticky;top:160px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:26px 24px;box-shadow:0 18px 40px -24px rgba(20,40,42,.35)}
.pdp-book-kicker{font:600 11.5px/1 Manrope,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-deep);margin-bottom:12px}
.pdp-book-price{font:500 27px/1.1 Spectral,serif;color:var(--brand);margin-bottom:18px}
.pdp-book-price small{font:400 13.5px Manrope,sans-serif;color:var(--ink-soft);margin-left:4px}
.pdp-from{display:block;font-size:12px!important;letter-spacing:.06em;text-transform:uppercase;margin:0 0 4px!important}
.pdp-req-l{display:block;font:600 12px/1 Manrope,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:14px 0 8px}
.pdp-req-l:first-child{margin-top:0}
.pdp-guests{width:100%;height:46px;padding:0 14px;background:#fff;border:1px solid var(--line);border-radius:6px;font:500 14px Manrope,sans-serif;color:var(--ink)}
.pdp-req-note{margin:12px 0 0;font-size:13.5px;color:#9A4A2E}
.pdp-book-btn{display:block;width:100%;text-align:center;margin-top:12px}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-deep)}
.btn-secondary{background:transparent;color:var(--brand);border-color:var(--line)}
.btn-secondary:hover{border-color:var(--brand)}
.pdp-book-btn.btn-primary{margin-top:18px;padding:15px 20px;font-size:15px}
.pdp-incl{list-style:none;padding:16px 0 0;margin:18px 0 0;border-top:1px solid var(--line)}
.pdp-incl li{font-size:13px;line-height:1.5;color:var(--ink-soft);padding:5px 0 5px 20px;position:relative}
.pdp-incl li::before{content:"✓";position:absolute;left:0;color:var(--brand-2);font-weight:700}

/* booking calendar */
.hv-cal{border:1px solid var(--line);border-radius:8px;padding:14px 14px 12px;background:#fff}
.hc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.hc-month{font:500 17px/1 Spectral,serif;color:var(--brand)}
.hc-nav{width:32px;height:32px;border:1px solid var(--line);border-radius:6px;background:var(--sand);color:var(--ink);font-size:17px;line-height:1;cursor:pointer}
.hc-nav:hover:not(:disabled){border-color:var(--brand-2);color:var(--brand)}
.hc-nav:disabled{opacity:.35;cursor:default}
.hc-dow,.hc-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.hc-dow span{font:600 10.5px/1 Manrope,sans-serif;color:#A99C88;text-align:center;padding-bottom:8px}
.hc-grid{row-gap:2px}
.hc-day{aspect-ratio:1;border:0;background:none;font:500 13.5px Manrope,sans-serif;color:var(--ink);cursor:pointer;padding:0;border-radius:6px;position:relative}
.hc-day:hover:not(:disabled):not(.is-off){background:#E3EEEF;color:var(--brand-deep)}
.hc-day.is-past{color:#D6CDBE;cursor:default}
.hc-day.is-booked{color:#B9AE9C;text-decoration:line-through;background:repeating-linear-gradient(135deg,#F4EFE6,#F4EFE6 3px,#fff 3px,#fff 6px);cursor:not-allowed}
.hc-day.is-today{font-weight:700;color:var(--brand)}
.hc-day.is-off{color:#C9BFAE;cursor:default}
.hc-day.is-in{background:#E3EEEF;border-radius:0;color:var(--brand-deep)}
.hc-day.is-start,.hc-day.is-end{background:var(--brand)!important;color:#fff!important}
.hc-day.is-start{border-radius:6px 0 0 6px}
.hc-day.is-end{border-radius:0 6px 6px 0}
.hc-day.is-solo{border-radius:6px}
.hc-sum{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:13.5px;color:var(--ink);min-height:38px}
.hc-sum b{font-weight:600;color:var(--brand)}
.hc-prompt{color:var(--ink-soft)}
.hc-clear{background:none;border:0;padding:0;color:var(--ink-soft);font:400 13px Manrope,sans-serif;text-decoration:underline;cursor:pointer}
.hc-note{margin:10px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:6px 14px}
.hc-key{display:inline-flex;align-items:center;gap:6px}
.hc-key i{width:12px;height:12px;border-radius:3px;border:1px solid var(--line);display:inline-block}
.hc-key .k-open{background:#fff}
.hc-key .k-booked{background:repeating-linear-gradient(135deg,#F4EFE6,#F4EFE6 2px,#fff 2px,#fff 4px)}
.pdp-req .pdp-req-l{margin-top:16px}

/* full-width bands */
.pdp-fullwidth{padding:60px 0}
.pdp-fullwidth h2,.section-deep h2,#sec-good-to-know h2,#sec-reviews h2{font-size:clamp(28px,3.2vw,36px)}
.pdp-sub{color:var(--ink-soft);font-size:16px;margin:8px 0 24px;max-width:62ch}
.section-deep{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* gallery */
.pdp-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-radius:10px;overflow:hidden}
.pdp-gallery.is-collapsed .pdp-shot:nth-child(n+7){display:none}
.pdp-shot{display:block;line-height:0;border:0;padding:0;background:var(--sand-deep);cursor:zoom-in;overflow:hidden}
.pdp-shot img{width:100%;height:260px;object-fit:cover;transition:transform .35s}
.pdp-shot:hover img{transform:scale(1.03)}
.pdp-gallery-toggle-wrap{margin-top:20px;text-align:center}
.pdp-gallery-toggle{background:#fff;border:1px solid var(--line);border-radius:3px;padding:12px 24px;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);color:var(--brand)}
.pdp-gallery-toggle .icon{color:var(--brass)}
.hv-lightbox{position:fixed;inset:0;z-index:300;background:rgba(12,24,26,.95);display:none;align-items:center;justify-content:center}
.hv-lightbox.open{display:flex}
.hv-lightbox img{max-width:92vw;max-height:86vh;border-radius:4px}
.hv-lb-close{position:absolute;top:16px;right:22px;background:none;border:0;color:#fff;font-size:42px;line-height:1;cursor:pointer}
.hv-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}
.hv-lb-nav.prev{left:18px}.hv-lb-nav.next{right:18px}
.hv-lb-nav:hover{background:rgba(255,255,255,.24)}
.hv-lb-count{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.8);font:500 13px Manrope,sans-serif}

/* amenities */
.pdp-amenities-grid{margin-top:8px;border-bottom:1px solid var(--line)}
.pdp-amenity-group{display:grid;grid-template-columns:220px 1fr;gap:12px 30px;padding:24px 0;border-top:1px solid var(--line)}
.pdp-amenity-group ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:24px}
.pdp-amenity-group h3{font:600 12px/1.4 Manrope,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--brass-deep);padding-top:7px}
.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:14px;width:6px;height:6px;border-radius:50%;background:var(--brand-2)}

/* before you book */
.pdp-times{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:26px}
.pdp-times > div{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px 18px}
.pdp-times .t-l{display:block;font:600 11px/1.3 Manrope,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px}
.pdp-times b{font:500 18px/1.3 Spectral,serif;color:var(--brand)}
.pdp-acc{border-top:1px solid var(--line)}
.pdp-acc-item{border-bottom:1px solid var(--line)}
.pdp-acc-item summary{list-style:none;cursor:pointer;padding:20px 40px 20px 0;position:relative;font:500 21px/1.3 Spectral,serif;color:var(--brand)}
.pdp-acc-item summary::-webkit-details-marker{display:none}
.pdp-acc-item summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font:400 26px/1 Manrope,sans-serif;color:var(--brass)}
.pdp-acc-item[open] summary::after{content:"–"}
.pdp-acc-body{padding:0 0 22px;max-width:76ch}
.pdp-acc-body p,.pdp-acc-body li{color:var(--ink-soft);font-size:15.5px;line-height:1.72}

/* location */
.pdp-map{border-radius:10px;overflow:hidden;border:1px solid var(--line);line-height:0}
.pdp-map iframe{width:100%;height:400px;border:0}

/* reviews */
.pdp-reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:24px}
.pdp-review{background:#fff;border:1px solid var(--line);border-radius:8px;padding:26px 24px}
.pdp-review .stars{color:var(--brass);letter-spacing:2px}
.pdp-review .quote{font:400 17.5px/1.55 Spectral,serif;color:var(--ink);margin-top:12px}
.pdp-review .who{margin-top:14px;font-size:13.5px;color:var(--ink-soft)}

/* other homes */
.pd-others{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:28px}
.pd-other{display:block;text-decoration:none;color:inherit}
.pd-other img{width:100%;height:210px;object-fit:cover;border-radius:8px;margin-bottom:12px;transition:opacity .2s}
.pd-other:hover img{opacity:.9}
.pd-other-name{display:block;font:500 21px/1.25 Spectral,serif;color:var(--brand)}
.pd-other-loc{display:block;font:italic 15px Spectral,serif;color:var(--brass-deep);margin-top:2px}
.pd-other-facts{display:block;font-size:13.5px;color:var(--ink-soft);margin-top:6px}

/* sticky sub-bar (desktop) + bottom bar (mobile) */
.pdp-stickybar{position:fixed;top:77px;left:0;right:0;z-index:50;background:rgba(250,246,238,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transform:translateY(-180%);transition:transform .25s ease;box-shadow:0 2px 14px rgba(20,40,42,.08)}
.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;overflow:hidden}
.pdp-stickybar-name{font:500 18px/1 Spectral,serif;color:var(--brand);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 .btn{padding:10px 18px;font-size:13.5px;white-space:nowrap}
.pdp-mobilebar{display:none}

@media(max-width:980px){
  .pdp-mosaic{grid-template-rows:180px 180px}
  .pdp-amenity-group{grid-template-columns:170px 1fr}
  .pdp-amenity-group ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pdp-top{grid-template-columns:1fr;gap:36px}
  .pdp-book{position:static}
  .pdp-times{grid-template-columns:repeat(2,1fr)}
  .pdp-gallery{grid-template-columns:repeat(2,1fr)}
  .pd-others{grid-template-columns:1fr 1fr}
  .pdp-stickybar{display:none}
  .pdp-mobilebar{position:fixed;left:0;right:0;bottom:0;z-index:70;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);transform:translateY(110%);transition:transform .25s ease;box-shadow:0 -2px 16px rgba(20,40,42,.12)}
  .pdp-mobilebar.show{transform:translateY(0)}
  .pdp-mobilebar-name{font:500 17px/1.2 Spectral,serif;color:var(--brand)}
  .pdp-mobilebar-sub{display:block;font-size:12.5px;color:var(--ink-soft)}
  .pdp-mobilebar .btn{padding:11px 18px;font-size:13.5px;white-space:nowrap}
  body:has(.pdp-mobilebar.show) .wa-float{bottom:92px}
  body.is-pdp .foot{padding-bottom:110px}
}
@media(max-width:700px){
  .pdp-amenity-group{grid-template-columns:1fr;gap:6px;padding:20px 0}
  .pdp-amenity-group ul{column-gap:16px}
  .pdp-head{padding-top:22px}
  .pdp-mosaic{grid-template-columns:1fr!important;grid-template-rows:280px!important;margin-left:-26px;margin-right:-26px;border-radius:0}
  .pdp-mosaic button:not(.pm-0):not(.pdp-hero-all){display:none}
  .pdp-mosaic .pm-0{grid-row:auto!important}
  .pdp-hero-all{right:12px;bottom:12px;font-size:12.5px}
  .pdp-stats{font-size:14px}
  .pdp-stats > span + span::before{margin:0 9px}
  .pdp-lead p{font-size:19px}
  .pdp-keynums-grid{grid-template-columns:repeat(2,1fr)}
  .pdp-gallery{grid-template-columns:1fr 1fr;gap:6px}
  .pdp-shot img{height:150px}
  .pd-others{grid-template-columns:1fr}
  .pdp-times{grid-template-columns:1fr 1fr}
  .pdp-map iframe{height:320px}
}
.pdp-top > aside{align-self:stretch}

/* price in the booking box */
.pdp-quote{margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--line);font-size:14px}
.q-row{display:flex;justify-content:space-between;gap:12px;padding:4px 0;color:var(--ink-soft)}
.q-total{margin-top:6px;padding-top:10px;border-top:1px solid var(--line);color:var(--ink);font-weight:700;font-size:15.5px}

/* checkout panel */
.hv-co{position:fixed;inset:0;z-index:250;background:rgba(12,24,26,.55);display:none;align-items:center;justify-content:center;padding:20px}
.hv-co.open{display:flex}
.co-sheet{position:relative;background:#fff;border-radius:12px;max-width:520px;width:100%;max-height:92vh;max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;padding:0 26px 24px;box-shadow:0 30px 80px rgba(0,0,0,.3)}
.co-top{position:sticky;top:0;z-index:2;display:flex;justify-content:flex-end;margin:0 -26px 2px;padding:10px 12px 0;background:linear-gradient(#fff 70%,rgba(255,255,255,0))}
.co-x{width:38px;height:38px;border-radius:50%;background:var(--sand);border:0;font-size:26px;line-height:1;color:var(--ink-soft);cursor:pointer}
.co-x:hover{background:var(--sand-deep);color:var(--ink)}
.co-secure{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 8px;margin:14px 0 0;color:var(--brand);font:600 13.5px Manrope,sans-serif;text-align:center}
.co-secure svg{color:var(--brand)}
.co-secure-sub{flex-basis:100%;font:400 12.5px/1.5 Manrope,sans-serif;color:var(--ink-soft)}
.co-pay{display:flex!important;align-items:center;justify-content:center;gap:8px}
.co-kicker{font:600 11.5px/1 Manrope,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-deep);margin-bottom:8px}
.co-sheet h3{font:500 26px/1.15 Spectral,serif;color:var(--brand);margin:0 0 6px}
.co-dates{font-size:14px;color:var(--ink-soft);margin-bottom:18px}
.co-sec{font:600 12px/1 Manrope,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:18px 0 10px}
.co-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}
.co-f{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--ink-soft)}
.co-f input{height:44px;padding:0 12px;border:1px solid var(--line);border-radius:6px;font:500 15px Manrope,sans-serif;color:var(--ink);background:#fff}
.co-f input:focus{outline:none;border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(42,106,114,.14)}
.co-span{grid-column:1/-1}
.co-sum{margin:18px 0 0;padding:4px 14px 10px;background:var(--sand);border-radius:8px;font-size:14px}
.co-sum .q-total{border-top-color:var(--line)}
.co-pay{display:block;width:100%;margin-top:16px;padding:15px 20px;font-size:15.5px}
.co-pay:disabled{opacity:.6;cursor:wait}
.co-msg{margin:12px 0 0;font-size:13.5px;color:var(--brand)}
.co-msg.bad{color:#9A3A22}
.co-mode{margin:12px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink-soft)}
.co-done{text-align:center;padding:14px 0 4px}
.co-done p{color:var(--ink-soft);font-size:15px;line-height:1.6;margin:8px 0 14px}
.co-tick{width:56px;height:56px;border-radius:50%;background:#E3EEEF;color:var(--brand);font-size:28px;line-height:56px;margin:0 auto 14px}
.co-code{font:600 18px Manrope,sans-serif;letter-spacing:.12em;color:var(--brand)}
@media(max-width:560px){.hv-co{padding:0;align-items:flex-end}.co-sheet{border-radius:14px 14px 0 0;max-height:94vh;max-height:94dvh}.co-grid{grid-template-columns:1fr}}

/* 50/50 choice */
.q-split{margin:8px 0 0;font-size:12.5px;color:var(--muted,#6E6253);line-height:1.45}
.co-plans{display:grid;gap:8px}
.co-plan{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:10px;cursor:pointer;background:#fff}
.co-plan input{margin-top:3px;accent-color:var(--brand,#1B4C53)}
.co-plan b{display:block;font-size:14.5px}
.co-plan span span{display:block;font-size:12.5px;color:var(--muted,#6E6253);line-height:1.45;margin-top:2px}
.co-plan:has(input:checked){border-color:var(--brand,#1B4C53);box-shadow:0 0 0 1px var(--brand,#1B4C53)}
.co-note{margin:12px 0 0;font-size:12.5px;line-height:1.5;color:var(--muted,#6E6253)}
.q-dmg{color:var(--muted,#6E6253);font-size:13px}
