/* Reading copy and form guidance; decorative headings and control geometry keep their scale. */
body[data-theme] {
    --readable-copy: #e2d9cb;
    --readable-secondary: #d5c9b8;
    --muted: var(--readable-secondary);
    --text-muted: var(--readable-secondary);
}
body[data-theme=modern] {
    --readable-copy: #334a40;
    --readable-secondary: #4e5c53;
}
body[data-theme].premium-home { --home-soft: var(--readable-secondary); }
body[data-theme].premium-events { --event-soft: var(--readable-secondary); }

body[data-theme] :is(.premium-experience-copy, .premium-home-story, .premium-home-steps .experience-grid,
    .contact-intro, .contact-paths, .contact-checklist, .location-details, .residence-info-section,
    .legal, .receipt) p,
body[data-theme].premium-home .premium-hero-copy > p,
body[data-theme] .premium-room-subtitle,
body[data-theme] .luxury-rooms-hero-desc,
body[data-theme] .catalog-heading-row > p {
    color: var(--readable-copy); font-size: 15px; font-weight: 500; line-height: 1.8;
}
body[data-theme] :is(.premium-room-facts, .room-specifications) dd { font-size: 14px; font-weight: 500; line-height: 1.7; }
body[data-theme] :is(.premium-room-facts, .room-specifications) dt { font-size: 12px; font-weight: 600; line-height: 1.65; }
body[data-theme] .premium-room-card .room-feature-tags li { font-size: 12px; font-weight: 500; line-height: 1.5; }
body[data-theme] .premium-room-card .room-price span { font-size: 13px; line-height: 1.65; }
body[data-theme] :is([data-catalog-count], .residence-list-price, .residence-list-price > span) { font-size: 14px; line-height: 1.65; }
body[data-theme] :is(.residence-policy-grid, .residence-booking-intro, .residence-confirmation-note,
    .residence-amenities, .contact-business-details dd, .contact-email, .contact-secondary) { font-size: 14px; line-height: 1.75; }
body[data-theme] :is(.concierge-note, .location-details .fine, .contact-business-details dt,
    .room-photo-feature-caption, .room-photo-library p, .room-photo-library p > span,
    .room-photo-library button, .luxury-room-breadcrumb, .residence-heading-meta,
    .checkout-breadcrumb, .booking-trail) { font-size: 13px; font-weight: 500; line-height: 1.65; }

body[data-theme].premium-events :is(.event-hero-copy > p, .event-section-heading > p,
    .event-occasion-card p, .event-photo-caption p, .event-planning-tips p, .event-step-intro,
    .event-faq > div > p, .event-faq-items p) {
    color: var(--readable-copy); font-size: 15px; font-weight: 500; line-height: 1.8;
}
body[data-theme].premium-events .event-faq-items summary { font-family: var(--font-sans); font-size: 16px; font-weight: 600; line-height: 1.65; color: var(--ink); }
body[data-theme].premium-events :is(.event-form-heading p, .event-date-guide p,
    .event-plan-summary > p, .event-planning-contact > span, .event-submit-area p,
    .event-form-grid .fine, .event-form-actions > .fine) {
    font-size: 14px; font-weight: 500; line-height: 1.75;
}
body[data-theme].premium-events :is(.event-form-grid label, .event-date-guide > strong,
    .event-planning-tips strong, .event-plan-summary dt, .event-progress > span) { font-size: 14px; line-height: 1.65; }
body[data-theme].premium-events :is(.event-form-grid label, .event-date-guide > strong) { font-weight: 600; }
body[data-theme].premium-events .event-plan-summary dd { font-size: 15px; font-weight: 500; line-height: 1.75; }
body[data-theme].premium-events .event-request-form .checkbox-row,
body[data-theme].premium-events .event-request-form .checkbox-row > span { font-size: 14px; font-weight: 500; line-height: 1.75; }
body[data-theme] .faq summary { color: var(--ink); font-family: var(--font-sans); font-size: 16px; font-weight: 600; line-height: 1.65; }
body[data-theme] .faq details p { color: var(--readable-copy); font-size: 15px; line-height: 1.8; }

