
:root{
  --paper:#F2EEE4; --paper-hi:#FAF7EF; --ink:#1A1A1A; --pink:#FF3269; --blue:#2B44FF;
  --u:8px; --gut:16px; --sec:64px;
}
@media (min-width:700px){:root{--gut:32px;--sec:80px}}
@media (min-width:1100px){:root{--gut:48px;--sec:112px}}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font:400 17px/1.5 "Public Sans",system-ui,sans-serif;overflow-x:clip;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
.wrap{max-width:1344px;margin:0 auto;padding:0 var(--gut)}
.disp{font-family:"Archivo",sans-serif;font-stretch:66%;font-weight:900;text-transform:uppercase;line-height:.94;letter-spacing:.012em}
h1,h2,h3,h4{font-weight:inherit}
.h2{font-size:56px;line-height:56px}
@media (min-width:700px){.h2{font-size:80px;line-height:80px}}
@media (min-width:1100px){.h2{font-size:104px;line-height:96px}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:8px 24px;font:600 16px/1.2 "Public Sans",sans-serif;text-decoration:none;border:3px solid var(--ink);background:var(--pink);color:var(--ink);box-shadow:4px 4px 0 var(--ink);transition:transform .12s,box-shadow .12s;cursor:pointer}
.btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.btn.ghost{background:transparent}
.btn.sm{padding:8px 16px;box-shadow:3px 3px 0 var(--ink)}


