:root{--green-deep:#17532F;--green-mid:#2F7D42;--green-bright:#7CC142;--black:#12160F;--white:#FFF;--bg-soft:#F5F7F2;--line:#DCE4D6;--ink-soft:#4B564A;--radius:14px;--maxw:760px}
*{box-sizing:border-box}
body{margin:0;font-family:'Manrope',system-ui,sans-serif;color:var(--black);background:var(--bg-soft);-webkit-font-smoothing:antialiased;line-height:1.5;font-size:15px}
h1{font-family:'Fraunces',serif;font-weight:600;font-size:clamp(1.4rem,3.5vw,1.9rem);line-height:1.25;letter-spacing:-.01em;margin:0 0 .5rem}
h2{font-family:'Fraunces',serif;font-weight:600;font-size:1.15rem;color:var(--green-deep);margin:1.4rem 0 .4rem}
h2:first-child{margin-top:0}
p,li{color:var(--ink-soft)}p{margin:0 0 .8em}ul{padding-left:1.2rem;margin:0 0 .8em}
a{color:var(--green-mid)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1rem}
header{background:var(--white);border-bottom:1px solid var(--line);position:relative;z-index:10}
.bar{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--black);padding:.6rem 0}
.brand img{width:64px;height:64px;object-fit:contain}
.brand-text{font-family:'Fraunces',serif;font-weight:600;font-size:1.02rem;line-height:1.05}
.brand-text span{display:block;font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:.62rem;letter-spacing:.1em;color:var(--green-mid);text-transform:uppercase;margin-top:2px}
.menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-weight:700;padding:.55em 1em;border:1.5px solid var(--black);border-radius:100px;user-select:none}
.menu summary::-webkit-details-marker{display:none}
.menu summary:focus-visible,.menu a:focus-visible,.btn:focus-visible{outline:3px solid var(--green-bright);outline-offset:2px}
.burger,.burger::before,.burger::after{display:block;width:18px;height:2px;background:var(--black);border-radius:2px;transition:transform .2s,background .2s}
.burger{position:relative}.burger::before,.burger::after{content:"";position:absolute;left:0}
.burger::before{top:-6px}.burger::after{top:6px}
.menu[open] .burger{background:transparent}
.menu[open] .burger::before{top:0;transform:rotate(45deg)}
.menu[open] .burger::after{top:0;transform:rotate(-45deg)}
.menu nav{position:absolute;left:0;right:0;top:100%;background:var(--white);border-bottom:1px solid var(--line);box-shadow:0 12px 20px rgba(18,22,15,.12);max-height:calc(100vh - 80px);overflow-y:auto}
.menu nav a{display:block;padding:.85rem 1.2rem;text-decoration:none;color:var(--black);font-weight:600;border-top:1px solid var(--line)}
.menu nav a:first-child{border-top:0}
.menu nav a[aria-current]{background:var(--bg-soft);color:var(--green-deep);border-left:4px solid var(--green-bright);padding-left:calc(1.2rem - 4px)}
@media(min-width:900px){.menu nav{left:auto;right:1rem;width:300px;border:1px solid var(--line);border-radius:var(--radius)}}
.hero{background:var(--green-deep);color:var(--white);padding:1.6rem 0 1.4rem}
.hero h1{color:var(--white)}.hero p{color:#DDEBD6;margin:0}
main{padding:1.6rem 0 3rem}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.1rem,3vw,1.8rem);margin-bottom:1rem}
.note{border-left:4px solid var(--green-bright);background:var(--bg-soft);padding:.6rem .9rem;border-radius:0 10px 10px 0;font-size:.9rem}
.field{margin-bottom:1.1rem}
label{display:block;font-weight:700;font-size:.9rem;margin-bottom:.35rem}
input[type=text],input[type=tel],input[type=email],textarea{width:100%;font:inherit;color:var(--black);background:var(--white);border:1.5px solid var(--line);border-radius:10px;padding:.7em .85em}
textarea{min-height:150px;resize:vertical}
input:focus,textarea:focus{outline:none;border-color:var(--green-mid);box-shadow:0 0 0 3px rgba(124,193,66,.3)}
.actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.4rem}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75em 1.6em;border-radius:100px;font:inherit;font-weight:700;font-size:.95rem;text-decoration:none;border:1.5px solid transparent;cursor:pointer}
.btn-green{background:var(--green-mid);color:var(--white);border-color:var(--green-mid)}
.btn-green:hover{background:var(--green-deep);border-color:var(--green-deep)}
.thanks{display:none;background:var(--white);border:1px solid var(--line);border-top:4px solid var(--green-bright);border-radius:var(--radius);padding:clamp(1.4rem,4vw,2.4rem);text-align:center}
.thanks h2{font-size:1.5rem;margin:0 0 .5rem}.thanks p{margin:0 auto 1.2rem;max-width:48ch}
html.sent .thanks{display:block}html.sent .form-card{display:none}
.hp{position:absolute;left:-9999px;height:0;width:0;opacity:0}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:0 0 1rem}
@media(min-width:600px){.tiles{grid-template-columns:repeat(3,1fr)}}
.tile{display:block;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;text-decoration:none;color:var(--black);font-weight:700;border-bottom:4px solid var(--green-bright)}
.tile span{display:block;font-weight:500;font-size:.8rem;color:var(--ink-soft);margin-top:.2rem}
.tile:hover{border-bottom-color:var(--green-mid)}
.tile:focus-visible{outline:3px solid var(--green-bright);outline-offset:2px}
footer{background:var(--green-deep);color:#DDEBD6;padding:2rem 0 1.6rem;font-size:.88rem}
footer a{color:var(--white)}
footer a:focus-visible{outline:3px solid var(--green-bright);outline-offset:2px}
.f-nav{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin-bottom:1.4rem}
.f-nav a{text-decoration:none;font-weight:600;padding:.3rem 0}
.f-nav a:hover{text-decoration:underline}
.f-apps{margin-bottom:1.4rem}
.f-apps p{margin:0 0 .6rem;color:#DDEBD6;font-weight:600}
.f-apps div{display:flex;flex-wrap:wrap;gap:.6rem}
.store{display:inline-block;line-height:0}
.store img{height:44px;width:auto;display:block}
.store:focus-visible{outline:3px solid var(--green-bright);outline-offset:3px;border-radius:8px}
.f-social{display:flex;gap:.2rem;margin-bottom:1.4rem}
.f-social a{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center}
.f-social svg{width:15px;height:15px;fill:var(--white)}
.f-social a:hover svg{fill:var(--green-bright)}
.f-copy{border-top:1px solid #2F7D42;padding-top:1rem;margin:0;color:#DDEBD6}
.sponsors{background:var(--white);border-top:1px solid var(--line);padding:1.8rem 0 2rem}
.sponsors h2{margin:0 0 1rem;text-align:center}
.sp-grid{display:grid;grid-template-columns:1fr;gap:.8rem}
@media(min-width:600px){.sp-grid{grid-template-columns:repeat(3,1fr)}}
.sp-item{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;text-align:center}
.sp-logo{display:flex;align-items:center;justify-content:center;height:80px;border:2px dashed var(--line);border-radius:10px;background:var(--white);color:var(--ink-soft);font-size:.85rem;margin-bottom:.7rem}
.sp-item b{display:block}.sp-item span{font-size:.85rem;color:var(--ink-soft)}
.sp-one{grid-template-columns:1fr;max-width:320px;margin:0 auto}
.sp-img{display:block;max-width:100%;max-height:100px;width:auto;height:auto;margin:0 auto}
footer{line-height:1.25;padding:1.5rem 0 1.2rem}
.f-nav{gap:0 1.2rem;margin-bottom:.8rem}
.f-nav a{padding:.2rem 0}
.f-apps{margin-bottom:.8rem}
.f-apps p{margin:0 0 .4rem}
.f-social{margin-bottom:.8rem;gap:.4rem}
.f-social a{width:32px;height:32px}
.f-social svg{width:20px;height:20px}
.f-copy{padding-top:.7rem;line-height:1.25}
.sp-intro{max-width:56ch;margin:0 auto 1.2rem;text-align:center}
.sp-one{max-width:360px}
.sp-item p{margin:.7rem 0 0;font-size:.88rem;line-height:1.4}
.sp-one{max-width:520px}
.sp-one .sp-item{display:flex;align-items:center;gap:.9rem;text-align:left;padding:.7rem .9rem}
.sp-one .sp-img{flex:0 0 96px;width:96px;max-width:96px;max-height:60px;height:auto;object-fit:contain;margin:0}
.sp-one .sp-item p{margin:0;font-size:.82rem;line-height:1.3}
footer{padding:.7rem 0 .6rem;font-size:.78rem;line-height:1.2}
footer .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .8rem}
.f-nav{flex:1 1 100%;gap:0 .9rem;margin:0}
.f-nav a{padding:.1rem 0}
.f-apps{display:contents}
.f-apps p{flex:1 1 100%;margin:0;font-weight:500}
.f-apps div{gap:.4rem;flex-wrap:nowrap}
.store img{height:28px}
.f-social{margin:0 0 0 auto;gap:.1rem}
.f-social a{width:28px;height:28px}
.f-copy{flex:1 1 100%;margin:.2rem 0 0;padding-top:.4rem;font-size:.72rem;line-height:1.2}
.sponsors{padding:.6rem 0 .7rem}
.sponsors .wrap{text-align:center}
.sponsors h2{display:inline;font-size:.95rem;margin:0 .4rem 0 0}
.sp-intro{display:inline;max-width:none;margin:0;font-size:.78rem;line-height:1.2;text-align:center}
.sp-grid{margin-top:.5rem}
.sp-one .sp-item{gap:.6rem;padding:.35rem .6rem;border-radius:10px}
.sp-one .sp-img{flex:0 0 64px;width:64px;max-width:64px;max-height:40px}
.sp-one .sp-item p{font-size:.72rem;line-height:1.2}
.sp-intro{line-height:1.1}
.sponsors h2{line-height:1.1}
.sponsors h2{display:block;margin:0;text-align:center}
.roles{margin:0}
.role{padding:.7rem 0;border-top:1px solid var(--line)}
.role:first-child{border-top:0;padding-top:0}
.role dt{font-size:.85rem;color:var(--green-mid);font-weight:700}
.role dd{margin:0}
.role dd b{display:block}
.role dd span{display:block;font-size:.88rem;color:var(--ink-soft)}
.card h3{font-size:1rem;margin:1.1rem 0 .4rem;color:var(--black)}
.special{border-top:4px solid var(--green-bright)}
.special .big{font-family:'Fraunces',serif;font-weight:600;font-size:1.5rem;color:var(--green-deep);margin:0 0 .5rem}
.court{margin:0 0 .3rem}
.court b,.court a{color:var(--green-deep)}
.tight .card{padding:.7rem .9rem;margin-bottom:.6rem}
.tight .card,.tight .card p,.tight .card li{line-height:1.3}
.tight .card h2{margin:0 0 .2rem;font-size:1.05rem;line-height:1.2}
.tight .card p{margin:0 0 .25rem}
.tight .card ul{margin:.15rem 0 0;padding-left:1.1rem}
.tight .card li{margin:0 0 .1rem}
.faqs{padding:0 clamp(1.1rem,3vw,1.8rem)}
.faq{border-top:1px solid var(--line)}
.faq:first-child{border-top:0}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem;padding:.9rem 0;font-weight:700;color:var(--black)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:0 0 auto;font-size:1.3rem;line-height:1;color:var(--green-mid);font-weight:600}
.faq[open] summary::after{content:"\2212"}
.faq summary:focus-visible{outline:3px solid var(--green-bright);outline-offset:2px}
.faq-a{padding:0 0 .9rem}
.faq-a ol{padding-left:1.2rem;margin:0 0 .8em}
.faq-a li{margin-bottom:.4rem}
.embed{display:block;width:100%;height:80vh;min-height:560px;border:1px solid var(--line);border-radius:10px;background:var(--white)}
.embed-note{margin:.6rem 0 0;font-size:.88rem}
.card h2 a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-wrap table{width:100%;border-collapse:collapse;font-size:.76rem;line-height:1.3}
.table-wrap th,.table-wrap td{padding:.45rem .5rem;border:1px solid var(--line);text-align:left;vertical-align:top;color:var(--black)}
.table-wrap th{background:var(--bg-soft);color:var(--green-deep);font-weight:700}
.table-wrap tbody tr:nth-child(even){background:#FAFBF8}
.table-wrap .col-days{width:3.2rem}
.table-wrap .col-activity{width:28%}
.small .card{font-size:.8rem}
.small .card h2{font-size:1rem}
.small .card p{line-height:1.4}
.table-wrap .loc{display:block;margin-bottom:.15rem}
.table-wrap .timetable{table-layout:fixed}
.timetable .col-days{width:12%}
.timetable .col-day{width:58%}
.timetable .col-eve{width:30%}
.timetable td{overflow-wrap:anywhere}
