:root { color-scheme: dark; --ink: #edf2f7; --muted: #aab8c9; --ground: #0b1220; --panel: #121d30; --accent: #f5c451; }
* { box-sizing: border-box; }
body { min-height: 100vh; margin: 0; background: radial-gradient(circle at top, #1b3154, var(--ground) 55%); color: var(--ink); font: 16px/1.55 system-ui, sans-serif; }
.site-footer, .page { width: min(1100px, calc(100% - 2rem)); margin: auto; }
.site-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; width: 100%; min-height: 5.1rem; padding: 0 max(1rem, calc((100% - 1100px) / 2)); border-bottom: 1px solid rgba(237,242,247,.12); background: linear-gradient(180deg, rgba(5,13,25,.86), rgba(8,20,38,.5)); box-shadow: 0 1px 0 rgba(255,255,255,.025); }
.brand, .quick-links a { font-weight: 700; color: var(--ink); text-decoration: none; }
.brand { display: inline-flex; align-items: center; gap: .58rem; letter-spacing: -.02em; }
.brand-mark { display: inline-block; width: 1.42rem; height: 1.42rem; border: 2px solid var(--accent); border-radius: 50%; background: #050a12; box-shadow: 0 0 4px rgba(245,196,81,.95), 0 0 15px rgba(245,196,81,.6), inset 0 0 7px rgba(0,0,0,.85); }
.site-header nav { display: flex; gap: .15rem; flex-wrap: wrap; }
.site-header nav a { padding: .45rem .72rem; border-radius: 999px; color: var(--muted); text-decoration: none; transition: color .18s ease, background .18s ease; }
.site-header nav a:hover, .site-header nav a:focus-visible { color: var(--ink); background: rgba(237,242,247,.1); }
.site-header nav a:first-child { color: #fff0bf; background: rgba(245,196,81,.13); }
.page { min-height: calc(100vh - 9rem); max-width: 760px; padding-block: 3rem; }
.eyebrow { color: var(--accent); text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; font-weight: 700; }
.page h1 { font-size: clamp(2.2rem, 7vw, 4.7rem); line-height: 1.05; }
.lead, .source-note { color: var(--muted); }
.site-footer { border-top: 1px solid #2a3a52; color: var(--muted); font-size: .875rem; padding: 1rem 0; }
.finder { position: relative; display: grid; gap: .65rem; margin: 2rem 0; }
.finder label { font-size: 1.25rem; font-weight: 700; }
.finder input, .finder button { border-radius: .45rem; padding: .8rem; font: inherit; }
.finder input { border: 1px solid #66758a; background: #fff; color: #111; }
.finder button { border: 0; background: var(--accent); color: #17120a; font-weight: 700; }
.suggestions { position: relative; z-index: 8; max-height: 17rem; margin: -.15rem 0 0; padding: .35rem; overflow: auto; border: 1px solid rgba(150,177,207,.45); border-radius: .65rem; background: #102039; box-shadow: 0 18px 32px rgba(0,0,0,.42); list-style: none; }
.suggestions[hidden] { display: none; }
.suggestions li + li { border-top: 1px solid rgba(180,201,224,.12); }
.suggestions a { display: block; padding: .65rem .8rem; color: #f3f7fc; font-weight: 700; text-decoration: none; }
.suggestions a:hover, .suggestions a:focus-visible { color: #fff4c8; background: rgba(245,196,81,.12); }
.suggestions__status, .suggestions__empty { padding: .48rem .8rem; color: #b9c8db; font-size: .82rem; }
.suggestions__status { color: #fff0bf; font-weight: 700; letter-spacing: .03em; }
.quick-links { display: flex; gap: 1rem; flex-wrap: wrap; margin: 2rem 0; }
.facts { display: grid; grid-template-columns: minmax(11rem,1fr) 2fr; gap: .35rem 1rem; }
.facts dt { font-weight: 700; }
.facts dd { margin: 0; color: var(--muted); }
.page section { margin-top: 2.5rem; }
.breadcrumbs ol { display: flex; gap: .5rem; list-style: none; margin: 0 0 2rem; padding: 0; color: var(--muted); font-size: .875rem; }
.breadcrumbs li + li::before { content: '/'; margin-right: .5rem; }
.breadcrumbs a { color: inherit; }
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 1rem; top: 1rem; z-index: 3; background: #fff; color: #000; padding: .5rem; }

.home .site-header { position: absolute; z-index: 2; top: 0; left: 0; }
.home .page { width: 100%; max-width: none; min-height: auto; padding: 0; }
.home .page > .eyebrow, .home .page > h1 { display: none; }
.home-hero { position: relative; isolation: isolate; overflow: hidden; min-height: clamp(38rem,78vh,52rem); margin: 0; padding: clamp(10rem,15vw,12rem) 1rem clamp(4.5rem,10vw,8rem); background: #07111e url('/assets/eclipse-hero-v1.png') center/cover no-repeat; }
.home-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(3,10,19,.94) 0%, rgba(3,10,19,.78) 38%, rgba(3,10,19,.22) 72%, rgba(3,10,19,.1) 100%); }
.home-hero__content { width: min(1100px,100%); margin: auto; }
.home-hero__content > * { max-width: 39rem; }
.home-hero h1 { margin: .2rem 0 1rem; font-size: clamp(3.4rem,8vw,6.5rem); line-height: .95; letter-spacing: -.055em; }
.home-hero .lead { max-width: 34rem; color: #d5deec; font-size: clamp(1.1rem,2vw,1.32rem); }
.countdown { max-width: 38rem; margin: 1.7rem 0 1.45rem; padding: 1rem 1.1rem .85rem; border: 1px solid rgba(245,196,81,.35); border-radius: .7rem; background: linear-gradient(110deg, rgba(12,28,50,.86), rgba(8,17,31,.62)); box-shadow: 0 12px 30px rgba(0,0,0,.2); }
.countdown__label { margin: 0 0 .65rem; color: #fff0bf; font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.countdown__units { display: grid; grid-template-columns: repeat(3,1fr); gap: .55rem; }
.countdown__units div { display: grid; gap: .05rem; padding: .38rem .35rem; border-radius: .4rem; background: rgba(0,0,0,.16); text-align: center; }
.countdown__units strong { color: var(--ink); font-size: clamp(1.6rem,3vw,2.2rem); font-variant-numeric: tabular-nums; line-height: 1; }
.countdown__units span { color: var(--muted); font-size: .74rem; }
.countdown__note { margin: .6rem 0 0; color: #c1cede; font-size: .75rem; }
.home-hero .finder { max-width: 38rem; margin: 2.25rem 0 1.25rem; }
.home-hero .finder label { font-size: 1.1rem; }
.home-hero .finder input { box-shadow: 0 12px 32px rgba(0,0,0,.25); }
.home-hero .finder button { cursor: pointer; transition: transform .18s ease, filter .18s ease; }
.home-hero .finder button:hover { filter: brightness(1.06); transform: translateY(-1px); }
.home-hero .quick-links { gap: .6rem; margin: 1.25rem 0; }
.home-hero .quick-links a { padding: .65rem .8rem; border: 1px solid rgba(237,242,247,.3); border-radius: .45rem; background: rgba(8,17,31,.34); }
.home-hero .source-note { color: #c1cede; font-size: .88rem; }
.home-hero .source-note a { color: inherit; }
.home-map { width: min(1100px,calc(100% - 2rem)); margin: 0 auto; padding: 5.5rem 0 1rem; }
.regional-shadow-section { width: min(1100px,calc(100% - 2rem)); margin: 0 auto; padding: 5.5rem 0 1rem; }
.regional-shadow-map { min-height: 33rem; display: grid; place-items: center; overflow: hidden; border: 1px solid #29415f; border-radius: 1rem; background: #0b1624; box-shadow: 0 18px 35px rgba(0,0,0,.22); }
.regional-shadow-map > p { color: var(--muted); }
.regional-map-frame { position: relative; width: 100%; min-height: 33rem; overflow: hidden; background: #11233b; }
.regional-map-tiles { position: absolute; inset: 0; overflow: hidden; opacity: .84; filter: saturate(.78) brightness(.74) contrast(1.08); }
.regional-map-tiles img { position: absolute; width: 256px; height: 256px; max-width: none; pointer-events: none; user-select: none; }
.regional-map-svg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.regional-map__totality-band { fill: rgba(250,196,75,.12); stroke: #ffd15a; stroke-width: 2.2; vector-effect: non-scaling-stroke; }
.regional-map__shadow { fill: rgba(17,20,29,.52); stroke: rgba(255,236,171,.8); stroke-width: 1.35; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 7px rgba(255,205,74,.48)); }
.regional-map__place circle { fill: #eff6ff; stroke: #13243b; stroke-width: 1.4; }
.regional-map__place text { fill: #fff; font: 700 12px system-ui,sans-serif; paint-order: stroke; stroke: #142134; stroke-width: 3px; stroke-linejoin: round; }
.regional-map-time { position: absolute; top: 1rem; left: 1rem; display: grid; gap: .15rem; padding: .6rem .75rem; border: 1px solid rgba(255,255,255,.25); border-radius: .55rem; background: rgba(5,14,25,.78); box-shadow: 0 8px 18px rgba(0,0,0,.22); }
.regional-map-time span { color: #c7d5e6; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.regional-map-time strong { color: #fff0bf; font-size: .96rem; }
.regional-map-attribution { position: absolute; right: .5rem; bottom: .35rem; padding: .2rem .35rem; color: #f7fbff; background: rgba(5,14,25,.7); font-size: .68rem; }
.regional-shadow-controls { display: flex; flex-wrap: wrap; gap: .55rem; margin: .9rem 0 .75rem; }
.regional-shadow-controls button { padding: .48rem .75rem; border: 1px solid #38516f; border-radius: .45rem; color: var(--ink); background: #12233b; font: inherit; font-weight: 700; cursor: pointer; }
.regional-shadow-controls button:hover, .regional-shadow-controls button:focus-visible { border-color: #f5c451; color: #fff0bf; }
.home-map__intro { display: grid; grid-template-columns: minmax(0,1fr) minmax(16rem,.75fr); gap: 1rem 4rem; align-items: end; margin-bottom: 1.4rem; }
.home-map__intro .eyebrow { grid-column: 1 / -1; margin: 0; }
.home-map h2, .regional-shadow-section h2 { margin: 0; font-size: clamp(2rem,4vw,3.1rem); line-height: 1; letter-spacing: -.04em; }
.home-map__intro p:last-child { margin: 0; color: var(--muted); }
.municipality-map { min-height: 32rem; display: grid; place-items: center; overflow: hidden; border: 1px solid #29415f; border-radius: 1rem; background: radial-gradient(circle at 15% 18%, rgba(44,85,131,.42), transparent 36%), linear-gradient(145deg,#11233b,#091522); box-shadow: 0 18px 35px rgba(0,0,0,.22); }
.municipality-map > p { color: var(--muted); }
.osm-map-frame { position: relative; width: 100%; height: 100%; min-height: 32rem; overflow: hidden; background: #dce8e0; }
.osm-map-frame { cursor: grab; touch-action: none; }
.osm-map-frame.is-dragging { cursor: grabbing; }
.osm-map-tiles, .osm-map-overlay { position: absolute; inset: 0; width: 100%; height: 100%; will-change: transform; }
.osm-map-tiles { overflow: hidden; }
.osm-map-tiles img { position: absolute; width: 256px; height: 256px; max-width: none; user-select: none; pointer-events: none; -webkit-user-drag: none; }
.osm-map-overlay { pointer-events: auto; }
.map-area { outline: none; pointer-events: auto; }
.map-area path { fill-opacity: .63; stroke: rgba(21,39,53,.95); stroke-width: 2.1; stroke-linejoin: round; cursor: pointer; transition: fill-opacity .18s ease, filter .18s ease, stroke .18s ease, stroke-width .18s ease; }
.map-area:hover path, .map-area:focus path { fill-opacity: .84; stroke: #fff6d3; stroke-width: 3; filter: brightness(1.1) drop-shadow(0 0 4px rgba(255,239,183,.7)); }
.osm-attribution { position: absolute; right: .35rem; bottom: .3rem; z-index: 3; margin: 0; padding: .18rem .38rem; background: rgba(255,255,255,.85); color: #152535; font-size: .68rem; line-height: 1.3; }
.osm-attribution a { color: #145c9e; }
.osm-map-controls { position: absolute; top: .7rem; left: .7rem; z-index: 4; display: grid; overflow: hidden; border: 1px solid rgba(13,33,50,.45); border-radius: .4rem; box-shadow: 0 2px 8px rgba(0,0,0,.3); }
.osm-map-controls button { width: 2rem; height: 2rem; border: 0; border-bottom: 1px solid #b4c0c8; background: #fff; color: #162331; font: 700 1.45rem/1 system-ui; cursor: pointer; }
.osm-map-controls button:last-child { border-bottom: 0; }
.osm-map-controls button:hover, .osm-map-controls button:focus-visible { background: #e6eef2; }
.map-area:hover path, .map-area:focus path { stroke: #fff6d3; stroke-width: 2.8; filter: brightness(1.25) drop-shadow(0 0 5px rgba(255,239,183,.45)); }
.map-legend { display: flex; gap: 1rem 1.6rem; flex-wrap: wrap; align-items: center; margin: 1rem 0 .65rem; color: var(--muted); font-size: .88rem; }
.map-legend__scale { display: grid; grid-template-columns: auto minmax(9rem, 15rem) auto; align-items: center; gap: .55rem; }
.map-legend__gradient { display: block; height: .7rem; border: 1px solid rgba(255,255,255,.45); border-radius: 999px; background: linear-gradient(90deg, hsl(208 78% 54%), hsl(154 78% 54%), hsl(100 78% 54%), hsl(46 78% 54%)); }
.map-legend__neutral { display: inline-flex; gap: .45rem; align-items: center; }
.map-legend__dot { display: inline-block; width: .8rem; height: .8rem; border: 2px solid rgba(255,255,255,.8); border-radius: 50%; background: #657488; }
.home-map .source-note, .regional-shadow-section .source-note { margin: 0; font-size: .82rem; }
.home-actions { width: min(1100px,calc(100% - 2rem)); margin: 0 auto; padding: 4.5rem 0; }
.home-actions h2 { margin: 0 0 1.25rem; font-size: clamp(1.7rem,4vw,2.5rem); }
.home-action-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.home-action-grid a { display: grid; gap: .35rem; min-height: 9rem; padding: 1.25rem; border: 1px solid #2a3a52; border-radius: .7rem; background: linear-gradient(135deg,#16263f,#101b2d); color: var(--ink); text-decoration: none; transition: transform .18s ease, border-color .18s ease; }
.home-action-grid a:hover { transform: translateY(-3px); border-color: var(--accent); }
.home-action-grid span { color: var(--muted); }

.municipality-directory__intro { max-width: 45rem; margin-bottom: 1.6rem; }
.municipality-directory__search { display: grid; gap: .42rem; max-width: 42rem; margin: 1.25rem 0 .75rem; color: var(--ink); font-weight: 700; }
.municipality-directory__search label { font-size: .92rem; }
.municipality-directory__search-row { display: flex; gap: .55rem; }
.municipality-directory__suggestions { position: relative; z-index: 5; max-height: 16rem; margin: .15rem 0 0; padding: .3rem; overflow: auto; border: 1px solid rgba(150,177,207,.45); border-radius: .7rem; background: #102039; box-shadow: 0 16px 28px rgba(0,0,0,.3); list-style: none; }
.municipality-directory__suggestions[hidden] { display: none; }
.municipality-directory__suggestions li + li { border-top: 1px solid rgba(180,201,224,.12); }
.municipality-directory__suggestions a { display: block; padding: .62rem .8rem; color: #f3f7fc; text-decoration: none; }
.municipality-directory__suggestions a:hover, .municipality-directory__suggestions a:focus-visible { color: #fff4c8; background: rgba(245,196,81,.12); }
.municipality-directory__suggestion-hint { padding: .45rem .8rem; color: #fff0bf; font-size: .82rem; letter-spacing: .03em; }
.municipality-directory__search input { width: 100%; min-height: 3.15rem; padding: .75rem 1rem; border: 1px solid #4c6382; border-radius: .7rem; background: #fff; color: #111; font: inherit; box-shadow: 0 10px 24px rgba(0,0,0,.14); }
.municipality-directory__search button { flex: 0 0 auto; min-height: 3.15rem; padding: .75rem 1.1rem; border: 0; border-radius: .7rem; background: var(--accent); color: #17120a; font: inherit; font-weight: 800; cursor: pointer; }
.municipality-directory__search input:focus { outline: 3px solid rgba(245,196,81,.4); outline-offset: 2px; border-color: var(--accent); }
.municipality-directory__count { margin: 0 0 1rem; color: var(--muted); font-size: .92rem; }
.municipality-directory { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.municipality-card { display: flex; min-height: 11.4rem; flex-direction: column; align-items: flex-start; padding: 1.05rem; border: 1px solid #2c4361; border-radius: .85rem; background: linear-gradient(145deg, #162b47, #101d31); color: var(--ink); text-decoration: none; box-shadow: 0 10px 24px rgba(0,0,0,.12); transition: transform .16s ease, border-color .16s ease, background .16s ease; }
.municipality-card:hover, .municipality-card:focus-visible { border-color: var(--accent); background: linear-gradient(145deg, #1b3658, #13243c); transform: translateY(-3px); outline: none; }
.municipality-card__name { margin-bottom: auto; font-size: 1.08rem; font-weight: 750; line-height: 1.2; }
.municipality-card__meta { margin-top: 1.2rem; color: var(--muted); font-size: .74rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.municipality-card__status { margin-top: 1.2rem; color: #fff0bf; font-size: .78rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.municipality-card__status + .municipality-card__meta { margin-top: .18rem; }
.municipality-card__duration { margin-top: .13rem; color: #fff0bf; font-size: 1rem; }
.municipality-card__duration.is-unavailable { color: var(--muted); font-size: .9rem; }
.municipality-card__duration.is-partial { color: #dce7f5; }
.municipality-card__cta { margin-top: .9rem; color: #d7e3f3; font-size: .84rem; font-weight: 700; }
.eclipse-summary { margin: 0 0 1.5rem; padding: 1.2rem 1.3rem; border: 1px solid #2c4361; border-radius: .9rem; background: linear-gradient(145deg, #162b47, #101d31); }
.eclipse-summary--partial { border-color: #61728a; }
.eclipse-summary .eyebrow { margin: 0 0 .45rem; }
.eclipse-summary h2 { margin: 0; font-size: clamp(1.35rem,3vw,1.85rem); }
.eclipse-summary p:last-child { margin: .55rem 0 0; color: var(--muted); }
.municipality-directory__empty { margin: 1.5rem 0; padding: 1rem; border: 1px dashed #4c6382; border-radius: .7rem; color: var(--muted); }

.events-hero { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(15rem,.7fr); gap: 1rem; align-items: stretch; margin: .5rem 0 3.2rem; padding: clamp(1.5rem,4vw,3.2rem); border: 1px solid #385372; border-radius: 1.15rem; background: radial-gradient(circle at 90% 10%, rgba(245,196,81,.2), transparent 30%), linear-gradient(135deg,#183456,#0d192b 72%); box-shadow: 0 20px 45px rgba(0,0,0,.2); }
.events-hero h2, .events-section h2, .event-examples h2, .event-benefits h2, .events-empty h2 { margin: .25rem 0 .7rem; font-size: clamp(2.1rem,5vw,4rem); line-height: .98; letter-spacing: -.05em; }
.events-hero p:not(.eyebrow), .events-section__heading p, .events-empty p, .event-benefits > p { color: var(--muted); }
.events-hero__cta { display: flex; flex-direction: column; justify-content: space-between; min-height: 13rem; padding: 1.25rem; border-radius: .85rem; background: linear-gradient(150deg,#f5c451,#e7a92e); color: #1a1407; text-decoration: none; }
.events-hero__cta span { font-weight: 700; }
.events-hero__cta strong { font-size: 1.35rem; line-height: 1.05; }
.events-hero__cta i { font-style: normal; }
.events-section, .event-examples { margin: 3.5rem 0; }
.events-section__heading { display: flex; justify-content: space-between; gap: 1rem; align-items: end; margin-bottom: 1.25rem; }
.events-section__heading h2 { font-size: clamp(1.8rem,4vw,3.2rem); }
.events-section__heading > a { padding-bottom: .35rem; color: #fff0bf; font-weight: 800; text-decoration: none; white-space: nowrap; }
.event-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.event-card { position: relative; display: flex; min-height: 100%; flex-direction: column; overflow: hidden; border: 1px solid #2d4969; border-radius: .95rem; background: #102039; box-shadow: 0 14px 30px rgba(0,0,0,.18); }
.event-card > img, .event-card__image { width: 100%; aspect-ratio: 4 / 3.1; object-fit: cover; background: radial-gradient(circle at 70% 20%, rgba(245,196,81,.45), transparent 22%), linear-gradient(135deg,#233f63,#0b1422); }
.event-card__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 1.05rem 1.1rem 1.15rem; }
.event-card__meta { margin: 0 0 .5rem; color: #c9d7e9; font-size: .77rem; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.event-card h3 { margin: 0; font-size: 1.35rem; line-height: 1.08; }
.event-card h3 a { color: var(--ink); text-decoration: none; }
.event-card__body > p:not(.event-card__meta) { color: var(--muted); }
.event-card__link { margin-top: auto; padding-top: .8rem; color: #fff0bf; font-weight: 800; text-decoration: none; }
.event-card__badge, .event-card__demo { display: inline-block; margin: 0 0 .65rem; padding: .24rem .5rem; border-radius: 999px; color: #14100a; background: #f5c451; font-size: .7rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.event-card__demo { color: #d9e5f4; background: #344b68; }
.event-card__finished, .event-detail__finished { display: inline-block; margin: 0 0 .65rem; padding: .24rem .5rem; border-radius: 999px; color: #2c2105; background: #f5c451; font-size: .7rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.event-detail__source { margin: 1.25rem 0 0; color: var(--muted); }
.event-detail__source a { color: #fff0bf; }
.events-section--past { opacity: .96; }
.event-card--example { border-color: #344e6e; }
.event-card--example:hover { border-color: var(--accent); transform: translateY(-3px); transition: transform .18s ease,border-color .18s ease; }
.events-empty { margin: 0 0 3.5rem; padding: 2rem; border: 1px dashed #466181; border-radius: 1rem; background: rgba(17,32,55,.55); }
.event-benefits { margin: 4rem 0 1rem; padding: clamp(1.5rem,4vw,3rem); border: 1px solid #334f71; border-radius: 1rem; background: linear-gradient(145deg,#142b49,#0e192a); }
.event-benefits h2 { max-width: 47rem; font-size: clamp(1.9rem,4vw,3.2rem); }
.event-benefits > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin: 1.8rem 0; }
.event-benefits > div p { display: grid; gap: .3rem; margin: 0; padding: .8rem 0; border-top: 1px solid rgba(217,229,244,.18); }
.event-benefits span { color: var(--muted); }
.event-benefits__cta { display: inline-block; padding: .78rem 1rem; border-radius: .5rem; color: #161108; background: var(--accent); font-weight: 900; text-decoration: none; }
.event-detail { overflow: hidden; border: 1px solid #2d4969; border-radius: 1rem; background: #102039; }
.event-detail > img { display: block; width: 100%; max-height: 31rem; object-fit: cover; }
.event-detail__body { padding: clamp(1.3rem,4vw,3rem); }
.event-detail h1 { margin: .3rem 0 1rem; font-size: clamp(2.4rem,6vw,4.7rem); }
.event-detail__lead { max-width: 45rem; color: #d5deec; font-size: 1.2rem; }
.event-detail dl { display: grid; grid-template-columns: 8rem 1fr; gap: .8rem 1rem; margin: 2rem 0; padding-top: 1.2rem; border-top: 1px solid rgba(217,229,244,.15); }
.event-detail dt { color: var(--muted); font-weight: 800; }.event-detail dd { margin: 0; }.event-detail dd a { color: #fff0bf; }
.event-detail__reserve { display: inline-block; padding: .8rem 1rem; border-radius: .5rem; color: #17120a; background: var(--accent); font-weight: 900; text-decoration: none; }
.admin-tabs { display: flex; gap: .45rem; flex-wrap: wrap; margin: 2rem 0 1rem; }.admin-tabs a { padding: .5rem .72rem; border: 1px solid #36506f; border-radius: 999px; color: var(--muted); text-decoration: none; }.admin-tabs a.is-active { border-color: var(--accent); color: #fff0bf; }
.admin-event-list { display: grid; gap: .75rem; }.admin-event-list article { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid #2e4968; border-radius: .7rem; background: #122139; }.admin-event-list p,.admin-event-list span { color: var(--muted); font-size: .88rem; }.admin-event-list h2 { margin: .15rem 0; font-size: 1.2rem; }.admin-event-list form { display: flex; align-items: center; gap: .5rem; }.admin-event-list button { padding: .55rem .7rem; border: 0; border-radius: .4rem; color: #17120a; background: var(--accent); font: inherit; font-weight: 800; cursor: pointer; }.admin-event-list .admin-event-list__reject { color: #f3e7e7; background: #6d3640; }

@media (max-width: 640px) {
  .site-header { min-height: auto; padding: .65rem 1rem .7rem; align-items: center; flex-direction: column; gap: .45rem; }
  .site-header nav { width: 100%; justify-content: space-between; flex-wrap: nowrap; }
  .site-header nav a { padding: .34rem .25rem; font-size: .83rem; }
  .facts { grid-template-columns: 1fr; }
  .home-hero { min-height: 42rem; padding-top: 10.4rem; background-position: 62% center; }
  .countdown { margin-top: 1.35rem; }
  .home-hero::after { background: linear-gradient(180deg, rgba(3,10,19,.72), rgba(3,10,19,.9) 62%, rgba(3,10,19,.96)); }
  .home-hero h1 { font-size: clamp(3.2rem,15vw,4.5rem); }
  .home-action-grid { grid-template-columns: 1fr; }
  .municipality-directory { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
  .municipality-directory__search-row { flex-direction: column; }
  .municipality-directory__search button { width: 100%; }
  .municipality-card { min-height: 10.4rem; padding: .9rem; }
  .municipality-card__name { font-size: 1rem; }
  .municipality-card__meta { margin-top: .9rem; font-size: .68rem; }
  .municipality-card__status { margin-top: .9rem; font-size: .7rem; }
  .municipality-card__cta { margin-top: .65rem; }
  .events-hero, .event-grid, .event-benefits > div { grid-template-columns: 1fr; }
  .events-hero__cta { min-height: 7rem; }
  .events-section__heading { align-items: start; flex-direction: column; }
  .event-detail dl { grid-template-columns: 1fr; gap: .15rem; }
  .event-detail dd { margin-bottom: .8rem; }
  .admin-event-list article, .admin-event-list form { align-items: stretch; flex-direction: column; }
  .home-actions { padding: 3rem 0; }
  .home-map, .regional-shadow-section { padding-top: 3.5rem; }
  .home-map__intro { grid-template-columns: 1fr; gap: .75rem; }
  .municipality-map, .osm-map-frame, .regional-shadow-map, .regional-map-frame { min-height: 26rem; border-radius: .7rem; }
  .regional-map__place text { font-size: 10px; }
}
