/* Canonical reading sizes, loaded after component and responsive styles. */
:root{--muted:#53614c;--reading-secondary:#53614c;--reading-caption:#58664f}
body{font-size:16px;line-height:1.6}
.text-body,.intro-content .text-body,.ritual-copy>.text-body,.value-card .text-body,
.about-story .text-body,.rhythm-list .text-body,.stays-intro .text-body,
.detail-description .text-body,.page-intro .text-body,.legal-copy p,.empty-state p{
  font-size:17px;line-height:1.8;color:var(--reading-secondary)
}
.text-body{max-width:58ch}
.eyebrow,.hero-eyebrow,.contact-layout .eyebrow,.contact-form-panel .contact-note-heading .eyebrow,
.detail-hero-copy .eyebrow,.detail-reservation .eyebrow,.booking-preview .eyebrow,.gallery-bottom .eyebrow,
.pause-section .eyebrow,.editorial-quote .eyebrow,.rhythm-list .eyebrow{
  font-size:12px;line-height:1.7;letter-spacing:.16em
}
.btn,.section-heading-right .btn,.detail-reservation .btn,.booking-form>.btn,.contact-form>.btn,
.error-actions .btn,.pause-section .btn{font-size:15px;line-height:1.5;min-height:52px;gap:22px}
.text-link,.ritual-copy .text-link,.hero-explore,.card-explore,.back-link,.direct-booking-link,
.section-heading-right .text-link,.footer-note>.text-link,.intro-content .text-link{font-size:15px;line-height:1.6}
.main-nav>a{font-size:15px;min-height:48px;line-height:1.5;padding:13px 20px}
.reserve-link{font-size:14px;line-height:1.5;min-height:48px}

/* Answers and practical details are reading content, not decorative captions. */
.stay-details summary,.faq-grid .stay-details summary{font-size:18px;font-weight:500;line-height:1.5;color:var(--ink);gap:24px}
.stay-details p,.faq-grid .stay-details p{font-size:16px;line-height:1.8;color:var(--reading-secondary);max-width:68ch}
.stay-details summary>.icon{width:20px;height:20px;color:#53614c}
.faq-grid .stay-details{padding-block:26px}
.section-heading-right>p{font-size:15px;line-height:1.8;color:var(--reading-secondary)}
.facility strong{font-size:16px;line-height:1.5;font-weight:600}
.facility p{font-size:15px;line-height:1.7;color:var(--reading-secondary)}
.property-photo-note,.image-caption,.page-image .image-caption{font-size:12px;line-height:1.8;letter-spacing:.06em;color:var(--reading-caption)}
.google-rating{font-size:14px;line-height:1.6;color:var(--reading-secondary);max-width:360px}
.google-rating strong,.rating-stars{font-size:16px}
.google-rating small{font-size:12px;line-height:1.6;color:var(--reading-caption)}
.stay-card-top{font-size:12px;line-height:1.6;letter-spacing:.03em;gap:14px;flex-wrap:wrap}
.room-type{font-size:12px;line-height:1.4;background:#183326c9;padding:9px 12px}
.stay-card-bottom p{font-size:14px;line-height:1.7}
.stay-card-bottom p>span{font-size:14px;line-height:1.7}
.stay-card-bottom p strong{font-size:24px}
.filter-tab{font-size:14px;min-height:44px;padding:10px 16px}
.saved-count{font-size:12px;opacity:1}
.sort-label,.results-count{font-size:14px;line-height:1.7;color:var(--reading-secondary)}
.sort-label select{font-size:16px;max-width:none}
.sort-label .glass-select-trigger{font-size:16px;min-height:48px}
.listing-note p{font-size:15px;line-height:1.8;color:var(--reading-secondary)}
.listing-note strong{font-weight:600}
.ritual-item-copy>span{font-size:16px;line-height:1.75;color:var(--reading-secondary)}
.ritual-item.is-active .ritual-item-copy>span{max-height:none;overflow:visible}
.ritual-number,.value-number{font-size:13px;line-height:1.7;color:var(--reading-secondary)}
.photo-label,.photo-label>span,.editorial-quote>span,.pause-coordinate{font-size:12px;line-height:1.8;letter-spacing:.1em}
.pause-coordinate{color:var(--reading-secondary)}
.detail-meta>span,.amenities>div{font-size:15px;line-height:1.6}
.amenities>div{color:var(--reading-secondary)}
.detail-reservation>p:not([class]){font-size:16px;line-height:1.8;color:var(--reading-secondary)}
.small-note,.error-footnote{font-size:13px;line-height:1.8;color:var(--reading-secondary)}
.detail-price>span{font-size:16px}
.info-list dt{font-size:12px;line-height:1.7;color:var(--reading-secondary)}
.info-list dd{font-size:16px;line-height:1.8}
.info-list small{font-size:13px;line-height:1.7;color:var(--reading-secondary)}
.location-panel>.map-caption{font-size:20px;line-height:1.5;flex-wrap:wrap}
.map-caption>span{font-size:12px;line-height:1.7;color:var(--reading-secondary)}

/* Opaque-enough text surfaces keep the glass readable over photography. */
.hero-copy-bottom>p{font-size:17px;line-height:1.8;color:#fffefa;text-shadow:0 1px 5px #102317a6}
.hero-location,.hero-location span{font-size:12px;line-height:1.7;color:#fffefa;text-shadow:0 1px 5px #102317a6}
.hero-eyebrow,.hero-side-note,.scroll-hint,.hero-film small{font-size:12px;line-height:1.6;color:#fffefa;letter-spacing:.13em;text-shadow:0 1px 4px #102317a6}
.intro-glass{background:linear-gradient(135deg,#18382bc9,#214131b5)}
.photo-label{color:#fffefa;text-shadow:0 1px 6px #102317}
.booking-preview p:last-child{font-size:13px;line-height:1.7;color:#fffefa}
.contact-scene-image{opacity:.52}
.contact-note-heading,.contact-form-panel .contact-form{background:linear-gradient(135deg,#fffef9ee,#f4f7e5d9 48%,#fffef9e8)}
.contact-form-panel .contact-note-heading .form-note{font-size:16px;line-height:1.75;color:#3f513a}
.form-field,.form-field>label,.booking-form .form-field{font-size:14px;line-height:1.5;color:var(--pine)}
.form-field input:not([type=checkbox]),.form-field select,.form-field textarea,
.booking-form .form-field input,.booking-form .form-field select,.booking-form .form-field textarea{
  font-size:16px;line-height:1.5;min-height:48px;min-width:0
}
.form-field input::placeholder,.form-field textarea::placeholder{font-size:16px;color:#64705c;opacity:1}
.contact-form-panel input:not([type=checkbox]),.contact-form-panel textarea{background:linear-gradient(135deg,#fffef9ed,#fffef9d9)}
.contact-form-panel input::placeholder,.contact-form-panel textarea::placeholder{color:#64705c}
.consent,.consent-label,.booking-form .consent,.contact-form-panel .consent-label{font-size:14px;line-height:1.65;color:#405238;gap:11px}
.consent input,.consent-label input{width:20px;height:20px;flex:0 0 20px;margin-top:2px}
.form-status{font-size:15px;line-height:1.8}
.booking-form-intro>p,.booking-success>p:not(.eyebrow){font-size:16px;line-height:1.8;color:var(--reading-secondary)}
.booking-summary>div,.booking-summary .summary-total{font-size:16px;line-height:1.8;color:#46583d;gap:16px}
.booking-summary .summary-total strong{font-size:24px}
.booking-summary .date-prompt,.rate-explanation,.booking-disclaimer,.enquiry-fallback{font-size:13px;line-height:1.8;color:var(--reading-secondary)}
.success-reference,.success-reference>span:last-child{font-size:14px;line-height:1.8}
.success-reference>strong{font-size:18px;line-height:1.5;overflow-wrap:anywhere}
.enquiry-fallback textarea{font-size:16px;line-height:1.6}
.toast{font-size:14px;line-height:1.6}
.gallery-controls{font-size:13px}

/* Selector values and calendar days must be legible before and after opening. */
.search-field label{font-size:12px;line-height:1.6;letter-spacing:.1em;color:#53614c}
.search-field .glass-date-trigger,.search-field .glass-select-trigger,
.glass-date-trigger,.glass-select-trigger,.form-field .glass-select-trigger,.booking-form .glass-select-trigger{
  font-size:16px;line-height:1.5;min-height:48px;height:auto;padding:11px 12px
}
.search-field .glass-date-trigger{max-width:none}
.glass-select-option{font-size:16px;line-height:1.5;min-height:48px}
.search-submit{font-size:16px;line-height:1.4;min-height:60px}
.booking-footnote{font-size:13px;line-height:1.7;color:var(--reading-secondary);gap:20px;flex-wrap:wrap}
.glass-calendar-kicker{font-size:12px;line-height:1.6;letter-spacing:.08em}
.glass-calendar-grid th{font-size:12px;height:30px;color:#53614c}
.glass-calendar-grid td{height:42px}
.glass-calendar-day{font-size:14px;height:40px;min-height:40px}
.glass-calendar-status{font-size:12px;line-height:1.5;color:#53614c}
.glass-calendar-done{font-size:14px;min-height:44px}
.glass-calendar-nav{flex:0 0 44px;width:44px;height:44px;min-height:44px}

.footer-invitation .eyebrow,.footer-locale{font-size:12px;line-height:1.7;color:#dce4d0}
.footer-note>p,.footer-business>p{font-size:15px;line-height:1.8;color:#e0e7d6}
.footer-business a,.footer-nav,.footer-legal,.footer-note>.text-link{font-size:14px;line-height:1.7;color:#e4ebda}
.footer-bottom{flex-wrap:wrap;align-items:center;gap:24px}
.footer-nav,.footer-legal{flex-wrap:wrap;max-width:none;gap:12px 24px}
.footer-nav a,.footer-legal a,.footer-business a{min-height:44px;display:inline-flex;align-items:center}
.demo-note{font-size:12px;line-height:1.8;color:#cbd8be;text-align:left;max-width:none}

@media(max-width:1100px){
  .main-nav{display:none;left:0;right:0;top:100%;transform:none;flex-direction:column;border-radius:10px;padding:10px;background:#f6f4eef5!important;color:var(--pine);box-shadow:0 16px 42px #13251c30!important}
  .over-hero .main-nav{background:#f6f4eef5!important;color:var(--pine)}
  .main-nav>a{font-size:16px;min-height:52px}
  .menu-open .main-nav{display:flex}
  .mobile-toggle{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:50%;color:inherit}
  .reserve-link{margin-left:auto}
  .stay-search{grid-template-columns:1fr 1fr;gap:16px;padding:20px;align-items:stretch}
  .search-field{padding:4px 12px;border:0;min-width:0;gap:10px}
  .search-submit{margin:0;padding:16px 20px;align-self:end}
  .booking-footnote{justify-content:flex-start}
  .contact-layout{grid-template-columns:1fr;gap:50px}
  .contact-glass-scene{width:min(100%,720px);justify-self:center}
}
@media(max-width:760px){
  .brand-name>span,.site-header.scrolled.over-hero .brand-name>span{font-size:12px}
  .text-body,.intro-content .text-body,.ritual-copy>.text-body,.value-card .text-body,
  .about-story .text-body,.rhythm-list .text-body,.stays-intro .text-body,
  .detail-description .text-body,.page-intro .text-body,.legal-copy p,.empty-state p{font-size:16px;line-height:1.8}
  .stay-details summary,.faq-grid .stay-details summary{font-size:17px;gap:18px}
  .faq-grid .stay-details{padding-block:22px}
  .hero{min-height:860px}
  .hero-copy{top:24%}
  .hero-eyebrow{letter-spacing:.1em;align-items:flex-start;gap:9px}
  .hero-eyebrow>span{margin-top:8px}
  .hero-copy-bottom>p{font-size:16px;line-height:1.75}
  .hero-copy-bottom{gap:18px}
  .hero-explore{font-size:15px;min-height:44px;gap:28px}
  .hero-film{bottom:180px}
  .scroll-hint{font-size:12px;letter-spacing:.08em}
  .hero-location{font-size:12px;letter-spacing:.1em}
  .booking-strip{margin-top:-48px}
  .section-heading-right{max-width:100%}
  .section-heading-right>p{font-size:14px}
  .section-heading{flex-wrap:wrap;gap:24px}
  .room-type{font-size:12px}
  .filter-tabs{justify-content:flex-start;gap:6px}
  .filter-tab{font-size:14px;padding:10px 14px}
  .sort-label{justify-content:flex-start;flex-wrap:wrap;margin-top:20px}
  .listing-note{padding:20px;gap:13px}
  .listing-note p{font-size:14px}
  .detail-meta{gap:14px 22px}
  .detail-meta>span,.amenities>div{font-size:14px}
  .info-list>div{grid-template-columns:1fr;gap:8px}
  .info-list dt{margin:0}
  .contact-form-panel .contact-form{padding:22px 20px}
  .contact-form-panel .form-field{margin-bottom:14px;gap:7px}
  .contact-form-panel .consent-label{margin-block:16px}
  .booking-form .form-row{grid-template-columns:1fr}
  .booking-summary>div,.booking-summary .summary-total{font-size:15px;gap:12px}
  .booking-summary .summary-total strong{font-size:23px}
  .footer-business a{font-size:14px}
  .footer-legal{justify-content:flex-start;gap:8px 22px}
  .footer-nav{justify-content:flex-start;font-size:14px}
  .footer-legal>span{margin-top:4px}
  .demo-note{font-size:12px;margin-inline:auto}
}
@media(max-width:600px){
  .stay-search{grid-template-columns:minmax(0,1fr);gap:14px;padding:20px;row-gap:14px}
  .search-field{padding:0;border:0;gap:12px}
  .search-icon{display:none}
  .search-field label{font-size:12px;line-height:1.6}
  .search-field .glass-select,.search-field .glass-date-trigger{width:100%}
  .search-submit{width:100%;font-size:16px;min-height:56px}
  .booking-strip{width:calc(100% - 42px)}
  .reserve-link{flex:0 0 44px;width:44px;min-width:44px;min-height:44px;padding:0;gap:0}
  .reserve-link .reserve-full,.reserve-link .reserve-short{display:none}
  .reserve-link>.icon{display:block;width:18px;height:18px}
  .hero-copy{top:22%}
  .hero-location{top:132px}
  .stay-card-top{font-size:12px}
  .property-photo-note{font-size:12px}
  .footer-top{gap:38px}
  .footer-brand-lockup strong{white-space:normal}
}
@media(max-width:350px){
  .glass-calendar-heading{gap:6px}
  .glass-calendar-heading h2{font-size:24px}
}
