:root { --ink:#15312d; --forest:#174f42; --green:#26745f; --mint:#e7f1ec; --cream:#f7f4ed; --gold:#d6973e; --line:#dce5df; --muted:#6d7e79; --white:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fbfcfa; font-family:Inter,"Segoe UI",Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
button,input { font:inherit; }
.site-header { height:76px; max-width:1200px; margin:auto; padding:0 28px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(23,79,66,.08); }
.brand { display:flex; align-items:center; gap:10px; font-size:14px; line-height:1.05; letter-spacing:.02em; }
.brand b { display:block; font-size:15px; }
.brand-mark { width:42px; height:42px; display:block; flex:0 0 42px; overflow:hidden; border-radius:50%; background:#fff; box-shadow:0 2px 10px #102e2920; }
.brand-mark img { width:100%; height:100%; display:block; object-fit:cover; }
nav { display:flex; gap:30px; font-size:14px; font-weight:600; }
nav a:hover { color:var(--green); }
.submit-button { border:0; background:var(--forest); color:#fff; border-radius:10px; padding:11px 16px; font-weight:700; cursor:pointer; }
.hero { min-height:350px; padding:58px max(28px,calc((100vw - 1144px)/2)); display:grid; grid-template-columns:1.3fr .7fr; gap:60px; align-items:center; background:radial-gradient(circle at 86% 25%,rgba(214,151,62,.14),transparent 25%),linear-gradient(135deg,#edf4ef,#f8f4e9); overflow:hidden; position:relative; }
.hero:after { content:""; position:absolute; right:-4%; bottom:-175px; width:520px; height:300px; border:1px solid rgba(23,79,66,.12); border-radius:50%; box-shadow:0 0 0 40px rgba(23,79,66,.035),0 0 0 80px rgba(23,79,66,.025); }
.hero-copy .eyebrow { animation:hero-copy-arrive .65s cubic-bezier(.18,.8,.3,1) both; }
.hero-copy h1 { animation:hero-title-arrive .9s cubic-bezier(.16,.8,.22,1) .08s both; }
.hero h1 em { position:relative; display:inline-block; }
.hero h1 em:after { content:""; position:absolute; left:2%; right:2%; bottom:-5px; height:3px; border-radius:5px; background:linear-gradient(90deg,var(--gold),#f3c879,var(--gold)); transform-origin:left; animation:hero-line-draw .9s ease .82s both; }
.today-card { animation:today-card-arrive .9s cubic-bezier(.16,.85,.22,1) .28s both,today-card-float 5s ease-in-out 1.25s infinite; }
.eyebrow { margin:0 0 9px; color:var(--green); font:700 11px var(--font-mono),monospace; letter-spacing:.14em; text-transform:uppercase; }
.hero h1 { max-width:650px; margin:0; font:600 clamp(46px,6vw,76px)/.98 Georgia,serif; letter-spacing:-.045em; }
.hero h1 em { color:var(--green); font-weight:400; }
.hero-copy>p:last-child { max-width:580px; margin:22px 0 0; color:#536a64; line-height:1.65; font-size:17px; }
.today-card { position:relative; z-index:1; display:grid; grid-template-columns:100px 1fr; gap:20px; padding:22px; background:rgba(255,255,255,.82); border:1px solid white; border-radius:18px; box-shadow:0 18px 60px rgba(27,65,55,.1); backdrop-filter:blur(10px); }
.today-card>div { display:grid; place-items:center; padding:12px; color:white; background:var(--forest); border-radius:13px; }
.today-card span,.today-card small { font-size:11px; text-transform:uppercase; }
.today-card strong { font:600 38px Georgia,serif; }
.today-card p { align-self:end; margin:0; color:var(--muted); line-height:1.5; }
.today-card p b { color:var(--ink); }
.today-card>a { color:var(--green); font-weight:700; font-size:13px; }
.finder { position:relative; z-index:2; max-width:1144px; margin:-22px auto 0; padding:12px; display:grid; grid-template-columns:1.5fr .8fr .8fr; gap:10px; background:white; border:1px solid var(--line); border-radius:14px; box-shadow:0 12px 35px rgba(25,60,52,.08); }
.finder { animation:finder-arrive .75s cubic-bezier(.18,.8,.3,1) .48s both; }
.search,.select-like { min-height:48px; display:flex; align-items:center; gap:10px; padding:0 14px; border:1px solid var(--line); border-radius:9px; color:var(--muted); font-size:14px; }
.search input { width:100%; border:0; outline:0; background:transparent; color:var(--ink); }
.select-like { justify-content:space-between; }
.select-like select { width:100%; border:0; outline:0; background:transparent; color:var(--muted); font:inherit; cursor:pointer; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.content-section { max-width:1200px; margin:auto; padding:72px 28px; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:22px; }
.section-heading h2,.weekend-strip h2 { margin:0; font:600 35px Georgia,serif; letter-spacing:-.025em; }
.section-heading>span,.section-heading>a { color:var(--green); font-size:13px; font-weight:700; }
.section-tools { display:flex; align-items:center; gap:14px; }
.section-tools>span { color:var(--green); font-size:13px; font-weight:700; }
.favorites-shortcut { padding:9px 13px; border:1px solid #e4c9c4; border-radius:100px; background:#fff7f5; color:#a84335; font-size:12px; font-weight:750; cursor:pointer; }
.favorites-shortcut b { display:inline-grid; min-width:20px; height:20px; margin-left:4px; place-items:center; border-radius:50%; background:#a84335; color:#fff; }
.filter-row { display:flex; gap:8px; margin-bottom:25px; overflow-x:auto; padding-bottom:4px; }
.filter-row button { white-space:nowrap; padding:9px 14px; border:1px solid var(--line); border-radius:100px; background:white; color:#526963; font-size:12px; font-weight:650; cursor:pointer; transition:.2s; }
.filter-row button:hover,.filter-row button.active { background:var(--forest); color:white; border-color:var(--forest); }
.filter-row button.active { animation:filter-button-pop .35s cubic-bezier(.2,.8,.3,1); }
.event-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; perspective:1200px; }
.event-card { position:relative; overflow:hidden; border:1px solid var(--line); border-radius:14px; background:white; transform-origin:50% 75%; transition:transform .35s cubic-bezier(.2,.8,.3,1),box-shadow .35s,border-color .35s; }
.event-card:before { content:""; position:absolute; z-index:4; inset:0; pointer-events:none; border-radius:inherit; opacity:0; box-shadow:inset 0 0 0 1px rgba(214,151,62,.7),inset 0 0 45px rgba(214,151,62,.12); transition:opacity .35s; }
.event-card:hover { z-index:2; transform:translateY(-9px) scale(1.018); border-color:#c5d7ce; box-shadow:0 25px 55px rgba(26,63,54,.18); }
.event-card:hover:before { opacity:1; }
.event-card.motion-pending { opacity:0; filter:blur(10px); clip-path:inset(18% 8% 0 8% round 22px); transform:translateY(70px) rotateX(13deg) rotateY(var(--card-tilt,0deg)) scale(.9); }
.event-card.motion-visible { animation:event-card-reveal .95s cubic-bezier(.16,.86,.25,1) both; animation-delay:var(--motion-delay,0ms); }
.event-card.filter-enter { animation:event-filter-enter .72s cubic-bezier(.15,.9,.25,1) both; animation-delay:var(--motion-delay,0ms); }
.poster { width:100%; height:auto; aspect-ratio:3/4; position:relative; overflow:hidden; background:#e8ece8; }
.poster:after { content:""; position:absolute; z-index:1; inset:-30% auto -30% -55%; width:35%; pointer-events:none; opacity:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent); transform:skewX(-18deg); }
.event-card.motion-visible .poster:after,.event-card.filter-enter .poster:after { animation:poster-light-sweep .8s ease .16s both; }
.poster-link { width:100%; height:100%; display:block; }
.poster-link:focus-visible,.event-body h3 a:focus-visible { outline:3px solid var(--gold); outline-offset:-3px; }
.poster img { width:100%; height:100%; object-fit:contain; transition:transform .35s; }
.event-card:hover .poster img { transform:scale(1.035); }
.event-card.motion-visible .poster img,.event-card.filter-enter .poster img { animation:poster-cinematic-in 1.05s cubic-bezier(.2,.8,.3,1) both; }
.status,.featured,.multiple-dates { position:absolute; z-index:2; top:12px; left:12px; padding:6px 9px; border-radius:6px; color:white; background:var(--green); font-size:10px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.status.today,.status.live { background:#d96835; }.status.soon { background:#ce9036; }.status.past { background:#64716e; }
.multiple-dates { top:46px; background:#d6973e; }
.featured { top:auto; bottom:12px; background:#fff8; color:var(--ink); backdrop-filter:blur(8px); }
.poster button { position:absolute; z-index:3; right:12px; top:12px; width:38px; height:38px; display:grid; place-items:center; border:0; border-radius:50%; background:#fffc; color:var(--ink); box-shadow:0 3px 12px #102e2920; cursor:pointer; font-size:22px; line-height:1; transition:transform .2s,background .2s,color .2s; }
.poster button:hover { transform:scale(1.08); }
.poster button.saved { background:#fff; color:#d84f45; }
.poster button.heart-pop { animation:heart-pop .48s ease; }
.event-card.motion-visible .status,.event-card.filter-enter .status { animation:badge-drop .65s cubic-bezier(.18,.9,.25,1.35) .38s both; }
.event-card.motion-visible .multiple-dates,.event-card.filter-enter .multiple-dates { animation:badge-drop .65s cubic-bezier(.18,.9,.25,1.35) .5s both; }
@keyframes heart-pop { 0%{transform:scale(1)} 35%{transform:scale(1.42) rotate(-8deg)} 65%{transform:scale(.9) rotate(5deg)} 100%{transform:scale(1)} }
@keyframes hero-copy-arrive { from{opacity:0;transform:translateX(-35px);letter-spacing:.28em} to{opacity:1;transform:none} }
@keyframes hero-title-arrive { 0%{opacity:0;filter:blur(9px);transform:translateY(34px) scale(.96)} 68%{opacity:1;filter:blur(0);transform:translateY(-3px) scale(1.006)} 100%{opacity:1;filter:blur(0);transform:none} }
@keyframes hero-line-draw { from{transform:scaleX(0);opacity:0} to{transform:scaleX(1);opacity:1} }
@keyframes today-card-arrive { 0%{opacity:0;filter:blur(8px);transform:translateX(55px) rotate(3deg) scale(.93)} 75%{opacity:1;filter:blur(0);transform:translateX(-5px) rotate(-.5deg) scale(1.01)} 100%{opacity:1;filter:blur(0);transform:none} }
@keyframes today-card-float { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-7px) rotate(.35deg)} }
@keyframes finder-arrive { from{opacity:0;transform:translateY(26px) scale(.97)} to{opacity:1;transform:none} }
@keyframes event-card-reveal { 0%{opacity:0;filter:blur(10px);clip-path:inset(18% 8% 0 8% round 22px);transform:translateY(70px) rotateX(13deg) rotateY(var(--card-tilt,0deg)) scale(.9)} 68%{opacity:1;filter:blur(0);clip-path:inset(0 round 14px);transform:translateY(-8px) rotateX(-1.5deg) rotateY(0) scale(1.012)} 100%{opacity:1;filter:blur(0);clip-path:inset(0 round 14px);transform:none} }
@keyframes event-filter-enter { 0%{opacity:0;filter:blur(7px);clip-path:inset(0 48% 0 48% round 14px);transform:translateY(30px) rotateY(var(--card-tilt,0deg)) scale(.9)} 72%{opacity:1;filter:blur(0);clip-path:inset(0 round 14px);transform:translateY(-6px) rotateY(0) scale(1.012)} 100%{opacity:1;filter:blur(0);clip-path:inset(0 round 14px);transform:none} }
@keyframes filter-button-pop { 0%{transform:scale(.94)} 65%{transform:scale(1.045)} 100%{transform:scale(1)} }
@keyframes poster-light-sweep { 0%{left:-55%;opacity:0} 24%{opacity:.75} 100%{left:125%;opacity:0} }
@keyframes poster-cinematic-in { 0%{filter:saturate(.45) brightness(.82);transform:scale(1.14)} 100%{filter:none;transform:scale(1)} }
@keyframes badge-drop { 0%{opacity:0;transform:translateY(-22px) scale(.72) rotate(-5deg)} 100%{opacity:1;transform:none} }
@keyframes scene-rise { 0%{opacity:0;filter:blur(7px);transform:translateY(42px) scale(.97)} 72%{opacity:1;filter:blur(0);transform:translateY(-4px) scale(1.004)} 100%{opacity:1;filter:blur(0);transform:none} }
@keyframes weekend-glow { 0%,100%{background-position:0 50%;box-shadow:0 12px 35px rgba(23,79,66,.08)} 50%{background-position:100% 50%;box-shadow:0 20px 55px rgba(23,79,66,.28)} }
@keyframes news-image-in { from{filter:blur(6px);transform:scale(1.1)} to{filter:blur(0);transform:scale(1)} }
.event-body { padding:18px; }
.category { margin:0 0 7px; color:var(--green); font:700 10px var(--font-mono); text-transform:uppercase; letter-spacing:.1em; }
.event-body h3 { min-height:48px; margin:0 0 5px; font:600 21px/1.15 Georgia,serif; }
.place { margin:0; min-height:40px; color:var(--muted); font-size:12px; line-height:1.45; }
.next-date { margin:10px 0 0; padding:8px 10px; border-radius:7px; background:#fff5df; color:#8a5d1d; font-size:11px; line-height:1.4; }
.event-meta { display:grid; grid-template-columns:1fr 1fr; margin-top:14px; padding-top:13px; border-top:1px solid #edf0ed; }
.event-meta.single { grid-template-columns:1fr; }
.event-meta div+div { padding-left:14px; border-left:1px solid #edf0ed; }
.event-meta small { display:block; color:#87958f; font-size:9px; text-transform:uppercase; letter-spacing:.08em; }
.event-meta b { font-size:12px; }
.countdown { margin:13px 0 0; color:var(--green); font-size:11px; font-weight:750; }
.empty { padding:40px; text-align:center; background:var(--cream); border-radius:12px; color:var(--muted); }
.weekend-strip { max-width:1144px; margin:15px auto; padding:38px 42px; display:flex; justify-content:space-between; align-items:center; gap:30px; color:white; background:linear-gradient(110deg,#174f42,#2d8168,#174f42); background-size:180% 180%; border-radius:18px; }
.weekend-strip.scene-visible { animation:scene-rise .85s cubic-bezier(.16,.84,.25,1) both,weekend-glow 7s ease-in-out 1s infinite; }
.weekend-strip p:not(.eyebrow) { margin:12px 0 0; color:#cfe0da; }
.weekend-strip .eyebrow { color:#d9b571; }
.weekend-stats { display:flex; align-items:center; gap:28px; }
.weekend-stats span { color:#cfe0da; font-size:11px; text-transform:uppercase; }
.weekend-stats b { display:block; color:white; font:600 28px Georgia; }
.weekend-stats a { padding:12px 16px; border-radius:9px; color:var(--ink); background:#fff; font-weight:750; font-size:12px; }
.news-section { padding-top:76px; }
.section-heading>div>p:last-child { margin:8px 0 0; max-width:600px; color:var(--muted); font-size:13px; }
.news-grid { display:grid; grid-template-columns:1.3fr .85fr .85fr; gap:18px; }
.news-card { overflow:hidden; background:white; border:1px solid var(--line); border-radius:13px; }
.section-heading.scene-pending,.weekend-strip.scene-pending,.news-card.scene-pending { opacity:0; transform:translateY(38px); }
.section-heading.scene-visible,.news-card.scene-visible { animation:scene-rise .78s cubic-bezier(.16,.84,.25,1) both; animation-delay:var(--scene-delay,0ms); }
.news-card img { width:100%; height:150px; object-fit:cover; }
.news-card.scene-visible img { animation:news-image-in 1s cubic-bezier(.2,.8,.3,1) both; }
.news-card.lead img { height:230px; }
.news-card div { padding:17px; }
.news-card span { color:var(--green); font:650 9px var(--font-mono); text-transform:uppercase; }
.news-card h3 { margin:8px 0; font:600 19px/1.2 Georgia,serif; }
.news-card.lead h3 { font-size:25px; }
.news-card p { color:var(--muted); font-size:12px; line-height:1.55; }
.news-card b { color:var(--green); font-size:11px; }
.source-note { display:flex; align-items:center; gap:14px; margin-top:18px; padding:15px 18px; background:var(--mint); border-radius:10px; color:var(--forest); }
.source-note>span { font-size:24px; }.source-note b { font-size:12px; }.source-note p { margin:3px 0 0; font-size:11px; color:#55716a; }
footer { padding:48px max(28px,calc((100vw - 1144px)/2)); background:#102e29; color:white; display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:center; }
.footer-brand { font-size:14px; }.footer-brand .brand-mark { background:#fff; }
footer>p { color:#a8c0b9; font-size:13px; text-align:right; } footer>div:not(.brand) { display:flex; gap:20px; align-items:center; font-size:14px; } footer small { text-align:right; color:#809d95; }
footer button { padding:0; border:0; background:transparent; color:inherit; font:inherit; cursor:pointer; }
footer a:hover,footer button:hover { color:#d9b571; }
.cookie-banner { position:fixed; z-index:1000; left:50%; bottom:18px; width:min(920px,calc(100% - 32px)); padding:20px 22px; display:flex; align-items:center; justify-content:space-between; gap:24px; transform:translateX(-50%); border:1px solid #ffffff55; border-radius:16px; background:#102e29f5; color:#fff; box-shadow:0 22px 65px #0d292466; backdrop-filter:blur(12px); }
.cookie-banner b { font:600 20px Georgia,serif; }
.cookie-banner p { max-width:620px; margin:7px 0; color:#c8d9d4; font-size:12px; line-height:1.55; }
.cookie-banner a { color:#e6bd78; font-size:11px; font-weight:750; text-decoration:underline; }
.cookie-actions { display:flex; flex:0 0 auto; gap:8px; }
.cookie-actions button { padding:10px 13px; border:1px solid #ffffff55; border-radius:8px; background:transparent; color:#fff; cursor:pointer; font-size:11px; font-weight:750; }
.cookie-actions button.primary { border-color:#fff; background:#fff; color:var(--forest); }
.site-toast { position:fixed; z-index:1100; left:50%; bottom:28px; padding:12px 17px; transform:translate(-50%,25px); border-radius:100px; background:#102e29; color:#fff; box-shadow:0 12px 35px #102e2945; font-size:12px; font-weight:750; opacity:0; pointer-events:none; transition:.25s; }
.site-toast.visible { transform:translate(-50%,0); opacity:1; }
.article-page { min-height:100vh; background:var(--cream); }
.article-shell { max-width:820px; margin:auto; padding:64px 28px 90px; }
.back-link { display:inline-block; margin-bottom:28px; color:var(--green); font-size:13px; font-weight:700; }
.article-shell .eyebrow { margin-bottom:12px; }.article-shell h1 { margin:0; font:600 clamp(38px,6vw,62px)/1.03 Georgia,serif; letter-spacing:-.035em; }
.article-meta { margin:18px 0 32px; color:var(--muted); font-size:13px; }.article-hero { width:100%; height:430px; object-fit:cover; border-radius:16px; }
.event-article .article-shell { max-width:880px; }
.event-article .article-shell>h1 { margin-bottom:32px; }
.event-article .event-poster { width:min(100%,720px); height:auto; aspect-ratio:3/4; display:block; margin-inline:auto; object-fit:contain; background:#e8ece8; }
.event-actions { width:min(100%,720px); margin:14px auto 0; display:flex; justify-content:flex-end; }
.event-actions button { padding:11px 15px; border:1px solid var(--line); border-radius:9px; background:#fff; color:var(--forest); font-weight:750; cursor:pointer; box-shadow:0 5px 16px #102e290d; }
.event-actions button:hover { border-color:var(--green); background:var(--mint); }
.occurrence-panel { width:min(100%,720px); margin:28px auto 0; padding:22px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.occurrence-panel h2 { margin:0 0 15px; font:600 25px Georgia,serif; }
.occurrence-panel>div { display:grid; grid-template-columns:repeat(2,1fr); gap:9px; }
.occurrence-panel article { position:relative; padding:12px 13px; border:1px solid var(--line); border-radius:9px; background:#fafbf9; }
.occurrence-panel article.next-occurrence { border-color:#d6973e; background:#fff8e9; }
.occurrence-panel b,.occurrence-panel span { display:block; }.occurrence-panel b { font-size:13px; }.occurrence-panel span { margin-top:4px; color:var(--muted); font-size:11px; }
.occurrence-panel small { display:inline-block; margin-top:7px; padding:4px 7px; border-radius:100px; background:#d6973e; color:#fff; font-size:9px; font-weight:800; text-transform:uppercase; }
.article-content { max-width:680px; margin:36px auto 0; font:17px/1.8 Georgia,serif; color:#334c46; }.article-content h2 { font:600 28px Georgia; color:var(--ink); }
.canonical-note { margin-top:36px; padding:18px; border-left:3px solid var(--gold); background:white; font:13px/1.55 var(--font-sans); color:var(--muted); }.canonical-note b { color:var(--ink); }
.imported-content img { max-width:100%; height:auto; border-radius:12px; }
.imported-content a { color:var(--green); text-decoration:underline; text-underline-offset:3px; }
.article-source { margin-top:42px!important; padding-top:20px; border-top:1px solid var(--line); font-family:Inter,"Segoe UI",Arial,sans-serif; font-size:14px; font-weight:800; }
.article-source a { display:inline-flex; padding:11px 15px; border-radius:9px; background:var(--forest); color:#fff!important; text-decoration:none!important; }
.legal-page .article-shell { max-width:900px; }
.legal-page .article-content { max-width:760px; }
.legal-page .article-content h2 { margin-top:36px; }
.legal-page .article-content li { margin:8px 0; }
.listing-page { min-height:70vh; background:var(--cream); }
.listing-page .section-heading h1 { margin:0; font:600 clamp(38px,6vw,58px)/1.03 Georgia,serif; letter-spacing:-.035em; }
.news-list { display:grid; gap:16px; }
.news-row { display:grid; grid-template-columns:240px 1fr; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:14px; transition:.2s; }
.news-row:hover { transform:translateY(-2px); box-shadow:0 12px 28px rgba(26,63,54,.08); }
.news-row img { width:100%; height:100%; min-height:190px; object-fit:cover; }
.news-row>div { padding:24px; }
.news-row span { color:var(--green); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.news-row h2 { margin:8px 0; font:600 26px/1.15 Georgia,serif; }
.news-row p { color:var(--muted); line-height:1.55; }
.news-row b { color:var(--green); font-size:12px; }
.inline-button { display:inline-block; margin-top:20px; }
.form-page { min-height:80vh; background:linear-gradient(180deg,#edf4ef 0,#fbfcfa 420px); }
.form-hero { max-width:820px; margin:auto; padding:70px 28px 36px; text-align:center; }
.form-hero h1 { margin:0; font:600 clamp(42px,7vw,66px)/1 Georgia,serif; letter-spacing:-.04em; }
.form-hero>p:last-child { max-width:650px; margin:20px auto 0; color:var(--muted); line-height:1.65; }
.form-shell { max-width:900px; margin:auto; padding:20px 28px 90px; }
.event-form { display:grid; gap:20px; }
.event-form fieldset { margin:0; padding:28px; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 12px 32px rgba(26,63,54,.055); }
.event-form legend { padding:0 10px; font:600 24px Georgia,serif; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-grid label { display:grid; gap:7px; color:#455d57; font-size:12px; font-weight:700; }
.form-grid label small { color:var(--muted); font-size:11px; font-weight:400; line-height:1.45; }
.form-grid input,.form-grid select,.form-grid textarea { width:100%; padding:12px 13px; border:1px solid var(--line); border-radius:9px; background:#fbfcfa; color:var(--ink); outline:0; }
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(38,116,95,.1); }
.form-grid textarea { resize:vertical; line-height:1.55; }
.span-2 { grid-column:1/-1; }
.upload-field { padding:18px; border:1px dashed #b8c9c2; border-radius:10px; background:var(--mint); }
.upload-field small { color:var(--muted); font-weight:400; }
.checkbox-label { display:flex!important; grid-template-columns:auto 1fr!important; align-items:start; }
.checkbox-label input { width:18px; margin-top:1px; }
.checkbox-label a { color:var(--green); text-decoration:underline; text-underline-offset:2px; }
.submission-guidance { padding:20px 22px; border:1px solid #cbded5; border-radius:13px; background:var(--mint); color:#375a50; }
.submission-guidance b { color:var(--forest); font:600 20px Georgia,serif; }
.submission-guidance p { margin:8px 0 0; font-size:13px; line-height:1.6; }
.contact-privacy { margin:0; padding:13px 15px; border-radius:9px; background:#f1f6f3; color:var(--muted); font-size:12px; line-height:1.55; }
.multi-date-editor { padding:18px; border:1px solid var(--line); border-radius:12px; background:#fafbf9; }
.multi-date-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.multi-date-heading b,.multi-date-heading small { display:block; }.multi-date-heading small { margin-top:4px; color:var(--muted); font-size:11px; font-weight:400; }
.multi-date-heading button { padding:9px 12px; border:0; border-radius:8px; background:var(--forest); color:#fff; font-size:11px; font-weight:800; cursor:pointer; }
.additional-date-row { display:grid; grid-template-columns:1.2fr 1fr 1fr auto; gap:10px; align-items:end; margin-top:12px; padding-top:12px; border-top:1px solid var(--line); }
.additional-date-row label { display:grid; gap:6px; color:#4a625c; font-size:11px; font-weight:700; }
.additional-date-row button { width:38px; height:38px; border:0; border-radius:8px; background:#fff0ed; color:#a24335; font-size:20px; cursor:pointer; }
.form-submit { justify-self:end; padding:14px 20px; border:0; border-radius:10px; background:var(--forest); color:#fff; font-weight:800; cursor:pointer; }
.form-errors { margin-bottom:20px; padding:18px; border-radius:10px; background:#fff0ed; color:#8f3f32; }
.form-errors ul { margin-bottom:0; }
.form-success { padding:55px 30px; text-align:center; background:#fff; border:1px solid var(--line); border-radius:16px; }
.form-success>span { width:55px; height:55px; margin:auto; display:grid; place-items:center; border-radius:50%; background:var(--mint); color:var(--green); font-size:26px; }
.form-success h2 { margin:18px 0 8px; font:600 34px Georgia,serif; }
.form-success p { color:var(--muted); }
[hidden] { display:none!important; }
@media (max-width:850px) { nav { display:none; }.hero { grid-template-columns:1fr; gap:30px; }.finder { margin:-18px 18px 0; grid-template-columns:1fr; }.event-grid { grid-template-columns:repeat(2,1fr); }.weekend-strip { margin:15px 18px; }.weekend-stats { flex-wrap:wrap; }.news-grid { grid-template-columns:1fr 1fr; }.news-card.lead { grid-column:span 2; } }
@media (max-width:560px) { .site-header { padding:0 18px; }.submit-button { padding:10px; font-size:0; }.submit-button:first-letter { font-size:16px; }.hero { padding:45px 20px 58px; }.hero h1 { font-size:48px; }.today-card { grid-template-columns:82px 1fr; padding:14px; }.content-section { padding:58px 18px; }.section-heading { align-items:start; flex-direction:column; }.section-heading h2 { font-size:30px; }.section-tools { width:100%; align-items:flex-start; flex-direction:column; }.event-grid { grid-template-columns:1fr; }.weekend-strip { padding:28px 24px; flex-direction:column; align-items:start; }.news-grid { grid-template-columns:1fr; }.news-card.lead { grid-column:auto; }.news-card.lead img { height:190px; }.news-row { grid-template-columns:1fr; }.news-row img { height:190px; min-height:0; }.form-grid { grid-template-columns:1fr; }.span-2 { grid-column:auto; }.event-form fieldset { padding:20px 16px; }.multi-date-heading { align-items:flex-start; flex-direction:column; }.additional-date-row { grid-template-columns:1fr 1fr; }.additional-date-row label:first-child { grid-column:1/-1; } footer { grid-template-columns:1fr; } footer>p,footer small { text-align:left; }.article-hero { height:260px; }.event-article .event-poster { height:auto; }.cookie-banner { bottom:10px; padding:18px; align-items:stretch; flex-direction:column; }.cookie-actions { display:grid; grid-template-columns:1fr 1fr; }.cookie-actions button { width:100%; } }
@media (max-width:560px) { .occurrence-panel>div { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; animation:none!important; }.event-card.motion-pending,.section-heading.scene-pending,.weekend-strip.scene-pending,.news-card.scene-pending { opacity:1; filter:none; clip-path:none; transform:none; } }
