/* Hotel pages keep the approved contained, two-column booking composition. */
.hotel-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.03fr); align-items:stretch; gap:48px; padding-block:18px 42px; }
.hotel-hero-copy { min-width:0; }
.hotel-page .hotel-hero h1 { font-size:clamp(30px,2.65vw,40px); max-width:23ch; margin:12px 0 16px; }
.hotel-hero .destination-lead { font-size:17px; line-height:1.6; margin-bottom:24px; }
.hotel-hero .quote-card { width:100%; max-width:none; margin:0; }
.hotel-name-notice { display:flex; align-items:flex-start; gap:12px; background:#fff8e8; border-left:3px solid var(--gold); border-radius:0 8px 8px 0; padding:15px 17px; margin-bottom:24px; font-size:14px; line-height:1.5; }
.hotel-name-notice>img { flex-shrink:0; margin-top:2px; }
.hotel-name-notice strong { display:block; color:var(--navy); }
.hotel-name-notice p { margin:4px 0 6px; }
.hotel-name-notice a { color:var(--navy); font-weight:750; text-decoration:underline; }
.hotel-hero-photo { position:relative; min-height:550px; border-radius:16px; overflow:hidden; background:var(--navy); }
.hotel-hero-photo>img { width:100%; height:100%; object-fit:cover; object-position:55% center; position:absolute; inset:0; }
.hotel-hero-photo::after { content:''; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(4,27,58,.85)); pointer-events:none; }
.hotel-hero-photo figcaption { position:absolute; bottom:32px; left:30px; right:30px; z-index:1; color:white; }
.hotel-hero-photo figcaption>span { display:block; font-size:12px; letter-spacing:.14em; margin-bottom:10px; font-weight:800; color:#ffce66; }
.hotel-hero-photo figcaption>strong { display:block; font-size:29px; line-height:1.22; max-width:18ch; }
.hotel-page .hotel-hero-photo figcaption p { color:white; margin:12px 0 0; font-size:16px; }
.hotel-location { display:grid; grid-template-columns:1.4fr 1fr; gap:48px; align-items:center; }
.hotel-address { display:flex; align-items:flex-start; gap:17px; border:1px solid var(--line); border-top:3px solid var(--gold); border-radius:10px; padding:28px; }
.hotel-address>img { flex-shrink:0; }
.hotel-address strong { font-size:20px; color:var(--navy); }
.hotel-address p { margin:8px 0 18px; }
.hotel-page .destination-facts>div { min-width:0; }
@media(max-width:1050px) {
 .hotel-hero { gap:28px; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); }
 .hotel-location { gap:28px; }
}
@media(max-width:800px) {
 .hotel-hero,.hotel-location { grid-template-columns:1fr; gap:28px; }
 .hotel-hero { padding-top:6px; }
 .hotel-page .hotel-hero h1 { max-width:100%; font-size:32px; }
 .hotel-hero-photo { min-height:0; aspect-ratio:4/3; }
 .hotel-hero-photo>img { object-position:center; }
 .hotel-hero-photo figcaption { left:22px; right:22px; bottom:22px; }
 .hotel-hero-photo figcaption>strong { font-size:25px; }
 .hotel-name-notice { font-size:14px; padding:14px; }
 .hotel-address { padding:22px; }
}
