:root{--green: #7ea83e;--green-dark: #3e5f26;--green-light: #aacd72;--cream: #fbfbf6;--cream-2: #eef3e1;--ink: #2b2e22;--ink-soft: #5e6b52;--radius: 2px;--maxw: 1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}body{margin:0;font-family:Work Sans,sans-serif;color:var(--ink);background:var(--cream);line-height:1.6}h1,h2,h3,.display{font-family:Quicksand,sans-serif;font-weight:700;color:var(--green-dark);line-height:1.15;margin:0}a{color:inherit}img{max-width:100%;display:block}button{font-family:inherit;cursor:pointer}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}.eyebrow{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--green);font-weight:600;display:block;margin-bottom:10px}:focus-visible{outline:3px solid var(--green-light);outline-offset:3px}.script{font-family:Dancing Script,cursive;font-weight:600;color:var(--green)}.btn{display:inline-block;padding:13px 26px;text-decoration:none;font-size:.9rem;font-weight:600;letter-spacing:.02em;border-radius:var(--radius);border:none;transition:transform .15s ease,background .15s ease}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:var(--green-dark);transform:translateY(-1px)}.btn-ghost{border:1.5px solid var(--green);color:var(--green);background:transparent}.btn-ghost:hover{background:var(--green);color:#fff}header.site-header{position:sticky;top:0;z-index:50;background:#fbfbf6f0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid #dce7c8}.nav-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:16px 28px;max-width:var(--maxw);margin:0 auto}.brand{font-family:Quicksand,sans-serif;font-size:1.3rem;font-weight:700;color:var(--green-dark);text-decoration:none}.brand em{font-style:normal}nav.main-nav ul{list-style:none;display:flex;flex-wrap:nowrap;gap:18px;margin:0;padding:0;align-items:center}nav.main-nav li{flex-shrink:0}nav.main-nav a{text-decoration:none;font-size:.88rem;font-weight:500;color:var(--ink);white-space:nowrap}nav.main-nav a:hover{color:var(--green)}.menu-toggle{display:none;background:none;border:none;padding:6px}.menu-toggle span{display:block;width:24px;height:2px;background:var(--green-dark);margin:5px 0}@media (max-width: 900px){nav.main-nav ul{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--cream);border-bottom:1px solid #dce7c8;max-height:0;overflow:hidden;transition:max-height .3s ease}nav.main-nav ul.open{max-height:500px;overflow-y:auto}nav.main-nav a{display:block;padding:16px 28px;border-bottom:1px solid #eef3e1}.menu-toggle{display:block}}@media (max-width: 480px){.brand{font-size:1.1rem}.hero{padding:56px 0 46px}section{padding:52px 0}.auth-card{padding:28px 22px}.join-panel{padding:30px 20px}}.hero{padding:88px 0 70px}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}@media (max-width: 900px){.hero-grid{grid-template-columns:1fr}}.hero h1{font-size:clamp(2.2rem,5vw,3.4rem)}.hero .latin{font-family:Dancing Script,cursive;font-weight:600;color:var(--green);font-size:clamp(1.6rem,3.2vw,2.2rem);display:block}.hero p.lede{margin-top:22px;max-width:46ch;color:var(--ink-soft);font-size:1.05rem}.cta-row{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap}.collage{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ph{aspect-ratio:1/1;border-radius:var(--radius);overflow:hidden;background:linear-gradient(150deg,var(--green) 0%,var(--green-dark) 100%);position:relative}.ph.alt{background:linear-gradient(150deg,var(--green-light) 0%,#6e8f3e 100%)}.ph.tall{grid-row:span 2;aspect-ratio:auto}.ph img{width:100%;height:100%;object-fit:cover;display:block}.ph-label{position:absolute;bottom:10px;left:12px;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:#2b2e228c;padding:4px 10px;border-radius:20px}section{padding:76px 0}.alt-bg{background:var(--cream-2)}.section-head{max-width:640px;margin-bottom:44px}.section-head h2{font-size:clamp(1.8rem,3.4vw,2.4rem)}.section-head p{color:var(--ink-soft);margin-top:12px}.chor-layout{display:grid;grid-template-columns:.95fr 1.05fr;gap:60px}@media (max-width: 900px){.chor-layout{grid-template-columns:1fr}}.chor-copy p{margin:0 0 16px;color:var(--ink-soft)}.tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.tag{font-size:.8rem;padding:7px 14px;border:1px solid var(--green);color:var(--green);border-radius:20px;font-weight:500}.timeline{border-left:2px solid var(--green-light);padding-left:28px;margin-left:6px}.t-item{position:relative;padding-bottom:34px}.t-item:last-child{padding-bottom:0}.t-item:before{content:"";position:absolute;left:-34px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--green);border:3px solid var(--cream);box-shadow:0 0 0 2px var(--green-light)}.t-year{font-family:Quicksand,sans-serif;font-weight:700;font-size:1.3rem;color:var(--green)}.t-item p{margin:4px 0 0;color:var(--ink-soft);font-size:.95rem}.programme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}@media (max-width: 760px){.programme-grid{grid-template-columns:1fr}}.prog-card{background:#fff;border:1px solid #dce7c8;border-radius:var(--radius);padding:32px}.prog-card h3{font-size:1.5rem;margin-bottom:8px}.prog-card p{color:var(--ink-soft);font-size:.95rem;margin:0}.prog-dates{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}.prog-dates li{border-top:1px solid var(--cream-2);padding-top:12px;display:flex;flex-direction:column}.prog-dates li:first-child{border-top:none;padding-top:0}.prog-dates strong{color:var(--ink);font-size:.92rem}.prog-dates span{color:var(--ink-soft);font-size:.85rem;margin-top:2px}.note-box{margin-top:36px;padding:20px 24px;border-left:3px solid var(--green-light);background:var(--cream-2);font-size:.92rem;color:var(--ink-soft)}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}@media (max-width: 760px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}.g-tile{aspect-ratio:4/3;background:var(--cream-2);border:1px solid #dce7c8;overflow:hidden}.g-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.g-tile:hover img{transform:scale(1.05)}.join-panel{background:var(--green);color:#e9f1da;border-radius:var(--radius);padding:56px;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}@media (max-width: 860px){.join-panel{grid-template-columns:1fr;padding:38px 26px}}.join-panel h2{color:#fff}.join-panel p{color:#dcf0c6}.join-list{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}.join-list li{display:flex;gap:10px;font-size:.95rem}.join-facts{margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.25);display:flex;flex-direction:column;gap:10px}.join-facts div{display:flex;flex-direction:column;font-size:.88rem}.join-facts strong{color:#fff;font-weight:600}.join-facts span{color:#dcf0c6}.join-panel .btn-primary{background:var(--green-light);color:#25331a}.join-panel .btn-primary:hover{background:#96bb5c}.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}@media (max-width: 900px){.news-grid{grid-template-columns:1fr}}.news-card{border:1px solid #dce7c8;background:#fff}.news-thumb{aspect-ratio:16/10;background:var(--cream-2);display:flex;align-items:center;justify-content:center;color:var(--green);opacity:.6}.news-body{padding:22px}.news-tag{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--green);font-weight:600}.news-body h3{font-size:1.25rem;margin-top:8px}.news-body p{color:var(--ink-soft);font-size:.9rem;margin-top:8px}.supporter-list{display:flex;flex-direction:column;gap:14px;max-width:640px}.supporter-card{display:block;background:#fff;border:1px solid #dce7c8;border-radius:var(--radius);overflow:hidden;transition:border-color .15s ease,transform .15s ease}.supporter-card img{width:100%;height:auto}a.supporter-card:hover{border-color:var(--green);transform:translateY(-1px)}.supporter-card-static{cursor:default}.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px}@media (max-width: 900px){.contact-grid{grid-template-columns:1fr}}.contact-list{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-direction:column;gap:20px}.contact-list li{display:flex;gap:14px}.contact-list strong{display:block;font-size:.95rem}.contact-list span{color:var(--ink-soft);font-size:.92rem}form.contact-form{display:flex;flex-direction:column;gap:16px}label{font-size:.82rem;font-weight:600;color:var(--green-dark);margin-bottom:6px;display:block}input,textarea{width:100%;padding:12px 14px;border:1px solid #cbdba9;background:#fff;font-family:inherit;font-size:.95rem;border-radius:var(--radius);color:var(--ink)}input:focus,textarea:focus{border-color:var(--green)}textarea{resize:vertical;min-height:120px}.required-mark{color:var(--green)}.field-hint{display:block;margin-top:6px;font-size:.78rem;color:var(--ink-soft)}.field-hint.ok{color:var(--green-dark)}footer.site-footer{background:var(--green-dark);color:#dceac6;padding:50px 0 26px;margin-top:20px}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;padding-bottom:34px;border-bottom:1px solid rgba(255,255,255,.12)}@media (max-width: 760px){.footer-grid{grid-template-columns:1fr;gap:28px}}footer.site-footer h4{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green-light);margin-bottom:14px;font-weight:600}footer.site-footer .brand{color:#fff}footer.site-footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}footer.site-footer a{text-decoration:none;color:#dceac6;font-size:.9rem}footer.site-footer a:hover{color:var(--green-light)}.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:22px;font-size:.8rem;color:#a9c08c;flex-wrap:wrap;gap:10px}.auth-shell{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:60px 20px}.auth-card{background:#fff;border:1px solid #dce7c8;border-radius:var(--radius);padding:40px;width:100%;max-width:420px}.auth-card h1{font-size:1.8rem;margin-bottom:6px}.auth-card p.hint{color:var(--ink-soft);font-size:.9rem;margin-bottom:24px}.auth-error{background:#fdecec;border:1px solid #eab;color:#7a2020;padding:10px 14px;border-radius:var(--radius);font-size:.88rem;margin-bottom:16px}.member-shell{max-width:var(--maxw);margin:0 auto;padding:56px 28px}.member-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px;margin-bottom:36px}.member-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}@media (max-width: 760px){.member-grid{grid-template-columns:1fr}}.member-card{background:#fff;border:1px solid #dce7c8;padding:26px;border-radius:var(--radius)}.member-card h3{font-size:1.2rem;margin-bottom:14px}.member-card ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.member-card li{border-bottom:1px solid var(--cream-2);padding-bottom:10px;font-size:.92rem}.member-card li:last-child{border-bottom:none;padding-bottom:0}.member-card li strong{display:block;color:var(--ink)}.member-card li span{color:var(--ink-soft);font-size:.85rem}.badge-role{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;background:var(--cream-2);color:var(--green-dark);padding:4px 10px;border-radius:20px;font-weight:600}.auth-success{background:#eaf5df;border:1px solid #c3dba0;color:var(--green-dark);padding:10px 14px;border-radius:var(--radius);font-size:.88rem;margin-bottom:16px}select{width:100%;padding:12px 14px;border:1px solid #cbdba9;background:#fff;font-family:inherit;font-size:.95rem;border-radius:var(--radius);color:var(--ink)}select:focus{border-color:var(--green)}.admin-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:26px;align-items:start}@media (max-width: 900px){.admin-grid{grid-template-columns:1fr}}.user-table-wrap{overflow-x:auto}.user-table{width:100%;border-collapse:collapse;font-size:.88rem}.user-table th,.user-table td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--cream-2);white-space:nowrap}.user-table th{color:var(--ink-soft);font-weight:600;text-transform:uppercase;font-size:.72rem;letter-spacing:.06em}.user-table tr:last-child td{border-bottom:none}.btn-link{background:none;border:none;padding:0;font-size:.85rem;font-weight:600;color:var(--green);text-decoration:underline;cursor:pointer}.btn-link:hover{color:var(--green-dark)}.btn-link-danger{color:#b5433a}.btn-link-danger:hover{color:#7a2020}.legal-shell{padding:56px 0 90px}.legal-wrap{max-width:720px}.legal-wrap h1{font-size:clamp(1.8rem,3.4vw,2.2rem);margin-bottom:28px}.legal-card{background:#fff;border:1px solid #dce7c8;border-radius:var(--radius);padding:6px 28px;margin:0}.legal-row{display:grid;grid-template-columns:240px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--cream-2)}.legal-row:last-child{border-bottom:none}.legal-row dt{font-weight:600;color:var(--green-dark);font-size:.88rem}.legal-row dd{margin:0;color:var(--ink-soft)}.legal-row dd a{color:var(--green);text-decoration:underline}@media (max-width: 560px){.legal-row{grid-template-columns:1fr;gap:4px;padding:14px 0}.legal-row dt{color:var(--green);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}}.legal-prose h2{font-size:1.1rem;margin:30px 0 10px}.legal-prose h2:first-child{margin-top:0}.legal-prose p{color:var(--ink-soft);margin:0 0 14px}.legal-prose ul{color:var(--ink-soft);margin:0 0 14px;padding-left:20px}.legal-prose li{margin-bottom:6px}.legal-prose a{color:var(--green);text-decoration:underline}.cookie-banner{position:fixed;left:20px;right:20px;bottom:20px;z-index:100;max-width:680px;margin:0 auto;background:#fff;border:1px solid #dce7c8;border-radius:var(--radius);box-shadow:0 8px 28px #2b2e222e;padding:20px 24px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}.cookie-banner p{margin:0;color:var(--ink-soft);font-size:.86rem;flex:1 1 320px}.cookie-banner a{color:var(--green);text-decoration:underline}.cookie-banner .btn{flex-shrink:0;padding:10px 22px;font-size:.85rem}@media (max-width: 560px){.cookie-banner{left:12px;right:12px;bottom:12px;padding:16px 18px}}
