/* Festival layout: shared header, content width, typography and section rules. */
.sp-main{overflow-wrap:anywhere}
.sp-main *{box-sizing:border-box}
.sp-main :is(h1,h2,h3,p){word-break:keep-all}
.sp-main p{line-height:1.75}
.sp-eyebrow{font-size:.85rem;font-weight:800;color:var(--accent,#af441d);margin:0 0 16px}
.koma-page-supporters .tlhead.sp-hero{display:grid;grid-template-columns:1.2fr 1fr;gap:36px;align-items:center}
.sp-hero-copy{min-width:0}
.sp-lead{font-size:1.1rem;font-weight:700;margin:24px 0 12px}
.sp-caption,.sp-help{font-size:.88rem;color:var(--muted)}
.sp-date-list,.sp-shift-list{list-style:none;padding:0;margin:20px 0}
.sp-date-list li{display:flex;flex-wrap:wrap;gap:6px 16px;padding:10px 0;border-bottom:1px solid var(--site-rule);line-height:1.6}
.sp-date-list strong{white-space:nowrap}
.sp-activities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.sp-activity{display:flex;flex-direction:column;min-width:0;padding:28px;border:1px solid var(--site-rule);color:#241b12}
.sp-cleanup{background:#d9edf1}
.sp-festival{background:#f9dd74}
.sp-activity h3{font-size:clamp(1.3rem,2.3vw,1.75rem);line-height:1.5;margin:0 0 8px}
.sp-activity .sp-eyebrow{margin-bottom:12px}
.sp-activity-detail{font-size:.95rem;margin:12px 0 20px}
.sp-shift-list{margin:16px 0 0;line-height:1.8}
.sp-shift-list li+li{margin-top:6px}
.sp-activity .sp-button{margin-top:auto;align-self:flex-start;gap:8px}
.sp-activity-choices{display:grid;gap:10px}
.sp-activity-choices label{display:flex;gap:12px;align-items:center;padding:14px;background:#fffdf8;border:1px solid #241b12;cursor:pointer;line-height:1.5}
.sp-activity-choices label:has(input:checked){background:#f9dd74;box-shadow:inset 4px 0 #a9421b}
.sp-activity-choices input{flex:none;width:22px;height:22px;margin:0;accent-color:#a9421b}
.sp-activity-choices small{display:block;font-size:.9rem;margin-top:3px}
.sp-selection-summary{white-space:pre-line;line-height:1.8;padding:16px;border-left:4px solid #a9421b;background:#fffdf8;color:#241b12}
.sp-art{background:#f9dd74;display:flex;align-items:center;justify-content:center;position:relative;padding:100px 24px 50px;gap:4%;min-width:0;min-height:340px}
.sp-art img{display:block;width:28%;height:auto;max-height:240px;object-fit:contain}
.sp-art img:nth-of-type(2){transform:translateY(20px)}
.sp-art-word{position:absolute;top:28px;left:28px;font-weight:850;font-size:2rem;transform:rotate(-7deg);color:#241b12}
.sp-button{margin-top:12px;max-width:100%;gap:20px}
.sp-button:disabled{opacity:.6;cursor:wait}
.sp-main :is(a,button,input,select,textarea):focus-visible{outline:3px solid currentColor;outline-offset:4px}
.koma-page-supporters .sp-welcome{display:grid;grid-template-columns:1fr 1.35fr;gap:8px 36px;padding:28px var(--site-gutter);margin-bottom:48px;background:#d9edf1;color:#241b12}
.sp-welcome>.sp-eyebrow{grid-column:1/-1}
.sp-welcome h2{font-size:clamp(1.8rem,3.3vw,2.6rem);line-height:1.25;letter-spacing:-.04em;margin:0}
.sp-welcome>div p:first-child{margin-top:0}
.sp-welcome>div p:last-child{margin-bottom:0}
.sp-section-intro{margin:-4px 0 28px}
.sp-section-intro p:first-child{margin-top:0}
.sp-section-intro p:last-child{margin-bottom:0}
.sp-shifts,.sp-training-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.sp-shifts article{padding:24px;border:1px solid var(--site-rule);background:#f9dd74;color:#241b12}
.sp-shifts article p:last-child{margin-bottom:0}
.sp-shifts h3,.sp-training h3{font-size:clamp(1.1rem,2vw,1.4rem);line-height:1.5;margin:12px 0}
.sp-note{font-size:.94rem;color:var(--muted)}
.sp-training-options article{border-top:1px solid var(--site-rule);padding-top:24px}
.sp-training-options p{margin:6px 0}
.sp-label{display:inline-block;padding:5px 12px;background:#d9edf1;color:#241b12;font-size:.9rem;font-weight:800}
.sp-teams{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 40px}
.sp-teams li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;padding-top:24px;border-top:1px solid var(--site-rule)}
.sp-teams li>span{color:var(--accent,#af441d);font-weight:700;font-size:.9rem}
.sp-teams h3{font-size:1.15rem;margin:0;line-height:1.5}
.sp-teams p{margin:10px 0 0}
.sp-application form{padding:28px;background:#d9edf1;color:#241b12;border:1px solid var(--site-rule)}
.sp-application fieldset{border:0;margin:0 0 32px;padding:0;min-width:0}
.sp-application legend{font-size:1.15rem;font-weight:800;padding:0 0 20px}
.sp-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.sp-fields label{display:block;font-weight:750;line-height:1.6;min-width:0}
.sp-fields input,.sp-fields select,.sp-fields textarea{display:block;width:100%;min-width:0;min-height:50px;margin-top:8px;padding:12px;border:1px solid #241b12;border-radius:0;background:#fffdf8;color:#241b12;font:inherit;font-size:16px;line-height:1.6}
.sp-fields select{padding-right:26px}
.sp-fields textarea{resize:vertical}
.sp-wide{grid-column:1/-1}
.sp-help{display:block;font-weight:400;line-height:1.7;margin-top:8px}
.sp-consents{margin:24px 0}
.sp-consents>label{display:flex;align-items:flex-start;gap:12px;margin:20px 0;line-height:1.7}
.sp-consents input{width:24px;height:24px;flex:none;margin-top:3px;accent-color:#a9421b}
.sp-consents details{padding:16px 0;border-block:1px solid #9fbac0}
.sp-consents summary{cursor:pointer;font-weight:700;min-height:32px}
.sp-consents details p{font-size:.94rem}
.sp-main [hidden]{display:none!important}
#supporters-error{font-weight:700;color:#8c2516}
#supporters-done{padding:28px;background:#f9dd74;color:#241b12;border:1px solid var(--site-rule)}
#supporters-done h3{font-size:1.5rem;margin-top:0}
.sp-dialog{width:880px;max-width:calc(100% - 32px);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid #241b12;background:var(--paper,#f3ecdc);color:var(--ink,#241b12);overflow:auto;overscroll-behavior:contain}
.sp-dialog::backdrop{background:rgba(27,20,13,.62)}
.sp-dialog-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid var(--site-rule);background:var(--paper,#f3ecdc)}
.sp-dialog-header h2{font-size:1.5rem;line-height:1.3;margin:0}
.sp-dialog-close{flex:none;min-width:44px;min-height:44px;border:1px solid currentColor;background:transparent;color:inherit;font:inherit;cursor:pointer}
.sp-dialog-body{padding:0 24px 24px}
.sp-dialog :is(input,select,textarea,button,summary){scroll-margin-top:100px}
@media(max-width:800px){
 .koma-page-supporters .tlhead.sp-hero{grid-template-columns:1fr}
 .sp-art{min-height:250px;padding-top:85px;padding-bottom:40px}
 .sp-art img{max-height:170px;max-width:120px}
 .koma-page-supporters .sp-welcome{grid-template-columns:1fr;gap:20px}
 .sp-welcome>.sp-eyebrow{margin-bottom:0}
 .sp-teams{grid-template-columns:1fr}
}
@media(max-width:600px){
 .sp-activities{grid-template-columns:1fr;gap:16px}
 .sp-activity{padding:20px}
 .sp-activity h3{font-size:1.35rem}
 .sp-date-list li{display:block}
 .sp-date-list span{display:block}
 .sp-dialog{max-width:calc(100% - 16px);max-height:calc(100dvh - 16px)}
 .sp-dialog-header{padding:12px 16px}
 .sp-dialog-header h2{font-size:1.25rem}
 .sp-dialog-body{padding:0 12px 16px}
 .sp-fields,.sp-shifts,.sp-training-options{grid-template-columns:1fr}
 .sp-wide{grid-column:auto}
 .sp-button{width:100%}
 .sp-art{padding-inline:16px}
 .sp-shifts article,.sp-application form{padding:20px}
}
