.property-detail-page{background:#fffdf9;color:var(--ink)}
.property-page-header{position:fixed;background:#080808;box-shadow:0 8px 24px rgba(0,0,0,.14)}
.property-container{width:min(calc(100% - 48px),1380px);margin-inline:auto}

.property-title{padding-top:calc(var(--header-height) + 42px);padding-bottom:28px}
.property-breadcrumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:24px;color:var(--muted);font-size:.72rem}
.property-breadcrumbs a:hover{color:var(--gold)}
.property-location-line{margin:0 0 7px;color:var(--gold);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.property-title h1{max-width:960px;margin:0 0 10px;font-size:clamp(2.7rem,4.3vw,4.35rem);letter-spacing:-.035em;line-height:.96}
.property-tagline{max-width:820px;margin:0;color:var(--muted);font-family:var(--font-heading);font-size:clamp(1.3rem,1.8vw,1.75rem);line-height:1.28}
.property-title-meta{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;margin-top:16px}
.property-rating{display:flex;gap:12px;align-items:center;font-size:.79rem}
.property-rating span{color:var(--gold);font-weight:700}.property-rating a{text-decoration:underline;text-underline-offset:4px}
.property-map-link{color:var(--gold);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.property-specs{display:flex;flex-wrap:wrap;gap:12px 26px;margin-top:22px;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.property-specs>div{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.82rem}.property-specs svg{width:22px;height:22px;color:var(--gold)}.property-specs strong{color:var(--ink)}

.property-gallery-shell{padding-bottom:36px}
.property-gallery{position:relative;display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:220px 220px;gap:9px;overflow:hidden;border-radius:14px;background:#e7dfd3}
.gallery-tile{position:relative;overflow:hidden;border:0;padding:0;background:#d7cec1}.gallery-tile-main{grid-row:1/3}
.gallery-tile img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .25s ease}.gallery-tile:hover img{transform:scale(1.045);filter:brightness(.96)}
.gallery-all{position:absolute;right:16px;bottom:16px;min-height:40px;border:1px solid rgba(0,0,0,.15);border-radius:7px;padding:9px 14px;background:rgba(255,255,255,.95);font-size:.72rem;font-weight:700;box-shadow:0 8px 22px rgba(0,0,0,.16)}

.property-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:44px;align-items:start;padding-bottom:70px}
.property-body-main{min-width:0}
.property-content-section{padding:42px 0;border-bottom:1px solid var(--line)}
.property-content-section:first-child{padding-top:10px}
.property-content-section h2,.related-properties h2{margin-bottom:18px;font-size:clamp(2.15rem,3.2vw,3.25rem);letter-spacing:-.025em}
.rich-copy{max-width:820px;color:#4f4942;font-size:.96rem;line-height:1.78}
.rich-copy-content{position:relative;max-height:none;overflow:hidden}
.rich-copy.is-collapsible:not(.is-open) .rich-copy-content{max-height:8.4em}
.rich-copy.is-collapsible:not(.is-open) .rich-copy-content::after{content:"";position:absolute;right:0;bottom:0;left:0;height:3.2em;background:linear-gradient(to bottom,rgba(255,253,249,0),#fffdf9 85%)}
.text-toggle{display:inline-flex;align-items:center;gap:7px;margin-top:12px;border:0;border-bottom:1px solid currentColor;padding:0 0 3px;color:var(--gold);background:transparent;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.text-toggle[hidden]{display:none}

.property-highlight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.property-highlight-grid article{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:17px;border:1px solid var(--line);border-radius:10px;background:#faf6ef}
.property-highlight-grid svg{width:29px;height:29px;color:var(--gold)}
.property-highlight-grid h3{margin:0 0 5px;font-family:var(--font-body);font-size:.9rem;font-weight:700;line-height:1.35}
.property-highlight-grid p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.55}

.amenity-heading-row{display:flex;justify-content:space-between;gap:24px;align-items:end}.amenity-heading-row h2{margin-bottom:0}
.amenity-controls{display:flex;gap:8px;flex:0 0 auto}.amenity-controls button{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font-family:Georgia,serif;font-size:1.55rem;line-height:1}.amenity-controls button:hover{border-color:var(--gold);color:var(--gold)}
.amenity-carousel{margin-top:20px;overflow:hidden}
.amenity-track{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 10px;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-inline:contain}.amenity-track::-webkit-scrollbar{display:none}
.amenity-item{display:grid;place-items:center;align-content:center;gap:10px;flex:0 0 126px;min-height:112px;border:1px solid var(--line);border-radius:11px;padding:15px 10px;background:#fff;scroll-snap-align:start;text-align:center}
.amenity-item svg{width:30px;height:30px;color:var(--gold)}.amenity-item span{font-size:.72rem;font-weight:700;line-height:1.35}
.amenity-toggle{margin-top:8px}
.amenity-all{display:grid;gap:22px;margin-top:24px;padding:24px;border-radius:12px;background:#f8f3eb}
.amenity-all section h3{margin:0 0 12px;font-family:var(--font-body);font-size:.82rem;font-weight:700}
.amenity-all section>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px}
.amenity-all span{display:flex;align-items:center;gap:9px;color:#4f4942;font-size:.79rem}.amenity-all svg{width:20px;height:20px;color:var(--gold);flex:0 0 auto}

.nearby-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:22px}.nearby-grid>div{display:flex;align-items:center;gap:11px;padding:13px;border-radius:9px;background:#f7f1e8}.nearby-grid svg{width:24px;height:24px;color:var(--gold)}.nearby-grid span{display:grid}.nearby-grid strong{font-size:.8rem}.nearby-grid small{color:var(--muted);font-size:.72rem}.text-button{display:inline-flex;margin-top:20px;color:var(--gold);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.rules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rules-grid article{display:grid;grid-template-columns:31px 1fr;gap:10px;align-items:start;padding:15px;border:1px solid var(--line);border-radius:9px}.rules-grid svg{width:25px;height:25px;color:var(--gold)}.rules-grid h3{margin:0 0 3px;font-family:var(--font-body);font-size:.82rem;font-weight:700;line-height:1.35}.rules-grid p{margin:0;color:var(--muted);font-size:.74rem;line-height:1.45}
.property-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.property-review-grid blockquote{margin:0;padding:19px;border:1px solid var(--line);border-radius:10px;background:#fff}.review-source{color:var(--gold);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.property-review-grid p{margin:12px 0;color:#4f4942;font-family:var(--font-heading);font-size:1.22rem;line-height:1.3}.property-review-grid cite{font-style:normal;font-size:.71rem;font-weight:700}
.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line);padding:15px 0}.faq-list summary{cursor:pointer;font-weight:700;font-size:.84rem;list-style:none}.faq-list summary::after{content:'+';float:right;color:var(--gold);font-size:1.2rem}.faq-list details[open] summary::after{content:'−'}.faq-list p{max-width:760px;margin:10px 0 0;color:var(--muted);font-size:.8rem}
.direct-booking-section{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:42px;padding:28px;border-radius:14px;color:#fff;background:#11100f}.direct-booking-section h2{margin:0 0 7px;font-size:clamp(2rem,3vw,3rem)}.direct-booking-section p:not(.eyebrow){max-width:650px;margin:0;color:rgba(255,255,255,.72);font-size:.82rem}.direct-booking-section .button{flex:0 0 auto}

.detail-booking-card{position:sticky;top:calc(var(--header-height) + 18px);max-height:calc(100vh - var(--header-height) - 36px);overflow:auto;padding:22px;border:1px solid rgba(23,19,15,.12);border-radius:14px;background:#fbf7f0;box-shadow:var(--shadow)}
.detail-price{margin:0 0 15px;color:var(--muted);font-size:.78rem}.detail-price strong{color:var(--ink);font-family:var(--font-heading);font-size:1.85rem}
.detail-booking-card form{display:grid;gap:11px}.detail-booking-card label{display:grid;gap:6px}.detail-booking-card label>span{color:var(--gold);font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.detail-booking-card input,.detail-booking-card select{width:100%;min-height:45px;border:1px solid #ded5c9;border-radius:7px;padding:9px 11px;background:#fff;color:var(--ink)}
.detail-date-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.detail-availability-result{min-height:0;margin-top:11px;color:var(--muted);font-size:.78rem;line-height:1.45}.detail-availability-result.is-success{padding:10px;border-radius:8px;background:#eef5e9;color:#31542d}.detail-availability-result.is-error{padding:10px;border-radius:8px;background:#fff0ed;color:#8b3028}.detail-booking-card .is-hidden{display:none}.detail-booking-card>a.button{margin-top:12px}
.detail-price-breakdown{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:9px;background:#fff}.detail-price-row{display:flex;justify-content:space-between;gap:16px;padding:5px 0;color:var(--muted);font-size:.74rem}.detail-price-row strong{color:var(--ink);font-weight:600}.detail-price-total{display:flex;justify-content:space-between;gap:16px;margin-top:9px;padding-top:11px;border-top:1px solid var(--line);font-size:.88rem;font-weight:700}.detail-price-total strong{font-size:1rem}
.detail-services-section{margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}.detail-services-heading h3{margin:0 0 2px;font-family:var(--font-body);font-size:.88rem;font-weight:700}.detail-services-heading p{margin:0;color:var(--muted);font-size:.7rem}.detail-services-list{display:grid;gap:12px;margin-top:12px}.detail-extra-group{display:grid;gap:7px}.detail-extra-group h4{margin:0;color:var(--gold);font-family:var(--font-body);font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.detail-extra-option{display:grid!important;grid-template-columns:18px 28px 1fr auto;gap:9px;align-items:start;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.detail-extra-option input{width:17px!important;min-height:17px!important;margin-top:4px;accent-color:var(--gold)}.detail-extra-option svg{width:24px;height:24px;color:var(--gold)}.detail-extra-copy{display:grid;gap:2px}.detail-extra-copy strong{font-size:.75rem;line-height:1.3}.detail-extra-copy small{color:var(--muted);font-size:.65rem;line-height:1.35}.detail-extra-price{white-space:nowrap;color:var(--ink);font-size:.69rem;font-weight:700}.detail-extra-option.is-mandatory{background:#f5eee3}.detail-extra-option.is-mandatory input{pointer-events:none}
.detail-direct-benefits{display:grid;gap:6px;margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--line);list-style:none;color:var(--muted);font-size:.68rem}.detail-direct-benefits li::before{content:'✓';margin-right:7px;color:var(--gold);font-weight:700}

.related-properties{padding:58px 0 76px;background:#f5f0e8}.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.related-card{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-soft);transition:transform .25s ease}.related-card:hover{transform:translateY(-4px)}.related-card img{width:100%;height:210px;object-fit:cover;transition:transform .6s ease}.related-card:hover img{transform:scale(1.045)}.related-card>div{padding:16px}.related-card span{color:var(--gold);font-size:.64rem;font-weight:700;text-transform:uppercase}.related-card h3{margin:5px 0 10px;font-size:1.5rem}.related-card p{margin:0;color:var(--muted);font-size:.72rem}.related-card strong{color:var(--ink);font-size:1rem}
.gallery-lightbox{position:fixed;z-index:200;inset:0;display:none;align-items:center;justify-content:center;padding:80px;background:rgba(0,0,0,.94)}.gallery-lightbox.is-open{display:flex}.gallery-lightbox figure{max-width:min(1200px,85vw);max-height:85vh;margin:0}.gallery-lightbox img{max-width:100%;max-height:78vh;object-fit:contain}.gallery-lightbox figcaption{margin-top:12px;color:#fff;text-align:center;font-size:.8rem}.gallery-lightbox-close,.gallery-lightbox-prev,.gallery-lightbox-next{position:absolute;border:0;color:#fff;background:transparent;font-family:Georgia,serif}.gallery-lightbox-close{top:22px;right:30px;font-size:3rem}.gallery-lightbox-prev,.gallery-lightbox-next{top:50%;font-size:4rem;transform:translateY(-50%)}.gallery-lightbox-prev{left:28px}.gallery-lightbox-next{right:28px}

@media(max-width:1050px){.property-layout{grid-template-columns:minmax(0,1fr) 350px;gap:30px}.property-gallery{grid-template-rows:200px 200px}}
@media(max-width:900px){.property-layout{grid-template-columns:1fr}.detail-booking-card{position:relative;top:auto;max-height:none;grid-row:1}.property-body-main{grid-row:2}.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.property-container{width:min(calc(100% - 28px),1380px)}.property-title{padding-top:calc(var(--header-height) + 24px);padding-bottom:20px}.property-breadcrumbs{margin-bottom:16px}.property-title h1{font-size:2.65rem}.property-tagline{font-size:1.25rem}.property-specs{gap:12px 18px;margin-top:18px}.property-gallery-shell{width:100%;padding-bottom:24px}.property-gallery{display:flex;overflow-x:auto;gap:0;border-radius:0;scroll-snap-type:x mandatory}.gallery-tile{display:block!important;flex:0 0 100%;height:300px;scroll-snap-align:start}.gallery-all{right:14px;bottom:14px}.property-layout{width:min(calc(100% - 28px),1380px);gap:14px;padding-bottom:52px}.detail-booking-card{padding:19px}.detail-date-grid{grid-template-columns:1fr}.property-content-section{padding:34px 0}.property-content-section h2,.related-properties h2{font-size:2.3rem}.property-highlight-grid,.nearby-grid,.rules-grid,.property-review-grid,.related-grid{grid-template-columns:1fr}.amenity-controls{display:none}.amenity-item{flex-basis:112px;min-height:104px}.amenity-all section>div{grid-template-columns:1fr}.direct-booking-section{align-items:stretch;flex-direction:column;padding:23px}.gallery-lightbox{padding:70px 14px}.gallery-lightbox-prev{left:4px}.gallery-lightbox-next{right:4px}.related-properties{padding:46px 0 58px}.property-page-header{position:fixed}}

/* 3.8.3 – conversion and readability refinements */
.property-detail-page .eyebrow{font-size:.74rem;line-height:1.45;letter-spacing:.1em}
.property-highlight-grid{gap:10px}
.property-highlight-grid article{grid-template-columns:31px 1fr;gap:10px;padding:14px;border-radius:9px;background:#fbf8f3}
.property-highlight-grid svg{width:26px;height:26px}
.property-highlight-grid h3{font-size:.86rem}
.property-highlight-grid p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;font-size:.76rem;line-height:1.48}

.location-copy{max-width:860px}
.location-copy.is-collapsible:not(.is-open) .rich-copy-content{max-height:7.2em}
.location-copy.is-collapsible:not(.is-open) .rich-copy-content::after{height:2.8em}

.rules-grid article:has(h3:empty),.rules-grid article:has(p:empty){display:none}

.review-heading-row{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:14px}
.review-heading-row h2{margin-bottom:4px}
.review-summary{margin:0;color:var(--muted);font-size:.78rem}
.review-summary strong{color:var(--gold)}
.review-controls{display:flex;gap:8px;flex:0 0 auto}
.review-controls button{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font-family:Georgia,serif;font-size:1.45rem;line-height:1}
.review-controls button:hover{border-color:var(--gold);color:var(--gold)}
.property-review-carousel{overflow:hidden}
.property-review-track{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-inline:contain}
.property-review-track::-webkit-scrollbar{display:none}
.property-review-card{flex:0 0 min(520px,78%);margin:0;padding:17px 18px;border:1px solid var(--line);border-radius:10px;background:#fff;scroll-snap-align:start}
.property-review-track.is-single .property-review-card{flex-basis:100%}
.review-source{display:block;color:var(--gold);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.045em}
.review-copy{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:4;margin:10px 0 8px;color:#4f4942;font-family:var(--font-heading);font-size:1.08rem;line-height:1.34}
.property-review-card.is-open .review-copy{display:block;overflow:visible}
.review-toggle{margin:0 0 10px;border:0;border-bottom:1px solid currentColor;padding:0 0 2px;color:var(--gold);background:transparent;font-size:.7rem;font-weight:700}
.property-review-card cite{display:block;font-style:normal;font-size:.72rem;font-weight:700}
.property-review-section{padding-top:32px;padding-bottom:32px}
.property-review-section h2{font-size:clamp(1.95rem,2.6vw,2.65rem)}

.detail-booking-hint{margin-top:12px;padding:10px 11px;border-radius:8px;background:#f5eee3;color:#655a4d}
.direct-booking-section p:not(.eyebrow){font-size:.9rem;line-height:1.55}
.gallery-all{font-size:.78rem}
.related-card span{font-size:.7rem}
.detail-booking-card label>span{font-size:.68rem}
.detail-extra-group h4{font-size:.68rem}
.detail-extra-copy small{font-size:.7rem}
.detail-direct-benefits{font-size:.72rem}

@media(max-width:720px){
  .property-detail-page .eyebrow{font-size:.82rem;line-height:1.45;letter-spacing:.09em}
  .property-location-line{font-size:.8rem}
  .gallery-all{min-height:44px;padding:10px 14px;font-size:.84rem}
  .property-content-section{padding:29px 0}
  .property-content-section h2,.related-properties h2{font-size:2.05rem;line-height:1.02}
  .property-highlight-grid article{padding:14px}
  .property-highlight-grid h3{font-size:.94rem}
  .property-highlight-grid p{font-size:.84rem}
  .amenity-item span{font-size:.8rem}
  .amenity-toggle,.text-toggle{font-size:.82rem}
  .amenity-all section h3{font-size:.9rem}
  .amenity-all span{font-size:.86rem}
  .nearby-grid strong{font-size:.88rem}
  .nearby-grid small{font-size:.8rem}
  .rules-grid h3{font-size:.9rem}
  .rules-grid p{font-size:.82rem}
  .review-heading-row{align-items:flex-start;margin-bottom:12px}
  .review-controls{display:none}
  .property-review-card{flex-basis:90%;padding:16px}
  .review-source{font-size:.78rem}
  .review-copy{font-size:1.12rem;line-height:1.38}
  .review-toggle,.property-review-card cite{font-size:.78rem}
  .review-summary{font-size:.86rem}
  .direct-booking-section{gap:18px;padding:21px}
  .direct-booking-section .eyebrow{font-size:.82rem}
  .direct-booking-section h2{font-size:2.15rem}
  .direct-booking-section p:not(.eyebrow){font-size:.94rem;line-height:1.55}
  .direct-booking-section .button{min-height:48px;font-size:.9rem}
  .detail-price{font-size:.86rem}
  .detail-booking-card label>span{font-size:.78rem}
  .detail-availability-result{font-size:.86rem}
  .detail-price-row{font-size:.82rem}
  .detail-price-total{font-size:.94rem}
  .detail-services-heading h3{font-size:.96rem}
  .detail-services-heading p{font-size:.8rem}
  .detail-extra-group h4{font-size:.76rem}
  .detail-extra-copy strong{font-size:.84rem}
  .detail-extra-copy small{font-size:.78rem}
  .detail-extra-price{font-size:.78rem}
  .detail-direct-benefits{font-size:.8rem}
  .related-card span{font-size:.78rem}
  .related-card p{font-size:.8rem}
}

/* 3.8.4 – one location block and gallery-level booking sidebar */
.property-address-line{display:flex;align-items:center;gap:8px;margin:0 0 10px;color:#4f4942;font-size:.92rem;line-height:1.45}
.property-address-icon{width:19px;height:19px;flex:0 0 auto;color:var(--gold)}
.property-location-disclosure{max-width:900px;margin-top:14px;border-top:1px solid var(--line);padding-top:13px}
.property-location-disclosure summary{display:inline-flex;align-items:center;gap:8px;cursor:pointer;color:var(--gold);font-size:.78rem;font-weight:700;letter-spacing:.035em;text-transform:uppercase;list-style:none}
.property-location-disclosure summary::-webkit-details-marker{display:none}
.property-location-disclosure summary::after{content:'+';display:grid;place-items:center;width:20px;height:20px;border:1px solid currentColor;border-radius:50%;font-size:1rem;line-height:1}
.property-location-disclosure[open] summary::after{content:'−'}
.property-location-disclosure__body{display:grid;gap:18px;margin-top:15px;padding:18px;border-radius:10px;background:#faf6ef}
.property-location-disclosure__body .rich-copy{max-width:none;font-size:.9rem;line-height:1.68}
.property-location-disclosure__body .nearby-grid{margin-top:0}

.property-main-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;grid-template-areas:'gallery booking' 'body booking';gap:34px 42px;align-items:start;width:min(calc(100% - 32px),1480px);padding-bottom:70px}
.property-main-layout>.property-gallery-shell{grid-area:gallery;min-width:0;padding-bottom:0}
.property-main-layout>.property-body-main{grid-area:body;min-width:0}
.property-main-layout>.detail-booking-card{grid-area:booking;align-self:start;top:calc(var(--header-height) + 18px);min-height:min(510px,calc(100vh - var(--header-height) - 36px))}
.property-main-layout .property-gallery{grid-template-rows:250px 250px}

@media(max-width:1050px){
  .property-main-layout{grid-template-columns:minmax(0,1fr) 350px;gap:28px}
  .property-main-layout .property-gallery{grid-template-rows:215px 215px}
}
@media(max-width:900px){
  .property-main-layout{grid-template-columns:1fr;grid-template-areas:'gallery' 'booking' 'body';gap:18px;width:min(calc(100% - 32px),860px)}
  .property-main-layout>.detail-booking-card{position:relative;top:auto;min-height:0;max-height:none}
  .property-main-layout .property-gallery{grid-template-rows:220px 220px}
}
@media(max-width:720px){
  .property-address-line{font-size:.94rem}
  .property-location-disclosure summary{font-size:.84rem}
  .property-location-disclosure__body{padding:15px}
  .property-location-disclosure__body .rich-copy{font-size:.94rem;line-height:1.62}
  .property-main-layout{width:min(calc(100% - 28px),860px);gap:14px;padding-bottom:52px}
  .property-main-layout .property-gallery{display:flex;grid-template-rows:none;overflow-x:auto;gap:0;border-radius:12px;scroll-snap-type:x mandatory}
  .property-main-layout .gallery-tile{display:block!important;flex:0 0 100%;height:300px;scroll-snap-align:start}
}

/* 3.8.5 – booking panel starts directly below the black navigation */
.property-main-layout{
  grid-template-areas:
    'title booking'
    'gallery booking'
    'body booking';
  padding-top:calc(var(--header-height) + 18px);
}
.property-main-layout>.property-title{
  grid-area:title;
  width:100%;
  padding-top:0;
  padding-bottom:24px;
}
.property-main-layout>.property-gallery-shell{grid-area:gallery}
.property-main-layout>.property-body-main{grid-area:body}
.property-main-layout>.detail-booking-card{
  grid-area:booking;
  grid-row:1 / span 3;
  margin-top:0;
  top:calc(var(--header-height) + 12px);
}

@media(max-width:900px){
  .property-main-layout{
    grid-template-areas:
      'title'
      'gallery'
      'booking'
      'body';
    padding-top:calc(var(--header-height) + 16px);
  }
  .property-main-layout>.detail-booking-card{
    grid-row:auto;
    margin-top:0;
  }
}

@media(max-width:720px){
  .property-main-layout{padding-top:calc(var(--header-height) + 12px)}
  .property-main-layout>.property-title{padding-bottom:18px}
}

/* 3.8.6 – sales, SEO and guest-experience refinement */
.property-detail-page{
  --font-heading:'Playfair Display',Georgia,serif;
  --font-body:'Manrope',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-family:var(--font-body);
}
.property-detail-page h1,
.property-detail-page h2,
.property-detail-page .detail-price strong,
.property-detail-page .related-card h3{font-family:var(--font-heading)}
.property-detail-page [hidden]{display:none!important}

.property-main-layout{grid-template-columns:minmax(0,1fr) 398px;gap:32px 40px;width:min(calc(100% - 36px),1500px)}
.property-title{padding-bottom:22px}
.property-breadcrumbs{margin-bottom:18px;font-size:.75rem}
.property-location-line{margin-bottom:8px;font-family:var(--font-body);font-size:.8rem;line-height:1.35;letter-spacing:.095em}
.property-title h1{max-width:940px;margin-bottom:12px;font-size:clamp(2.75rem,4vw,4.45rem);font-weight:700;letter-spacing:-.038em;line-height:.98}
.property-tagline{max-width:840px;font-family:var(--font-body);font-size:clamp(1.02rem,1.3vw,1.22rem);font-weight:500;line-height:1.55}
.property-address-map-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;margin-top:16px}
.property-address-line{margin:0;font-size:.95rem;font-weight:600}
.property-map-link{font-size:.78rem;letter-spacing:.035em}
.property-specs{gap:10px 24px;margin-top:18px;padding:15px 0}
.property-specs>div{font-size:.88rem;font-weight:600}
.property-specs svg{width:23px;height:23px}

.property-gallery{grid-template-rows:250px 250px}
.gallery-all{font-family:var(--font-body);font-size:.8rem}
.property-content-section{padding:36px 0}
.property-content-section h2,.related-properties h2{margin-bottom:14px;font-size:clamp(2rem,2.65vw,2.85rem);font-weight:600;line-height:1.08}
.property-detail-page .eyebrow{font-family:var(--font-body);font-size:.79rem;font-weight:700;line-height:1.4;letter-spacing:.07em}
.rich-copy{font-size:.98rem;line-height:1.72}
.text-toggle{font-family:var(--font-body);font-size:.8rem;letter-spacing:.025em;text-transform:none}

.property-highlight-grid article{grid-template-columns:34px 1fr;padding:16px;background:#fcf9f4}
.property-highlight-grid h3{font-family:var(--font-body);font-size:.94rem}
.property-highlight-grid p{font-size:.82rem;line-height:1.52}

.amenity-carousel{margin-top:16px}
.amenity-item{flex-basis:132px;min-height:114px;padding:14px 10px}
.amenity-item svg{width:31px;height:31px}
.amenity-item span{font-family:var(--font-body);font-size:.86rem;font-weight:600;line-height:1.35}
.amenity-toggle{margin-top:10px}

.location-teaser{max-width:820px;margin:0 0 14px;color:#4f4942;font-size:.96rem;line-height:1.65}
.property-location-disclosure{max-width:100%;margin-top:0;border-top:0;padding-top:0}
.property-location-disclosure summary{font-family:var(--font-body);font-size:.82rem;letter-spacing:.02em;text-transform:none}
.property-location-disclosure__body{margin-top:14px;padding:20px}
.location-map-button{justify-self:start;margin-top:2px}

.rules-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.rules-grid article{padding:14px}
.rules-grid h3{font-size:.88rem}
.rules-grid p{font-size:.8rem}

.property-review-section{padding-top:38px;padding-bottom:38px}
.review-summary{font-size:.9rem}
.property-review-track{gap:14px}
.property-review-card{flex:0 0 calc((100% - 28px)/3);min-width:230px;padding:18px}
.property-review-track.is-single .property-review-card{max-width:680px}
.review-source{font-family:var(--font-body);font-size:.75rem;letter-spacing:.025em;text-transform:none}
.review-copy{font-family:var(--font-body);font-size:.96rem;line-height:1.55}
.review-toggle,.property-review-card cite{font-family:var(--font-body);font-size:.76rem}

.detail-booking-card{top:calc(var(--header-height) + 12px);padding:23px}
.detail-price{font-size:.86rem}
.detail-price strong{font-size:2rem}
.detail-booking-card label>span{font-size:.75rem;letter-spacing:.065em}
.detail-booking-card input,.detail-booking-card select{font-family:var(--font-body);font-size:.93rem}
.detail-booking-hint{font-size:.86rem;line-height:1.5}
.detail-direct-benefits{font-size:.78rem;line-height:1.5}
.direct-booking-section p:not(.eyebrow){font-size:.94rem;line-height:1.55}

/* Complete amenities are shown once, in an accessible modal. */
.amenity-modal{position:fixed;z-index:1200;inset:0;display:none;align-items:center;justify-content:center;padding:24px}
.amenity-modal.is-open{display:flex}
.amenity-modal-backdrop{position:absolute;inset:0;background:rgba(9,8,7,.72);backdrop-filter:blur(5px)}
.amenity-modal-dialog{position:relative;z-index:1;width:min(900px,100%);max-height:min(760px,calc(100vh - 48px));overflow:auto;border-radius:16px;padding:30px;background:#fffdf9;box-shadow:0 28px 80px rgba(0,0,0,.28)}
.amenity-modal-dialog h2{margin:0 48px 24px 0;font-size:clamp(2rem,3vw,3rem)}
.amenity-modal-close{position:absolute;top:18px;right:18px;display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font-size:1.6rem;line-height:1}
.amenity-modal-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.amenity-modal-groups section{padding-top:16px;border-top:1px solid var(--line)}
.amenity-modal-groups h3{margin:0 0 13px;font-family:var(--font-body);font-size:.92rem;font-weight:700}
.amenity-modal-groups section>div{display:grid;gap:10px}
.amenity-modal-groups span{display:flex;align-items:center;gap:10px;color:#4f4942;font-size:.9rem;line-height:1.4}
.amenity-modal-groups svg{width:22px;height:22px;flex:0 0 auto;color:var(--gold)}

@media(max-width:1180px){
  .property-main-layout{grid-template-columns:minmax(0,1fr) 360px;gap:28px}
  .property-review-card{flex-basis:calc((100% - 14px)/2)}
  .rules-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:900px){
  .property-main-layout{grid-template-columns:1fr;width:min(calc(100% - 32px),860px)}
  .property-review-card{flex-basis:70%}
}

@media(max-width:720px){
  .property-main-layout{width:min(calc(100% - 28px),860px)}
  .property-breadcrumbs{margin-bottom:14px;font-size:.78rem}
  .property-location-line{font-size:.88rem;letter-spacing:.065em}
  .property-title h1{font-size:clamp(2.35rem,11vw,3.25rem);line-height:1.02}
  .property-tagline{font-size:1.02rem;line-height:1.55}
  .property-address-map-row{align-items:flex-start;flex-direction:column;gap:8px;margin-top:14px}
  .property-address-line{font-size:.98rem;line-height:1.5}
  .property-map-link{font-size:.88rem}
  .property-specs{flex-wrap:nowrap;gap:10px;overflow-x:auto;margin-top:16px;padding:13px 0;scroll-snap-type:x mandatory;scrollbar-width:none}
  .property-specs::-webkit-scrollbar{display:none}
  .property-specs>div{flex:0 0 auto;min-width:112px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:.9rem;scroll-snap-align:start}
  .property-specs svg{width:24px;height:24px}
  .property-main-layout .gallery-tile{height:280px}
  .property-content-section{padding:28px 0}
  .property-content-section h2,.related-properties h2{font-size:2.05rem;line-height:1.08}
  .property-detail-page .eyebrow{font-size:.86rem;letter-spacing:.045em}
  .rich-copy,.location-teaser{font-size:.98rem;line-height:1.65}
  .text-toggle{font-size:.9rem}
  .property-highlight-grid{grid-template-columns:1fr}
  .property-highlight-grid h3{font-size:1rem}
  .property-highlight-grid p{font-size:.9rem}
  .amenity-controls{display:none}
  .amenity-track{gap:10px;padding-bottom:8px}
  .amenity-item{flex-basis:126px;min-height:112px;padding:14px 9px}
  .amenity-item svg{width:30px;height:30px}
  .amenity-item span{font-size:.94rem;font-weight:600;line-height:1.32}
  .amenity-toggle{font-size:.9rem}
  .property-location-disclosure summary{font-size:.92rem}
  .property-location-disclosure__body{padding:16px}
  .nearby-grid{grid-template-columns:1fr}
  .nearby-grid strong{font-size:.94rem}
  .nearby-grid small{font-size:.86rem}
  .rules-grid{grid-template-columns:1fr}
  .rules-grid h3{font-size:.96rem}
  .rules-grid p{font-size:.88rem}
  .review-heading-row{align-items:flex-start}
  .property-review-card{flex-basis:90%;padding:17px}
  .review-source{font-size:.82rem}
  .review-copy{font-size:.98rem;line-height:1.58}
  .review-summary{font-size:.94rem}
  .detail-booking-card label>span{font-size:.82rem}
  .detail-booking-hint{font-size:.9rem}
  .detail-direct-benefits{font-size:.85rem}
  .direct-booking-section p:not(.eyebrow){font-size:.98rem}
  .amenity-modal{padding:12px}
  .amenity-modal-dialog{max-height:calc(100vh - 24px);padding:24px 18px}
  .amenity-modal-dialog h2{font-size:2.15rem}
  .amenity-modal-groups{grid-template-columns:1fr;gap:18px}
  .amenity-modal-groups h3{font-size:1rem}
  .amenity-modal-groups span{font-size:.94rem}
}

/* ==========================================================
   Selected OS 3.8.7 — mobile responsiveness hardening
   ========================================================== */
.property-detail-page,
.property-detail-page *{box-sizing:border-box}
.property-detail-page{max-width:100%;overflow-x:hidden}
.property-detail-page img{max-width:100%}

@media(max-width:900px){
  .property-detail-page{padding-bottom:0!important}
  .property-page-header{position:fixed!important;inset:0 0 auto;width:100%;max-width:100%}
  .property-page-header .brand{min-width:0}
  .property-page-header .brand img{width:min(50vw,190px);max-width:100%;height:auto}
  .property-page-header .main-nav{max-height:calc(100dvh - var(--header-height));overflow-y:auto;overscroll-behavior:contain}

  .property-main-layout.property-container{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:'title' 'gallery' 'booking' 'body'!important;
    width:100%!important;
    max-width:100%!important;
    gap:18px!important;
    margin:0!important;
    padding:calc(var(--header-height) + 16px) 16px 54px!important;
  }
  .property-main-layout>.property-title,
  .property-main-layout>.property-gallery-shell,
  .property-main-layout>.detail-booking-card,
  .property-main-layout>.property-body-main{min-width:0;width:100%;max-width:100%}
  .property-main-layout>.property-title{grid-area:title;padding:0 0 4px}
  .property-main-layout>.property-gallery-shell{grid-area:gallery;padding:0}
  .property-main-layout>.detail-booking-card{grid-area:booking;grid-row:auto!important;position:relative!important;top:auto!important;max-height:none!important;overflow:visible!important;margin:0}
  .property-main-layout>.property-body-main{grid-area:body}

  .property-title h1,
  .property-tagline,
  .property-address-line,
  .property-breadcrumbs span{overflow-wrap:anywhere;word-break:normal}
  .property-title h1{font-size:clamp(2.35rem,8vw,3.35rem);line-height:1.02}
  .property-tagline{font-size:1.05rem;line-height:1.55}
  .property-address-map-row{align-items:flex-start}

  .property-gallery{width:100%;max-width:100%}
  .gallery-tile{min-width:0}
  .detail-booking-card{width:100%;padding:20px}
  .detail-date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .detail-extra-option{grid-template-columns:18px 26px minmax(0,1fr) auto}
  .detail-extra-copy{min-width:0}
  .detail-extra-copy strong,.detail-extra-copy small{overflow-wrap:anywhere}

  .property-content-section{min-width:0}
  .rich-copy,.location-teaser{max-width:100%}
  .property-highlight-grid,.rules-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .property-review-card{flex-basis:min(520px,82%);min-width:0}
  .related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .direct-booking-section{align-items:flex-start;flex-direction:column}
  .direct-booking-section .button{width:100%}
  .site-footer__grid{min-width:0}
}

@media(max-width:720px){
  .property-main-layout.property-container{gap:14px!important;padding:calc(var(--header-height) + 12px) 14px 46px!important}
  .property-page-header{padding-inline:14px!important}
  .property-page-header .brand img{width:min(54vw,178px)}
  .property-page-header .menu-toggle{flex:0 0 auto}

  .property-breadcrumbs{gap:6px;margin-bottom:12px;font-size:.74rem;line-height:1.45}
  .property-location-line{font-size:.8rem;line-height:1.4;letter-spacing:.055em}
  .property-title h1{margin-bottom:10px;font-size:clamp(2.15rem,10.5vw,3rem);line-height:1.03;letter-spacing:-.03em}
  .property-tagline{font-size:1rem;line-height:1.55}
  .property-address-map-row{gap:7px;margin-top:13px}
  .property-address-line{font-size:.94rem;line-height:1.45}
  .property-map-link{font-size:.82rem;line-height:1.4}

  .property-specs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    overflow:visible;
    padding:12px 0;
  }
  .property-specs>div{min-width:0!important;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:.88rem;line-height:1.35}
  .property-specs>div:last-child:nth-child(odd){grid-column:1/-1}

  .property-gallery{display:flex!important;gap:0!important;overflow-x:auto!important;border-radius:12px;scroll-snap-type:x mandatory;scrollbar-width:none}
  .property-gallery::-webkit-scrollbar{display:none}
  .property-gallery .gallery-tile{display:block!important;flex:0 0 100%!important;width:100%!important;height:clamp(235px,72vw,320px)!important;scroll-snap-align:start}
  .gallery-all{right:10px;bottom:10px;max-width:calc(100% - 20px);white-space:normal;text-align:center}

  .detail-booking-card{padding:18px;border-radius:12px}
  .detail-date-grid{grid-template-columns:1fr}
  .detail-booking-card input,.detail-booking-card select{min-width:0;font-size:16px}
  .detail-price-breakdown{padding:12px}
  .detail-price-row,.detail-price-total{align-items:flex-start}
  .detail-price-row span,.detail-price-total span{min-width:0;overflow-wrap:anywhere}
  .detail-extra-option{grid-template-columns:18px 24px minmax(0,1fr);gap:8px}
  .detail-extra-price{grid-column:3;justify-self:start;white-space:normal}

  .property-content-section{padding:27px 0}
  .property-content-section h2,.related-properties h2{font-size:clamp(1.85rem,8vw,2.2rem);line-height:1.08}
  .property-highlight-grid,.rules-grid,.related-grid{grid-template-columns:1fr}
  .property-highlight-grid article,.rules-grid article{min-width:0}

  .amenity-heading-row{align-items:flex-start}
  .amenity-track{width:100%;gap:9px}
  .amenity-item{flex:0 0 124px;min-width:124px;min-height:110px;padding:13px 9px}
  .amenity-item span{font-size:.9rem;line-height:1.3;overflow-wrap:anywhere}

  .property-location-disclosure__body{padding:15px}
  .nearby-grid{grid-template-columns:1fr}

  .review-heading-row{align-items:flex-start;flex-direction:column;gap:10px}
  .property-review-carousel,.property-review-track{width:100%;max-width:100%}
  .property-review-card{flex:0 0 calc(100% - 8px)!important;max-width:none!important;min-width:0;padding:16px}
  .review-copy{font-size:1rem;line-height:1.55}

  .direct-booking-section{gap:16px;padding:20px}
  .direct-booking-section h2{font-size:2rem}
  .direct-booking-section .button{min-height:48px}

  .related-properties{padding:42px 0 52px}
  .related-properties .property-container{width:100%;padding-inline:14px}
  .related-card img{height:auto;aspect-ratio:4/3}

  .site-footer{padding-top:42px}
  .site-footer .section-inner{width:100%;padding-inline:18px}
  .site-footer__grid{grid-template-columns:1fr!important;gap:28px!important}
  .site-footer__brand,.site-footer__column:last-child{grid-column:auto!important}
  .site-footer__bottom{align-items:flex-start}

  .amenity-modal{padding:8px}
  .amenity-modal-dialog{width:100%;max-height:calc(100dvh - 16px);padding:22px 16px}
  .amenity-modal-groups{grid-template-columns:1fr}
  .gallery-lightbox{padding:64px 8px 22px}
  .gallery-lightbox figure{max-width:100%;max-height:100%;margin:0}
  .gallery-lightbox img{max-height:72dvh}
  .gallery-lightbox-close{top:10px;right:14px}
  .gallery-lightbox-prev{left:0}.gallery-lightbox-next{right:0}
}

@media(max-width:420px){
  .property-main-layout.property-container{padding-inline:12px!important}
  .property-page-header{padding-inline:12px!important}
  .property-page-header .brand img{width:min(51vw,168px)}
  .property-title h1{font-size:2.15rem}
  .property-specs{grid-template-columns:1fr 1fr}
  .property-specs>div{font-size:.84rem}
  .detail-booking-card{padding:16px}
  .amenity-item{flex-basis:116px;min-width:116px}
  .whatsapp-float span{display:none}
}


/* 3.9.2 – external review widget */
.external-review-widget{width:100%;max-width:100%;margin-top:16px;overflow:hidden}
.external-review-widget>div,.external-review-widget iframe{max-width:100%!important}
.external-review-widget iframe{display:block;width:100%!important;border:0}
.property-review-carousel.has-external-widget{margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}
@media(max-width:720px){.external-review-widget{margin-top:12px}.property-review-carousel.has-external-widget{margin-top:20px;padding-top:20px}}
