/* Readable typography, a unified brand color and unobstructed photographs. */
:root { --muted: #56665f; }
body { font-size: 16px; }
.brand-icon img { filter: url('#brand-tone'); }
.wordmark { font-size: 24px; }
.nav nav { font-size: 13px; gap: 25px; }
.nav-cta { font-size: 13px; min-height: 46px; gap: 15px; }
.nav-cta .icon { width: 19px; height: 19px; }
.topbar { font-size: 10px; letter-spacing: .07em; }
.eyebrow, .hero-copy>.eyebrow { font-size: 11px; letter-spacing: .12em; white-space: normal; }
.button, .hero-actions .button { font-size: 14px; }
.text-link, .hero-actions .text-link { font-size: 14px; min-height: 44px; }
.hero-description { font-size: 17px; max-width: 440px; line-height: 1.85; }
.hero-facts strong { font-size: 15px; }
.hero-facts span { font-size: 12px; }
.hero-facts { gap: 32px; max-width: 430px; }
.hero-visual::after { background: linear-gradient(180deg,transparent 58%,#102d3e9c); }
.photo-topline { left: auto; }
.photo-zoom { width: 44px; height: 44px; }
.photo-zoom .icon { width: 21px; height: 21px; }
.hero-photo-bottom p { font-size: 29px; }
.hero-photo-bottom p span { display: block; margin-top: 8px; font-size: 12px; }
.photo-controls button { width: 36px; height: 40px; font-size: 12px; }
.benefits-grid>div { font-size: 13px; }
.section-intro, .body-copy { font-size: 16px; line-height: 1.9; }
.room-title h3 { font-size: 30px; }
.room-title>p { font-size: 19px; }
.room-title>p>span { font-size: 12px; }
.room-description { min-height: 112px; font-size: 16px; line-height: 1.85; }
.room-tags { min-height: 48px; gap: 5px 13px; }
.room-tags li { font-size: 12px; }
.room-link { min-height: 52px; font-size: 14px; }
.zoom-bubble { width: 38px; height: 38px; }
.custom-plan p { font-size: 16px; }
.custom-plan>div { align-items: start; flex-direction: column; gap: 6px; }
.plan-mark { font-size: 10px; }
.custom-plan .text-link { font-size: 14px; flex-shrink: 0; }
.rate-note { font-size: 11px; }
.experience-grid { gap: 76px; }
.experience-photos { display: grid; grid-template-columns: 100px 1fr; gap: 24px; align-items: center; padding: 0; }
.experience-main { grid-column: 1/-1; width: 100%; aspect-ratio: 1; }
.experience-main img { object-fit: contain; filter: none; }
.experience-detail { position: static; width: 100%; aspect-ratio: 1; border: 0 !important; }
.photo-note { position: static; font-size: 22px; }
.amenities { gap: 24px 18px; }
.amenities>div { font-size: 14px; }
.steps h3 { font-size: 18px; }
.steps p { font-size: 16px; line-height: 1.9; color: #d0d9da; }
.how-bottom { font-size: 14px; }
.how-bottom .text-link { font-size: 14px; flex-shrink: 0; }
.address strong { font-size: 16px; }
.address span, .location-facts p { font-size: 14px; }
.parking-note { font-size: 13px; }
.location-photo { filter: none; }
.map-address strong { font-size: 14px; line-height: 1.65; }
.map-address span>span { font-size: 12px; }
.map-frame { min-height: 540px; }
.faq summary { font-size: 16px; }
.faq details p { font-size: 15px; }
.contact .body-copy { color: #ced7da; }
.contact-email, .contact-note p { font-size: 14px; }
.contact-form>p { font-size: 14px; }
.field label { font-size: 13px; }
.field input, .field select, .field textarea { font-size: 16px; border-color: #bbc5b9; }
.field input, .field select { height: 49px; }
.field input::placeholder, .field textarea::placeholder { color: #68756b; }
.contact-form .button { font-size: 14px; min-height: 52px; }
.contact-form>.form-note { font-size: 12px; line-height: 1.75; }
.footer nav { font-size: 13px; }
.footer-bottom { font-size: 12px; }
.gallery-bottom { font-size: 13px; }
.gallery-bottom>span { font-size: 12px; }
.gallery-toolbar button, .gallery-prev, .gallery-next { width: 44px; height: 44px; }
@media(max-width:1150px) {
  .nav { gap: 18px; }
  .nav nav { gap: 18px; }
  .section-intro { font-size: 15px; }
  .room-title { align-items: start; flex-direction: column; gap: 8px; }
  .room-description { min-height: 155px; }
  .room-tags { min-height: 65px; }
  .experience-grid { gap: 45px; }
  .experience-photos { grid-template-columns: 85px 1fr; gap: 20px; }
  .photo-note { font-size: 21px; }
  .amenities>div { font-size: 13px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .footer-main { flex-wrap: wrap; }
}
@media(max-width:1000px) {
  .nav { height: 78px; }
  .nav-cta { margin-left: auto; }
  .menu-toggle { display: flex !important; align-items: center; justify-content: center; flex-direction: column; flex-shrink: 0; gap: 6px; width: 44px; height: 44px; padding: 10px; border: 1px solid var(--line); background: transparent; }
  .menu-toggle span { width: 19px; height: 1px; background: var(--navy); transition: transform .2s; }
  .menu-toggle[aria-expanded=true] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded=true] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .nav nav { display: none; position: absolute; top: 78px; left: 0; right: 0; flex-direction: column; gap: 0; padding: 20px 30px 26px; border-bottom: 1px solid var(--line); background: var(--cream); box-shadow: 0 20px 30px #183b5010; }
  .nav nav.is-open { display: flex; }
  .nav nav>a { padding-block: 14px; font-size: 16px; }
  .nav nav .mobile-contact { display: block !important; color: #527361; font-weight: 800; }
  .hero-copy { padding-right: 28px; }
  .hero-copy>.eyebrow { font-size: 10px; }
  .hero-description { font-size: 16px; }
  .hero-facts { gap: 24px; }
  .hero-facts strong { font-size: 14px; }
  .hero-facts span { font-size: 11px; max-width: 115px; }
  .hero-photo-bottom { left: 23px; right: 20px; }
  .hero-photo-bottom p { font-size: 27px; }
  .photo-controls { gap: 5px; }
  .photo-controls button { width: 32px; }
  .room-title h3 { font-size: 28px; }
  .room-description { font-size: 15px; min-height: 165px; }
  .room-tags { min-height: 80px; gap: 4px 9px; }
  .room-link { font-size: 13px; }
  .amenities { grid-template-columns: 1fr; gap: 17px; }
  .amenities>div { font-size: 14px; }
  .how-bottom { align-items: start; }
}
@media(min-width:701px) and (max-width:900px) {
  .hero-copy { padding-left: 32px; }
  .hero-copy>.eyebrow { font-size: 9px; }
  .hero-actions { gap: 8px; }
  .hero-actions .button { font-size: 13px; padding-inline: 16px; }
  .hero-actions .text-link { font-size: 13px; }
  .hero-facts { flex-direction: column; gap: 12px; }
  .hero-facts>div { flex-direction: row; align-items: center; justify-content: space-between; gap: 10px; }
  .hero-facts span { margin-top: 0; }
  .experience-grid { gap: 30px; }
  .experience-copy h2 { font-size: 38px; }
  .experience-photos { grid-template-columns: 70px 1fr; gap: 17px; }
  .photo-note { font-size: 19px; }
}
@media(max-width:700px) {
  .topbar .wrap { font-size: 8px; letter-spacing: .06em; min-height: 30px; }
  .nav { height: 76px; gap: 12px; }
  .nav nav { top: 76px; }
  .nav-cta { display: none; }
  .menu-toggle { margin-left: auto; }
  .brand { gap: 9px; }
  .brand-icon { width: 40px; height: 42px; }
  .brand-icon img { width: 71px; height: 71px; left: -14px; top: -6px; }
  .wordmark { font-size: 24px; }
  .wordmark small { font-size: 14px; }
  .hero-copy { padding: 44px 24px 34px; }
  .hero-copy>.eyebrow { font-size: 10px; }
  .hero-description { font-size: 16px; max-width: 510px; }
  .hero-actions { gap: 10px 22px; }
  .hero-actions .button, .hero-actions .text-link { font-size: 14px; }
  .hero-actions .button { padding-inline: 20px; min-height: 54px; }
  .hero-facts { flex-direction: row; gap: 29px; }
  .hero-facts>div { flex-direction: column; }
  .hero-facts strong { font-size: 15px; }
  .hero-facts span { font-size: 12px; max-width: none; }
  .hero-photo-bottom p { font-size: 28px; }
  .hero-photo-bottom p span { font-size: 12px; }
  .photo-controls button { height: 40px; }
  .benefits-grid>div { font-size: 12px; align-items: start; }
  .benefits-grid .icon { margin-top: 2px; }
  .eyebrow { font-size: 11px; }
  .section-intro, .body-copy, .faq .body-copy, .contact .body-copy, .how .section-intro { font-size: 16px; }
  .room-title { flex-direction: row; align-items: center; gap: 10px; }
  .room-title h3 { font-size: 31px; }
  .room-title>p { font-size: 19px; }
  .room-title>p>span { font-size: 12px; }
  .room-description { font-size: 16px; min-height: 0; }
  .room-tags { min-height: 0; gap: 7px 15px; }
  .room-tags li { font-size: 12px; }
  .room-link { font-size: 14px; }
  .custom-plan p, .custom-plan .text-link { font-size: 15px; }
  .rate-note { font-size: 11px; }
  .experience-grid { gap: 43px; }
  .experience-photos { grid-template-columns: 86px 1fr; gap: 21px; padding: 0; }
  .experience-main { aspect-ratio: 1; }
  .experience-detail { position: static; width: 100%; }
  .photo-note { position: static; font-size: 22px; }
  .amenities { grid-template-columns: 1fr 1fr; gap: 24px 13px; }
  .amenities>div { font-size: 14px; }
  .steps h3 { font-size: 18px; }
  .steps p { font-size: 16px; }
  .how-bottom>p, .how-bottom .text-link { font-size: 14px; }
  .address strong { font-size: 16px; }
  .address span, .location-facts p { font-size: 14px; }
  .parking-note { font-size: 13px; }
  .map-frame { min-height: 430px; }
  .faq summary { font-size: 16px; }
  .faq details p { font-size: 15px; }
  .contact-email, .contact-note p, .contact-form>p { font-size: 14px; }
  .contact-form h3 { font-size: 31px; }
  .field label { font-size: 13px; }
  .field input, .field select, .field textarea { font-size: 16px; }
  .contact-form .button { font-size: 14px; }
  .contact-form>.form-note { font-size: 12px; }
  .footer nav { font-size: 14px; }
  .footer-bottom { font-size: 12px; }
  .gallery-bottom { font-size: 12px; }
}
/* At intermediate widths a full-width photograph preserves the chairs. */
@media(max-width:1000px) {
  .hero { grid-template-columns: 1fr; }
  .hero-copy { padding-top: 48px; padding-bottom: 38px; }
  .hero-description { max-width: 560px; }
  .hero-actions { flex-direction: row; align-items: center; gap: 10px 22px; }
  .hero-facts { flex-direction: row; max-width: 560px; gap: 48px; }
  .hero-facts>div { flex-direction: column; align-items: start; }
  .hero-facts span { max-width: none; margin-top: 4px; }
  .hero-visual { height: min(80vw,700px); }
  .hero-photo { object-position: center bottom; }
}
@media(max-width:700px) {
  .hero-visual { height: auto; aspect-ratio: 1; }
  .hero-facts { gap: 29px; }
}
@media(max-width:370px) {
  .wordmark { font-size: 21px; }
  .wordmark small { font-size: 13px; }
  .brand-icon { width: 36px; }
  .hero-copy { padding-inline: 20px; }
  .hero-copy>.eyebrow { font-size: 9px; }
  .hero-facts { gap: 23px; }
  .hero-facts strong { font-size: 14px; }
  .hero-facts span { font-size: 11px; }
  .hero-photo-bottom { left: 19px; right: 17px; gap: 8px; }
  .hero-photo-bottom p { font-size: 25px; }
  .hero-photo-bottom p span { font-size: 11px; }
  .photo-controls { gap: 4px; }
  .photo-controls button { width: 30px; }
  .benefits-grid>div { font-size: 11px; }
  .room-title h3 { font-size: 28px; }
  .room-title>p { font-size: 17px; }
  .room-title>p>span { font-size: 11px; }
  .photo-note { font-size: 20px; }
  .amenities>div { font-size: 12px; gap: 8px; }
  .contact-form h3 { font-size: 28px; }
}
@media(min-width:1001px) and (max-width:1150px){.nav-cta{display:none}}
