/* Shared scales by purpose: page, section, card and utility heading. */
:root{--type-body:1rem;--type-secondary:.875rem;--type-page:clamp(2.5rem,5vw,4rem);--type-section:clamp(2rem,3.2vw,2.75rem);--type-subheading:1.625rem;--content-width:1200px;--page-gutter:max(6vw,calc((100vw - var(--content-width))/2));}
body{font-size:var(--type-body);line-height:1.65}
main p,main li,.intro p,.session-intro p{font-size:var(--type-body)!important;line-height:1.65!important}
main:not(.home-main) h1,.layout h1{font-size:var(--type-page)!important;line-height:1.12}
main h2,.layout h2{font-size:var(--type-section)!important;line-height:1.15!important}
main h3,.layout h3{font-size:var(--type-subheading)!important;line-height:1.25!important}
main summary,.note strong,.button,.mobile-book,.booking-enquiry button,main label,main select,main textarea{font-size:var(--type-body)!important;line-height:1.5}
main .footnote,main .booking-note,main .calendar-legend,main .status,.bookmark,.hub-footer,.hub-footer>span,.text-link,.card-action,.follow-link{font-size:var(--type-secondary)!important;line-height:1.6!important}
.eyebrow,.mini-label{font-size:12px;line-height:1.5;letter-spacing:.1em}
/* Secondary functions do not need the scale of a major guide section. */
.privacy-main h2,.booking-enquiry h2,.session-step h2,.guest-city-panel h2,.contact-section h2,.gallery-cta h2,.guest-cta h2{font-size:2rem!important}
.hub-main,.gallery-main,.session-main{max-width:none;margin:0;padding:56px var(--page-gutter) 64px}
.hub-main>h1,.gallery-main>h1{margin:16px 0 24px;max-width:22ch}
.hub-main>.lead,.gallery-main>.lead{max-width:65ch}
.privacy-main>section,.faq-page>details{max-width:760px}
.session-intro{text-align:left;max-width:none;margin:0 0 56px}
.session-intro h1{max-width:22ch;margin:16px 0 24px}
.session-intro p{margin:0;max-width:65ch}
.session-intro .eyebrow{display:block}
.session-star{margin:20px 0 12px}
.layout{max-width:none;margin:0;padding:56px var(--page-gutter) 0;grid-template-columns:minmax(240px,320px) minmax(0,1fr);column-gap:64px}
/* Equal outer edges; reading columns may remain narrower. */
.home-sections>section{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
.home-sections>.dates-home{padding:56px var(--page-gutter)!important;align-items:flex-start;text-align:left;gap:24px}
.dates-home-copy{max-width:none;width:100%}
.dates-home h2{max-width:none;width:100%;margin:0 0 24px;text-align:left}
.upcoming-dates{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:0;width:100%}
.date-chip{min-width:0;min-height:80px;justify-content:center;text-align:center;padding:12px}
.dates-home>.button{margin:0;align-self:flex-start}
/* A compact navigation group, not three large section titles. */
.home-page .guides-home .section-top{justify-content:flex-start}
.home-page .guide-pair{margin-top:24px;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.home-page .guide-pair>a{justify-content:space-between;text-align:left;min-height:76px;padding:18px 20px;gap:16px;margin:0}
.home-page .guide-pair>a:first-child{padding-left:0}
.home-page .guide-pair h3{font-size:1.5rem!important;line-height:1.3!important;margin:0}
.guide-link-arrow{width:18px;height:18px;flex:0 0 18px;stroke:currentColor;fill:none;stroke-width:1.5}
.button,.mobile-book{min-height:48px;padding:12px 22px;border-radius:2px;gap:16px}
.button:not(.secondary),.mobile-book{background:var(--accent-deep);color:var(--paper)}
.guest-cta .button,.final-booking .button{background:var(--paper);color:var(--accent-deep)}
.mobile-book.is-suppressed{display:none!important}
body>.hub-footer{margin:0;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:28px var(--page-gutter);background:var(--accent-deep);color:var(--paper)}
.hub-footer>span,.hub-footer a{white-space:normal}
.hub-footer .footer-links{display:flex;flex-wrap:wrap;gap:20px}
.guide-resources{padding-bottom:40px}
@media(max-width:850px){.layout{display:block}.session-layout{gap:0}.session-intro{margin-bottom:40px}}
@media(max-width:700px){
 :root{--type-section:2rem;--type-subheading:1.5rem;--page-gutter:6vw}
 .hub-main,.gallery-main,.session-main{padding:32px var(--page-gutter) 48px}
 .layout{padding:32px var(--page-gutter) 0}
 .hub-main>h1,.gallery-main>h1,.session-intro h1{margin:14px 0 20px}
 .privacy-main h2,.booking-enquiry h2,.session-step h2,.guest-city-panel h2,.contact-section h2,.gallery-cta h2,.guest-cta h2{font-size:1.75rem!important}
 .home-sections>.dates-home{padding:40px var(--page-gutter)!important;gap:24px}
 .dates-home h2{font-size:2.125rem!important;margin:0 0 24px}
 .upcoming-dates{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .dates-home>.button{width:100%;margin-top:24px;justify-content:center}
 .home-sections>.guides-home{padding-top:40px;padding-bottom:48px}
 .home-page .guide-pair{grid-template-columns:1fr;margin-top:20px}
 .home-page .guide-pair>a,.home-page .guide-pair>a:first-child{min-height:64px;padding:16px 0}
 .home-page .guide-pair h3{font-size:1.375rem!important}
 .home-page .guide-pair>a+a{border-left:0;border-top:1px solid var(--line)}
 body>.hub-footer{padding:28px var(--page-gutter);gap:16px}
}
