*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ts-sky);color:var(--ts-cream);font:var(--ts-size-body)/var(--ts-lh-body) var(--ts-font-body)}a{color:var(--ts-blue)}header,main,footer{max-width:var(--ts-max);margin:auto;padding:var(--ts-s5)}header{display:flex;justify-content:space-between;align-items:center;gap:var(--ts-s4)}header img{object-fit:contain;width:96px;height:96px}nav{display:flex;gap:var(--ts-s4);flex-wrap:wrap}nav a{padding:var(--ts-s3) 0}h1,h2,h3,.cta,button{font-family:var(--ts-font-head)}h1{font-size:clamp(2.5rem,6vw,5rem);line-height:1;font-weight:900;text-transform:uppercase;margin:var(--ts-s4) 0}h1 span{color:var(--ts-red)}h2{font-size:clamp(1.8rem,4vw,3rem);line-height:1.1;text-transform:uppercase}h3{font-size:1.25rem;line-height:1.25;margin:var(--ts-s2) 0}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--ts-s7);padding:var(--ts-s7) 0}.kicker,.date{color:var(--ts-blue);text-transform:uppercase;letter-spacing:.1em;font-weight:600;font-size:var(--ts-size-small)}.lede{font-size:1.2rem}.cta,button{display:inline-block;background:var(--ts-blue);color:var(--ts-blue-ink);border:0;border-radius:var(--ts-radius-btn);padding:var(--ts-s4) var(--ts-s5);font-weight:800;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;min-height:48px}.art{background:var(--ts-cream);color:var(--ts-charcoal);padding:var(--ts-s6);display:flex;flex-direction:column;justify-content:center;border-top:4px solid var(--ts-blue)}.art img{max-width:100%;height:auto;object-fit:contain}.art p{font:900 clamp(1.8rem,4vw,3rem)/1.05 var(--ts-font-head);text-transform:uppercase}.art span{font-size:var(--ts-size-small);font-weight:600}.intro{max-width:780px;padding-bottom:var(--ts-s7)}.sessions{display:grid;gap:var(--ts-s4);margin:var(--ts-s5) 0}.session{background:var(--ts-card);border:1px solid var(--ts-line);border-radius:var(--ts-radius);padding:var(--ts-s5);display:grid;grid-template-columns:1fr 300px;gap:var(--ts-s5)}.price{font:900 1.8rem var(--ts-font-head);margin:0}.fee,.note{color:var(--ts-muted);font-size:var(--ts-size-small)}select{min-height:48px;font:inherit;border-radius:var(--ts-radius-input);margin:0 var(--ts-s2);padding:var(--ts-s2)}button{width:100%;margin-top:var(--ts-s3);cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.details{display:grid;grid-template-columns:1fr 1fr;gap:var(--ts-s7);padding:var(--ts-s8) 0}footer{border-top:1px solid var(--ts-line);display:flex;gap:var(--ts-s5);flex-wrap:wrap}footer p{width:100%;color:var(--ts-muted);font-size:var(--ts-size-small)}.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:0}a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid var(--ts-blue);outline-offset:4px}@media(max-width:700px){header,main,footer{padding:var(--ts-s4)}header{align-items:flex-start}header img{width:80px;height:80px}nav{font-size:var(--ts-size-small);gap:var(--ts-s3)}.hero,.details{grid-template-columns:1fr;gap:var(--ts-s5)}.hero{padding:var(--ts-s5) 0}.session{grid-template-columns:1fr;padding:var(--ts-s4)}.art{padding:var(--ts-s5)}.details{padding:var(--ts-s7) 0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.weekender{border:2px solid var(--ts-blue)}

.art{padding:0;background:transparent;border:0;display:block}.art img{display:block;width:100%;height:auto;object-fit:contain}

.hero{grid-template-columns:1fr}.art{max-width:700px;margin:0 auto var(--ts-s7)}

.details{padding-top:var(--ts-s5);gap:var(--ts-s5) var(--ts-s7)}.details-title{grid-column:1/-1}.details-title h2{margin:var(--ts-s2) 0}.details>div>h3{margin:0 0 var(--ts-s4);font-size:1.35rem;font-weight:800}.details p{margin-top:0;margin-bottom:var(--ts-s4)}

#cartBadge{display:inline-flex!important;align-items:center;justify-content:center;min-width:1.5em;padding:0 .3em;border-radius:1em;background:var(--ts-blue);color:var(--ts-blue-ink);font-weight:800}.added-feedback{margin:var(--ts-s3) 0 0;color:var(--ts-cream);font-weight:600}.added-feedback:empty{display:none}.view-basket:not([hidden]){display:inline-block;padding:var(--ts-s3) 0;font-weight:700;min-height:44px}

/* Accessible footer targets with clear separation at narrow widths. */
footer a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;box-sizing:border-box}
@media(max-width:600px){footer{padding-left:16px;padding-right:16px;gap:12px}footer a{flex:0 0 calc(50% - 6px)}}
