/* Festival editorial type audit and schedule interaction clean-up (2027).
   The festival keeps its own black/pastel identity; this does not use the Foundation style theme. */
@import url('https://fonts.googleapis.com/css2?family=Barlow+Semi+Condensed:wght@500;600;700;800&display=swap');
:root{
 --display:'Mark','FF Mark Pro','Barlow Semi Condensed','Arial Narrow',Arial,sans-serif;
 --body:'Mark','FF Mark Pro','Montserrat',Arial,Helvetica,sans-serif;
 --festival-h1:clamp(39px,4.35vw,58px);
 --festival-h2:clamp(31px,3.10vw,42px);
 --festival-feature:clamp(24px,2.15vw,30px);
 --festival-pillar:clamp(34px,3.55vw,48px);
 --type-h1:var(--festival-h1);
 --type-h2:var(--festival-h2);
 --type-h3:var(--festival-feature);
 --festival-page-title:var(--festival-h1);
 --festival-section-title:var(--festival-h2);
 --festival-feature-title:var(--festival-feature);
 --section-space:clamp(52px,5.4vw,78px);
}
body{font-size:15px;line-height:1.68}
/* One type scale for the whole festival. Width/stacking, never page-specific shrink. */
.h1,.interior-hero h1,.hero h1{
 font-family:var(--display);font-size:var(--festival-h1);font-weight:700;line-height:1.06;
 letter-spacing:-.022em;max-width:100%;
}
.h2,.section .h2,.daily-intro .h2,.closing-title,.canva-section-title,
.festival-story-heading,.festival-experience-heading,.festival-future-title{
 font-family:var(--display);font-size:var(--festival-h2);font-weight:700;line-height:1.10;
 letter-spacing:-.019em;max-width:100%;text-wrap:balance;
}
.h3,.opportunity-row h3,.opportunity-mini h3,.partner-group h3,
.sport-entry h3,.lineup-card h3{
 font-family:var(--display);font-size:var(--festival-feature);font-weight:700;
 letter-spacing:-.02em;line-height:1.1;
}
.canva-pillar h3,.canva-pillar .canva-pillar-wordmark{
 font-family:var(--display);font-size:var(--festival-pillar);font-weight:700;
 letter-spacing:-.024em;white-space:nowrap;line-height:1.05;
}
.eyebrow,.eyebrow--cyan,.eyebrow--pink,.sport-eyebrow,
.festival-story-kicker{font-size:11px;letter-spacing:.11em;line-height:1.48;font-weight:700}
.lead,.section-head .intro-copy p,.interior-hero .hero-sub,.daily-intro p:not(.eyebrow){
 font-size:15px;line-height:1.7;font-weight:400;
}
.festival-impact-metric strong{font-size:clamp(36px,4vw,54px)}
.festival-story-heading .meaning-line,.festival-future-title .meaning-line{line-height:1.08}
/* Restore white-space without empty filler areas and normalize interior section rhythm. */
.section{padding-block:var(--section-space)}
.section-head{column-gap:clamp(30px,5vw,80px)}
.section-head>.intro-copy{padding-top:18px}
.canva-hero-caption{font-size:clamp(22px,2.1vw,29px);line-height:1.18}
.canva-section-intro .canva-section-title{max-width:890px}
.festival-utility-section .h2{font-size:clamp(28px,2.7vw,36px)}
/* Day guide: one clear overview, directly usable, no competing giant headline. */
.festival-lineup-page .interior-hero .container{min-height:300px;padding-top:58px;padding-bottom:75px}
.festival-lineup-page .interior-hero .hero-sub{max-width:640px;margin-top:16px}
.festival-lineup-page .interior-hero .date-note{font-size:11px;margin-top:16px}
.festival-sample-hero-title{max-width:880px!important;font-size:clamp(40px,4.45vw,60px)!important;line-height:1.1!important}
.festival-sample-hero-title .line{display:block}
.festival-lineup-quicklinks{display:flex;flex-wrap:wrap;gap:24px;margin-top:24px}
.festival-lineup-quicklinks a{display:inline-flex;align-items:center;gap:8px;font:700 12px/1.4 var(--body);color:var(--lime);border-bottom:1px solid rgba(216,251,170,.65);padding-bottom:5px}
.festival-lineup-quicklinks a:hover{color:var(--sun);border-color:var(--sun)}
.festival-lineup-page .festival-signature-band--interior{height:clamp(118px,10vw,155px)}
.festival-lineup-page .event-warning .container{padding-block:13px}
.festival-lineup-page .event-warning .container>strong{font-size:10px;letter-spacing:.08em}
.festival-lineup-page .event-warning p{font-size:12px;line-height:1.5}
.festival-daily-section{padding-top:clamp(43px,4vw,65px);padding-bottom:clamp(50px,5vw,80px)}
.daily-intro{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:end;gap:clamp(22px,4vw,64px);margin-bottom:21px}
.daily-intro .h2{font-size:var(--festival-h2);margin:0}
.daily-intro p:not(.eyebrow){font-size:15px;line-height:1.65}
.daily-days{gap:10px;margin:21px 0 17px}
.daily-day{min-height:112px;gap:6px;padding:16px 18px 17px;border-top-width:3px;border-radius:2px}
.daily-day>span{font:700 10px/1.4 var(--body);letter-spacing:.07em}
.daily-day strong{font:700 clamp(23px,2.5vw,32px)/1.08 var(--display);letter-spacing:-.015em}
.daily-day small{font-size:12px;line-height:1.4}
.daily-day i{top:14px;right:16px;font-size:17px}
.daily-tools{margin:16px 0;padding:12px 0 16px}
.daily-tools__status{font-size:10px;letter-spacing:.09em}
.daily-tools__label p{font-size:12px;margin-top:2px}
.daily-tracks button{min-height:39px;padding:8px 15px;font:700 12px/1.4 var(--body);letter-spacing:.04em;border-radius:2px}
.daily-board{border-radius:2px}
.daily-board__heading{align-items:center;padding:18px 22px 14px}
.daily-board__eyebrow{font-size:10px;letter-spacing:.08em}
.daily-board__heading h3{font:700 clamp(26px,2.5vw,34px)/1.12 var(--display);letter-spacing:-.02em}
.daily-board__count{font:600 11px/1.4 var(--body)!important;letter-spacing:.02em}
.daily-board__legend{padding-top:11px;padding-bottom:11px}
.daily-slot{padding-top:11px;padding-bottom:12px}
.daily-slot__activity strong{font:600 14px/1.35 var(--body);text-transform:none;letter-spacing:0}
.daily-slot__host{font-size:12px}
.daily-slot__time{font:700 14px/1.4 var(--display)}
.daily-to-sports{padding-block:14px}
.daily-to-sports>p{font-size:14px}
/* Sport-first path: slimmer jump options, one subdued detail heading, accessible controls. */
#sports-jump{padding-top:clamp(48px,5vw,76px);padding-bottom:clamp(44px,4.4vw,70px)}
#sports-jump .lead{font-size:15px;line-height:1.68;margin-top:13px!important;max-width:700px}
#sports-jump .schedule-jump{margin-top:24px;gap:8px;grid-template-columns:repeat(5,minmax(0,1fr))}
#sports-jump .schedule-jump a{min-height:48px;padding:11px 12px;font-size:12px;font-weight:600;border-radius:2px}
#sports-jump .schedule-jump a span{font-size:14px}
#sample-activities{padding-top:clamp(45px,4.5vw,70px)}
.festival-activity-detail-intro{display:flex;align-items:end;justify-content:space-between;gap:28px;flex-wrap:wrap;margin-bottom:21px}
.festival-activity-detail-intro .eyebrow{margin:0;color:var(--lime)}
.festival-activity-detail-lead{max-width:470px;font-size:13px;line-height:1.5;margin:0;color:var(--muted)}
#sample-activities .filter-bar{margin-top:0;padding-top:6px;margin-bottom:15px;padding-bottom:16px}
#sample-activities .filter-tab{font-weight:600;font-size:11px;border-radius:2px}
.lineup-controls{margin-bottom:12px}
.lineup-arrow{height:44px;width:44px;font-size:21px}
.lineup-card{min-height:320px;padding:clamp(25px,3.2vw,44px);gap:clamp(24px,3.2vw,50px);border-top-width:3px;border-radius:2px}
.lineup-card h3{font-size:clamp(31px,3vw,43px);font-weight:700;line-height:1.1;letter-spacing:-.018em}
.lineup-card .sport-place{font-size:13px;line-height:1.58}
.lineup-card .sample-day{font-size:16px}
.lineup-card .sample-session li{font-size:14px}
.lineup-card .sport-card-event-list li{padding-top:9px;padding-bottom:10px}
/* Presentation: celebrate the festival brand through photos and ribbon, not massive lettering everywhere. */
@media(max-width:1100px){
 .daily-intro{grid-template-columns:1fr;gap:11px;align-items:start}
 .daily-intro p:not(.eyebrow){max-width:780px}
 #sports-jump .schedule-jump{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:720px){
 :root{--festival-h1:clamp(38px,8vw,49px);--festival-h2:clamp(29px,7vw,37px);--festival-pillar:clamp(32px,8.1vw,40px);--festival-feature:clamp(24px,6vw,29px)}
 .festival-lineup-page .interior-hero .container{min-height:270px;padding-block:48px 64px}
 .festival-sample-hero-title{font-size:var(--festival-h1)!important}
 .festival-lineup-page .festival-signature-band--interior{height:118px}
 .daily-days{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 .daily-day{min-height:100px;padding:12px 10px;gap:5px}
 .daily-day strong{font-size:clamp(19px,4.8vw,28px)}
 .daily-day>span{font-size:8px;letter-spacing:.015em;line-height:1.35}
 .daily-day small{font-size:10px}
 .daily-day i{right:7px;top:7px;font-size:12px}
 .daily-board__heading{padding:16px 15px 13px}
 .daily-board__heading h3{font-size:27px}
 .daily-board__count{font-size:10px!important}
 .daily-slot{padding-block:11px}
 .daily-slot__activity strong{font-size:13px}
 .daily-slot__time{font-size:13px}
 .daily-tools{gap:10px}
 #sports-jump .schedule-jump{grid-template-columns:repeat(2,minmax(0,1fr))}
 #sports-jump .schedule-jump a{min-height:50px;padding:9px 10px;font-size:11px}
 .lineup-card{padding:22px 18px;gap:21px}
 .lineup-card h3{font-size:clamp(30px,8vw,36px)}
 .festival-activity-detail-intro{display:block;margin-bottom:17px}
 .festival-activity-detail-lead{margin-top:9px;font-size:12px}
 .festival-utility-section .h2{font-size:30px}
}
@media(max-width:375px){
 :root{--festival-h1:37px;--festival-h2:29px;--festival-pillar:32px}
 .daily-day>span{font-size:7px}
 .daily-day strong{font-size:18px}
 .daily-day small{font-size:9px}
 .festival-lineup-quicklinks{gap:16px}
}
@media(prefers-reduced-motion:reduce){.festival-lineup-quicklinks a{transition:none}}
/* Quiet interface refinements: the content, not the controls, is the focal point. */
#sample-activities .schedule-search{width:260px!important;max-width:300px;flex:0 1 260px;margin-left:auto}
#sample-activities .filter-bar{gap:9px;align-items:center}
#sample-activities .filter-tab{min-height:37px}
.section-close.rule-note p{font-family:var(--display);font-size:clamp(20px,2.05vw,27px);font-weight:600;line-height:1.3}
@media(max-width:720px){
 .daily-day>span,.daily-day i{display:none}
 .daily-day{min-height:82px;justify-content:center;gap:7px;padding:13px 10px}
 .daily-day strong{font-size:clamp(16px,4.9vw,20px);letter-spacing:-.01em}
 .daily-day small{font-size:10.5px;line-height:1.3}
 #sample-activities .schedule-search{width:100%!important;max-width:100%;flex:1 1 100%;margin-left:0}
}
/* At phone widths, abbreviations make day selection genuinely tappable and legible. */
@media(max-width:440px){
 .daily-day strong{font-size:0!important;line-height:1}
 .daily-day strong::before{display:block;font:700 22px/1.05 var(--display);letter-spacing:-.02em}
 .daily-day[data-select-day="friday"] strong::before{content:"FRI"}
 .daily-day[data-select-day="saturday"] strong::before{content:"SAT"}
 .daily-day[data-select-day="sunday"] strong::before{content:"SUN"}
 .daily-day small{font-size:10.5px}
}

/* OCT 2026 / Partner, FAQ and spacing pass.
   Official YSW Fest styling retained. */
.site-header .header-inner{
  min-height:102px;padding-block:15px;gap:clamp(13px,2.2vw,30px);
}
.site-header .brand{width:clamp(157px,13.55vw,191px);flex:0 0 auto}
.site-header .brand img{display:block;width:100%;height:auto}
.site-header .desktop-nav{gap:clamp(10px,1.26vw,18px)}
.site-header .desktop-nav a{font-size:10px;letter-spacing:.055em}
.site-header .header-foundation{font-size:10px;letter-spacing:.04em}
/* Hide the main nav before its seven labels squeeze the header. */
@media(max-width:1190px){
 .site-header .desktop-nav{display:none}
 .site-header .menu-button{display:flex}
 .site-header .header-foundation{display:none}
}
@media(max-width:650px){
 .site-header .header-inner{min-height:80px;padding-block:12px}
 .site-header .brand{width:min(39vw,155px)}
}
@media(max-width:350px){
 .site-header .brand{width:min(37vw,126px)}
 .site-header .header-right .btn{font-size:10px;padding-inline:10px}
}
/* The lineup ribbon should be its divider; no extra narrow rule or duplicate notice below it. */
.festival-lineup-page .interior-hero::before{display:none}
.festival-lineup-page .interior-hero{border-bottom:0}
.festival-lineup-page .festival-signature-band--interior{border:0}
.festival-faq-note{font:400 14px/1.55 var(--body);color:#d7d3da;margin-top:20px}
.festival-faq-note a{color:var(--mint);text-underline-offset:4px;text-decoration:underline}
/* Dedicated festival FAQ — legible editorial accordions, not another sport-card grid. */
.festival-faq-hero .container{min-height:345px}
.festival-faq-intro{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:end;gap:clamp(24px,5vw,75px);margin-bottom:45px}
.festival-faq-intro>p{font:400 15px/1.72 var(--body);max-width:530px;color:#d5d1d8}
.festival-faq-grid{display:grid;grid-template-columns:minmax(185px,.26fr) minmax(0,.74fr);gap:clamp(36px,7vw,98px);align-items:start}
.festival-faq-toc{position:sticky;top:134px;border-top:2px solid var(--lime);padding-top:17px}
.festival-faq-toc>p{font:700 11px/1.4 var(--body);letter-spacing:.09em;text-transform:uppercase;color:var(--lime);margin-bottom:12px}
.festival-faq-toc a{display:flex;justify-content:space-between;gap:12px;color:#fff;font:600 13px/1.45 var(--body);padding:10px 0;border-bottom:1px solid rgba(255,255,255,.16)}
.festival-faq-toc a span{color:var(--mint)}
.festival-faq-group{scroll-margin-top:135px}
.festival-faq-group+.festival-faq-group{margin-top:51px}
.festival-faq-group h3{font:700 19px/1.25 var(--display);letter-spacing:-.014em;text-transform:uppercase;color:var(--lime);margin-bottom:14px}
.festival-faq-body .faq-item summary{font:700 clamp(17px,1.8vw,21px)/1.32 var(--display);letter-spacing:-.012em;text-transform:none;padding:19px 2px 19px 0}
.festival-faq-body .faq-item summary::after{font-size:24px;color:var(--rose);flex:none}
.festival-faq-body .faq-item p{font:400 14px/1.75 var(--body);color:#d6d2da;padding:0 33px 19px 0}
.festival-faq-body .faq-item p a{color:var(--mint);text-decoration:underline;text-underline-offset:3px}
.festival-faq-body .faq-item[open] summary{color:var(--lime)}
.festival-faq-closing .intro-copy p{font-size:15px}
@media(max-width:870px){
 .festival-faq-intro{grid-template-columns:1fr;gap:15px;margin-bottom:36px}
 .festival-faq-grid{grid-template-columns:1fr;gap:36px}
 .festival-faq-toc{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
 .festival-faq-toc>p{grid-column:1/-1}
}
@media(max-width:560px){
 .festival-faq-hero .container{min-height:300px}
 .festival-faq-intro{gap:12px}
 .festival-faq-toc{gap:0 12px}
 .festival-faq-toc a{font-size:11px;line-height:1.35}
 .festival-faq-group+.festival-faq-group{margin-top:39px}
 .festival-faq-body .faq-item summary{font-size:17px;line-height:1.34;padding:17px 0}
 .festival-faq-body .faq-item p{font-size:13px;padding-right:10px}
}

/* The longer 2026 partner roster is an open typographic list. Do not let slash separators lead wrapped lines. */
.partner-names{column-gap:clamp(18px,2.1vw,32px);row-gap:7px;align-items:start}
.partner-names span{font-size:15px;font-weight:600;line-height:1.45}
.partner-names span+span::before{content:none!important;display:none!important}
@media(max-width:560px){.partner-names{row-gap:8px;column-gap:17px}.partner-names span{font-size:14px}}
/* Mobile hero typography follows the longest semantic phrase instead of forcing a fourth line. */
@media(max-width:720px){:root{--festival-h1:clamp(30px,8.1vw,43px)}}
@media(max-width:375px){:root{--festival-h1:30px}}
