@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@700;800;900&family=Source+Sans+3:wght@400;500;600;700&display=swap');:root{--flag-cut:polygon(0 0,100% 0,100% 65%,95% 65%,92% 100%,89% 65%,83% 65%,80% 100%,77% 65%,71% 65%,68% 100%,65% 65%,59% 65%,56% 100%,53% 65%,47% 65%,44% 100%,41% 65%,35% 65%,32% 100%,29% 65%,23% 65%,20% 100%,17% 65%,11% 65%,8% 100%,5% 65%,0 65%);--color-magenta:#E6007E;--color-orange:#FF6B1A;--color-yellow:#FFC93C;--color-teal:#00A6A6;--color-navy:#2B2D8C;--color-cream:#FFF8EC;--color-white:#FFFFFF;--color-ink:#20224F;--color-muted:#565878;--color-border:#E7E2D9;--color-surface-soft:#F7F5F1;--color-info-bg:#E7F5F3;--color-past-bg:#F0EFFB;--color-focus:#006F73;--status-free-bg:#FFF0C2;--status-free-ink:#4C3900;--status-family-bg:#E7F5F3;--status-family-ink:#124C4C;--status-market-bg:#FCE8F2;--status-market-ink:#6C1646;--status-cancelled-bg:#FFF0F0;--status-cancelled-ink:#751829;--status-past-bg:#F0EFFB;--status-past-ink:#34356B;--font-heading:'Nunito','Trebuchet MS',system-ui,sans-serif;--font-body:'Source Sans 3','Segoe UI',system-ui,sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:clamp(1.875rem,4vw,2.75rem);--text-4xl:clamp(2.25rem,6vw,3.5rem);--line-tight:1.12;--line-normal:1.5;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:.5rem;--radius-md:.875rem;--radius-lg:1.25rem;--radius-pill:999px;--shadow-card:0 4px 18px rgb(43 45 140 / .08);--shadow-raised:0 12px 32px rgb(43 45 140 / .14);--content-width:72rem;--page-gutter:clamp(1rem,4vw,2rem)}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--color-ink);background:var(--color-cream);font:400 var(--text-base)/var(--line-normal) var(--font-body);text-rendering:optimizeLegibility}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}button,select{cursor:pointer}:where(h1,h2,h3,h4,.display,.brand-wordmark){margin:0;color:var(--color-navy);font-family:var(--font-heading);font-weight:800;line-height:var(--line-tight)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-xl)}p{margin:0 0 var(--space-4)}a{color:var(--color-navy);text-underline-offset:.18em}a:hover{color:var(--color-focus)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px;border-radius:3px}::selection{color:var(--color-navy);background:#FFD9EB}.container{width:min(100% - 2 * var(--page-gutter),var(--content-width));margin-inline:auto}.stack>* + *{margin-block-start:var(--space-4)}.section{padding-block:var(--space-8)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.section-heading p{margin:var(--space-2) 0 0;color:var(--color-muted)}.papel-divider{position:relative;height:16px;margin-block:var(--space-8);border-top:2px dashed rgb(43 45 140 / .22)}.papel-divider::before{content:'';position:absolute;inset:-2px 0 auto;height:14px;background:repeating-linear-gradient(90deg,var(--color-magenta) 0 26px,transparent 26px 34px,var(--color-orange) 34px 60px,transparent 60px 68px,var(--color-yellow) 68px 94px,transparent 94px 102px,var(--color-teal) 102px 128px,transparent 128px 136px);opacity:.85;clip-path:var(--flag-cut)}.site-header{position:relative;z-index:20;background:var(--color-white);box-shadow:0 2px 12px rgb(43 45 140 / .06)}.site-header::after{content:'';display:block;height:11px;background:repeating-linear-gradient(90deg,var(--color-magenta) 0 24px,transparent 24px 30px,var(--color-orange) 30px 54px,transparent 54px 60px,var(--color-yellow) 60px 84px,transparent 84px 90px,var(--color-teal) 90px 114px,transparent 114px 120px);clip-path:var(--flag-cut)}.header-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-3)}.brand{display:inline-flex;align-items:center;gap:var(--space-2);color:inherit;text-decoration:none}.brand:hover{color:inherit}.brand-mark{display:block;width:min(58vw,255px);height:auto;flex:none}.brand-wordmark{display:block;font-size:clamp(1.15rem,3vw,1.65rem);font-weight:900;letter-spacing:-.045em;white-space:nowrap}.brand-wordmark .brand-rgv{color:var(--color-magenta)}.primary-nav{display:none;align-items:center;gap:clamp(1rem,2.2vw,2rem)}.primary-nav a{font-weight:700;text-decoration:none}.header-actions{display:flex;align-items:center;gap:var(--space-3)}.menu-toggle{display:inline-grid;place-items:center;width:44px;height:44px;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-navy);background:var(--color-white);font-size:1.35rem}.mobile-menu{position:relative}.mobile-menu summary{display:grid;place-items:center;width:44px;height:44px;list-style:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-navy);font-size:0}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary::before{content:'☰';font-size:1.35rem}.mobile-menu[open] summary::before{content:'×';font-size:1.6rem}.mobile-menu nav{position:absolute;top:calc(100% + .75rem);right:0;min-width:15rem;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-white);box-shadow:var(--shadow-raised)}.mobile-menu nav a{display:block;padding:var(--space-3);border-radius:var(--radius-sm);font-weight:700;text-decoration:none}.mobile-menu nav a:hover{background:var(--color-surface-soft)}.button,button.button,input[type='submit']{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:46px;padding:.7rem 1.15rem;border:2px solid transparent;border-radius:var(--radius-pill);color:var(--color-white);background:var(--color-navy);font-weight:800;text-align:center;text-decoration:none;line-height:1.15;transition:transform .15s ease,background-color .15s ease,box-shadow .15s ease}.button:hover,input[type='submit']:hover{color:var(--color-white);background:#1D1F69;box-shadow:var(--shadow-card);transform:translateY(-1px)}.button--secondary{color:var(--color-navy);border-color:var(--color-navy);background:var(--color-white)}.button--secondary:hover{color:var(--color-navy);background:#F0EFFB}.button--accent{color:#28151F;background:var(--color-yellow)}.button--accent:hover{color:#28151F;background:#F3B91F}.button--ghost{min-height:40px;padding-inline:.7rem;color:var(--color-navy);border-color:transparent;background:transparent}.button--ghost:hover{color:var(--color-navy);background:var(--color-past-bg);box-shadow:none}.button--small{min-height:38px;padding:.5rem .9rem;font-size:var(--text-sm)}.text-link{display:inline-flex;gap:var(--space-2);align-items:center;font-weight:700}.featured-banner{position:relative;overflow:hidden;padding:var(--space-6);border-radius:var(--radius-lg);color:var(--color-ink);background:linear-gradient(115deg,#FFF0C2 0%,#FFF8EC 56%,#FCE8F2 100%);box-shadow:var(--shadow-card)}.featured-banner::after{content:'';position:absolute;width:11rem;height:11rem;right:-3rem;top:-5rem;border:18px solid rgb(230 0 126 / .13);border-radius:50%;pointer-events:none}.eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-navy);font-size:var(--text-sm);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.featured-banner .eyebrow::before{content:'★';color:var(--color-magenta);font-size:1.1rem}.featured-banner h2{max-width:18ch;margin-block:var(--space-3);font-size:clamp(1.6rem,4vw,2.35rem)}.featured-meta{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);margin:0 0 var(--space-5);font-weight:700}.featured-content{position:relative;z-index:1;max-width:50rem}.week-strip{display:grid;grid-auto-columns:minmax(4.25rem,1fr);grid-auto-flow:column;gap:var(--space-2);overflow-x:auto;padding:2px 2px var(--space-3);scroll-snap-type:x mandatory;scrollbar-width:thin}.day-tab{display:grid;place-content:center;gap:2px;min-height:68px;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-navy);background:var(--color-white);font-weight:700;line-height:1.15;text-align:center;text-decoration:none;scroll-snap-align:start}.day-tab small{color:var(--color-muted);font-size:var(--text-xs);font-weight:600}.day-tab[aria-current='date'],.day-tab.is-active{color:var(--color-white);border-color:var(--color-navy);background:var(--color-navy);box-shadow:var(--shadow-card)}.day-tab[aria-current='date'] small,.day-tab.is-active small{color:#EEEFFF}.day-tab:hover:not(.is-active):not([aria-current='date']){border-color:var(--color-teal);background:var(--color-info-bg)}.filter-bar{display:grid;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-white);box-shadow:var(--shadow-card)}.filter-bar__fields{display:grid;grid-template-columns:1fr;gap:var(--space-3)}.filter-bar label,.field label,.field legend{display:block;margin-bottom:var(--space-1);color:var(--color-ink);font-size:var(--text-sm);font-weight:700}.filter-bar input:not([type='checkbox']),.filter-bar select{min-height:44px}.filter-disclosure{border:0}.filter-disclosure>summary{display:flex;justify-content:space-between;align-items:center;min-height:44px;color:var(--color-navy);font-weight:800;cursor:pointer}.filter-disclosure>summary::marker{color:var(--color-magenta)}.filter-disclosure[open] .filter-bar__fields{padding-top:var(--space-3)}.toggle-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.toggle{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-white);font-weight:700}.toggle input{width:1.15rem;height:1.15rem;accent-color:var(--color-navy)}.field{min-width:0}.field input,.field select,.field textarea,.filter-bar input:not([type='checkbox']),.filter-bar select{width:100%;min-height:48px;padding:.65rem .8rem;border:1px solid #77788F;border-radius:var(--radius-sm);color:var(--color-ink);background:var(--color-white)}.field textarea{min-height:8rem;resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#66677E;opacity:1}.field input[aria-invalid='true'],.field select[aria-invalid='true'],.field textarea[aria-invalid='true']{border:2px solid var(--color-error)}.help-text{display:block;margin-top:var(--space-1);color:var(--color-muted);font-size:var(--text-sm)}.error-text{display:block;margin-top:var(--space-1);color:var(--color-error);font-size:var(--text-sm);font-weight:700}.form-grid{display:grid;gap:var(--space-4)}.form-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}.notice{padding:var(--space-4);border:1px solid transparent;border-radius:var(--radius-md);font-weight:600}.notice--success{color:#124C34;border-color:#A9D5BD;background:#EAF7EF}.notice--error,.banner--cancelled{color:var(--status-cancelled-ink);border-color:#E8B8C0;background:var(--status-cancelled-bg)}.notice--info{color:#124C4C;border-color:#A6D9D7;background:var(--color-info-bg)}.event-list{display:grid;gap:var(--space-4)}.event-card{display:grid;grid-template-columns:1fr;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-white);box-shadow:var(--shadow-card)}.event-card__image{width:100%;height:12rem;object-fit:cover;background:var(--color-surface-soft)}.event-card__body{min-width:0;padding:var(--space-5)}.event-card__title{margin-bottom:var(--space-2);font-size:var(--text-xl)}.event-card__title a{text-decoration:none}.event-card__title a:hover{text-decoration:underline}.event-card__date,.event-card__venue{margin:0 0 var(--space-2);color:var(--color-muted)}.event-card__date{color:var(--color-ink);font-weight:700}.event-card__footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4)}.badges{display:flex;flex-wrap:wrap;gap:var(--space-2)}.badge{display:inline-flex;align-items:center;min-height:28px;padding:.25rem .65rem;border-radius:var(--radius-pill);color:var(--color-navy);background:var(--color-past-bg);font-size:var(--text-xs);font-weight:800;line-height:1.25}.badge--free{color:var(--status-free-ink);background:var(--status-free-bg)}.badge--family{color:var(--status-family-ink);background:var(--status-family-bg)}.badge--market{color:var(--status-market-ink);background:var(--status-market-bg)}.badge--cancelled{color:var(--status-cancelled-ink);background:var(--status-cancelled-bg)}.badge--past{color:var(--status-past-ink);background:var(--status-past-bg)}.empty-state{padding:var(--space-8) var(--space-5);border:1px dashed #AAA8B7;border-radius:var(--radius-lg);background:var(--color-white);text-align:center}.empty-state h3{margin-bottom:var(--space-2)}.empty-state p{color:var(--color-muted)}.breadcrumbs{margin-block:var(--space-4);color:var(--color-muted);font-size:var(--text-sm)}.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none}.breadcrumbs li + li::before{content:'/';margin-right:var(--space-2);color:#77788F}.page-heading{padding-block:var(--space-5)}.page-heading p{max-width:65ch;margin-top:var(--space-3);color:var(--color-muted);font-size:var(--text-lg)}.event-detail-layout{display:grid;gap:var(--space-6);align-items:start}.event-detail__main,.detail-card,.content-card{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-white);box-shadow:var(--shadow-card)}.event-detail__main>* + *{margin-top:var(--space-5)}.detail-card h2,.content-card h2{margin-bottom:var(--space-3);font-size:var(--text-xl)}.detail-list{display:grid;gap:var(--space-4);margin:0}.detail-list div{display:grid;gap:2px}.detail-list dt{color:var(--color-muted);font-size:var(--text-sm);font-weight:700}.detail-list dd{margin:0;font-weight:600}.calendar-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.banner--past{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);padding:var(--space-4);border:1px solid #C8C7E1;border-radius:var(--radius-md);color:var(--status-past-ink);background:var(--status-past-bg)}.banner--cancelled{margin-bottom:var(--space-5);padding:var(--space-4);border-radius:var(--radius-md);font-weight:700}.more-dates{display:grid;gap:var(--space-2);padding:0;list-style:none}.more-dates a{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface-soft);text-decoration:none}.intro-panel{padding:var(--space-6);border-radius:var(--radius-lg);background:linear-gradient(120deg,#FFF0C2,#FFFFFF 70%)}.intro-panel p{max-width:68ch;margin:var(--space-3) 0 0;color:var(--color-muted);font-size:var(--text-lg)}.page-content-grid{display:grid;gap:var(--space-6)}.newsletter{display:grid;gap:var(--space-4);padding:var(--space-6);border-radius:var(--radius-lg);color:var(--color-white);background:var(--color-navy);box-shadow:var(--shadow-card)}.newsletter h2{color:var(--color-white);font-size:var(--text-2xl)}.newsletter p{margin:var(--space-2) 0 0;color:#EEEFFF}.newsletter form{display:flex;flex-direction:column;gap:var(--space-2)}.newsletter input[type='email']{flex:1;min-width:0;min-height:48px;padding:.65rem .85rem;border:1px solid #DADAF0;border-radius:var(--radius-pill);color:var(--color-ink);background:var(--color-white)}.newsletter .button{color:#28151F;background:var(--color-yellow)}.submit-form{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-white);box-shadow:var(--shadow-card)}.submit-form fieldset{min-width:0;margin:0;padding:0;border:0}.submit-form fieldset + fieldset{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.submit-form legend{width:100%;margin-bottom:var(--space-4);color:var(--color-navy);font:800 var(--text-xl)/var(--line-tight) var(--font-heading)}.checkbox-line{display:flex;align-items:start;gap:var(--space-2)}.checkbox-line input{width:1.2rem;height:1.2rem;margin-top:.2rem;accent-color:var(--color-navy)}.admin-shell{color:var(--color-ink);background:var(--color-surface-soft);min-height:100vh}.admin-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--page-gutter);border-bottom:1px solid var(--color-border);background:var(--color-white)}.admin-table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-white);box-shadow:var(--shadow-card)}.admin-table{width:100%;min-width:44rem;border-collapse:collapse;text-align:left}.admin-table th,.admin-table td{padding:.85rem 1rem;border-bottom:1px solid var(--color-border);vertical-align:middle}.admin-table th{color:var(--color-navy);background:#F0EFFB;font-size:var(--text-sm);font-weight:800}.admin-table tbody tr:hover{background:#FFFCF5}.admin-table tbody tr:last-child td{border-bottom:0}.status-pill{display:inline-flex;align-items:center;padding:.25rem .65rem;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:800}.status-pill--published{color:#124C34;background:#EAF7EF}.status-pill--draft{color:#4C3900;background:#FFF0C2}.status-pill--cancelled{color:var(--status-cancelled-ink);background:var(--status-cancelled-bg)}.admin-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.site-footer{margin-top:var(--space-12);color:#EEEFFF;background:#20215F}.site-footer::before{content:'';display:block;height:12px;background:repeating-linear-gradient(90deg,var(--color-magenta) 0 24px,transparent 24px 30px,var(--color-orange) 30px 54px,transparent 54px 60px,var(--color-yellow) 60px 84px,transparent 84px 90px,var(--color-teal) 90px 114px,transparent 114px 120px);clip-path:var(--flag-cut)}.footer-grid{display:grid;gap:var(--space-6);padding-block:var(--space-8)}.site-footer h2,.site-footer h3{margin-bottom:var(--space-3);color:var(--color-white);font-size:var(--text-lg)}.site-footer p{color:#EEEFFF}.footer-links{display:grid;gap:var(--space-2);padding:0;list-style:none}.site-footer a{color:var(--color-white)}.site-footer a:hover{color:#FFE28B}.footer-newsletter{max-width:28rem}.footer-bottom{padding-block:var(--space-4);border-top:1px solid rgb(255 255 255 / .24);color:#EEEFFF;font-size:var(--text-sm)}.footer-bottom p{margin:0}@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto !important;transition-duration:.01ms !important;animation-duration:.01ms !important}}@media (min-width:40rem){.section{padding-block:var(--space-10)}.filter-bar__fields{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-bar__fields .toggle-row{grid-column:1 / -1}.form-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.event-card{grid-template-columns:12rem 1fr}.event-card__image{width:12rem;height:100%;min-height:11rem}.event-detail-layout{grid-template-columns:minmax(0,1.7fr) minmax(16rem,.8fr)}.newsletter{grid-template-columns:minmax(0,1fr) minmax(18rem,.9fr);align-items:center}.newsletter form{flex-direction:row}.footer-grid{grid-template-columns:1fr 1fr}}@media (min-width:56rem){.primary-nav{display:flex}.mobile-menu{display:none}.filter-bar{position:static}.filter-bar__fields{grid-template-columns:1.1fr 1.1fr 1fr;align-items:end}.filter-bar__fields .toggle-row{grid-column:1 / -1}.week-strip{grid-auto-columns:1fr;overflow:visible}.day-tab{min-height:76px}.footer-grid{grid-template-columns:1.2fr .8fr 1fr}.page-content-grid{grid-template-columns:minmax(0,1fr) 18rem}}@media (max-width:55.999rem){.filter-bar{position:sticky;top:0;z-index:10;max-height:min(78vh,42rem);overflow:auto}.week-strip{margin-inline:calc(-1 * var(--page-gutter));padding-inline:var(--page-gutter)}}

