:root{--green:#146b40;--light:#edf5ee;--ink:#19382a}*{box-sizing:border-box}body{margin:0;background:#f9f5f6;color:var(--ink);font:18px/1.5 system-ui,sans-serif}header{max-width:1150px;margin:auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:15px}header img{width:150px;max-height:72px;object-fit:contain}nav{display:flex;gap:16px;flex-wrap:wrap}a{color:var(--green)}main{max-width:1100px;margin:auto;padding:12px 24px 60px}h1{font-size:clamp(27px,4vw,40px);line-height:1.2}h2{font-size:24px}h3{margin:10px 0}.muted{color:#587263}button,.button{border:1px solid #a8c6b3;background:white;color:var(--green);padding:13px 20px;border-radius:14px;font:inherit;cursor:pointer;min-height:48px;display:inline-block;text-decoration:none;text-align:center;touch-action:manipulation}button.primary,.button.primary{background:var(--green);color:white;border-color:var(--green)}button.danger{background:#fff0ee;color:#a92d23;border-color:#dfb1ab}button[disabled]{opacity:.55;cursor:default}button.active{background:var(--green);color:white}.actions,.filters{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:20px}.card,section.panel{background:white;border:1px solid #d8e5da;border-radius:20px;padding:22px;margin:18px 0}.card{margin:0;overflow:hidden}.card>img{width:calc(100% + 44px);margin:-22px -22px 15px;aspect-ratio:16/9;object-fit:cover}.badge{display:inline-block;border-radius:9px;background:#e7f5ea;padding:4px 10px;font-size:16px}.badge.warn{background:#fff0bd}.badge.red{background:#ffe3df}.details-image{width:100%;max-height:450px;object-fit:contain;border-radius:16px;background:white}.description{white-space:pre-wrap}.pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:block;font-weight:600;margin:13px 0}input,select,textarea{font:inherit;font-size:18px;width:100%;min-height:48px;border:1px solid #b0c6b6;border-radius:10px;padding:10px;background:white;color:var(--ink);margin-top:5px}textarea{min-height:125px;resize:vertical}label.check{display:flex;align-items:center;gap:12px;font-weight:400}input[type=checkbox]{width:25px;height:25px;min-height:25px;flex:none}.stepnav{display:flex;flex-wrap:wrap;gap:8px}.stepnav button{font-size:16px;padding:10px}.wizard-controls{position:sticky;bottom:0;padding:14px;background:#f9f5f6;box-shadow:0 -3px 15px #173a2010;display:flex;justify-content:space-between;gap:12px}.wizard-step[hidden]{display:none}.row{border-bottom:1px solid #d8e5da;padding:17px 0;overflow-wrap:anywhere}.row:last-child{border:0}.row h3{margin:0}.metric{font-size:25px;font-weight:750;color:var(--green)}.compact{font-size:16px}.person{background:var(--light);border-radius:14px;padding:14px;margin:12px 0}.receipt{background:#e4f3e6;border:1px solid #97c4a2;padding:24px;border-radius:18px}#notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#19382a;color:white;border-radius:12px;padding:14px 20px;max-width:90%;z-index:10;display:none}footer{text-align:center;font-size:11px;color:#677b6c;padding:18px;margin-bottom:15px}.slot{background:#eef5ef;border-radius:12px;padding:10px;margin:8px 0}.regactions{display:flex;flex-wrap:wrap;gap:8px}.summarybox{background:var(--light);padding:16px;border-radius:12px}.formerror{background:#ffe3df;color:#9b231c;padding:14px;border-radius:12px}.sectionheading{display:flex;align-items:center;justify-content:space-between;gap:12px}.sectionheading h2{margin:0}@media(max-width:600px){header{padding:12px 16px;align-items:flex-start}header img{width:105px}nav{font-size:14px;gap:8px}main{padding:8px 16px 40px}.pair{grid-template-columns:1fr;gap:0}.card,section.panel{padding:18px}.card>img{width:calc(100% + 36px);margin:-18px -18px 12px}.actions>*{flex:1}.stepnav button{flex:1;font-size:14px;padding:8px}.wizard-controls button{flex:1}.metric{font-size:22px}}
/* 2.8.1: visitor pages, compact editorial cards and clear registration. */
:root{--green:#175b3e;--ink:#233e30;--light:#eff5ef}body{background:#f9f5f6;color:var(--ink);font-size:17px;line-height:1.55}header{max-width:1140px;padding:20px 30px 18px;border-bottom:1px solid #dae4dc;margin-bottom:22px}header img{width:140px;max-height:65px;object-fit:contain}header nav{gap:24px;font-size:15px}header nav a{text-decoration:none;font-weight:600}header nav a:hover{text-decoration:underline}main{max-width:1140px;padding:0 30px 56px}h1{font-size:clamp(28px,3vw,38px);font-weight:730;letter-spacing:-.035em}h2{font-size:22px;line-height:1.3;letter-spacing:-.015em}button,.button{border-radius:10px;padding:11px 17px;min-height:48px;font-weight:600;font-size:16px}button.primary:hover,.button.primary:hover{background:#104a31}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #80b992;outline-offset:3px}.eyebrow{font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:#657e6c;font-weight:700}.events-intro{padding:10px 0 4px}.events-intro h1{margin:7px 0 10px}.events-intro p{margin:0;color:#667d6d}.filters{margin:28px 0 24px;gap:9px}.filters button{background:transparent;border:1px solid #d1dfd4;padding:9px 18px;min-height:44px;font-size:15px;border-radius:30px}.filters button.active{background:var(--green);color:white;border-color:var(--green)}.event-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-items:start;gap:22px}.event-card{max-width:354px;background:white;overflow:hidden;border-radius:14px;border:1px solid #e1e8e1;box-shadow:0 5px 20px #294f3210}.card-image{display:block;position:relative;width:100%;padding:0;border:0;border-radius:0;aspect-ratio:16/9;overflow:hidden;min-height:0;background:#e2ece3}.card-image img{width:100%;height:100%;object-fit:cover;display:block}.image-price{position:absolute;bottom:12px;left:14px;padding:4px 10px;background:#fffffff0;border-radius:7px;color:#175b3e;font-size:13px;font-weight:700;box-shadow:0 2px 8px #0001}.image-placeholder{display:grid;place-content:center;gap:10px;min-height:100%;color:#467759}.image-placeholder svg{width:40px;height:40px;justify-self:center}.image-placeholder span{font-size:14px}.event-card-body{padding:20px}.category-label{color:#4d7960;font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.event-card h2{margin:8px 0 12px}.recurrence-text{font-size:14px;line-height:1.45;color:#657d6c;margin:0 0 18px}.event-meta{display:grid;gap:10px;margin:16px 0}.event-meta p,.event-facts p{display:flex;gap:10px;margin:0;align-items:flex-start}.event-meta svg,.event-facts svg,.eligibility svg,.registration-date svg{width:20px;height:20px;flex:none;color:#5c8067;margin-top:2px}.event-meta span{font-size:15px}.event-meta small{display:block;font-size:12px;color:#718475;margin-bottom:2px}.availability{display:inline-flex;color:#407552;font-size:13px;font-weight:650;align-items:center;gap:6px}.availability:before{content:'';width:6px;height:6px;background:#4b965f;border-radius:100%}.availability.few{color:#b14332}.availability.few:before{background:#d26049}.availability.full{color:#7b6e64}.availability.full:before{background:#978676}.event-card-actions{display:flex;gap:9px;margin-top:20px}.event-card-actions button{flex:1;padding:10px 7px;font-size:14px;min-height:44px}.back-link{padding:5px 0;margin:8px 0 20px;border:0;background:transparent;text-align:left;font-size:15px;min-height:36px}.event-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,1fr);gap:46px;align-items:start}.event-information h1{margin:9px 0 14px}.event-cover{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px;margin:24px 0}.event-facts{display:grid;gap:12px;border-top:1px solid #dae4dc;border-bottom:1px solid #dae4dc;padding:20px 0;margin:22px 0}.event-facts strong{font-weight:650}.price-text{color:var(--green);font-weight:750;margin-top:2px}.event-description{font-size:17px;color:#405d49;line-height:1.75}.eligibility{display:flex;align-items:flex-start;gap:12px;padding:18px;background:#ebf2e9;border-radius:10px;margin:25px 0;font-size:15px}.eligibility p{margin:0}.poster-link{display:flex;align-items:center;padding:0;gap:18px;border:0;background:none;margin:25px 0;text-align:left}.poster-link img{width:82px;max-height:120px;object-fit:cover;border-radius:6px;box-shadow:0 3px 15px #0002}.poster-link span{display:flex;align-items:center;gap:8px;font-size:15px}.poster-link svg{height:18px;width:18px}.poster-dialog{padding:0;background:#1c3025;border:0;border-radius:8px;max-width:95vw;max-height:95dvh;overflow:auto}.poster-dialog::backdrop{background:#0b201bdc}.poster-dialog img{display:block;max-height:90dvh;max-width:90vw;object-fit:contain;margin:auto}.poster-close{position:fixed;right:20px;top:15px;color:#193c28;background:white;z-index:20}.event-enrolment{padding-top:4px}.registration-box{padding:27px;background:white;border-radius:15px;border:1px solid #dde7df;box-shadow:0 8px 30px #294f3210}.registration-box h2{margin:8px 0 14px}.registration-box>.availability{margin-bottom:15px}.registration-date{display:flex;gap:12px;padding:15px 0;border-top:1px solid #e2e9e3;border-bottom:1px solid #e2e9e3;margin:12px 0 22px;font-size:15px}.registration-box label{font-size:15px;margin:13px 0;color:#35533f}.registration-box input,.registration-box select{font-size:17px;min-height:47px;border-radius:8px;border-color:#cedacf;padding:10px 12px}.registration-box .pair{gap:12px}fieldset{border:0;padding:0;margin:0}legend{font-size:15px;font-weight:650;margin-bottom:10px}.registration-choice{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 20px}.registration-choice legend{width:100%}.registration-choice label{margin:0;flex:1;min-width:100px}.registration-choice input{position:absolute;opacity:0;width:1px;height:1px}.registration-choice span{display:block;border:1px solid #cfdcd1;border-radius:8px;text-align:center;padding:11px 5px;font-size:15px;cursor:pointer}.registration-choice input:checked+span{background:#eaf3e9;border-color:#6d9c79;color:#175b3e}.registration-choice input:focus-visible+span{outline:3px solid #80b992}.contact-section{margin-top:22px}.contact-section h3{font-size:16px;margin:0 0 15px}.field-hint{font-size:12px;line-height:1.6;color:#76877a;margin:6px 0 16px}.optional-contact,.optional-names{margin:16px 0;font-size:14px;color:#536f5b}.optional-contact summary,.optional-names summary{cursor:pointer;font-weight:550}.quantity-control{display:flex;gap:12px;align-items:center;margin-top:9px}.quantity-control input{max-width:90px;text-align:center;margin:0}.quantity-control button{width:44px;min-width:44px;padding:8px}.registration-box .check{font-size:13px;font-weight:400;align-items:flex-start;gap:10px}.registration-box .check input{min-height:20px;width:20px;height:20px;margin-top:1px;border-radius:3px}.registration-eligibility{font-size:13px;color:#607764;margin:20px 0}.registration-box .consent{font-size:12px;line-height:1.6;margin-top:24px}.registration-total{font-size:14px;font-weight:650;color:#366744;margin:22px 0 12px}.registration-submit{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px}.registration-submit svg{height:18px;width:18px}.person{background:#f4f7f2;border:1px solid #e1e9df;border-radius:8px;padding:14px}.person-heading{display:flex;justify-content:space-between;align-items:center;font-size:13px}.text-button{padding:0;border:0;background:none;min-height:30px;font-size:12px;color:#7e6d65}.mobile-register-bar{display:none}.confirmation-page{max-width:660px;margin:30px auto;text-align:center}.confirmation-mark{display:grid;place-items:center;background:#e7f1e5;width:62px;height:62px;border-radius:50%;margin:0 auto 20px;color:var(--green)}.confirmation-mark svg{width:32px;height:32px}.confirmation-page h1{margin:12px 0}.confirmation-page>p{color:#708071;margin-bottom:30px}.confirmation-ticket{text-align:left;padding:30px;background:white;border:1px solid #dae6dc;border-radius:15px;box-shadow:0 7px 24px #315c3a0b}.confirmation-ticket h2{font-size:24px;margin:10px 0 24px}.confirmation-ticket .actions{margin:26px 0 20px}.ticket-note{font-size:14px;color:#657b6b;border-top:1px solid #e1e8e1;padding-top:20px}.date-preview{margin:20px 0;padding:15px;border:1px solid #c9dfcb;border-radius:8px;max-height:350px;overflow:auto;font-size:14px}.date-preview p{padding:8px;margin:0;border-bottom:1px solid #e1e8e1}.date-clash{background:#ffebe5;color:#a33b2a}.weekdays{display:flex;flex-wrap:wrap;gap:7px;margin:20px 0}.weekdays label{margin:0}.weekdays input{position:absolute;width:1px;height:1px;opacity:0}.weekdays span{display:block;padding:12px;border:1px solid #cedacf;border-radius:9px}.weekdays input:checked+span{background:#e4f1e3;border-color:#578263}.teacher-choices{margin:24px 0}.teacher-choices label{font-size:15px}.cancellation-box{border:1px solid #e9b5a9;background:#fff4ef;padding:20px;border-radius:12px;margin-top:20px}.mail-settings details>summary,.participant-message>summary{cursor:pointer;font-weight:650}.participant-message{margin-top:25px}.empty-events{padding:35px;background:white;border-radius:12px}.privacy-page{max-width:720px;margin:35px auto}.privacy-page p{line-height:1.8;color:#5b7362}footer{font-size:10px;color:#94a196;border-top:1px solid #e0e8df;padding:24px 10px;margin:0}body[data-mode=admin] main{max-width:1140px}body[data-mode=admin] .card{box-shadow:none}body[data-mode=public] .formerror{font-size:14px}@media(min-width:1200px){.event-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:800px){.event-layout{grid-template-columns:1fr;gap:28px}.event-information{max-width:620px}.event-enrolment{max-width:620px}.event-cover{max-height:320px}.registration-box{padding:25px}.event-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.event-card-actions button{font-size:13px}}@media(max-width:600px){header{padding:14px 19px;margin-bottom:18px;align-items:center}header img{width:112px;max-height:51px}header nav{gap:12px;font-size:12px}main{padding:0 19px 42px}.events-intro{padding:5px 0}.events-intro h1{font-size:29px;margin:8px 0 12px}.events-intro p{font-size:15px;max-width:285px}.filters{margin:23px 0 20px;gap:7px}.filters button{font-size:13px;padding:8px 13px;min-height:40px}.event-cards{grid-template-columns:1fr;gap:20px}.event-card{max-width:none}.event-card-body{padding:20px}.event-card h2{font-size:23px}.event-card-actions button{font-size:15px;min-height:48px}.event-layout{gap:22px}.event-information h1{font-size:29px}.event-cover{margin:19px 0;max-height:210px}.event-facts{font-size:15px;padding:17px 0;margin:20px 0}.event-description{font-size:16px}.registration-box{padding:23px 19px}.registration-box .pair{grid-template-columns:1fr 1fr;gap:10px}.registration-box label{font-size:14px}.registration-box input{font-size:17px}.event-enrolment{scroll-margin-top:15px}.mobile-register-bar{display:block;position:sticky;bottom:0;margin:25px -19px -42px;background:#f9f5f6ee;border-top:1px solid #d8e4da;padding:12px 19px calc(12px + env(safe-area-inset-bottom))}.mobile-register-bar button{width:100%}.confirmation-page{margin:20px auto}.confirmation-page h1{font-size:28px}.confirmation-ticket{padding:23px 20px}.confirmation-ticket .actions{display:grid}.confirmation-ticket .actions button{width:100%}.person .pair{grid-template-columns:1fr}.weekdays{gap:5px}.weekdays span{padding:11px 9px}.poster-dialog img{max-width:95vw}.teacher-choices legend{font-size:16px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
