/* Shared responsive safeguards, loaded after the visual theme. */
main img{display:block;max-width:100%;height:auto}
.story img,.hero-visual img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
.story figure,.story>div,.hero-copy,.hero-visual,.membership-grid>div,.gather>div,.flock-grid>div,.faq-list{min-width:0}
.mobile-nav-toggle,.mobile-navigation{display:none}
.mobile-navigation[hidden]{display:none!important}
.desktop-nav a{display:inline-flex;align-items:center;min-height:44px}
header a[aria-current="page"].button{color:var(--cream)}
.visit a,.faq-aside a{overflow-wrap:anywhere}
.faq-list summary{min-height:48px;align-items:center}
.faq-list summary:after{flex-shrink:0}
@media(max-width:760px){
 header,.booking-screen header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 12px;padding:8px 5%;position:relative}
 header .logo{grid-column:1;grid-row:1;width:min(180px,100%);height:auto;min-width:0}
 .desktop-nav{display:none}
 .mobile-nav-toggle{grid-column:2;grid-row:1;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:10px 16px;border:1px solid var(--line);border-radius:100px;background:transparent;color:var(--teal);font:600 16px/1.4 'DM Sans',sans-serif;cursor:pointer}
 .mobile-nav-toggle[aria-expanded="true"] span{transform:rotate(45deg)}
 .mobile-navigation{grid-column:1/-1;grid-row:2;display:grid;gap:4px;width:100%;padding:12px 0 8px;justify-content:stretch;font-size:16px;border-top:1px solid var(--line)}
 .mobile-navigation a{display:flex;align-items:center;min-height:48px;padding:12px 15px;text-decoration:none;border-radius:12px}
 .mobile-navigation a[aria-current="page"]{background:#f7f6e8;color:var(--red)}
 .mobile-navigation a.button{font-size:16px;color:var(--cream);background:var(--red)}
 .page-intro h1{font-size:clamp(36px,10vw,58px);letter-spacing:-1.2px;overflow-wrap:break-word}
 .story h2,.welcome h2,.gather h2,.memberships h2{font-size:clamp(32px,9vw,46px);letter-spacing:-.8px;overflow-wrap:break-word}
 .story{gap:24px}.story figure{width:100%;margin:0}.story img{height:auto;border-radius:20px}
 .story p,.welcome p,.gather p{font-size:16px;line-height:1.65}
 .page-cta{padding:24px;gap:20px}.page-cta h2{font-size:30px}
 .page-cta .button,.actions .button{max-width:100%;min-height:48px;text-align:center}
 .text-link{display:inline-flex;align-items:center;min-height:44px;max-width:100%}
 .word-ribbon{gap:clamp(8px,3vw,17px);font-size:clamp(14px,4vw,17px)}
 .word-ribbon span{white-space:nowrap}
 .booking-tabs{justify-content:stretch}.booking-tabs a{min-height:48px}
 .signup{grid-template-columns:1fr}.signup>div{grid-column:1/-1}
 .signup input{min-height:48px;font-size:16px}
 .visit a{max-width:100%;font-size:14px;overflow-wrap:anywhere}
 .test-strip{font-size:11px;line-height:1.5}
 footer{gap:8px;line-height:1.5}
}
@media(hover:none){.button:hover{transform:none}}

/* Party contact sits beside the booking choices, without another page. */
.booking-tabs{flex-wrap:wrap}
.booking-tabs .party-inquiry-toggle{display:flex;align-items:center;justify-content:center;min-height:48px;padding:11px 24px;border:1px solid var(--line);border-radius:100px;background:#f7f6e8;color:var(--teal);font:600 15px 'DM Sans',sans-serif;cursor:pointer}
.booking-tabs .party-inquiry-toggle:hover,.booking-tabs .party-inquiry-toggle[aria-expanded="true"]{border-color:var(--teal);background:var(--cream)}
.party-contact[hidden]{display:none}
.party-contact{padding-bottom:24px}
.party-contact-card{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--cream)}
.party-contact-card h2{font-size:28px;margin:0 0 8px}
.party-contact-card p{margin:0;max-width:48ch}
.party-contact-card .button{flex-shrink:0}
@media(max-width:760px){.booking-tabs .party-inquiry-toggle{flex:1 1 100%;padding:10px 14px}.party-contact-card{align-items:flex-start;flex-direction:column;gap:18px}.party-contact-card .button{width:100%;text-align:center}}