/* ===== RGV This Week bridge: old token names mapped to package tokens ===== */
:root{--navy:var(--color-navy);--pink:var(--color-magenta);--orange:var(--color-orange);--yellow:var(--color-yellow);--teal:var(--color-teal);--paper:var(--color-white);--line:var(--color-border);--muted:var(--color-muted);--r:var(--radius-md);--shadow:var(--shadow-card)}
.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}
.small{font-size:.88rem}
.page-main{padding-block:var(--space-6) var(--space-12)}
.crumbs{padding-top:var(--space-4)}
.brand-mark{height:36px;width:auto}
.event-list{list-style:none;padding:0;margin:0}
.event-list>li{list-style:none}
.event-card__venue{font-style:normal}
.event-card__venue a{color:inherit}
.badge--featured{background:var(--color-yellow);color:var(--color-ink)}
a.badge{text-decoration:none}
.badges{margin:0}
.feat-more{list-style:none;padding:0;margin:var(--space-3) 0 0;font-size:var(--text-sm)}
.feat-more a{color:inherit}
.day-tab{position:relative;text-decoration:none}
.ws-count{position:absolute;top:4px;right:6px;font-style:normal;font-size:.7rem;font-weight:800;line-height:1;opacity:.75}
.day{scroll-margin-top:var(--space-6)}
.empty-state p{margin:0}
.city-links ul{margin-top:var(--space-3)}
.banner--past p,.banner--cancelled p{margin:.2rem 0}
.banner--past,.banner--cancelled{display:block}
.detail-list address{font-style:normal}
.button--danger{background:var(--status-cancelled-ink);color:#fff;border-color:var(--status-cancelled-ink)}
.admin-nav{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-3);margin:0;padding:0;align-items:center}
.admin-nav a,.linkish{color:var(--color-navy);font-weight:700}
body.admin .site-header .header-inner{flex-wrap:wrap}
/* legacy helpers kept for forms, admin and repeat rules (restyled by tokens) */
.form{display:grid;gap:.9rem}
.form label{display:flex;flex-direction:column;gap:.25rem;font-weight:700;font-size:.92rem}
.form label.check,.form label.radio,.form label.chip{flex-direction:row;align-items:center;gap:.5rem;font-weight:600}
.form fieldset{border:1px solid var(--line);border-radius:12px;padding:.9rem;margin:0;display:grid;gap:.8rem}
.form legend{font-weight:800;padding:0 .4rem;color:var(--pink)}
.row{display:grid;gap:.75rem}
@media(min-width:600px){.row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end}}
.radios{display:grid;gap:.4rem}
.label{font-weight:700;font-size:.92rem;margin:0 0 .3rem}
.req{font-size:.72rem;font-weight:700;color:var(--pink);text-transform:uppercase;margin-left:.3rem}
.hint{font-size:.88rem;color:var(--muted);margin:0}
.hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
.alert{border-radius:10px;padding:.7rem 1rem;background:#fff3c7;border-left:5px solid var(--yellow)}
.alert.error{background:#ffe0ef;border-left-color:var(--pink)}.alert.ok{background:#d7f3f3;border-left-color:var(--teal)}
.alert ul{margin:.25rem 0 0;padding-left:1.2rem}
/* repeat picker: show only the parts for the chosen kind (no JS) */
.when-weekly,.when-monthly,.when-repeat,.when-custom{display:none}
.repeat:has(input[value=weekly]:checked) .when-weekly,.repeat:has(input[value=monthly]:checked) .when-monthly,.repeat:has(input[value=custom]:checked) .when-custom{display:grid;gap:.4rem}
.repeat:has(input[value=weekly]:checked) .when-repeat,.repeat:has(input[value=monthly]:checked) .when-repeat,.repeat:has(input[value=daily]:checked) .when-repeat,.repeat:has(input[value=custom]:checked) .when-repeat{display:grid;gap:.5rem}
fieldset:has(input[name=all_day]:checked) .times{opacity:.4}
.when-new{display:none}.venue:has(input[value=new]:checked) .when-new{display:grid;gap:.6rem}
.venue:has(input[value=new]:checked) .when-existing{display:none}
/* footer */
.site-footer{background:var(--navy);color:#fff;padding:2rem 0 2.5rem;margin-top:auto}
.site-footer a{color:#fff}.site-footer .muted{color:#c8c9ef}
.foot img{filter:brightness(0) invert(1);opacity:.95;height:30px;width:auto;margin-bottom:.5rem}
.foot .nav{margin:.5rem 0 1rem}
/* admin */
.admin-main{padding-top:1rem}
.admin-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.table-wrap{overflow-x:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.admin-table{width:100%;border-collapse:collapse;font-size:.92rem}
.admin-table th,.admin-table td{text-align:left;padding:.6rem .7rem;border-bottom:1px solid var(--line);vertical-align:top}
.admin-table tr.inactive{opacity:.55}
.inst-list{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.inst{border:1px solid var(--line);border-radius:10px;padding:.6rem .7rem;display:grid;gap:.4rem}
.inst.status-cancelled{background:#ffe0ef}
.inst .actions{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.inst .actions form{display:flex;gap:.35rem;align-items:center}
.inst .actions input{min-height:36px;padding:.3rem .45rem;width:auto}
.actions{display:flex;gap:.5rem;flex-wrap:wrap}
.sub-list{list-style:none;padding:0}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:.25rem .8rem;margin:0 0 .75rem}.kv dt{font-weight:700}.kv dd{margin:0}
body.admin .filters{grid-template-columns:1fr 1fr auto}
@media(max-width:600px){body.admin .filters{grid-template-columns:1fr}}
.narrow{max-width:720px;margin-inline:auto}
.muted{color:var(--muted)}.small{font-size:.88rem}.center{text-align:center}
.lead{font-size:1.08rem;color:var(--muted)}
.skip{position:absolute;left:-999px;top:0;background:var(--navy);color:#fff;padding:.5rem 1rem;z-index:10}.skip:focus{left:0}
.linkish{background:none;border:0;font:inherit;font-weight:600;color:var(--navy);cursor:pointer;text-decoration:underline;text-decoration-color:var(--pink);padding:0}
.pill{display:inline-block;margin-left:.4rem;font-size:.72rem;font-weight:700;background:var(--yellow);padding:.05rem .45rem;border-radius:999px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem;box-shadow:var(--shadow);margin-block:1rem}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:0}
.chip{display:inline-flex;align-items:center;gap:.3rem;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:.3rem .75rem;text-decoration:none;font-weight:600;font-size:.9rem}
a.chip:hover{border-color:var(--pink)}
.filters{display:grid;grid-template-columns:1fr 1fr;gap:.6rem .75rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:.9rem;margin-bottom:1rem;align-items:end}
.filters label{display:flex;flex-direction:column;font-size:.8rem;font-weight:700;gap:.2rem}
.filters label.check{flex-direction:row;align-items:center;font-size:.9rem}
.filter-actions{grid-column:1/-1;display:flex;gap:1rem;align-items:center}
@media(min-width:800px){.filters{grid-template-columns:repeat(3,1fr) auto auto auto}.filter-actions{grid-column:auto}}
.day-h{display:flex;align-items:center;gap:.5rem;font-size:1.15rem;border-bottom:2px dashed var(--line);padding-bottom:.35rem;margin-bottom:.75rem}
.day-h::before{content:"";width:12px;height:12px;background:var(--orange);clip-path:polygon(0 0,100% 0,100% 70%,50% 100%,0 70%)}
.day:nth-of-type(4n+2) .day-h::before{background:var(--pink)}.day:nth-of-type(4n+3) .day-h::before{background:var(--teal)}.day:nth-of-type(4n) .day-h::before{background:var(--yellow)}
.form input:not([type=checkbox]):not([type=radio]),.form select,.form textarea,body.admin input:not([type=checkbox]):not([type=radio]),body.admin select,body.admin textarea{width:100%;min-height:44px;padding:.6rem .75rem;border:1px solid #77788F;border-radius:var(--radius-sm);background:#fff;color:var(--color-ink)}
.form textarea{min-height:8rem}
.form legend{font-family:var(--font-heading);color:var(--color-navy)}
.card{border-radius:var(--radius-lg)}
.event-card:not(:has(.event-card__image)){grid-template-columns:1fr}
.site-footer .brand-wordmark{color:#fff}
.event-detail__main h2{font-size:var(--text-xl);margin-bottom:var(--space-2)}

/* Instagram */
.ig-link{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-navy);text-decoration:none;font-weight:700}.ig-link:hover{color:var(--color-magenta)}.ig-link--header{display:grid;place-items:center;width:44px;height:44px;margin-left:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.site-footer .ig-link{color:var(--color-white)}.site-footer .ig-link:hover{color:#FFE28B}.ig-tag{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--status-market-bg);color:var(--status-market-ink);font-weight:600}.ig-tag a{color:var(--color-magenta);font-weight:800}@media (min-width:56rem){.ig-link--header{margin-left:0}}

/* Sticky header (Kyle 10/21) */
:root{--header-h:88px}
.site-header{position:sticky;top:0;z-index:50}
@media (max-width:55.999rem){.filter-bar{top:var(--header-h);z-index:40;max-height:calc(100vh - var(--header-h) - 1rem)}}
.week-strip-wrap,.week-strip.is-sticky{top:var(--header-h)}
html{scroll-padding-top:calc(var(--header-h) + .5rem)}
/* spacing pass: card lists + day groups */
.event-list{display:grid;gap:var(--space-4)}
.event-list>li{margin:0;min-width:0}
.event-list>li>.event-card{height:100%}
.day-h{margin-bottom:var(--space-4)}
.section.day{padding-block:var(--space-5)}
.section.day + .section.day{padding-top:var(--space-3)}
.empty-state{margin-top:0}
@media (min-width:40rem){.event-list{gap:var(--space-5)}.section.day{padding-block:var(--space-6)}.day-h{margin-bottom:var(--space-5)}}
@media (min-width:56rem){.event-list{gap:1.375rem}}

/* hero/filter gap */
.hero + .filter-bar{margin-top:16px}
@media (min-width:56rem){.hero + .filter-bar{margin-top:20px}}

/* featured-spot sales hook */
.featured-promo{display:grid;gap:var(--space-4);align-items:center;padding:var(--space-6);border:2px dashed var(--color-magenta);border-radius:var(--radius-lg);background:linear-gradient(120deg,#FCE8F2,#FFFFFF 75%);box-shadow:var(--shadow-card)}
.featured-promo__title{font-size:var(--text-2xl);margin:var(--space-2) 0}
.featured-promo p{margin:0;color:var(--color-muted)}
.featured-promo--compact{padding:var(--space-5)}
.featured-promo--compact .featured-promo__title{font-size:var(--text-xl);margin-top:0}
.promo-slot{margin-block:var(--space-2) var(--space-4)}
.feature-list{display:grid;gap:var(--space-3);padding-left:1.2rem;margin-bottom:var(--space-6)}
.price-note{padding:var(--space-4);border-radius:var(--radius-md);background:var(--status-free-bg);color:var(--status-free-ink)}
@media (min-width:40rem){.featured-promo{grid-template-columns:1fr auto}}

/* Filter bar scrolls with page on mobile (Kyle 10/21) */
@media (max-width:55.999rem){.filter-bar{position:static;top:auto;max-height:none;overflow:visible}}
