/* Hospitality only: shared site branding, disciplined outer edges. */
.hotels-page main { padding-top: calc(var(--headerH) + 32px); }
.hotels-page .breadcrumb { margin: 0 0 30px; }
.hotels-page .hotel-portfolio { --hotel-gap:24px; }
.hotels-page .hotel-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--hotel-gap); align-items:start; margin-bottom:32px; }
.hotels-page .hotel-eyebrow { margin:0 0 14px; color:var(--textMuted); text-transform:uppercase; font-size:11px; letter-spacing:.16em; line-height:1.6; }
.hotels-page .hotel-intro h1 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(28px,4.4vw,52px); font-weight:400; letter-spacing:-.035em; line-height:1.08; margin:0; }
.hotels-page .hotel-intro-copy { padding-top:3px; }
.hotels-page .hotel-intro-copy p { font-size:16px; line-height:1.7; color:var(--textBody); margin:0 0 16px; max-width:none; }
.hotels-page .hotel-text-link { font-size:13px; display:inline-flex; gap:20px; align-items:center; border-bottom:1px solid var(--border); padding-bottom:6px; }
.hotels-page .hotel-figure { margin:0; min-width:0; }
.hotels-page .hotel-image { display:block; overflow:hidden; background:var(--panel); }
.hotels-page .hotel-image img { display:block; width:100%; height:auto; border-radius:0; }
.hotels-page .hotel-figure figcaption { margin-top:12px; color:var(--textMuted); font-size:11px; line-height:1.6; letter-spacing:.025em; }
.hotels-page .hotel-image:focus-visible, .hotels-page a:focus-visible { outline:2px solid #e7d5b4; outline-offset:5px; }
.hotels-page .hotel-image:hover { cursor:zoom-in; }
.hotels-page .hotel-chapter-nav { display:flex; gap:32px; flex-wrap:wrap; border-bottom:1px solid var(--border); padding:26px 0; margin-bottom:90px; }
.hotels-page .hotel-chapter-nav a { color:var(--textMuted); font-size:12px; padding:8px 0; }
.hotels-page .hotel-chapter-nav a:hover { color:var(--text); }
.hotels-page .hotel-chapter { margin-bottom:100px; scroll-margin-top:calc(var(--headerH) + 30px); }
.hotels-page .hotel-chapter-head { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; gap:var(--hotel-gap); margin-bottom:32px; }
.hotels-page .hotel-chapter h2, .hotels-page .hotel-inquiry h2 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(28px,2.85vw,40px); font-weight:400; letter-spacing:-.02em; line-height:1.15; margin:0; }
.hotels-page .hotel-chapter-head > p { color:var(--textBody); font-size:14px; line-height:1.8; max-width:none; margin:0; }
.hotels-page .hotel-sequence { display:grid; gap:42px; }
.hotels-page .hotel-pair { display:grid; grid-template-columns:1fr 1fr; gap:var(--hotel-gap); align-items:start; }
.hotels-page .hotel-pair-mixed { grid-template-columns:2.25fr 1fr; }
.hotels-page .hotel-ending { margin:0 0 84px; }
.hotels-page .hotel-ending-line { font-family:Georgia,"Times New Roman",serif; font-size:clamp(22px,2.7vw,34px); line-height:1.3; margin:30px 0 0; }
.hotels-page .hotel-inquiry { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--hotel-gap); padding:64px 0 40px; border-top:1px solid var(--border); }
.hotels-page .hotel-inquiry > div > p:not(.hotel-eyebrow) { color:var(--textBody); font-size:15px; line-height:1.8; margin:0 0 24px; }
.hotels-page .hotel-contact { display:inline-flex; align-items:center; justify-content:space-between; gap:28px; min-height:48px; border-bottom:1px solid rgba(255,255,255,.35); font-size:14px; }
/* Labels occupy their own row; titles and descriptions share the next row. */
.hotels-page .hotel-intro, .hotels-page .hotel-chapter-head, .hotels-page .hotel-inquiry { grid-template-areas:"label label" "title copy"; column-gap:var(--hotel-gap); row-gap:14px; align-items:start; }
.hotels-page .hotel-intro > div:first-child, .hotels-page .hotel-chapter-head > div:first-child, .hotels-page .hotel-inquiry > div:first-child { display:contents; }
.hotels-page .hotel-intro .hotel-eyebrow, .hotels-page .hotel-chapter-head .hotel-eyebrow, .hotels-page .hotel-inquiry .hotel-eyebrow { grid-area:label; margin:0; }
.hotels-page .hotel-intro h1, .hotels-page .hotel-chapter-head h2, .hotels-page .hotel-inquiry h2 { grid-area:title; }
.hotels-page .hotel-intro-copy, .hotels-page .hotel-chapter-head > p, .hotels-page .hotel-inquiry > div:last-child { grid-area:copy; }
.hotels-page .lightbox-img { border-radius:0; }
.hotels-page .hotel-intro-actions { display:flex; flex-wrap:wrap; gap:14px 24px; align-items:center; }
.hotels-page .hotel-download { scroll-margin-top:calc(var(--headerH) + 24px); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:32px 0; margin-bottom:64px; }
.hotels-page .hotel-download h2 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(26px,2.5vw,34px); font-weight:400; line-height:1.2; margin:0 0 10px; }
.hotels-page .hotel-download-meta { margin:0 0 20px; font-size:13px; line-height:1.6; color:var(--textMuted); }
.hotels-page .hotel-download-actions { display:flex; flex-wrap:wrap; gap:12px; }
.hotels-page .hotel-download-link { display:inline-flex; align-items:center; gap:24px; min-height:48px; padding:0 16px; border:1px solid var(--border); box-sizing:border-box; font-size:14px; }
.hotels-page .hotel-download-link:hover { border-color:var(--textMuted); }
.hotels-page .hotel-download-link svg { flex-shrink:0; }
.hotels-page .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
/* A single reading column on phones, with the complete photo composition. */
@media (max-width:720px) {
 .hotels-page { --headerH:106px; }
 .hotels-page .container { width:calc(100% - 32px); }
 .hotels-page main { padding-top:calc(var(--headerH) + 18px); }
 .hotels-page .header-inner { gap:8px; padding-top:8px; padding-bottom:10px; }
 .hotels-page .brand { font-size:18px; }
 .hotels-page .nav { width:100%; gap:2px; justify-content:center; }
 .hotels-page .nav a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 5px; font-size:12px; white-space:nowrap; }
 .hotels-page .nav-ig { width:44px; height:44px; flex:0 0 44px; }
 .hotels-page .breadcrumb { margin:0 0 20px; font-size:10px; line-height:1.6; }
 .hotels-page .hotel-intro, .hotels-page .hotel-chapter-head, .hotels-page .hotel-inquiry { grid-template-columns:minmax(0,1fr); grid-template-areas:"label" "title" "copy"; gap:10px; }
 .hotels-page .hotel-intro { margin-bottom:22px; }
 .hotels-page .hotel-intro h1 { font-size:clamp(27px,8vw,36px); }
 .hotels-page .hotel-intro-copy { padding-top:0; }
 .hotels-page .hotel-intro-copy p { font-size:15px; line-height:1.65; margin-bottom:8px; }
 .hotels-page .hotel-eyebrow { font-size:10px; line-height:1.6; letter-spacing:.12em; }
 .hotels-page .hotel-intro-actions { column-gap:22px; row-gap:0; }
 .hotels-page .hotel-text-link { min-height:44px; box-sizing:border-box; padding-bottom:0; font-size:13px; gap:12px; }
 .hotels-page .hotel-chapter-nav { column-gap:22px; row-gap:2px; padding:12px 0; margin-bottom:48px; }
 .hotels-page .hotel-chapter-nav a { display:inline-flex; align-items:center; min-height:44px; padding:0; font-size:13px; }
 .hotels-page .hotel-chapter { margin-bottom:64px; }
 .hotels-page .hotel-chapter h2 { font-size:clamp(27px,7vw,32px); line-height:1.12; }
 .hotels-page .hotel-chapter-head { margin-bottom:24px; }
 .hotels-page .hotel-chapter-head > p { font-size:15px; line-height:1.65; }
 .hotels-page .hotel-pair, .hotels-page .hotel-pair-mixed { grid-template-columns:minmax(0,1fr); gap:30px; }
 .hotels-page .hotel-sequence { gap:30px; }
 .hotels-page .hotel-figure figcaption { margin-top:9px; line-height:1.5; }
 .hotels-page .hotel-ending { margin-bottom:48px; }
 .hotels-page .hotel-ending-line { font-size:clamp(24px,6vw,30px); margin-top:20px; }
 .hotels-page .hotel-inquiry { padding:40px 0 20px; }
 .hotels-page .hotel-intro-copy, .hotels-page .hotel-chapter-head > p, .hotels-page .hotel-inquiry > div:last-child { margin-top:8px; }
 .hotels-page .hotel-inquiry h2 { font-size:34px; }
 .hotels-page .hotel-contact { width:100%; box-sizing:border-box; min-height:48px; }
 .hotels-page .hotel-download { padding:28px 0; margin-bottom:40px; }
 .hotels-page .hotel-download-actions { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
 .hotels-page .hotel-download-link { justify-content:space-between; }
 .hotels-page .lightbox-stage { padding:60px 16px 78px; padding-bottom:calc(78px + env(safe-area-inset-bottom)); }
 .hotels-page .lightbox-img { max-width:calc(100vw - 32px); max-height:calc(100vh - 160px); max-height:calc(100dvh - 160px - env(safe-area-inset-bottom)); }
 .hotels-page .lightbox-ui { top:calc(12px + env(safe-area-inset-top)); left:12px; right:12px; }
 .hotels-page .lightbox-btn { width:44px; height:44px; }
 .hotels-page .lightbox-nav { top:auto; bottom:calc(16px + env(safe-area-inset-bottom)); transform:none; }
 .hotels-page .lightbox-prev { left:calc(50% - 56px); }
 .hotels-page .lightbox-next { right:calc(50% - 56px); }
}
@media (prefers-reduced-motion:no-preference) { .hotels-page { scroll-behavior:smooth; } }
