/* Photography first. Generous type, clear details, one inquiry. */
.villa-detail { --detail-gutter: clamp(24px, 5vw, 100px); background: #fbfaf6; }
.detail-header { position:absolute; inset:0 0 auto; z-index:5; height:104px; padding-inline:var(--detail-gutter); background:transparent; }
.detail-header-link { font-size:15px; text-transform:none; letter-spacing:0; }
.detail-main { max-width:none; padding:0; }
.villa-opening { position:relative; min-height:720px; height:100svh; max-height:1200px; background:var(--forest); color:var(--paper); }
.opening-photograph { position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; background:var(--forest); }
.opening-photograph img { width:100%; height:100%; object-fit:cover; object-position:center 52%; display:block; }
.villa-opening::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,#12251c50,transparent 23%,transparent 40%,#10251b90 100%); }
.opening-copy { position:absolute; z-index:2; left:var(--detail-gutter); right:var(--detail-gutter); bottom:60px; display:flex; align-items:flex-end; justify-content:space-between; gap:36px; pointer-events:none; }
.opening-copy h1 { font:400 clamp(70px,7.1vw,140px)/1.02 var(--serif); letter-spacing:-.035em; margin:0; }
.opening-copy h1 em { font-weight:400; }
.opening-copy button { pointer-events:auto; flex:none; display:flex; align-items:center; gap:24px; padding:14px 0; background:none; border:0; border-bottom:1px solid #fbfaf690; color:inherit; font:400 18px/1.5 var(--sans); }
.opening-copy svg { width:24px; height:24px; }
.villa-facts { margin:0; padding:42px var(--detail-gutter); display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid #20392c25; gap:30px; }
.villa-facts div { display:flex; flex-direction:column; gap:8px; }
.villa-facts dt { font-size:18px; opacity:.75; }
.villa-facts dd { margin:0; font:400 clamp(30px,2.7vw,52px)/1.15 var(--serif); letter-spacing:-.02em; }
.villa-editorial { display:grid; grid-template-columns:1.15fr 1fr; gap:7vw; padding:100px var(--detail-gutter) 90px; align-items:start; }
.villa-detail h2 { font:400 clamp(48px,5.2vw,96px)/1.08 var(--serif); letter-spacing:-.035em; margin:0; }
.villa-detail h2 em { font-weight:400; }
.villa-editorial p { margin:0 0 30px; font-size:20px; line-height:1.75; max-width:660px; }
.villa-amenities { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:0 28px; }
.villa-amenities li { font-size:18px; line-height:1.5; padding:18px 0; border-top:1px solid #20392c25; }
.villa-gallery { padding:0 0 90px; }
.gallery-pair { display:grid; grid-template-columns:1fr 1fr; gap:16px; padding:0 16px; }
.gallery-pair button,.gallery-wide { display:block; border:0; padding:0; background:var(--sand); overflow:hidden; }
.gallery-pair img { display:block; width:100%; height:auto; aspect-ratio:1.5; object-fit:cover; }
.gallery-wide { width:100%; margin-top:16px; }
.gallery-wide img { display:block; width:100%; height:auto; max-height:85svh; object-fit:cover; object-position:center; }
.gallery-footer { display:flex; justify-content:flex-end; margin:32px var(--detail-gutter) 0; }
.photo-tour-link { font:400 18px/1.5 var(--sans); gap:24px; }
.villa-service { display:grid; grid-template-columns:1.15fr 1fr; align-items:center; gap:7vw; padding:0 var(--detail-gutter) 100px; }
.villa-service h2 { font-size:clamp(48px,4.8vw,90px); }
.villa-service p { font-size:20px; line-height:1.75; margin:0; max-width:650px; }
.villa-inquiry { background:var(--forest); color:var(--paper); padding:85px var(--detail-gutter) 90px; display:grid; grid-template-columns:1fr 1.2fr; gap:8vw; scroll-margin-top:0; }
.villa-inquiry h2 { font-size:clamp(52px,5.4vw,104px); }
.villa-inquiry h2 em { color:var(--gold); }
.inquiry-copy p { font-size:20px; line-height:1.75; max-width:420px; margin:28px 0 0; }
.villa-inquiry-form { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-content:start; }
.villa-inquiry-form label { display:flex; flex-direction:column; gap:10px; font-size:18px; line-height:1.5; }
.villa-inquiry-form input { width:100%; min-width:0; height:58px; border:1px solid #fbfaf650; border-radius:0; padding:12px 14px; background:#ffffff06; color:var(--paper); font:400 18px/1.5 var(--sans); color-scheme:dark; }
.villa-inquiry-form input:focus { outline:1px solid var(--gold); border-color:var(--gold); }
.villa-inquiry-form input::placeholder { color:#fbfaf680; }
.villa-inquiry-form .inquiry-full { grid-column:1/-1; }
.villa-inquiry-form .inquiry-submit { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:18px 0; border:0; border-bottom:1px solid var(--gold); background:none; color:var(--paper); font:400 20px/1.5 var(--sans); }
.inquiry-submit:hover { color:var(--gold); }
.inquiry-submit:disabled { opacity:.6; cursor:wait; }
.villa-inquiry-form .inquiry-status { font-size:18px; line-height:1.6; margin:0; }
.inquiry-status[hidden],.form-trap { display:none; }
.detail-footer { padding:30px var(--detail-gutter) 24px; border-top:1px solid #fbfaf626; }
.detail-footer>img { width:58px; height:58px; margin-bottom:22px; }
.detail-footer a { font-size:15px; }
.detail-footer p { font-size:13px; margin:22px 0 0; max-width:none; text-align:center; }
.tour-header { height:100px; padding-inline:var(--detail-gutter); }
.tour-header h2 { font-size:44px; }
.tour-header .villa-place { display:none; }
.dialog-close { font-size:16px; }
.tour-navigation { top:100px; padding:18px var(--detail-gutter); gap:32px; }
.tour-navigation button { font-size:17px; }
#photo-tour-groups { max-width:none; padding:0 0 60px; }
.tour-group { padding:40px 0 0; scroll-margin-top:165px; }
.tour-group h3 { font:400 clamp(40px,4vw,72px)/1.15 var(--serif); margin:0 var(--detail-gutter) 28px; }
.tour-photo-grid { grid-template-columns:1fr; gap:16px; }
.tour-photo-grid button,.tour-photo-grid button:last-child:nth-child(odd) { grid-column:auto; aspect-ratio:auto; }
.tour-photo-grid img { width:100%; height:auto; max-height:none; object-fit:contain; background:var(--paper); }
#photo-viewer { background:#0b100d; }
.viewer-top { font-size:18px; height:76px; }
.viewer-stage { height:calc(100dvh - 76px); padding:0 65px 18px; }
.viewer-thumbnails { display:none; }
.viewer-stage.is-zoomed>img { height:140%; }
.villa-facts { grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); }
.villa-section-nav { display:flex; gap:40px; align-items:center; padding:25px var(--detail-gutter); border-bottom:1px solid #20392c25; overflow:auto; scrollbar-width:none; }
.villa-section-nav a,.villa-section-nav button { color:inherit; background:none; border:0; padding:0; text-decoration:none; font:400 18px/1.5 var(--sans); white-space:nowrap; }
.villa-section-nav a:hover,.villa-section-nav button:hover { text-decoration:underline; text-underline-offset:8px; }
.villa-bedrooms { padding:0 0 90px; scroll-margin-top:35px; }
.bedroom-overview { display:grid; grid-template-columns:1.15fr 1fr; gap:7vw; padding:70px var(--detail-gutter) 65px; }
.bedroom-overview p { font-size:20px; line-height:1.75; margin:0 0 30px; }
.bedroom-arrangements { margin:0; display:grid; grid-template-columns:1fr 1fr; gap:0 32px; }
.bedroom-arrangements>div { padding:18px 0; border-top:1px solid #20392c25; }
.bedroom-arrangements dt { font-size:18px; margin-bottom:8px; }
.bedroom-arrangements dd { font-size:18px; margin:0; color:#536255; line-height:1.5; }
.bedroom-photographs { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:16px; padding:0 16px; }
.bedroom-photographs figure { margin:0; min-width:0; }
.bedroom-photographs button { display:block; padding:0; border:0; width:100%; background:var(--sand); }
.bedroom-photographs img { display:block; width:100%; height:auto; aspect-ratio:1.5; object-fit:cover; }
.bedroom-photographs figcaption { font:400 18px/1.6 var(--sans); padding:18px 20px 0; text-transform:none; }
.villa-essential-amenities { display:grid; grid-template-columns:1.15fr 1fr; gap:7vw; padding:0 var(--detail-gutter) 100px; scroll-margin-top:45px; }
.villa-essential-amenities .photo-tour-link { margin-top:25px; }
.villa-service-expanded { display:block; padding-top:85px; background:#efeee8; }
.service-introduction { display:grid; grid-template-columns:1.15fr 1fr; align-items:center; gap:7vw; }
.villa-service-details { display:grid; grid-template-columns:1fr 1fr; gap:7vw; margin-top:55px; }
.villa-service-details h3 { font:400 30px/1.3 var(--serif); margin:0 0 26px; }
.villa-service-details ul { list-style:none; margin:0; padding:0; }
.villa-service-details li { padding:17px 0; border-top:1px solid #20392c25; font-size:19px; line-height:1.6; }
.villa-location { display:grid; grid-template-columns:1fr 1.1fr; gap:7vw; align-items:center; padding:100px var(--detail-gutter); scroll-margin-top:30px; }
.villa-location p { font-size:20px; line-height:1.75; margin:28px 0; max-width:650px; }
.villa-location iframe { width:100%; height:620px; border:0; background:#e7e7dd; }
.location-facts { margin:32px 0; }
.location-facts h3 { font:400 20px/1.5 var(--sans); margin:0 0 8px; }
.location-facts p { font-size:18px; margin:0; }
.location-facts>div { padding:18px 0; border-top:1px solid #20392c25; }
.villa-inquiry-bar { position:fixed; inset:auto 0 0; z-index:8; padding:16px var(--detail-gutter); display:flex; justify-content:space-between; align-items:center; gap:30px; background:var(--forest); color:var(--paper); border-top:1px solid #fbfaf633; box-shadow:0 -8px 32px #10211812; }
.villa-inquiry-bar[hidden] { display:none; }
.villa-inquiry-bar>div { display:flex; align-items:center; gap:25px; font-size:18px; }
.villa-inquiry-bar>div span+span { color:#d9dbcf; }
.villa-inquiry-bar a { display:flex; gap:25px; align-items:center; text-decoration:none; color:var(--paper); font-size:18px; padding:10px 0; border-bottom:1px solid var(--gold); }
.villa-detail #amenities-dialog { background:var(--paper); color:var(--forest); overflow:auto; }
#amenities-dialog header { position:sticky; top:0; display:flex; justify-content:space-between; gap:30px; align-items:center; padding:30px var(--detail-gutter); background:var(--paper); border-bottom:1px solid #20392c25; z-index:1; }
#amenities-dialog h2 { font-size:clamp(38px,4vw,70px); }
.all-amenities-groups { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:55px; padding:55px var(--detail-gutter); }
.all-amenities-groups h3 { font:400 32px/1.3 var(--serif); margin:0 0 25px; }
.all-amenities-groups ul { list-style:none; padding:0; margin:0; }
.all-amenities-groups li { font-size:20px; line-height:1.6; padding:16px 0; border-top:1px solid #20392c25; }
@media(max-width:1050px) {
 .opening-copy { display:block; bottom:40px; }
 .opening-copy button { margin-top:24px; }
 .villa-inquiry { gap:5vw; }
 .villa-inquiry-bar>div { flex-direction:column; gap:4px; align-items:flex-start; }
}
/* One compact sticky row leaves the photo tour to the photographs. */
#photo-tour .tour-header {
 height:76px; padding:12px clamp(20px,3vw,48px); gap:28px;
 display:flex; align-items:center; border-bottom:1px solid #20392c20;
}
#photo-tour .tour-header h2 {
 font-size:28px; white-space:nowrap; flex:none; line-height:1.2;
}
#photo-tour .tour-header .tour-navigation {
 position:static; top:auto; min-width:0; flex:1; border:0;
 padding:0; display:flex; flex-wrap:nowrap; gap:24px; overflow-x:auto;
}
#photo-tour .tour-navigation button { font-size:15px; min-height:44px; flex:none; }
#photo-tour .tour-header .dialog-close {
 display:inline-flex; align-items:center; justify-content:center; gap:10px;
 min-height:44px; flex:none; font-size:14px; padding:8px 0;
}
#photo-tour .tour-group { scroll-margin-top:92px; }
@media(max-width:760px) {
 #photo-tour .tour-header { height:64px; padding:10px 16px; gap:16px; }
 #photo-tour .tour-header h2 { font-size:21px; }
 #photo-tour .tour-header .tour-navigation { gap:20px; }
 #photo-tour .tour-navigation button { font-size:14px; }
 #photo-tour .tour-header .dialog-close { width:44px; padding:0; }
 #photo-tour .dialog-close span { display:none; }
 #photo-tour .tour-group { scroll-margin-top:80px; }
}
@media(max-width:760px) {
 .detail-header { height:82px; padding-inline:24px; }
 .detail-header-link { font-size:14px; }
 .villa-opening { height:88svh; min-height:580px; max-height:850px; }
 .opening-photograph img { object-position:52% center; }
 .opening-copy { bottom:32px; left:24px; right:24px; }
 .opening-copy h1 { font-size:clamp(44px,11.5vw,78px); line-height:1.06; }
 .opening-copy button { font-size:17px; margin-top:20px; }
 .villa-facts { grid-template-columns:1fr 1fr; gap:28px 20px; padding:32px 24px; }
 .villa-facts dt { font-size:16px; }
 .villa-facts dd { font-size:34px; }
 .villa-editorial,.villa-service { grid-template-columns:1fr; gap:30px; padding:55px 24px; }
 .villa-detail h2,.villa-service h2 { font-size:clamp(42px,11vw,62px); }
 .villa-editorial p,.villa-service p,.inquiry-copy p { font-size:18px; line-height:1.7; }
 .villa-amenities { gap:0 20px; }
 .villa-amenities li { font-size:17px; padding:16px 0; }
 .gallery-pair { display:block; padding:0; }
 .gallery-pair button+button { margin-top:10px; }
 .gallery-wide { margin-top:10px; }
 .gallery-wide img { max-height:none; }
 .villa-gallery { padding-bottom:0; }
 .gallery-footer { margin:24px; justify-content:flex-start; }
 .villa-inquiry { padding:55px 24px; grid-template-columns:1fr; gap:36px; }
 .inquiry-copy p { margin-top:22px; }
 .villa-inquiry-form { gap:22px 16px; }
 .villa-inquiry-form label { font-size:17px; }
 .villa-inquiry-form label.contact-field { grid-column:1/-1; }
 .villa-inquiry-form input { font-size:17px; padding-inline:10px; height:56px; }
 .villa-inquiry-form .inquiry-submit { font-size:19px; }
 .detail-footer nav { gap:16px 24px; }
 .tour-header { height:86px; padding:16px 24px; }
 .tour-header h2 { font-size:38px; }
 .tour-navigation { top:86px; padding:14px 24px; gap:24px; }
 .tour-navigation button { font-size:16px; }
 .tour-group { scroll-margin-top:150px; padding-top:32px; }
 .tour-group h3 { font-size:36px; margin:0 24px 22px; }
 .tour-photo-grid { gap:10px; }
 .tour-photo-grid img { max-height:none; }
 .viewer-top { height:68px; font-size:15px; padding-inline:16px; }
 .viewer-stage { height:calc(100dvh - 68px); padding:0 0 18px; }
 .viewer-arrow { background:#0b100d80; }
 .villa-section-nav { gap:28px; padding:22px 24px; }
 .villa-section-nav a,.villa-section-nav button { font-size:17px; }
 .villa-bedrooms { padding-bottom:55px; }
 .bedroom-overview { display:block; padding:45px 24px 35px; }
 .bedroom-overview p { font-size:18px; margin:25px 0; }
 .bedroom-arrangements { gap:0 22px; }
 .bedroom-arrangements dt,.bedroom-arrangements dd { font-size:17px; }
 .bedroom-photographs { grid-template-columns:1fr; padding:0; gap:28px; }
 .bedroom-photographs figcaption { padding:15px 24px 0; font-size:17px; }
 .villa-essential-amenities { display:block; padding:0 24px 55px; }
 .villa-essential-amenities .villa-amenities { margin-top:30px; }
 .villa-service-expanded { padding:55px 24px; }
 .service-introduction,.villa-service-details { grid-template-columns:1fr; gap:28px; }
 .villa-service-details { margin-top:36px; }
 .villa-service-details h3 { font-size:27px; margin-bottom:20px; }
 .villa-service-details li { font-size:18px; }
 .villa-location { display:block; padding:55px 24px; }
 .villa-location p { font-size:18px; }
 .villa-location iframe { height:420px; margin-top:35px; }
 .villa-inquiry-bar { padding:12px 24px calc(12px + env(safe-area-inset-bottom)); }
 .villa-inquiry-bar>div { display:none; }
 .villa-inquiry-bar a { width:100%; justify-content:space-between; font-size:18px; }
 #amenities-dialog header { padding:22px 24px; gap:18px; }
 #amenities-dialog h2 { font-size:38px; }
 .all-amenities-groups { grid-template-columns:1fr; padding:32px 24px; gap:35px; }
 .all-amenities-groups li { font-size:18px; }
}
/* Dividers organize the villa facts without adding labels or extra content. */
.villa-facts { grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; }
.villa-facts:has(>div:last-child:nth-child(3)) { grid-template-columns:repeat(3,minmax(0,1fr)); }
.villa-fact-note { display:block; margin-top:8px; font:400 13px/1.5 var(--sans); letter-spacing:0; }
.villa-facts>div+div { border-left:1px solid #20392c30; padding-left:clamp(20px,3vw,48px); }
@media(max-width:760px) {
 .villa-facts,
 .villa-facts:has(>div:last-child:nth-child(3)) { grid-template-columns:1fr 1fr; gap:0; }
 .villa-facts>div:nth-child(odd) { border-left:0; padding-left:0; padding-right:20px; }
 .villa-facts>div:nth-child(even) { padding-left:24px; }
 .villa-facts>div:nth-child(-n+2) { padding-bottom:26px; }
 .villa-facts>div:nth-child(n+3) { border-top:1px solid #20392c30; padding-top:26px; }
}

/* Smaller editorial headings keep each intended phrase on its own line. */
.villa-detail .villa-editorial h2{font-size:clamp(32px,3.2vw,60px);line-height:1.12}
.villa-editorial{padding-block:clamp(40px,5vw,72px)}
