/* Shared type scale: hero > section > card > body. */
:root{--type-section:clamp(1.75rem,1.25rem + 1.6vw,2.75rem);--type-subsection:clamp(1.25rem,1.05rem + .65vw,1.65rem);--type-footer:clamp(1.75rem,1.25rem + 1.6vw,2.75rem)}
body main :is(.sub-copy,.garden-intro,.house-section,.sub-faq,.sub-ending,.contact-heading,.contact-faq,.contact-onsite,.apt-intro,.apt-style,.apt-catalog,.apt-location,.sf-section,.section-intro,.faq-intro,.arrival-copy,.discover-column,.reviews-section) h2,
body main #events-heading,body main .expect-header h2{font-size:var(--type-section);line-height:1.2;letter-spacing:-.02em;overflow-wrap:break-word}
body main :is(.sf-activity-group,.sf-tour-list,.sf-benefit-card,.contact-option,.contact-travel,.reception-card,.house-gallery,.garden-notes,.renovation-guide,.modernization-guide,.faq-answers,.stay-facts) h3{font-size:var(--type-subsection);line-height:1.3;overflow-wrap:break-word}
body main .sf-activity-heading{font-size:clamp(1.125rem,1.05rem + .25vw,1.3rem);line-height:1.35}
body .footer-invitation h2{font-size:var(--type-footer);line-height:1.2;letter-spacing:-.02em;overflow-wrap:break-word}
body .footer-details h3{font-size:clamp(1.125rem,1rem + .4vw,1.375rem);line-height:1.35}
body .footer-details{min-width:0}
body .footer-details>*{min-width:0;overflow-wrap:break-word}
.apartment-block-title{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;font-weight:700}
/* Keep the hero aligned with the menu, while prose retains its reading width. */
@media(min-width:1000px){
 body .sub-hero{--sub-hero-inset:calc(max(2vw,(100vw - 1510px)/2) + 26px);padding-inline:var(--sub-hero-inset)}
 body.appartements-page .apt-hero-info{right:var(--sub-hero-inset)}
}
/* Body text and form controls remain comfortable on narrow screens. */
@media(max-width:800px){
 body main :is(.sf-activity-body,.contact-option,.contact-travel,.reception-card,.location-details,.modernization-guide,.welcome-prose,.sub-copy,.garden-intro) p:not(.photo-credit):not(.section-kicker){font-size:1rem;line-height:1.7}
 body .apt-filters select,body .search-edit-fields input,body .search-edit-fields select,body #direct-room-search{font-size:1rem}
 body .field-label,body .field label,body .guest-room label{font-size:.875rem}
 body main .type-features{font-size:.875rem;line-height:1.6}
 body main .contact-option>a{font-size:1rem}
}

/* Keep decorative waves within the section and supporting copy readable. */
body.wellness-page .well-page-section>.tour-wave{right:0}
body .arrival-map-note,body .sf-map-help,body .apt-hero-example,body .location-house-note{font-size:.875rem}