/* duotone photos */
.photo{position:relative;border:3px solid var(--ink);background:var(--paper-hi);overflow:hidden}
.photo picture{display:block;width:100%;height:100%}.photo img{width:100%;height:100%;object-fit:cover}
.d-pb img{filter:url(#duo-pb) contrast(1.05)}
.d-p img{filter:url(#duo-p)}
.d-b img{filter:url(#duo-b)}
.photo::after{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle,rgba(26,26,26,.5) 1.2px,transparent 1.8px);background-size:8px 8px;mix-blend-mode:multiply;opacity:.45}

/* hero */
.hero{padding:32px 0 var(--sec)}
.hero-grid{display:grid;gap:48px;grid-template-columns:minmax(0,1fr)}
@media (min-width:1100px){.hero-grid{grid-template-columns:minmax(0,1fr) 520px;gap:64px;align-items:start}.hero{padding-top:56px}}
.eyebrow{display:inline-block;font:600 16px/24px "Public Sans";background:var(--ink);color:var(--paper);padding:4px 16px;margin-bottom:24px}
h1.disp{font-size:52px;line-height:48px;text-shadow:3px 2px 0 var(--pink),-2px -2px 0 var(--blue)}
@media (min-width:700px){h1.disp{font-size:104px;line-height:96px}}
@media (min-width:1100px){h1.disp{font-size:120px;line-height:104px}}
.lede{font-size:19px;line-height:32px;max-width:560px;margin-top:32px}
.btns{display:flex;flex-wrap:wrap;gap:16px;margin-top:32px}
.brandline{margin-top:24px;font-weight:600;font-size:16px}
.hero .photo{margin-top:48px;aspect-ratio:16/9;max-height:400px;width:100%}
.hero .photo img{object-position:50% 30%}
.hero .photo{transform:rotate(-1deg)}

/* timetable */
.sheetwrap{position:relative;margin-bottom:352px}
.sheet{background:var(--paper-hi);border:3px solid var(--ink);box-shadow:8px 8px 0 var(--blue)}
.sheet-h{background:var(--ink);color:var(--paper);padding:16px 24px}
.sheet-h b{display:block;font-size:40px;line-height:40px}
.sheet-h span{display:block;font-size:15px;line-height:24px;margin-top:8px}
.row{display:grid;grid-template-columns:80px 1fr;gap:8px 16px;padding:24px;border-top:3px solid var(--ink)}
.sheet-h + .row{border-top:0}
.day{font-size:56px;line-height:48px;color:var(--blue)}
.what b{display:block;font-size:20px;line-height:24px}
.what p{font-size:16px;line-height:24px;margin-top:8px}
.price{font-weight:600}
.row .btn{grid-column:1/-1;margin-top:8px}
@media (min-width:520px){.row{grid-template-columns:88px 1fr auto;align-items:start}.row .btn{grid-column:auto;margin-top:0}}
.sheet-f{padding:16px 24px;border-top:3px solid var(--ink);font-size:15px;line-height:24px;background:var(--paper)}
.stamp{position:absolute;left:16px;top:calc(100% + 24px);width:calc(100% - 48px);max-width:384px;transform:rotate(-4deg);padding:24px;color:var(--pink);background:var(--paper);border:4px solid var(--pink);outline:2px solid var(--pink);outline-offset:4px;text-decoration:none;mix-blend-mode:multiply;background-image:radial-gradient(circle,rgba(255,50,105,.18) 1px,transparent 1.6px);background-size:8px 8px}
.stamp .k{font:700 19px/24px "Public Sans";text-transform:uppercase;letter-spacing:.12em}
.stamp b{display:block;font-size:56px;line-height:56px;margin:8px 0}
.stamp p{font:600 16px/24px "Public Sans";color:var(--ink)}
@media (min-width:520px){.stamp{left:-16px}}
@media (min-width:1100px){.stamp{left:-8px}.sheetwrap{margin-bottom:0}}

/* which session */
.sec{padding:var(--sec) 0}
.which{border-top:3px solid var(--ink)}
.which-grid{display:grid;gap:48px;grid-template-columns:minmax(0,1fr)}
@media (min-width:1100px){.which-grid{grid-template-columns:360px 1fr;gap:64px}}
.strips{display:flex;flex-direction:column;gap:32px}
.strip{display:grid;grid-template-columns:minmax(0,1fr) auto;border:3px solid var(--ink);position:relative}
.strip .main{padding:24px;display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.strip h3{font-size:56px;line-height:56px}
.strip p{font-size:18px;line-height:32px;max-width:480px}
.strip .stub{border-left:3px dashed var(--ink);padding:16px;display:flex;flex-direction:column;justify-content:center;gap:8px;min-width:128px;text-align:center}
.strip .stub b{font-size:32px;line-height:32px}
.strip .stub a{font-weight:600;font-size:15px;line-height:24px;text-decoration:underline;text-underline-offset:4px;padding:12px 0}
.strip.s1{background:var(--pink);width:100%}
.strip.s2{background:var(--blue);color:var(--paper);width:84%;margin-left:auto}
.strip.s2 .stub{border-color:var(--paper)}
.strip.s3{background:var(--paper-hi);width:68%}
.strip .photo{width:288px;height:120px;flex:none;border-color:var(--paper)}
.strip .photo img{object-position:50% 0}
@media (max-width:1099px){.strip.s1,.strip.s2,.strip.s3{width:100%}.strip.s2{width:calc(100% - 24px)}.strip.s3{width:calc(100% - 48px)}}
@media (max-width:699px){.strip{grid-template-columns:minmax(0,1fr)}.strip .stub{border-left:0;border-top:3px dashed currentColor;flex-direction:row;justify-content:space-between;align-items:center;text-align:left}.strip h3{font-size:48px;line-height:48px}.strip .photo{width:100%;height:96px}}
@media (min-width:1100px) and (max-width:1300px){.strip.s3{width:76%}}

/* ladder */
.ladder-sec{background:var(--ink);color:var(--paper)}
.ladder-sec .h2{color:var(--paper)}
.ladder-sec .h2 em{font-style:normal;color:var(--pink)}
.ladder-intro{display:grid;gap:24px;margin-bottom:48px}
.ladder{list-style:none;display:flex;flex-direction:column;gap:0}
.rung{padding:24px;border:3px solid var(--paper);margin-top:-3px;color:var(--ink);background:var(--paper)}
.rung h3{font-size:48px;line-height:48px}
.rung p{font-size:17px;line-height:24px;margin-top:8px}
.rung:nth-child(1){margin-left:0;margin-right:48px}
.rung:nth-child(2){margin-left:16px;margin-right:32px;background:var(--paper-hi)}
.rung:nth-child(3){margin-left:32px;margin-right:16px;background:#C9D0FF}
.rung:nth-child(4){margin-left:48px;margin-right:0;background:var(--pink);border-color:var(--pink)}
@media (min-width:900px){
  .ladder{flex-direction:row;align-items:flex-end}
  .rung{margin:0 0 0 -3px!important;flex:1;display:flex;flex-direction:column;justify-content:flex-end;padding:32px 24px}
  .rung:nth-child(1){min-height:240px}.rung:nth-child(2){min-height:320px}.rung:nth-child(3){min-height:400px}.rung:nth-child(4){min-height:480px;flex:1.2}
  .rung h3{font-size:64px;line-height:64px}
}

/* first lesson */
.first-grid{display:grid;gap:48px;grid-template-columns:minmax(0,1fr)}
@media (min-width:1100px){.first-grid{grid-template-columns:1fr 360px;gap:96px;align-items:start}}
.checks{list-style:none;margin-top:48px;border-top:3px solid var(--ink)}
.checks li{display:grid;grid-template-columns:56px 1fr;gap:16px;padding:24px 0;border-bottom:3px dashed var(--ink);font-size:19px;line-height:32px;align-items:start}
.box{width:56px;height:56px;border:3px solid var(--ink);display:grid;place-items:center;font-size:40px;line-height:40px;background:var(--paper-hi);box-shadow:3px 3px 0 var(--pink)}
.checks li span{padding-top:8px}
.kid{position:relative;max-width:360px}
.kid .photo{aspect-ratio:4/5;transform:rotate(2deg)}
.tape{position:absolute;top:-16px;left:50%;width:96px;height:32px;margin-left:-48px;background:rgba(255,50,105,.75);transform:rotate(-5deg);z-index:2}

/* rebecca */
.reb{background:var(--blue);color:var(--paper)}
.reb-grid{display:grid;gap:48px;grid-template-columns:minmax(0,1fr)}
@media (min-width:1100px){.reb-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:80px;align-items:start}}
.reb .photo{aspect-ratio:1;border-color:var(--paper);box-shadow:8px 8px 0 var(--pink)}
.reb .h2{margin-bottom:32px}
.reb p.story{font-size:19px;line-height:32px;max-width:640px}
.record{list-style:none;margin-top:40px;max-width:640px;background:var(--paper);color:var(--ink);padding:16px 24px;border:3px solid var(--ink);transform:rotate(.6deg)}
.record li{display:flex;gap:16px;align-items:baseline;padding:8px 0;font-size:16px;line-height:24px}
.record li span:first-child{font-weight:600}
.record li::after{content:"";order:1;flex:1;border-bottom:3px dotted var(--ink);min-width:16px;opacity:.5;transform:translateY(-4px)}
.record li span:last-child{order:2;white-space:nowrap}
.record li.solo::after{display:none}
.record h3{font-size:32px;line-height:40px;margin-bottom:8px;color:var(--pink)}
@media (max-width:520px){.record li{flex-direction:column;gap:0}.record li::after{display:none}}

/* safety */
.safe{padding:var(--sec) 0}
.panel{border:3px solid var(--ink);background:var(--paper-hi);box-shadow:12px 12px 0 var(--pink);display:grid;grid-template-columns:minmax(0,1fr)}
@media (min-width:1000px){.panel{grid-template-columns:5fr 6fr}}
.panel .l{padding:32px;background:var(--ink);color:var(--paper)}
.panel .l .h2{font-size:56px;line-height:56px}
@media (min-width:700px){.panel .l{padding:48px}.panel .l .h2{font-size:80px;line-height:72px}}
.panel .l .h2 em{font-style:normal;color:var(--pink)}
.panel .r{padding:32px}
@media (min-width:700px){.panel .r{padding:48px}}
.panel ul{list-style:none}
.panel li{display:grid;grid-template-columns:32px 1fr;gap:8px;padding:16px 0;border-bottom:3px dashed var(--ink);font-size:19px;line-height:32px;font-weight:600}
.panel li:first-child{padding-top:0}
.panel li::before{content:"";width:24px;height:24px;margin-top:4px;border:3px solid var(--ink);background:var(--blue)}
.panel .conf{margin-top:24px;padding:16px;border:3px solid var(--ink);font-size:16px;line-height:24px}

/* reviews */
.rev{border-top:3px solid var(--ink)}
.rev-head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px 48px;margin-bottom:64px}
.score{font-weight:600;font-size:19px;line-height:32px;border:3px solid var(--ink);padding:8px 16px;background:var(--pink);transform:rotate(-2deg)}
.slips{display:grid;gap:40px 32px;grid-template-columns:minmax(0,1fr);padding:32px 0 0;align-items:start}
@media (min-width:700px){.slips{grid-template-columns:repeat(2,minmax(0,1fr))}.slip:nth-child(2n){margin-top:40px}}
@media (min-width:1100px){.slips{grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}.slip:nth-child(2n){margin-top:0}.slip:nth-child(3n+2){margin-top:56px}.slip:nth-child(3n+3){margin-top:16px}}
.slip{display:block;break-inside:avoid;position:relative;margin:0;padding:32px 24px 24px;background:var(--paper-hi);border:2px solid var(--ink);box-shadow:4px 6px 0 rgba(26,26,26,.18)}
.slip::before{z-index:1;content:"";position:absolute;top:-8px;left:50%;width:24px;height:24px;margin-left:-12px;border-radius:50%;background:var(--pink);border:3px solid var(--ink)}
.slip:nth-child(even)::before{background:var(--blue)}
.slip q{display:block;quotes:none;font-size:18px;line-height:32px}
.slip cite{display:block;margin-top:16px;font:600 16px/24px "Public Sans";font-style:normal}
.slip:nth-child(6n+1){transform:rotate(-2deg)}
.slip:nth-child(6n+2){transform:rotate(1.5deg);background:#FFE3EA}
.slip:nth-child(6n+3){transform:rotate(-1deg)}
.slip:nth-child(6n+4){transform:rotate(2deg)}
.slip:nth-child(6n+5){transform:rotate(-1.5deg);background:#DDE1FF}
.slip:nth-child(6n+6){transform:rotate(1deg)}
.slip .when{display:block;font-weight:400;font-size:14px;line-height:24px;opacity:.8}

/* contact */
.contact{background:var(--pink);border-top:3px solid var(--ink)}
.contact .h2{margin-bottom:16px}
.contact .intro{font-size:19px;line-height:32px;max-width:640px;margin-bottom:48px}
.bslip{background:var(--paper-hi);border:3px solid var(--ink);box-shadow:12px 12px 0 var(--ink);display:grid;grid-template-columns:minmax(0,1fr);position:relative}
@media (min-width:1000px){.bslip{grid-template-columns:minmax(0,7fr) minmax(0,4fr)}}
.bslip .f{padding:32px}
.bslip .s{padding:32px;border-top:3px dashed var(--ink);display:flex;flex-direction:column;gap:24px;justify-content:center;background:var(--paper)}
@media (min-width:700px){.bslip .f,.bslip .s{padding:48px}}
@media (min-width:1000px){.bslip .s{border-top:0;border-left:3px dashed var(--ink)}}
.bslip .s{position:relative}
.bslip .s::before,.bslip .s::after{content:"";position:absolute;width:32px;height:32px;border-radius:50%;background:var(--pink);border:3px solid var(--ink)}
.bslip .s::before{left:-19px;top:-19px}
.bslip .s::after{right:-19px;top:-19px}
@media (min-width:1000px){.bslip .s::before{left:-19px;top:-19px}.bslip .s::after{left:-19px;right:auto;top:auto;bottom:-19px}}
.fields{display:grid;gap:24px 24px}
@media (min-width:700px){.fields{grid-template-columns:1fr 1fr}.fields .full{grid-column:1/-1}}
label{display:block;font-weight:600;font-size:15px;line-height:24px;margin-bottom:8px}
input,select,textarea{width:100%;min-height:48px;padding:8px 16px;font:400 17px/24px "Public Sans";color:var(--ink);background:rgba(43,68,255,.07);border:0;border-bottom:3px solid var(--ink);border-radius:0;appearance:none}
select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 24px) 20px,calc(100% - 16px) 20px;background-size:8px 8px;background-repeat:no-repeat;padding-right:48px}
textarea{min-height:128px;resize:vertical}
.fields .btn{width:100%}
@media (min-width:700px){.fields .btn{width:auto;justify-self:start}}
.s h3{font-size:40px;line-height:40px}
.s .big{display:block;font:600 22px/32px "Public Sans";text-decoration:none;border-bottom:3px solid var(--blue);padding:8px 0;word-break:break-word}
.s .small{font-size:16px;line-height:24px}
.s .wa{background:var(--ink);color:var(--paper);box-shadow:4px 4px 0 var(--blue);border-color:var(--ink)}

/* ===== additions for the full site ===== */
.skip{position:absolute;left:16px;top:-80px;z-index:100000;background:var(--ink);color:var(--paper);padding:12px 24px;font-weight:600;text-decoration:none}
.skip:focus{top:16px}
main:focus{outline:0}
.sub{font-family:"Public Sans";font-stretch:100%;font-weight:600;text-transform:none;letter-spacing:0}
.btn.dark{background:var(--ink);color:var(--paper);box-shadow:4px 4px 0 var(--paper)}
.btn.dark:hover{box-shadow:2px 2px 0 var(--paper)}
.btn.ghost{background:transparent}
.s2 :focus-visible,.reb :focus-visible,.ladder-sec :focus-visible,.site-foot :focus-visible{outline-color:var(--paper)}
.s1 :focus-visible,.stamp:focus-visible,.contact a:focus-visible{outline-color:var(--ink)}

/* header */
.top{border-bottom:3px solid var(--ink);position:relative;background:var(--paper);z-index:50}
.top .wrap{display:flex;align-items:center;gap:8px 16px;padding-top:16px;padding-bottom:16px}
.mark{display:flex;align-items:center;font-size:32px;line-height:40px;text-decoration:none;margin-right:auto}
.mark i{font-style:normal;color:var(--pink);font-stretch:100%;font-size:.56em;letter-spacing:-.18em;margin:0 8px 0 6px}
.nav{display:flex;flex-wrap:wrap;gap:0 24px;font-weight:600;font-size:16px}
.nav a{text-decoration:none;padding:12px 0;min-height:48px;display:inline-flex;align-items:center;border-bottom:3px solid transparent}
.nav a:hover,.nav a[aria-current]{border-color:var(--pink)}
.menu-btn{display:none;min-height:48px;padding:8px 16px;border:3px solid var(--ink);background:var(--paper-hi);font:600 16px/1.2 "Public Sans",sans-serif;color:var(--ink);cursor:pointer}
.book .long{display:none}
@media (min-width:480px){.book .long{display:inline}}
@media (max-width:859px){
  .js .menu-btn{display:inline-flex;align-items:center}
  .js .nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper-hi);border-bottom:3px solid var(--ink);flex-direction:column;padding:8px var(--gut) 16px;gap:0}
  .js .nav.open{display:flex}
  .nav a{border-bottom:3px dashed var(--ink);min-height:56px;font-size:19px}
  .nav a[aria-current]{border-bottom-style:solid;border-bottom-color:var(--pink)}
}
@media (min-width:860px){.mark{font-size:40px}.nav{gap:0 32px;order:2;margin-right:8px}.mark{order:1}.book{order:3}}

/* page head for inner pages */
.pagehead{padding:48px 0 var(--sec);border-bottom:3px solid var(--ink)}
.pagehead h1.disp{font-size:56px;line-height:52px;text-shadow:3px 2px 0 var(--pink),-2px -2px 0 var(--blue)}
@media (min-width:700px){.pagehead h1.disp{font-size:96px;line-height:88px}}
@media (min-width:1100px){.pagehead h1.disp{font-size:120px;line-height:104px}.pagehead{padding-top:72px}}
.pagehead .lede{margin-top:32px}
.pagehead.tight{padding-bottom:48px}
.h3{font-size:40px;line-height:40px}
@media (min-width:700px){.h3{font-size:56px;line-height:56px}}
.sec.nb{border-top:0}
.rule{border-top:3px solid var(--ink)}

/* sessions page layout */
.sess-top{display:grid;gap:64px;grid-template-columns:minmax(0,1fr);padding-top:var(--sec);padding-bottom:var(--sec)}
@media (min-width:1100px){.sess-top{grid-template-columns:minmax(0,1fr) 440px;gap:80px;align-items:start}}
.sess-top .intro-copy{max-width:560px}
.sess-top .intro-copy p{font-size:19px;line-height:32px;margin-top:24px}
.sess-top .intro-copy p:first-child{margin-top:0}
.sheet-solo{max-width:640px}
.ticket{display:grid;grid-template-columns:minmax(0,1fr);border:3px solid var(--ink);background:var(--paper-hi);box-shadow:8px 8px 0 var(--pink)}
@media (min-width:800px){.ticket{grid-template-columns:minmax(0,1fr) 256px}}
.ticket .tmain{padding:32px}
@media (min-width:700px){.ticket .tmain{padding:48px}}
.ticket .tmain .h2{margin-bottom:24px}
.ticket dl{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px 16px;font-size:19px;line-height:32px;border-top:3px solid var(--ink);padding-top:16px}
.ticket dt{font-weight:600;color:var(--blue)}
.ticket dd{margin:0}
.ticket .tstub{background:var(--pink);border-top:3px dashed var(--ink);padding:32px;display:flex;flex-direction:column;justify-content:center;gap:16px;text-align:center;align-items:center}
@media (min-width:800px){.ticket .tstub{border-top:0;border-left:3px dashed var(--ink)}}
.ticket .tstub b{font-size:96px;line-height:88px}
.ticket .tstub span.u{font-weight:600}
.bring{list-style:none;max-width:720px;border-top:3px solid var(--ink)}
.bring li{position:relative;padding:16px 0 16px 48px;border-bottom:3px dashed var(--ink);font-size:19px;line-height:32px}
.bring li::before{content:"";position:absolute;left:0;top:20px;width:24px;height:24px;box-sizing:border-box;border:3px solid var(--ink);background:var(--blue)}
.two{display:grid;gap:48px;grid-template-columns:minmax(0,1fr)}
@media (min-width:1100px){.two{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:96px;align-items:start}}
.faq{max-width:800px;border-top:3px solid var(--ink)}
.faq>div{padding:24px 0;border-bottom:3px dashed var(--ink)}
.faq dt{font-weight:600;font-size:21px;line-height:32px}
.faq dd{margin:8px 0 0;font-size:18px;line-height:32px}
.text-link{font-weight:600;text-underline-offset:4px;display:inline-block;padding:12px 0}

/* home bits */
.teaser-first .lede{margin-top:24px}
.teaser-first .btns{margin-top:32px}
.band{border-bottom:3px solid var(--ink)}
.band-grid{display:grid;gap:32px;grid-template-columns:minmax(0,1fr)}
@media (min-width:1000px){.band-grid{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:64px}}
.band .intro{margin-bottom:0}
.band .btns{margin-top:0}
.reb a.btn.ghost{color:var(--paper);border-color:var(--paper);box-shadow:4px 4px 0 var(--paper)}
.reb .btns{margin-top:32px}
.reb .record.mini{margin-top:32px}
.record h3 + ul{list-style:none}

/* rebecca page */
.reb-top{display:grid;gap:48px;grid-template-columns:minmax(0,1fr);padding-top:var(--sec);padding-bottom:var(--sec)}
@media (min-width:1100px){.reb-top{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:80px;align-items:start}}
.reb-photos{position:relative}
.cutout{background:var(--pink);border:3px solid var(--ink);box-shadow:8px 8px 0 var(--ink);padding:32px 32px 0;overflow:hidden}
.cutout picture,.cutout img{display:block;width:100%;height:auto}
.reb-photos .photo.small{position:relative;width:60%;aspect-ratio:1;margin:-48px 16px 0 auto;transform:rotate(2deg);z-index:2;background:var(--paper-hi);box-shadow:6px 6px 0 var(--blue)}
.prose p{font-size:19px;line-height:32px;max-width:640px;margin-top:24px}
.prose p:first-child{margin-top:0}
.prose.legal p,.prose.legal li{font-size:18px;line-height:32px}
.prose.legal>*{max-width:720px}
.prose.legal h2{margin:48px 0 16px;font-size:40px;line-height:40px}
.prose.legal h2:first-child{margin-top:0}
.prose.legal ul{margin:16px 0 0 24px}
.prose.legal li{margin-top:8px}
.prose.legal p{margin-top:16px}
.prose a{font-weight:600;text-underline-offset:4px}
.record.flat{transform:none;max-width:none}
.facts{list-style:none;border-top:3px solid var(--ink);max-width:640px;margin-top:32px}
.facts li{padding:16px 0;border-bottom:3px dashed var(--ink);font-size:18px;line-height:32px}
.facts b{font-weight:600}
.fb-link{margin-top:32px}

/* safety page */
.steps{list-style:none;border-top:3px solid var(--ink);max-width:720px}
.steps li{display:grid;grid-template-columns:56px 1fr;gap:16px;padding:24px 0;border-bottom:3px dashed var(--ink);font-size:19px;line-height:32px}
.steps li span{padding-top:8px}
.safe-cta{margin-top:48px}
.confbox{margin-top:48px;max-width:720px;padding:24px;border:3px solid var(--ink);font-size:19px;line-height:32px}

/* contact */
.contact .pagehead{border:0;padding:0}
.contact h1.disp{font-size:56px;line-height:56px;margin-bottom:16px}
@media (min-width:700px){.contact h1.disp{font-size:80px;line-height:80px}}
@media (min-width:1100px){.contact h1.disp{font-size:104px;line-height:96px}}
.contact.page{padding:48px 0 var(--sec)}
.err{display:block;color:#B00020;font-weight:600;font-size:15px;line-height:24px;margin-top:8px}
.err[hidden]{display:none}
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{border-bottom-color:#B00020;background:#FFE3EA}
.check{display:grid;grid-template-columns:32px minmax(0,1fr);gap:16px;align-items:start}
.check input{width:32px;min-height:32px;height:32px;margin-top:8px;appearance:auto;accent-color:var(--blue)}
.check label{font-weight:400;font-size:16px;line-height:24px;margin:0;padding-top:8px}
.check label a{font-weight:600}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.status{padding:24px;border:3px solid var(--ink);margin-top:8px;font-size:18px;line-height:32px}
.status.ok{background:#DDE1FF}
.status.bad{background:#FFE3EA}
.status a{font-weight:600}
.status:focus{outline:3px solid var(--blue);outline-offset:3px}
.status h3{font-size:40px;line-height:40px;margin-bottom:8px}
.s .wa{color:var(--paper);text-decoration:none}

/* privacy / 404 */
.nf{padding:var(--sec) 0}
.nf .btns a{min-width:160px}

/* footer */
.site-foot{background:var(--ink);color:var(--paper);padding:64px 0 48px}
.site-foot a{text-underline-offset:4px}
.site-foot__grid{display:grid;gap:40px 64px;grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){.site-foot__grid{grid-template-columns:minmax(0,1fr) auto;align-items:start}.site-foot__base{grid-column:1/-1}}
.site-foot .mark{font-size:56px;line-height:56px;margin-bottom:16px}
.site-foot p{font-size:16px;line-height:24px;max-width:560px;margin-top:8px}
.site-foot .bl{font-weight:600;color:var(--pink);font-size:19px;line-height:32px}
.foot-nav{display:grid;grid-template-columns:repeat(2,auto);gap:0 48px;justify-content:start}
.foot-nav a,.socials a{font-weight:600;text-decoration:none;min-height:48px;display:inline-flex;align-items:center}
.foot-nav a:hover,.socials a:hover,.site-foot__base a:hover{text-decoration:underline}
.socials{display:flex;gap:32px;margin:0}
@media (min-width:900px){.socials{grid-column:1;grid-row:2}.foot-nav{grid-column:2;grid-row:1/3}}
.site-foot__base{border-top:3px dashed var(--paper);padding-top:24px;font-size:15px;line-height:24px;display:flex;flex-wrap:wrap;gap:8px 32px;justify-content:space-between}
.site-foot__base a{font-weight:600;display:inline-block;padding:12px 0}
.site-foot__base .sc-links a{padding:12px 4px}

/* cookie kit tweaks */
#sc-consent{border-width:3px}
#sc-consent h2{font-weight:900;font-stretch:66%;font-size:32px;line-height:32px;margin-bottom:8px}
#sc-consent .sc-row button{min-height:48px;display:flex;align-items:center;justify-content:center;font-family:"Archivo",sans-serif;font-weight:900;font-stretch:66%;font-size:24px}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .btn{transition:none}
}

@media (min-width:900px) and (max-width:1099px){.rung h3{font-size:48px;line-height:48px}}
.rung{min-width:0}

/* ---- Oct 2026 update: 4th strip, mobile park, coaching zones, contact extras */
.strip.s4{background:var(--ink);color:var(--paper);width:76%;margin-left:auto}
.strip.s4 .stub{border-color:var(--paper)}
@media (max-width:1099px){.strip.s4{width:calc(100% - 72px)}}
@media (max-width:699px){.strip.s2,.strip.s3,.strip.s4{width:100%}}
@media (min-width:1100px) and (max-width:1300px){.strip.s4{width:88%}}
.park{background:var(--paper-hi);border-top:3px solid var(--ink);border-bottom:3px solid var(--ink)}
.park-grid{display:grid;gap:24px}
@media (min-width:900px){.park-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start}}
.zones-sec .lede{margin-top:16px;max-width:720px}
.zones-tool{display:none}
.zones-on .zones-tool{display:grid;gap:24px;margin-top:40px}
@media (min-width:900px){.zones-on .zones-tool{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px;align-items:stretch}}
.z-map-wrap{border:3px solid var(--ink);box-shadow:6px 8px 0 rgba(26,26,26,.18);background:var(--paper-hi)}
.z-map-wrap{display:flex}
.z-map{height:360px;width:100%}
@media (min-width:900px){.z-map{height:auto;min-height:520px;flex:1}}
.z-panel{border:3px solid var(--ink);background:var(--paper-hi);padding:24px;display:flex;flex-direction:column;gap:16px}
.z-row{display:flex;flex-direction:column;gap:8px;border:0;padding:0;margin:0}
.z-row label,.z-row legend{font-weight:600;font-size:16px;line-height:24px}
.z-row select,.z-row input[type=text]{font:inherit;font-size:16px;line-height:24px;padding:12px;border:2px solid var(--ink);background:#fff;width:100%;min-width:0;border-radius:0}
.z-inline{display:flex;gap:8px}
.z-inline input{flex:1}
.z-hours{flex-direction:row;flex-wrap:wrap;gap:8px 24px}
.z-hours legend{width:100%;margin-bottom:8px}
.z-hours label{font-weight:400;display:flex;gap:8px;align-items:center;font-size:16px;line-height:24px;cursor:pointer}
.z-hours input[type=radio]{all:revert;width:20px;height:20px;margin:0;accent-color:var(--pink)}
.z-out{border-top:3px dashed var(--ink);padding-top:16px}
.z-total{font-size:64px;line-height:64px;color:var(--pink)}
.z-line{font-size:16px;line-height:24px;margin-top:8px}
.z-save{font-size:15px;line-height:24px;margin-top:8px;font-weight:600;color:var(--blue)}
.z-panel .err{color:#C2185B;font-size:15px;line-height:24px}
.z-or{margin:0}
.z-table-wrap{margin-top:56px}
.z-table-wrap .small{margin-top:16px;max-width:720px}
.z-table-wrap .btn{margin-top:24px}
.z-scroll{overflow-x:auto;margin-top:24px;border:3px solid var(--ink);background:var(--paper-hi)}
.z-table{border-collapse:collapse;width:100%;min-width:720px;font-size:15px;line-height:24px}
.z-table th,.z-table td{padding:12px 16px;text-align:left;border-bottom:1px solid rgba(26,26,26,.2);white-space:nowrap}
.z-table thead th{background:var(--ink);color:var(--paper);font-weight:600}
.z-table tbody th{font-weight:600}
.dot{display:inline-block;width:16px;height:16px;border-radius:50%;border:2px solid var(--ink);margin-right:8px;vertical-align:-3px}
.leaflet-container{font:inherit}
.opt{font-weight:400;opacity:.7;font-size:14px}
/* schools page */
.sch-grid{display:grid;gap:48px;grid-template-columns:minmax(0,1fr)}
@media (min-width:1100px){.sch-grid{grid-template-columns:minmax(0,1fr) 480px;gap:64px;align-items:center}}
.sch-photo{aspect-ratio:4/3;width:100%;transform:rotate(1.5deg);box-shadow:8px 8px 0 var(--blue)}
.sch-photo img{object-position:50% 20%}
.sch-record{margin-top:40px}
.sheet.menu{box-shadow:8px 8px 0 var(--pink)}
.sheet.menu .row{grid-template-columns:minmax(0,1fr);gap:8px}
@media (min-width:600px){.sheet.menu .row{grid-template-columns:168px minmax(0,1fr);gap:24px;align-items:baseline}}
.sheet.menu .day{font-size:40px;line-height:40px}
.sheet.menu .what p{margin-top:8px}
.sheet-f .text-link{font-weight:600}
.ticket .tmain .eyebrow{margin-bottom:16px}
.ticket .tstub span.u{max-width:176px}
/* mobile park concept images + guide links */
.park-pics{grid-column:1/-1;display:grid;gap:24px;margin:24px 0 0}
@media (min-width:700px){.park-pics{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}}
.park-pics .photo{aspect-ratio:1/1}
.park-pics .photo:nth-child(1){transform:rotate(-1deg);box-shadow:8px 8px 0 var(--pink)}
.park-pics .photo:nth-child(2){transform:rotate(1deg);box-shadow:8px 8px 0 var(--blue)}
.photo.concept::after{display:none}
.park-pics figcaption{grid-column:1/-1;margin-top:8px}
.sch-guide{margin-top:24px;font-size:16px;line-height:24px;max-width:640px}
.sch-guide a{font-weight:600;text-underline-offset:4px}
.prose .bring{margin-top:32px}
.strip .main>div{min-width:0}
.strip h3{overflow-wrap:break-word}