body[data-theme] :is(.checkout-heading > p, .checkout-section-heading p, .checkout-receipt > p,
    .receipt-review p, .checkout-review-note p, .checkout-offer-note) { font-size: 15px; font-weight: 500; line-height: 1.8; }
body[data-theme] .checkout-form label,
body[data-theme] .checkout-receipt-label { font-size: 14px; font-weight: 600; line-height: 1.65; }
body[data-theme] :is(.checkout-form label > small, .checkout-form label .fine,
    .checkout-form .guest-policy-note, .checkout-next > p, .checkout-assurances li,
    .checkout-concierge span, .transfer-reference > p, .checkout-bank-note,
    .bank-details dt, .stay-summary-list dt, .stay-summary-list dd small,
    .checkout-form #booking-quote, .checkout-form #booking-quote small,
    .checkout-form #booking-quote details, .checkout-receipt .reference > span) {
    font-size: 14px; font-weight: 500; line-height: 1.75;
}
body[data-theme] .checkout-form .checkbox-row,
body[data-theme] .checkout-form .checkbox-row > span { font-size: 14px; font-weight: 500; line-height: 1.75; }
body[data-theme] .stay-summary-list dd { font-size: 15px; font-weight: 500; line-height: 1.7; }
body[data-theme] .checkout-steps strong { font-size: 14px; font-weight: 600; line-height: 1.5; }
body[data-theme] .checkout-steps small { font-size: 13px; font-weight: 500; line-height: 1.6; }
body[data-theme] :is(.guest-picker-label, .guest-picker-panel label,
    .guest-picker-panel label small, .guest-policy-note, .family-search-note, .room-child-note) {
    font-size: 14px; font-weight: 500; line-height: 1.65;
}
body[data-theme] .guest-picker-summary,
body[data-theme] .luxury-room-form .guest-picker-summary { font-size: 15px; font-weight: 600; line-height: 1.5; }
body[data-theme] .search-bar > label { font-size: 13px; }

body[data-theme] :is(.nav-intro p, .nav-panel-note, .nav-link-list span,
    .nav-occasion-list span, .nav-panel-footer) { font-size: 13px; font-weight: 500; line-height: 1.7; }
body[data-theme] .nav-link-list strong { font-size: 14px; font-weight: 600; }
body[data-theme] .footer-top > div > a,
body[data-theme] .footer-top p { font-size: 14px; font-weight: 500; line-height: 1.8; color: var(--muted); }
body[data-theme] .footer-top h3 { font-size: 13px; color: var(--ink); }
body[data-theme] .footer-bottom { font-size: 12px; font-weight: 500; line-height: 1.7; color: var(--muted); }

/* These remain dark or photographic surfaces in the light theme as well. */
body[data-theme] :is(#gallery, #luxury-lightbox, .location-plaque) {
    --readable-copy: #eee6d8; --readable-secondary: #d5c9b8;
}
body[data-theme] #gallery.room-photo-dialog [data-gallery-caption],
body[data-theme] .luxury-lightbox-caption { color: var(--readable-copy); font-size: 14px; font-weight: 500; line-height: 1.75; }
body[data-theme] #gallery.room-photo-dialog .room-photo-filters button { font-size: 12px; font-weight: 500; }
body[data-theme] .luxury-gallery-description { color: #eee6d8; font-size: 14px; font-weight: 500; line-height: 1.6; }

@media (min-width:1251px) {
    body[data-theme] .site-header #navigation { font-size: 12px; }
}
@media (min-width:1051px) and (max-width:1250px) {
    body[data-theme] .site-header #navigation { font-size: 11px; gap: 12px; }
}
@media (max-width:1050px) {
    body[data-theme] .site-header #navigation,
    body[data-theme] .nav-group > summary { font-size: 14px; }
}
@media (max-width:760px) {
    body[data-theme] .checkout-review-note p,
    body[data-theme] .checkout-offer-note { font-size: 14px; }
    body[data-theme] .luxury-mobile-bar-item > span { font-size: 11px; font-weight: 500; }
}
