/* A shared paper background, black chapter rules and generous reading sizes. */
:root{--reading-size:clamp(19px,1.55vw,23px);--sky:#c8e3f0;--heading-blue:#194e78;--muted:#425955}
body{font-size:var(--reading-size)}
body :is(main,.footer) p:not(.eyebrow):not(.event-discipline):not(.event-coach):not(.event-centre):not(.hero-coaching):not(.date-price):not(.signature){font-size:var(--reading-size);line-height:1.7}
body main p.lead{font-size:clamp(23px,1.9vw,28px);line-height:1.55}
body main .eyebrow,.footer .eyebrow{font-size:14px;line-height:1.6;letter-spacing:1.6px}
.home .section-marker .section-note{font-size:22px;color:var(--muted)}
.home .events>.section-heading>p{max-width:24ch}
.home .events>.section-heading .eyebrow{font-size:clamp(22px,2.6vw,38px);line-height:1.2;letter-spacing:-.025em;margin-bottom:25px}
.home .events>.section-heading h2{font-size:clamp(34px,4.1vw,62px)}
.home .section,.home .partners,body main>.section{background:var(--paper);color:var(--ink)}
.home .section-marker{border-top:3px solid #000}
body:not(.home) main>.section{border-top:3px solid #000}
.home .story-section .section-marker .section-note,.story-section .story-copy>.eyebrow,
.story-section .story-copy>p:not(.eyebrow):not(.signature){color:var(--ink)}
.story-section .story-copy h2 em{color:var(--heading-blue)}
.home .event,.event-description>summary{background:var(--paper)}
.home .event{border-color:var(--ink);box-shadow:none}
.event-description>summary strong{font-size:clamp(24px,2.2vw,32px)}
.event-description .disclosure-hint{font-size:14px;line-height:1.6}
.event-story h4{font-size:32px}
.button,.event-action .button,.text-link,.small-button,.partner-motion{font-size:16px}
.button{min-height:56px}
.camp-date-card .button{gap:14px}
.camp-date-links a strong{font-size:18px}
.camp-date-links a span{font-size:13px}
.home .hero-bottom{background:var(--paper);color:var(--ink);border-bottom:3px solid #000;flex-wrap:wrap;gap:28px}
.hero-scroll{font-size:13px}
.team-card h3{font-size:34px}
.team-card>.eyebrow{min-height:0}
.section-side{font-size:13px;max-width:210px}
.location-link>span{font-size:14px}
.text-link,.gallery-controls [data-play],.gallery-controls [data-count]{font-size:15px}
.family-album figcaption,.surfhouse-images figcaption,.gallery figure figcaption{font-size:15px;line-height:1.5}
.partner-card{height:auto;min-height:470px}
.partner-card.partnership-logo{background:var(--paper)}
.partner-card.partnership-invite h2{font-size:clamp(30px,3vw,44px)}
.partner-card.partnership-invite>.eyebrow{font-size:13px}
.contact-bar{background:var(--paper);color:var(--ink);border-bottom:1px solid var(--ink);font-size:14px}
.contact-bar>span{font-size:12px}
.site-header nav{font-size:15px}
.header-cta{font-size:14px}
.dropdown{min-width:370px}
.dropdown-camp strong,.dropdown .dropdown-all{font-size:15px}
.dropdown-camp small,.dropdown-destination small{font-size:13px}
.breadcrumb{font-size:14px}
.detail-box{background:var(--paper);border:1px solid var(--ink)}
.detail-box dl>div{grid-template-columns:100px minmax(0,1fr);font-size:var(--reading-size)}
.detail-box dt{font-size:14px}
.included-list li{font-size:var(--reading-size)}
.technique-list h3,.method-grid h3,.schedule-row h3{font-size:28px;line-height:1.2}
.technique-list article{gap:20px}
.item-number{font-size:16px}
.method-section>.eyebrow,.method-grid h3,.method-grid p{color:var(--ink)}
.method-grid article{border-color:#000}
.schedule-board{background:transparent;color:var(--ink);padding:0;border:0;box-shadow:none;overflow:visible}
.schedule-board:before,.schedule-board:after,.chalk-wave{display:none}
.schedule-board>.eyebrow,.schedule-time,.schedule-row p,.schedule-note,.schedule-row:last-child h3{color:var(--ink)}
.schedule-time{font-family:var(--display);font-style:normal;font-size:23px;font-weight:700;line-height:1.5;letter-spacing:-.03em}
.schedule-row{grid-template-columns:240px minmax(0,1fr);border-color:#000;gap:40px;padding:30px 0}
.schedule-row:last-child{border-color:#000}
.schedule-note{padding-right:0}
body main>.join-section{background:var(--sky)}
.shared-join>div:first-child{max-width:900px}
.join-section p a{text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
.join-section .contact-details{font-size:var(--reading-size)!important}
.camp-date-card{border-color:var(--ink);padding:32px}
#join .camp-date-card .date-price{font-size:44px;line-height:1.2}
.date-price span{font-size:18px}
.camp-price-summary strong span,.camp-price-summary small{font-size:15px;line-height:1.5}
body main .camp-price-summary>p{font-size:16px}
.camp-schedule .calendar-label{font-size:12px;letter-spacing:1px}
.camp-schedule .calendar-dates span{font-size:12px}
.camp-schedule .calendar-foot{font-size:11px;letter-spacing:.4px}
.event-visual>.camp-schedule{position:static;width:auto;grid-template-columns:repeat(2,minmax(0,1fr)) minmax(0,1.15fr);padding:24px;margin:0;background:var(--paper);align-items:stretch}
.event-visual .camp-price-summary{grid-column:auto;display:flex;flex-direction:column;justify-content:center;margin:0}
.event-visual .calendar{height:100%;display:flex;flex-direction:column;justify-content:space-between}
.event-photo .event-overlay{max-width:92%;top:auto;bottom:6%;left:4%}
.event-photo .event-overlay h3{font-size:clamp(38px,5.2vw,80px);line-height:1.02;margin-bottom:18px}
.event-photo .event-overlay .eyebrow{font-size:clamp(12px,1.1vw,16px)}
.event-discipline{font-size:clamp(17px,2vw,28px)}
.event-coach{font-size:clamp(17px,1.65vw,24px)}
.event-centre{font-size:clamp(15px,1.4vw,20px)}
.location-spot .spot-tags{font-size:17px!important}
.faq-question{font-size:clamp(21px,2vw,29px)}
.faq-number,.next-links small{font-size:15px}
.footer{background:var(--paper);color:var(--ink);border-top:3px solid #000}
.footer .eyebrow,.footer-contact p{color:var(--ink)}
.footer h2 em{color:var(--heading-blue)}
.footer-contact>a{font-size:clamp(16px,1.6vw,23px);overflow-wrap:anywhere}
.footer-bottom,.wordmark,.legal-links{font-size:15px}
.footer-bottom,.legal-links{border-color:var(--ink)}
.legal-document{max-width:1100px}
@media(min-width:761px) and (max-width:1100px){
 .site-header nav{font-size:13px;gap:12px}.header-cta{display:none}
 .camp-head{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:5%}
 .camp-head h1{font-size:6.2vw}
 .method-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}
 .camp-date-grid{grid-template-columns:1fr}
 .camp-company,.camp-intro{gap:5%;grid-template-columns:repeat(2,minmax(0,1fr))}
 .team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .contact-bar>span{display:none}.contact-bar>div{width:100%;justify-content:space-between}
}
@media(max-width:760px){
 .contact-bar>div{flex-wrap:wrap;justify-content:center;gap:5px 18px;width:100%}
 .contact-bar{font-size:12px;padding:10px 14px}
 .site-header nav{font-size:18px}.dropdown{min-width:0}
 .home .hero-content{background:var(--paper);color:var(--ink)}
 .home .hero .eyebrow,.home .hero .hero-coaching{color:var(--ink)}
 .home .hero h1 em{color:var(--heading-blue)}
 .home .hero .hero-coaching{font-size:23px}
 .home .hero .eyebrow{font-size:12px}
 .home .events>.section-heading .eyebrow{font-size:25px}
 .home .section-marker .section-note{font-size:18px}
 .home .events>.section-heading h2{font-size:clamp(30px,7.8vw,52px)}
 .event-photo .event-overlay{position:static;max-width:none;padding:25px 22px;background:var(--paper);color:var(--ink);text-shadow:none}
 .event-photo .event-overlay h3{font-size:clamp(30px,8.2vw,52px);margin-bottom:20px}
 .event-photo .event-overlay .eyebrow{font-size:13px;margin-bottom:15px}
 .event-photo .event-overlay p{margin-bottom:8px;line-height:1.4}
 .event-discipline{font-size:20px}.event-coach{font-size:20px}.event-centre{font-size:17px}
 .event-visual>.camp-schedule{grid-template-columns:repeat(2,minmax(0,1fr));padding:20px;gap:12px}
 .event-visual .camp-price-summary{grid-column:1/-1}
 .camp-schedule .calendar-label{font-size:10px}.camp-schedule .calendar-dates span{font-size:10px}.camp-schedule .calendar-foot{font-size:9px}
 .event-action{padding:25px 22px}
 .event-description>summary strong{font-size:24px}
 .event-description .disclosure-hint{font-size:13px}
 .event-description>summary{padding:25px 22px}
 .event-story h4{font-size:29px}
 .detail-box{padding:25px 20px}
 .detail-box dl>div{grid-template-columns:1fr;gap:5px}
 .camp-head-side .lead{font-size:24px}
 .method-grid{grid-template-columns:1fr;gap:30px}
 .schedule-row{grid-template-columns:1fr;gap:12px;padding:26px 0}
 .schedule-board h2{font-size:clamp(32px,8.5vw,48px)}
 .camp-date-card{padding:25px 20px}
 .join-section .button{font-size:16px;padding:14px;gap:10px}
 .camp-date-card .button svg{width:18px}
 .partner-card{min-height:540px;padding:24px}
 .partner-card.partnership-invite h2{font-size:30px}
 .footer-contact>a{font-size:16px;gap:9px}
 .footer-bottom{flex-wrap:wrap}
 .location-link>span{font-size:14px}
 .location-spot h2,.location-life h2{font-size:40px}
}

/* Blue heading accents and stronger supporting titles. */
h1 em,h2 em,h3 em,h4 em,.hero h1 em{color:var(--heading-blue)}
#events .camp-price-summary>p{font-size:16px}
.home .section-marker .section-note{max-width:100%;overflow-wrap:anywhere}
.home .content-section>div>.eyebrow,.footer .eyebrow{font-size:clamp(18px,1.7vw,24px);line-height:1.5}
@media(min-width:761px){
 .event-visual>.camp-schedule{position:absolute;top:24px;right:24px;width:210px;grid-template-columns:1fr;padding:0;gap:12px;background:transparent}
 .event-visual .camp-price-summary{grid-column:1;padding:15px 12px}
 .event-visual .camp-price-summary>strong{font-size:34px}
 .event-visual .calendar-dates{padding:14px 8px}
 .event-visual .calendar-dates strong{font-size:38px}
 .event-photo .event-overlay{max-width:calc(100% - 285px)}
 .event-photo .event-overlay h3{font-size:clamp(32px,4.3vw,68px)}
}
@media(min-width:761px) and (max-width:1100px){
 .event-visual>.camp-schedule{top:16px;right:16px;width:150px;gap:8px}
 .event-visual .calendar-label{font-size:9px;padding:6px 4px}
 .event-visual .calendar-dates{padding:8px 5px}
 .event-visual .calendar-dates strong{font-size:27px}
 .event-visual .calendar-dates span{font-size:9px;margin-top:4px}
 .event-visual .calendar-foot{font-size:8px;padding:6px 3px}
 .event-visual .camp-price-summary{padding:9px}
 #events .camp-price-summary>p{font-size:14px;margin-bottom:4px}
 .event-visual .camp-price-summary>strong{font-size:27px}
 .event-visual .camp-price-summary strong span,.event-visual .camp-price-summary small{font-size:12px}
 .event-photo .event-overlay{max-width:calc(100% - 210px)}
 .event-photo .event-overlay h3{font-size:clamp(30px,3.9vw,43px)}
}
