: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(1280px, 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% - 1280px) / 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[aria-current=page] { color: #fff0bf; background: rgba(245,196,81,.13); }
.page { min-height: calc(100vh - 9rem); max-width: 1180px; padding-block: 3.5rem; }
.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; }
.site-footer a { color: inherit; }
.site-footer .footer-instagram { display: inline-flex; align-items: center; gap: .28rem; color: #f7c7d8; font-weight: 700; text-decoration: none; }
.footer-instagram svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.site-footer .footer-instagram:hover, .site-footer .footer-instagram:focus-visible { color: #fff0bf; text-decoration: underline; text-underline-offset: .18em; }
.contact-page { max-width: 760px; margin: 1.5rem 0 3rem; }
.contact-page__intro { margin-bottom: 1.35rem; }
.contact-page__note { color: var(--muted); font-size: .95rem; }
.contact-form { display: grid; gap: 1.05rem; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid rgba(109,166,229,.34); border-radius: 1.1rem; background: linear-gradient(145deg, rgba(23,53,88,.78), rgba(10,27,49,.94)); box-shadow: 0 18px 50px rgba(0,0,0,.16); }
.contact-form label { display: grid; gap: .48rem; font-weight: 700; color: var(--ink); }
.contact-form input:not([type="checkbox"]), .contact-form textarea { width: 100%; border: 1px solid rgba(163,192,226,.38); border-radius: .65rem; padding: .78rem .9rem; color: var(--ink); background: rgba(4,14,28,.52); font: inherit; }
.contact-form textarea { resize: vertical; min-height: 10rem; }
.contact-form input:focus, .contact-form textarea:focus { outline: 3px solid rgba(245,196,81,.28); outline-offset: 1px; border-color: var(--gold); }
.contact-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.contact-form__privacy { grid-template-columns: auto 1fr; align-items: start; font-size: .94rem; font-weight: 400 !important; line-height: 1.45; color: var(--muted) !important; }
.contact-form__privacy input { margin-top: .22rem; accent-color: var(--gold); }
.contact-form__privacy a { color: #fff0bf; }
.contact-form button { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .6rem; justify-self: start; min-width: 15.5rem; min-height: 3.35rem; padding: .85rem 1.35rem; overflow: hidden; border: 1px solid #ffe18a; border-radius: .72rem; color: #17120a; background: linear-gradient(135deg, #ffe28b, #f5c451 48%, #e8af31); box-shadow: 0 .22rem 0 #b47c15, 0 .8rem 1.5rem rgba(245,196,81,.2); font: inherit; font-weight: 900; letter-spacing: .01em; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, filter .18s ease; }
.contact-form button::after { content: '→'; font-size: 1.2em; line-height: 1; transition: transform .18s ease; }
.contact-form button:hover { filter: brightness(1.05); box-shadow: 0 .3rem 0 #b47c15, 0 1rem 1.8rem rgba(245,196,81,.3); transform: translateY(-2px); }
.contact-form button:hover::after { transform: translateX(.18rem); }
.contact-form button:active { box-shadow: 0 .08rem 0 #b47c15, 0 .38rem .9rem rgba(245,196,81,.18); transform: translateY(2px); }
.contact-form button:focus-visible { outline: 3px solid rgba(245,196,81,.5); outline-offset: 3px; }
.contact-form__trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.contact-form__error { margin: -.55rem 0 0; color: #ffb9b9; font-size: .9rem; }
.contact-notice { margin: 0 0 1rem; padding: .85rem 1rem; border: 1px solid rgba(255,185,185,.45); border-radius: .75rem; color: #ffe2e2; background: rgba(135,35,42,.2); }
.contact-notice.is-success { border-color: rgba(128,229,179,.46); color: #d7ffe8; background: rgba(25,119,75,.22); }
.legal-page { max-width: 860px; margin: 1.5rem 0 3rem; }
.legal-page > section { margin-top: 1.25rem; padding: clamp(1.15rem, 3vw, 1.7rem); border: 1px solid rgba(109,166,229,.24); border-radius: .95rem; background: rgba(15,39,68,.44); }
.legal-page h2 { margin: 0 0 .75rem; font-size: clamp(1.22rem, 2vw, 1.5rem); }
.legal-page h3 { margin: 1.25rem 0 .35rem; color: #fff0bf; font-size: 1rem; }
.legal-page p { margin: .55rem 0; color: var(--muted); line-height: 1.7; }
.legal-page__identity { display: grid; grid-template-columns: minmax(8rem, .42fr) 1fr; gap: .48rem 1rem; margin: 0; }
.legal-page__identity dt { color: #fff0bf; font-weight: 700; }
.legal-page__identity dd { margin: 0; color: var(--muted); }
.legal-page code { padding: .1rem .35rem; border-radius: .25rem; background: rgba(0,0,0,.25); color: #fff0bf; }
.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; }

/* Guided observation planner */
.observation-finder { --finder-line: rgba(148,183,218,.27); margin-top: 1.5rem; }
.finder-intro { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(18rem,.8fr); gap: 1.25rem; align-items: center; margin: 1rem 0 1.5rem; padding: clamp(1.25rem,3vw,2.2rem); border: 1px solid var(--finder-line); border-radius: 1.25rem; background: linear-gradient(135deg,rgba(24,59,91,.78),rgba(8,23,40,.9)); }
.finder-kicker { margin: 0 0 .55rem; color: #9bd3ff; font-size: .78rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.finder-intro .lead { max-width: 46rem; margin: 0; color: #eef5fc; font-size: clamp(1.12rem,2vw,1.42rem); line-height: 1.55; }
.finder-start { display: inline-flex; align-items: center; gap: .55rem; margin-top: 1rem; padding: .75rem 1rem; border-radius: .65rem; color: #17120a; background: var(--accent); font-weight: 900; text-decoration: none; }
.finder-truth { display: grid; gap: .4rem; padding: 1rem 1.15rem; border-left: 3px solid var(--accent); color: #d7e4f1; background: rgba(2,11,22,.48); }
.finder-truth strong { color: #fff0bf; }
.finder-advisor { scroll-margin-top: 1rem; overflow: hidden; border: 1px solid #52799b; border-radius: 1.2rem; background: #0b1c30; box-shadow: 0 1.5rem 4rem rgba(0,0,0,.24); }
.finder-advisor__head { padding: clamp(1.2rem,3vw,2rem); background: linear-gradient(120deg,#173b5d,#10263f); }
.finder-advisor__head .eyebrow,.finder-advisor__head h2,.finder-advisor__head p { margin: 0; }.finder-advisor__head h2 { font-size: clamp(1.7rem,3vw,2.45rem); }.finder-advisor__head p:last-child { margin-top: .4rem; color: #b9c9da; }
.finder-advisor__controls { display: grid; grid-template-columns: 1fr 1.65fr 1fr auto auto; gap: 1rem; align-items: end; padding: 1.2rem; border-top: 1px solid var(--finder-line); }
.finder-advisor__controls--simple { grid-template-columns: minmax(12rem,1fr) minmax(17rem,1.25fr) auto auto; }
.finder-advisor__controls > * { min-width: 0; }
.finder-advisor__controls > label,.finder-advisor__controls fieldset { display: grid; gap: .4rem; margin: 0; color: #dce7f2; font-size: .82rem; font-weight: 800; }
.finder-advisor__controls fieldset { padding: 0; border: 0; }.finder-advisor__controls legend { margin-bottom: .4rem; }
.finder-advisor select,.finder-advisor__controls > button,.finder-list-controls select { min-height: 3.15rem; padding: .65rem .75rem; border: 1px solid #7491ac; border-radius: .62rem; color: #152334; background: #fff; font: inherit; font-weight: 700; }
.finder-advisor__controls > button { color: #17120a; background: var(--accent); border-color: #ffe18a; cursor: pointer; font-weight: 900; }
.finder-advisor__controls > button.is-secondary { color: #e6eef7; background: transparent; border-color: #637c96; }
.finder-choice-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .38rem; }.finder-choice-grid label { display: flex; align-items: center; min-height: 2.4rem; padding: .38rem .52rem; border: 1px solid #496986; border-radius: .5rem; background: rgba(5,17,31,.55); color: #e8f1fa; font-size: .76rem; cursor: pointer; }.finder-choice-grid label:has(input:checked) { border-color: var(--accent); color: #fff1bd; background: rgba(245,196,81,.1); }.finder-choice-grid input { width: 1rem; height: 1rem; margin-right: .4rem; accent-color: var(--accent); }
.finder-recommendations { display: grid; gap: .75rem; padding: 1.2rem; border-top: 1px solid var(--finder-line); }.finder-recommendations > p { margin: 0; color: var(--muted); }.finder-recommendations__intro { display: grid; }.finder-recommendations__intro span { color: var(--muted); font-size: .88rem; }
.finder-recommendations article { display: grid; grid-template-columns: 1fr; gap: 1rem; padding: 1rem; border: 1px solid #365978; border-radius: .85rem; background: linear-gradient(135deg,#102943,#0c2036); }.finder-recommendation__rank { display: grid; width: 2.7rem; height: 2.7rem; margin: 0; place-items: center; border-radius: 50%; color: #17120a; background: var(--accent); font-size: 1.25rem; font-weight: 950; }.finder-recommendations article span { color: #9ccdf6; font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }.finder-recommendations h3 { margin: .1rem 0; font-size: 1.25rem; }.finder-recommendations article p { margin: .35rem 0; color: #c3d1df; }.finder-recommendations article button { min-height: 2.7rem; margin-top: .4rem; padding: .55rem .9rem; border: 1px solid #ffdf80; border-radius: .55rem; color: #1b1408; background: var(--accent); font: inherit; font-weight: 850; cursor: pointer; }.finder-recommendation__caution { color: #ffe4b4 !important; }
.finder-explorer,.finder-results,.finder-compare,.finder-method { margin-top: 3.5rem; }
.finder-explorer { overflow: hidden; border: 1px solid #456d90; border-radius: 1.15rem; background: #091a2d; }
.finder-map-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: 1.2rem 1.4rem; background: #0d2239; }.finder-map-heading .eyebrow,.finder-map-heading h2,.finder-map-heading p { margin: 0; }.finder-map-heading p:last-child { margin-top: .3rem; color: var(--muted); }.finder-map-heading > button { min-height: 2.8rem; padding: .55rem .8rem; border: 1px solid #69839e; border-radius: .55rem; color: #eef5fc; background: #142d48; font: inherit; font-weight: 800; cursor: pointer; }
.finder-map-layout { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(18rem,.75fr); min-height: 36rem; border-top: 1px solid var(--finder-line); }
.finder-map { min-height: 36rem; background: #c7d7df; }.finder-map > p { padding: 2rem; color: #183047; }
.finder-osm-frame { position: relative; width: 100%; height: 100%; min-height: 36rem; overflow: hidden; cursor: grab; touch-action: none; }.finder-osm-frame:active { cursor: grabbing; }
.finder-osm-tiles,.finder-osm-overlay,.finder-map-markers { position: absolute; inset: 0; width: 100%; height: 100%; will-change: transform; }.finder-osm-tiles { overflow: hidden; filter: saturate(.72) brightness(.77) contrast(1.08); }.finder-osm-tiles img { position: absolute; width: 256px; height: 256px; max-width: none; pointer-events: none; user-select: none; }.finder-osm-overlay { pointer-events: none; }.finder-map__municipality { fill: rgba(21,75,73,.17); stroke: rgba(17,49,56,.6); stroke-width: 1.2; vector-effect: non-scaling-stroke; }.finder-map__band { fill: rgba(245,196,81,.08); stroke: #9a6510; stroke-width: 2; stroke-dasharray: 8 6; vector-effect: non-scaling-stroke; }
.finder-map-markers { pointer-events: none; }.finder-map-marker { position: absolute; width: 2.5rem; height: 2.5rem; padding: 0; transform: translate(-50%,-50%); border: 0; border-radius: 50%; background: transparent; pointer-events: auto; cursor: pointer; }.finder-map-marker::before { display: block; width: 1rem; height: 1rem; margin: auto; border: 3px solid #fff; border-radius: 50%; background: #3cb986; box-shadow: 0 2px 9px #001426,0 0 0 4px rgba(19,45,66,.28); content: ''; }.finder-map-marker.is-area::before { border-radius: .15rem; transform: rotate(45deg); }.finder-map-marker.is-candidate::before { background: #efb83e; }.finder-map-marker.is-limited::before { background: #ec7e43; }.finder-map-marker.is-restricted::before { background: #788492; }.finder-map-marker:hover,.finder-map-marker:focus-visible { z-index: 5; outline: none; }.finder-map-marker:hover::before,.finder-map-marker:focus-visible::before { box-shadow: 0 0 0 5px #fff,0 4px 12px #001426; }.finder-map-marker span { position: absolute; z-index: 2; left: 50%; bottom: calc(100% + .15rem); width: max-content; max-width: 11rem; padding: .28rem .45rem; transform: translateX(-50%); border-radius: .35rem; color: #101824; background: #fff; box-shadow: 0 3px 10px rgba(0,0,0,.35); font-size: .72rem; font-weight: 850; opacity: 0; pointer-events: none; }.finder-map-marker:hover span,.finder-map-marker:focus-visible span { opacity: 1; }
.finder-map-controls { position: absolute; z-index: 6; top: .75rem; left: .75rem; display: grid; grid-template-columns: repeat(3,2.8rem); overflow: hidden; border-radius: .45rem; box-shadow: 0 2px 10px rgba(0,0,0,.4); }.finder-map-controls button { width: 2.8rem; height: 2.8rem; border: 0; border-bottom: 1px solid #bbc7d0; color: #142331; background: #fff; font: 900 1.45rem/1 system-ui; cursor: pointer; }.finder-map-controls button:last-child { border: 0; }.finder-osm-attribution { position: absolute; z-index: 5; right: .3rem; bottom: .2rem; margin: 0; padding: .15rem .3rem; color: #142536; background: rgba(255,255,255,.9); font-size: .62rem; }.finder-osm-attribution a { color: inherit; }
.finder-tile-warning { position: absolute; z-index: 6; right: .7rem; top: .7rem; max-width: min(22rem,calc(100% - 5rem)); margin: 0; padding: .5rem .65rem; border: 1px solid #a76920; border-radius: .45rem; color: #3b2509; background: rgba(255,235,190,.94); font-size: .72rem; font-weight: 800; }
.finder-map-detail { position: relative; padding: 1.2rem; overflow: auto; border-left: 1px solid var(--finder-line); background: linear-gradient(160deg,#102b46,#091a2d); }.finder-map-detail__empty { color: var(--muted); }.finder-map-detail__close { position: absolute; top: .7rem; right: .7rem; width: 2.5rem; height: 2.5rem; border: 1px solid #607b95; border-radius: 50%; color: #fff; background: #0b2035; font-size: 1.4rem; cursor: pointer; }.finder-map-detail h3 { margin: .2rem 2.6rem .45rem 0; font-size: 1.45rem; }.finder-map-detail > p { color: #c3d2e0; }.finder-map-detail__duration { display: block; color: #fff0bf; font-size: 1.25rem; }.finder-map-detail dl { display: grid; gap: .55rem; margin: 1rem 0; }.finder-map-detail dl div { padding: .65rem; border: 1px solid rgba(140,174,205,.18); border-radius: .5rem; background: rgba(0,0,0,.15); }.finder-map-detail dt { color: #99b1c8; font-size: .68rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }.finder-map-detail dd { margin: .15rem 0 0; font-weight: 750; }.finder-map-detail__actions { display: grid; gap: .55rem; }.finder-map-detail__actions button,.finder-map-detail__actions a { min-height: 2.8rem; padding: .65rem; border: 1px solid #ffe089; border-radius: .55rem; color: #1b1408; background: var(--accent); font: inherit; font-weight: 850; text-align: center; text-decoration: none; cursor: pointer; }.finder-map-detail__actions a { color: #edf5fd; background: transparent; border-color: #7692ad; }.finder-map-detail > small { display: block; margin-top: .8rem; color: #aebfd0; }
.finder-position-disabled { padding: .65rem; border: 1px dashed #657f99; border-radius: .55rem; color: #b9c9d8; font-size: .8rem; text-align: center; }
.finder-map-key { display: flex; gap: .75rem 1.1rem; align-items: center; flex-wrap: wrap; padding: .8rem 1.2rem; border-top: 1px solid var(--finder-line); color: #bdcad8; font-size: .76rem; }.finder-map-key i { display: inline-block; width: .75rem; height: .75rem; margin-right: .28rem; border: 2px solid #fff; border-radius: 50%; background: #3cb986; vertical-align: -.1rem; }.finder-map-key i.is-candidate { border-radius: .1rem; background: #efb83e; transform: rotate(45deg); }.finder-map-key i.is-limited { background: #ec7e43; }.finder-map-key i.is-restricted { background: #788492; }.finder-map-key small { margin-left: auto; }
.finder-results__head { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: 1.2rem; }.finder-results__head .eyebrow,.finder-results__head h2 { margin: 0; }.finder-list-controls { display: flex; gap: .7rem; }.finder-list-controls label { display: grid; gap: .25rem; color: var(--muted); font-size: .75rem; font-weight: 800; }.finder-list-controls select { min-width: 11rem; min-height: 2.8rem; }
.finder-all { overflow: hidden; border: 1px solid #385a78; border-radius: 1rem; background: rgba(9,25,43,.66); }.finder-all > summary { padding: 1rem 1.2rem; color: #fff0bf; background: #102a44; font-size: 1.02rem; font-weight: 900; cursor: pointer; }.finder-all > summary:hover,.finder-all > summary:focus-visible { background: #153653; }.finder-results__body { padding: 1.2rem; }
.finder-place-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .9rem; }.finder-place { display: grid; align-content: start; gap: .8rem; padding: 1rem; border: 1px solid #365775; border-radius: .85rem; background: linear-gradient(145deg,#122b46,#0a1d32); }.finder-place[hidden] { display: none; }.finder-place__badges { display: flex; gap: .35rem; flex-wrap: wrap; }.finder-place__badges span,.finder-status { display: inline-block; padding: .18rem .42rem; border: 1px solid #57728d; border-radius: 999px; color: #c9d7e5; font-size: .62rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }.finder-status--mapped { border-color: #59c99b !important; color: #bff4dc !important; }.finder-status--candidate { border-color: #dfad3a !important; color: #ffe4a5 !important; }.finder-status--limited { border-color: #df7948 !important; color: #ffd0b9 !important; }.finder-status--restricted { border-color: #82909d !important; color: #d5dce3 !important; }.finder-place__focus { display: grid; gap: .15rem; padding: 0; border: 0; color: inherit; background: none; text-align: left; cursor: pointer; }.finder-place__focus strong { color: #fff; font-size: 1.12rem; }.finder-place__focus span { color: #aebfd2; }.finder-place__distance { color: #9dd2ff !important; font-size: .78rem; }.finder-place > p { margin: 0; color: #bdcad8; font-size: .86rem; }.finder-place dl { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; margin: 0; }.finder-place dl div { padding: .48rem; background: rgba(0,0,0,.16); }.finder-place dt { color: #91a9bf; font-size: .62rem; font-weight: 800; text-transform: uppercase; }.finder-place dd { margin: .1rem 0 0; font-size: .76rem; font-weight: 700; }.finder-place__actions { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-top: auto; }.finder-place__actions button,.finder-place__actions label { display: flex; align-items: center; justify-content: center; min-height: 2.75rem; padding: .45rem; border: 1px solid #7088a0; border-radius: .55rem; color: #e8f1fa; background: transparent; font: inherit; font-size: .82rem; font-weight: 850; cursor: pointer; }.finder-place__actions label:has(input:checked) { color: #17120a; background: var(--accent); border-color: var(--accent); }.finder-place__actions input { margin-right: .35rem; accent-color: var(--accent); }.finder-empty { padding: 2rem; color: var(--muted); text-align: center; }
.finder-compare-tray { position: sticky; z-index: 20; bottom: .7rem; display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; gap: .8rem; align-items: center; margin: 1rem 0; padding: .8rem 1rem; border: 1px solid #f3c657; border-radius: .75rem; background: rgba(8,23,40,.96); box-shadow: 0 14px 35px rgba(0,0,0,.5); backdrop-filter: blur(12px); }.finder-compare-tray[hidden] { display: none; }.finder-compare-tray > span { overflow: hidden; color: #becddd; font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }.finder-compare-tray button { min-height: 2.55rem; padding: .5rem .7rem; border: 1px solid #71869a; border-radius: .5rem; color: #fff; background: #17304b; font: inherit; font-weight: 800; cursor: pointer; }.finder-compare-tray button:first-of-type { color: #181208; background: var(--accent); border-color: #ffe18b; }.finder-compare-tray.is-full { animation: finder-tray-shake .28s linear 2; border-color: #ff8c67; }
.finder-compare-tray .finder-compare-warning:not(:empty) { overflow: visible; color: #ffd0bd; font-weight: 800; white-space: normal; }
@keyframes finder-tray-shake { 50% { transform: translateX(.35rem); } }
.finder-compare { padding: clamp(1rem,3vw,2rem); border: 1px solid rgba(245,196,81,.45); border-radius: 1rem; background: rgba(245,196,81,.05); scroll-margin-top: 1rem; }.finder-compare[hidden] { display: none; }.finder-compare button { min-height: 2.65rem; padding: .55rem .8rem; border: 1px solid #6e8295; border-radius: .5rem; color: white; background: #112a43; font: inherit; cursor: pointer; }.finder-compare__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }.finder-compare__grid article { position: relative; padding: 1rem; border-radius: .7rem; background: #102943; }.finder-compare__grid article > button { position: absolute; top: .6rem; right: .6rem; min-width: 2.65rem; }.finder-compare__grid h3 { margin: .35rem 2.8rem .5rem 0; }.finder-compare__grid article > p { color: var(--muted); }.finder-compare__grid article > strong { color: #fff0bf; font-size: 1.25rem; }.finder-compare__grid dl div { display: grid; gap: .2rem; padding: .5rem 0; border-bottom: 1px solid #31506e; }.finder-compare__grid dt { color: #9fb4c8; font-size: .68rem; text-transform: uppercase; }.finder-compare__grid dd { margin: 0; font-weight: 700; }.finder-comparison-note { padding: .85rem 1rem; border-left: 3px solid var(--accent); color: #e7eff7; background: rgba(0,0,0,.16); }
.finder-method > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }.finder-method article { padding: 1.2rem; border-left: 3px solid #4c759d; background: rgba(15,35,57,.65); }.finder-method h3 { color: #fff0bf; }.finder-method p { color: #bdcad8; }.finder-method a { color: #d9e8f8; }.finder-map-error { padding: 2rem; color: #20384e; }.finder-map-error button { min-height: 2.75rem; padding: .6rem 1rem; border: 0; border-radius: .5rem; background: #173b5d; color: #fff; font: inherit; font-weight: 800; }
@media (max-width: 1000px) { .finder-advisor__controls { grid-template-columns: repeat(2,minmax(0,1fr)); }.finder-advisor__controls fieldset { grid-column: 1/-1; }.finder-map-layout { grid-template-columns: minmax(0,1.4fr) minmax(17rem,.8fr); }.finder-place-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 760px) { .finder-intro,.finder-map-layout { grid-template-columns: 1fr; }.finder-map-detail { min-height: 18rem; border-top: 1px solid var(--finder-line); border-left: 0; }.finder-map { min-height: 31rem; }.finder-osm-frame { min-height: 31rem; }.finder-compare__grid,.finder-method > div { grid-template-columns: 1fr; }.finder-map-key small { width: 100%; margin-left: 0; } }
@media (max-width: 620px) { .site-header { flex-direction: column; padding-block: .7rem; }.site-header nav { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); width: 100%; min-width: 0; max-width: 100%; }.site-header nav a { min-width: 0; padding: .28rem .2rem; font-size: .72rem; text-align: center; }.finder-advisor__controls,.finder-advisor__controls.finder-advisor__controls--simple,.finder-place-grid { grid-template-columns: minmax(0,1fr); }.finder-advisor__controls > label,.finder-advisor__controls > button,.finder-advisor select { width: 100%; min-width: 0; max-width: 100%; }.finder-advisor__controls fieldset { grid-column: auto; }.finder-choice-grid { grid-template-columns: 1fr 1fr; }.finder-map-heading,.finder-results__head { align-items: start; flex-direction: column; }.finder-map-heading > button { width: 100%; }.finder-list-controls { width: 100%; flex-direction: column; }.finder-list-controls select { width: 100%; }.finder-place dl { grid-template-columns: 1fr; }.finder-compare-tray { grid-template-columns: 1fr auto; }.finder-compare-tray > span { grid-column: 1/-1; grid-row: 2; }.finder-compare-tray button:last-child { grid-column: 2; grid-row: 1; }.finder-compare-tray button:first-of-type { grid-column: 1/-1; grid-row: 3; }.finder-map-marker span { display: none; } }
.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); }
.municipality-data-card { overflow: hidden; margin-top: 2.5rem; border: 1px solid #294666; border-radius: 1rem; background: linear-gradient(145deg, rgba(24,48,78,.96), rgba(12,27,46,.98)); box-shadow: 0 18px 36px rgba(0,0,0,.18); }
.municipality-data-card__header { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: clamp(1.25rem,3vw,2rem) clamp(1.25rem,4vw,2.5rem) 1rem; border-bottom: 1px solid rgba(202,220,239,.13); }
.municipality-data-card__header .eyebrow { margin: 0 0 .3rem; }
.municipality-data-card__header h2 { margin: 0; font-size: clamp(1.45rem,3vw,2.15rem); letter-spacing: -.035em; }
.municipality-data-card__date { margin: 0 0 .1rem; color: #d7e3f1; font-size: .9rem; font-weight: 750; white-space: nowrap; }
.municipality-data-card__highlights { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); border-bottom: 1px solid rgba(202,220,239,.13); }
.municipality-data-card__highlights > div { display: grid; align-content: center; gap: .35rem; min-height: 7.3rem; padding: 1.1rem clamp(1rem,3vw,2rem); }
.municipality-data-card__highlights > div + div { border-left: 1px solid rgba(202,220,239,.13); }
.municipality-data-card__highlights span, .municipality-data-card__solar dt, .municipality-data-card__timeline small, .municipality-data-card__source span { color: #aebfd3; font-size: .72rem; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.municipality-data-card__highlights strong { font-variant-numeric: tabular-nums; line-height: 1.05; }
.municipality-data-card__type { font-size: clamp(1.55rem,3vw,2.2rem); }
.municipality-data-card__type--total, .municipality-data-card__duration { color: #fff0bf; }
.municipality-data-card__type--parcial { color: #dbe8f7; }
.municipality-data-card__time { font-size: clamp(1.65rem,3vw,2.35rem); color: #fff; }
.municipality-data-card__duration { font-size: clamp(1.25rem,2.6vw,1.8rem); }
.municipality-data-card__body { display: grid; grid-template-columns: minmax(0,1fr) minmax(17rem,.72fr); gap: clamp(1.25rem,4vw,3rem); padding: clamp(1.25rem,4vw,2.35rem); }
.municipality-data-card h3 { margin: 0 0 .9rem; font-size: 1rem; }
.municipality-data-card__timeline ol { display: grid; gap: .1rem; margin: 0; padding: 0; list-style: none; }
.municipality-data-card__timeline li { position: relative; display: grid; grid-template-columns: 1rem minmax(0,1fr) auto; align-items: center; gap: .65rem; min-height: 3.45rem; padding: .45rem 0; }
.municipality-data-card__timeline li:not(:last-child)::before { position: absolute; top: 2.3rem; left: .45rem; width: 1px; height: calc(100% - .25rem); background: rgba(190,210,232,.23); content: ''; }
.municipality-data-card__timeline-dot { position: relative; z-index: 1; width: .88rem; height: .88rem; border: 2px solid #8ca8c6; border-radius: 50%; background: #17324f; }
.municipality-data-card__timeline .is-maximum .municipality-data-card__timeline-dot { border-color: #fff2be; background: var(--accent); box-shadow: 0 0 0 .25rem rgba(245,196,81,.15); }
.municipality-data-card__timeline strong { display: block; color: #edf3fa; font-size: .94rem; }
.municipality-data-card__timeline time { color: #fff1bf; font-size: 1.15rem; font-weight: 850; font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.municipality-data-card__solar { display: grid; gap: 1rem; align-content: start; margin: 0; }
.municipality-data-card__solar > div { padding: .9rem 1rem; border: 1px solid rgba(169,194,220,.19); border-radius: .65rem; background: rgba(4,13,25,.2); }
.municipality-data-card__solar dt { margin: 0 0 .25rem; }
.municipality-data-card__solar dd { margin: 0; color: #f6f9fd; font-size: 1.45rem; font-weight: 850; font-variant-numeric: tabular-nums; }
.municipality-data-card__source { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem clamp(1.25rem,4vw,2.5rem); border-top: 1px solid rgba(202,220,239,.13); background: rgba(4,13,25,.18); }
.municipality-data-card__source a { color: #d9e7f6; font-size: .88rem; font-weight: 700; text-decoration-color: rgba(217,231,246,.45); }
.municipality-data-card__source a span { margin-left: .3rem; color: #fff0bf; }
.municipality-events { padding: clamp(1.35rem,3vw,2.15rem); border: 1px solid rgba(83,125,166,.55); border-radius: 1rem; background: linear-gradient(140deg, rgba(18,43,73,.86), rgba(9,23,41,.96)); box-shadow: 0 14px 28px rgba(0,0,0,.13); }
.municipality-events__heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.municipality-events h2 { margin: 0; font-size: clamp(1.45rem,2.7vw,2rem); letter-spacing: -.035em; }
.municipality-events__heading > span { padding: .28rem .55rem; border: 1px solid rgba(245,196,81,.3); border-radius: 999px; color: #fff0bf; background: rgba(245,196,81,.07); font-size: .68rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.municipality-events > p:not(.municipality-events__cta-wrap) { margin: 0; color: #d8e3ef; }
.municipality-events__grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(15rem,1fr)); gap: 1rem; }
.municipality-event-card { display: flex; min-width: 0; overflow: hidden; border: 1px solid rgba(104,142,181,.52); border-radius: .82rem; background: linear-gradient(145deg, rgba(21,47,78,.98), rgba(10,25,43,.98)); box-shadow: 0 .7rem 1.6rem rgba(0,0,0,.16); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.municipality-event-card:hover { border-color: rgba(245,196,81,.72); box-shadow: 0 1rem 2rem rgba(0,0,0,.25), 0 0 0 1px rgba(245,196,81,.08); transform: translateY(-3px); }
.municipality-event-card > img, .municipality-event-card__image { display: block; flex: 0 0 clamp(8.75rem,18vw,14rem); width: clamp(8.75rem,18vw,14rem); height: 10.5rem; max-width: 38%; object-fit: cover; background: radial-gradient(circle at 65% 27%, rgba(245,196,81,.46), transparent 23%), linear-gradient(145deg,#24476c,#0b1727); }
.municipality-event-card__image--fallback { position: relative; overflow: hidden; }
.municipality-event-card__image--fallback::after { position: absolute; top: 50%; left: 50%; width: 4.25rem; height: 4.25rem; transform: translate(-50%,-50%); border: 2px solid rgba(255,226,139,.7); border-radius: 50%; box-shadow: 0 0 0 .6rem rgba(245,196,81,.07), 0 0 1.8rem rgba(245,196,81,.25); content: ''; }
.municipality-event-card__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; justify-content: center; min-width: 0; padding: 1rem 1.05rem; }
.municipality-event-card__label, .municipality-event-card__badge { display: inline-block; margin-bottom: .5rem; color: #b9cce0; font-size: .64rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.municipality-event-card__badge { padding: .2rem .45rem; border-radius: 999px; color: #201705; background: #f5c451; }
.municipality-event-card h3 { margin: 0; font-size: clamp(1.02rem,1.5vw,1.22rem); line-height: 1.18; letter-spacing: -.02em; }
.municipality-event-card h3 a { color: #f5f8fc; text-decoration: none; }
.municipality-event-card h3 a:hover, .municipality-event-card h3 a:focus-visible { color: #fff0bf; text-decoration: underline; text-underline-offset: .18em; }
.municipality-event-card__more { display: inline-flex; gap: .35rem; margin-top: .72rem; color: #fff0bf; font-size: .82rem; font-weight: 850; text-decoration: none; }
.municipality-event-card__more span { transition: transform .18s ease; }
.municipality-event-card:hover .municipality-event-card__more span { transform: translateX(.2rem); }
.municipality-events__cta-wrap { margin: 1.25rem 0 0; }
.municipality-events__cta { display: inline-grid; grid-template-columns: auto auto auto; align-items: center; gap: .55rem; min-height: 3rem; padding: .7rem 1rem; border: 1px solid #ffe18a; border-radius: .72rem; color: #17120a; background: linear-gradient(135deg, #ffe28b, #f5c451 48%, #e8af31); box-shadow: 0 .18rem 0 #b47c15, 0 .65rem 1.3rem rgba(245,196,81,.17); font-weight: 750; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease, filter .18s ease; }
.municipality-events__cta strong { font-weight: 900; }
.municipality-events__cta i { font-style: normal; font-size: 1.2rem; transition: transform .18s ease; }
.municipality-events__cta:hover { filter: brightness(1.05); box-shadow: 0 .26rem 0 #b47c15, 0 .9rem 1.6rem rgba(245,196,81,.27); transform: translateY(-2px); }
.municipality-events__cta:hover i { transform: translateX(.18rem); }
.municipality-events__cta:focus-visible { outline: 3px solid rgba(245,196,81,.5); outline-offset: 3px; }
.travel-advice { overflow: hidden; border: 1px solid #294666; border-radius: 1rem; background: linear-gradient(145deg, rgba(22,45,73,.96), rgba(10,23,39,.98)); box-shadow: 0 18px 36px rgba(0,0,0,.15); }
.travel-advice__header { padding: clamp(1.25rem,3vw,2rem) clamp(1.25rem,4vw,2.5rem) 1.35rem; border-bottom: 1px solid rgba(202,220,239,.13); background: radial-gradient(circle at 90% 0, rgba(245,196,81,.15), transparent 28%); }
.travel-advice__header h2 { margin: 0; font-size: clamp(1.55rem,3vw,2.25rem); letter-spacing: -.035em; }
.travel-advice__article { max-width: none; padding: clamp(1.4rem,4vw,2.6rem); }
.travel-advice__article > :first-child { margin-top: 0; }
.travel-advice__article > :last-child { margin-bottom: 0; }
.travel-advice__article p { margin: 0 0 1.15rem; color: #c6d4e5; }
.travel-advice__article h3 { margin: 2.15rem 0 .65rem; color: #fff0bf; font-size: clamp(1.12rem,2vw,1.42rem); line-height: 1.18; letter-spacing: -.02em; }
.travel-advice__article .travel-advice__lead { margin-bottom: 1.65rem; color: #eff5fc; font-size: clamp(1.1rem,2vw,1.28rem); font-weight: 700; line-height: 1.45; }
.tarifa-article { overflow: hidden; margin-top: 2.4rem; border: 1px solid #294666; border-radius: 1rem; background: linear-gradient(145deg, rgba(22,45,73,.96), rgba(10,23,39,.98)); box-shadow: 0 18px 36px rgba(0,0,0,.15); }
.tarifa-article__header { padding: clamp(1.45rem,3.5vw,2.7rem) clamp(1.4rem,4.5vw,3.2rem); border-bottom: 1px solid rgba(202,220,239,.13); background: radial-gradient(circle at 92% 0, rgba(245,196,81,.16), transparent 30%); }
.tarifa-article__header h2 { max-width: 58rem; margin: .45rem 0 0; font-size: clamp(1.7rem,3.3vw,2.7rem); line-height: 1.08; letter-spacing: -.04em; }
.tarifa-article__body { max-width: none; padding: clamp(1.45rem,4.5vw,3.2rem); }
.tarifa-article__body > :first-child { margin-top: 0; }
.tarifa-article__body > :last-child { margin-bottom: 0; }
.tarifa-article__body p { max-width: none; margin: 0 0 1.25rem; color: #c6d4e5; font-size: 1.03rem; line-height: 1.72; }
.tarifa-article__body h2 { max-width: none; margin: 3.25rem 0 1rem; color: #fff0bf; font-size: clamp(1.45rem,2.8vw,2.05rem); line-height: 1.12; letter-spacing: -.035em; }
.tarifa-article__body h3 { max-width: none; margin: 2.35rem 0 .7rem; color: #eff5fc; font-size: clamp(1.18rem,2vw,1.42rem); line-height: 1.2; letter-spacing: -.02em; }
.tarifa-article__body strong { color: #fff0bf; }
.tarifa-article__table-wrap { max-width: 58rem; margin: 1.45rem 0 1.75rem; overflow-x: auto; border: 1px solid rgba(112,151,190,.42); border-radius: .8rem; background: rgba(5,16,30,.35); }
.tarifa-article__table-wrap table { width: 100%; min-width: 34rem; border-collapse: collapse; }
.tarifa-article__table-wrap th, .tarifa-article__table-wrap td { padding: .76rem 1rem; border-bottom: 1px solid rgba(202,220,239,.12); text-align: left; }
.tarifa-article__table-wrap th { color: #aecdde; font-size: .76rem; letter-spacing: .07em; text-transform: uppercase; }
.tarifa-article__table-wrap td { color: #eff5fc; }
.tarifa-article__table-wrap th:last-child, .tarifa-article__table-wrap td:last-child { text-align: right; }
.tarifa-article__table-wrap tr:last-child td { border-bottom: 0; }
.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); }

/* Directorio municipal: una composición editorial, sobria y orientada a la consulta. */
.municipality-directory-showcase { position: relative; isolation: isolate; margin-top: 2.8rem; padding: clamp(1.25rem,3vw,2.4rem); overflow: hidden; border: 1px solid rgba(72,108,145,.55); border-radius: 1.35rem; background: linear-gradient(145deg, rgba(22,47,78,.92), rgba(10,23,39,.98) 66%); box-shadow: 0 28px 55px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.035); }
.municipality-directory-showcase::before { position: absolute; z-index: -1; top: -18rem; right: -12rem; width: 38rem; height: 38rem; border: 1px solid rgba(245,196,81,.13); border-radius: 50%; box-shadow: 0 0 0 2.7rem rgba(245,196,81,.025), 0 0 0 7.2rem rgba(245,196,81,.018), 0 0 6rem rgba(245,196,81,.12); content: ''; pointer-events: none; }
.municipality-directory-showcase::after { position: absolute; z-index: -1; right: 8%; bottom: 17%; width: 14rem; height: 14rem; border-radius: 50%; background: radial-gradient(circle, rgba(94,143,198,.12), transparent 68%); content: ''; filter: blur(8px); pointer-events: none; }
.municipality-directory-showcase .municipality-directory__intro { max-width: 52rem; margin: 0 0 1.8rem; color: #d2ddeb; font-size: clamp(1.08rem,1.7vw,1.3rem); line-height: 1.55; }
.municipality-directory__search { position: relative; z-index: 2; max-width: 100%; margin: 0 0 1rem; padding: 1rem; border: 1px solid rgba(129,163,198,.36); border-radius: 1rem; background: linear-gradient(105deg, rgba(5,15,27,.68), rgba(22,43,68,.6)); box-shadow: 0 16px 34px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.035); }
.municipality-directory__search label { display: flex; align-items: center; gap: .55rem; color: #f5f8fc; font-size: .95rem; letter-spacing: .015em; }
.municipality-directory__search label::before { width: .68rem; height: .68rem; border: 2px solid var(--accent); border-radius: 50%; background: #0a1523; box-shadow: 0 0 12px rgba(245,196,81,.75); content: ''; }
.municipality-directory__search-row { gap: .7rem; }
.municipality-directory__search input { min-height: 3.55rem; padding-inline: 1.15rem; border-color: rgba(111,145,181,.76); border-radius: .75rem; background: linear-gradient(135deg, #f9fbfd, #dce8f3); box-shadow: inset 0 1px 0 rgba(255,255,255,.85), 0 10px 22px rgba(0,0,0,.16); font-size: 1.03rem; }
.municipality-directory__search input::placeholder { color: #617187; }
.municipality-directory__search button { min-height: 3.55rem; padding-inline: 1.45rem; border-radius: .75rem; box-shadow: 0 10px 22px rgba(245,196,81,.18); transition: transform .18s ease, filter .18s ease, box-shadow .18s ease; }
.municipality-directory__search button:hover { filter: brightness(1.06); box-shadow: 0 13px 26px rgba(245,196,81,.28); transform: translateY(-2px); }
.municipality-directory__suggestions { margin-top: .45rem; border-color: rgba(196,217,239,.25); border-radius: .8rem; background: rgba(9,22,39,.98); box-shadow: 0 18px 36px rgba(0,0,0,.38); }
.municipality-directory__count { display: inline-flex; align-items: center; min-height: 2rem; margin: .15rem 0 1.45rem; padding: .3rem .75rem; border: 1px solid rgba(135,166,199,.28); border-radius: 999px; background: rgba(5,16,29,.42); color: #c6d5e5; font-size: .8rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.municipality-directory { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1rem; }
.municipality-card { position: relative; min-height: 12.2rem; padding: 1.2rem; overflow: hidden; border-color: rgba(88,125,164,.52); border-radius: 1rem; background: linear-gradient(145deg, rgba(29,57,90,.96), rgba(12,27,46,.98)); box-shadow: 0 13px 25px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.035); transition: transform .24s cubic-bezier(.2,.75,.25,1), border-color .24s ease, box-shadow .24s ease, background .24s ease; }
.municipality-card::before { position: absolute; top: 0; left: 1.2rem; right: 1.2rem; height: 1px; background: linear-gradient(90deg, transparent, rgba(245,196,81,.85), transparent); content: ''; opacity: .46; transition: opacity .24s ease, left .24s ease, right .24s ease; }
.municipality-card::after { position: absolute; top: -4.5rem; right: -4.5rem; width: 11rem; height: 11rem; border: 1px solid rgba(245,196,81,.1); border-radius: 50%; box-shadow: 0 0 0 1.5rem rgba(245,196,81,.018), 0 0 2.6rem rgba(245,196,81,.06); content: ''; opacity: .7; transition: transform .35s ease, opacity .24s ease; pointer-events: none; }
.municipality-card:hover, .municipality-card:focus-visible { border-color: rgba(245,196,81,.78); background: linear-gradient(145deg, rgba(38,70,108,.98), rgba(13,30,50,.98)); box-shadow: 0 20px 34px rgba(0,0,0,.27), 0 0 0 1px rgba(245,196,81,.12), inset 0 1px 0 rgba(255,255,255,.08); transform: translateY(-5px); }
.municipality-card:hover::before, .municipality-card:focus-visible::before { right: .65rem; left: .65rem; opacity: 1; }
.municipality-card:hover::after, .municipality-card:focus-visible::after { opacity: 1; transform: scale(1.18); }
.municipality-card__name, .municipality-card__meta, .municipality-card__status, .municipality-card__duration, .municipality-card__cta { position: relative; z-index: 1; }
.municipality-card__name { max-width: 12ch; color: #f7faff; font-size: 1.16rem; font-weight: 800; letter-spacing: -.018em; line-height: 1.15; }
.municipality-card__meta { margin-top: 1.55rem; color: #9fb6cf; font-size: .68rem; letter-spacing: .09em; }
.municipality-card__status { margin-top: 1.55rem; color: #ffe49a; font-size: .7rem; letter-spacing: .085em; }
.municipality-card__duration { margin-top: .18rem; color: #fff0bf; font-size: 1.12rem; letter-spacing: -.02em; }
.municipality-card__cta { display: inline-flex; align-items: center; gap: .42rem; margin-top: .95rem; color: #dce9f7; font-size: .78rem; letter-spacing: .01em; }
.municipality-card__cta span { transition: transform .2s ease; }
.municipality-card:hover .municipality-card__cta span, .municipality-card:focus-visible .municipality-card__cta span { transform: translateX(4px); }
.municipality-directory-showcase .source-note { margin: 1.85rem 0 0; padding-top: 1rem; border-top: 1px solid rgba(167,194,221,.16); font-size: .8rem; }

@media (max-width: 960px) { .municipality-directory { grid-template-columns: repeat(3, minmax(0,1fr)); } }

.events-hero { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(18rem,.55fr); gap: 1.5rem; align-items: stretch; margin: .5rem 0 3.2rem; padding: clamp(1.8rem,4vw,3.5rem); 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.35rem; 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 small { max-width: 16rem; font-weight: 650; }
.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: 16 / 9; 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); }
.events-empty a { display: inline-block; margin-top: .4rem; color: #fff0bf; font-weight: 800; }
.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, .admin-event-list__actions > a { padding: .55rem .7rem; border: 0; border-radius: .4rem; color: #17120a; background: var(--accent); font: inherit; font-weight: 800; cursor: pointer; text-decoration: none; }.admin-event-list .admin-event-list__reject { color: #f3e7e7; background: #6d3640; }.admin-event-list__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: end; gap: .5rem; }.admin-event-editor__actions { display: flex; flex-wrap: wrap; gap: .7rem; margin: 1.2rem 0; }.admin-event-editor__actions a, .admin-event-editor__actions button { padding: .6rem .8rem; border: 1px solid #385270; border-radius: .45rem; color: var(--ink); background: #122139; font: inherit; font-weight: 800; text-decoration: none; }.admin-event-editor__actions form { display: flex; gap: .5rem; }.admin-event-editor__actions button:first-child { border: 0; color: #17120a; background: var(--accent); }.admin-event-editor__actions button:last-child { color: #f3e7e7; background: #6d3640; }

.event-form { display: grid; gap: 1rem; margin-top: 2rem; }.event-form__section { display: grid; grid-template-columns: minmax(14rem,.72fr) minmax(0,1.28fr); gap: clamp(1.2rem,4vw,4rem); padding: clamp(1.25rem,3vw,2.1rem); border: 1px solid #2d4969; border-radius: 1rem; background: linear-gradient(145deg,#12253f,#0e192a); }.event-form__section h2 { margin: .25rem 0 .6rem; font-size: clamp(1.5rem,3vw,2.2rem); letter-spacing: -.035em; }.event-form__section p:not(.eyebrow) { margin: 0; color: var(--muted); }.event-form__fields { display: grid; gap: 1rem; align-content: start; }.event-form__fields--two { grid-template-columns: repeat(2,minmax(0,1fr)); }.event-form label { display: grid; gap: .45rem; color: #f1f6fc; font-weight: 800; }.event-form label em, .event-form label small { color: var(--muted); font-size: .76rem; font-style: normal; font-weight: 600; }.event-form input, .event-form textarea, .event-form select { width: 100%; box-sizing: border-box; border: 1px solid #4b6382; border-radius: .6rem; padding: .78rem .86rem; background: #fff; color: #142131; font: inherit; font-weight: 500; }.event-form textarea { min-height: 10rem; resize: vertical; line-height: 1.5; }.event-form input[type=file] { padding: .55rem; color: #eef5fd; background: rgba(8,19,33,.6); }.event-form input:focus, .event-form textarea:focus, .event-form select:focus { outline: 3px solid rgba(245,196,81,.38); outline-offset: 2px; border-color: var(--accent); }.event-form__picker { position: relative; display: block; }.event-form__picker input { padding-right: 3.35rem; }.event-form__picker button { position: absolute; z-index: 1; top: 50%; right: .35rem; width: 2.35rem; height: calc(100% - .7rem); transform: translateY(-50%); border: 0; border-radius: .4rem; color: #172a42; background: #e8eef5; font: inherit; font-size: 1.45rem; font-weight: 900; line-height: 1; cursor: pointer; }.event-form__picker button:hover,.event-form__picker button:focus-visible { color: #17120a; background: var(--accent); outline: 2px solid rgba(245,196,81,.45); outline-offset: 1px; }.event-form__current-image { color: #fff0bf; font-size: .82rem; }.event-form__visibility { background: radial-gradient(circle at 93% 0, rgba(245,196,81,.18), transparent 34%),linear-gradient(145deg,#12253f,#0e192a); }.event-plan-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; align-content: start; }.event-plan { position: relative; display: block !important; cursor: pointer; }.event-plan input { position: absolute; opacity: 0; }.event-plan span { display: grid; min-height: 7rem; gap: .65rem; padding: 1rem; border: 1px solid #3c5676; border-radius: .75rem; background: rgba(7,18,31,.54); transition: border-color .16s ease,background .16s ease,transform .16s ease; }.event-plan strong { color: var(--ink); }.event-plan b { color: #fff0bf; font-size: 1.35rem; }.event-plan small { color: var(--muted); font-size: .8rem; font-weight: 500; }.event-plan:hover span { transform: translateY(-2px); border-color: #8ba4c2; }.event-plan input:checked + span { border-color: var(--accent); background: rgba(245,196,81,.11); box-shadow: inset 0 0 0 1px rgba(245,196,81,.25); }.event-form__footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; border: 1px solid #2d4969; border-radius: .85rem; background: #102039; }.event-form__footer p { max-width: 42rem; margin: 0; color: var(--muted); }.event-form__footer button { flex: 0 0 auto; padding: .9rem 1.15rem; border: 0; border-radius: .55rem; color: #17120a; background: var(--accent); font: inherit; font-weight: 900; cursor: pointer; }

.event-plan { height: 100%; }
.event-plan span { box-sizing: border-box; height: 100%; }

/* Dos opciones: aprovechan el ancho disponible sin perder equilibrio visual. */
.event-form__visibility { grid-template-columns: minmax(15rem, .55fr) minmax(0, 1.45fr); }
.event-form__visibility .event-plan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: center; }

/* Dos modalidades: ocupar el espacio disponible con una composición equilibrada. */
.event-form__visibility { grid-template-columns: minmax(15rem, .55fr) minmax(0, 1.45fr); }
.event-form__visibility .event-plan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: center; }

.event-form__picker { position: relative; display: block; }
.event-form__picker input { padding-right: 3.35rem; }
.event-form__picker > button { position: absolute; z-index: 1; top: 50%; right: .35rem; width: 2.35rem; height: calc(100% - .7rem); transform: translateY(-50%); border: 0; border-radius: .4rem; color: #172a42; background: #e8eef5; font: inherit; font-size: 1.45rem; font-weight: 900; line-height: 1; cursor: pointer; }
.event-form__picker > button:hover,.event-form__picker > button:focus-visible { color: #17120a; background: var(--accent); outline: 2px solid rgba(245,196,81,.45); outline-offset: 1px; }
.event-native-picker { position: absolute; z-index: 20; top: calc(100% + .45rem); right: 0; width: min(20rem,calc(100vw - 3rem)); padding: .8rem; border: 1px solid #496685; border-radius: .75rem; color: #edf4fc; background: #10243d; box-shadow: 0 1rem 2rem rgba(0,0,0,.3); }
.event-native-picker__head { display: grid; grid-template-columns: 2rem 1fr 2rem; align-items: center; gap: .4rem; margin-bottom: .65rem; text-align: center; }
.event-native-picker__head button { border: 0; border-radius: .35rem; color: #eef5fd; background: #203c5d; font: inherit; font-size: 1.5rem; line-height: 1.5; cursor: pointer; }
.event-native-picker__week,.event-native-picker__days { display: grid; grid-template-columns: repeat(7,1fr); gap: .2rem; text-align: center; }
.event-native-picker__week { margin-bottom: .28rem; color: #a7b9ce; font-size: .72rem; }
.event-native-picker__days button { aspect-ratio: 1; border: 0; border-radius: .35rem; color: #edf4fc; background: transparent; font: inherit; cursor: pointer; }
.event-native-picker__days button:hover,.event-native-picker__days button:focus-visible { color: #17120a; background: var(--accent); outline: 0; }
.event-native-picker__days button[aria-current=date] { box-shadow: inset 0 0 0 2px var(--accent); }
.event-native-picker__time { display: grid; grid-template-columns: 1fr auto 1fr; align-items: end; gap: .5rem; }
.event-native-picker__time label { display: grid; gap: .35rem; color: #c8d6e7; font-size: .77rem; font-weight: 800; }
.event-native-picker__time select { min-width: 0; padding: .6rem; border: 1px solid #587494; border-radius: .4rem; color: #142131; background: #fff; font: inherit; }
.event-native-picker__time > span { padding-bottom: .55rem; font-size: 1.3rem; }
.event-native-picker__apply { width: 100%; margin-top: .75rem; padding: .65rem; border: 0; border-radius: .4rem; color: #17120a; background: var(--accent); font: inherit; font-weight: 900; cursor: pointer; }

@media (hover: none), (pointer: coarse) {
  .event-form__picker input { padding-right: .86rem; }
  .event-form__picker > button { display: none; }
}

@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; }
  .municipality-data-card { border-radius: .8rem; }
  .municipality-data-card__header { align-items: start; flex-direction: column; gap: .35rem; }
  .municipality-data-card__date { font-size: .84rem; white-space: normal; }
  .municipality-data-card__highlights { grid-template-columns: 1fr 1fr; }
  .municipality-data-card__highlights > div { min-height: 5.9rem; padding: .9rem 1rem; }
  .municipality-data-card__highlights > div + div { border-left: 1px solid rgba(202,220,239,.13); }
  .municipality-data-card__highlights > div:last-child { grid-column: 1 / -1; min-height: 4.9rem; border-top: 1px solid rgba(202,220,239,.13); border-left: 0; }
  .municipality-data-card__body { grid-template-columns: 1fr; gap: .8rem; }
  .municipality-data-card__timeline li { grid-template-columns: .9rem minmax(0,1fr) auto; gap: .48rem; }
  .municipality-data-card__timeline time { font-size: 1.02rem; }
  .municipality-data-card__solar { grid-template-columns: 1fr 1fr; padding-top: .2rem; }
  .municipality-data-card__solar > div { padding: .75rem; }
  .municipality-data-card__solar dt { font-size: .64rem; }
  .municipality-data-card__source { align-items: start; flex-direction: column; gap: .25rem; }
  .municipality-events__cta { width: 100%; grid-template-columns: 1fr auto; }
  .municipality-events__cta strong { grid-row: 2; }
  .municipality-events__cta i { grid-column: 2; grid-row: 1 / span 2; }
  .municipality-events__heading { align-items: start; flex-direction: column; gap: .5rem; }
  .municipality-event-card > img, .municipality-event-card__image { flex-basis: 34%; width: 34%; height: 8.75rem; min-height: 0; }
  .travel-advice { border-radius: .8rem; }
  .travel-advice__header { padding-bottom: 1.1rem; }
  .travel-advice__article { padding: 1.2rem; }
  .tarifa-article { border-radius: .8rem; }
  .tarifa-article__header { padding: 1.3rem 1.2rem; }
  .tarifa-article__body { padding: 1.25rem 1.2rem; }
  .tarifa-article__body p { font-size: 1rem; line-height: 1.65; }
  .tarifa-article__body h2 { margin-top: 2.6rem; }
  .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; }
  .admin-event-list__actions { align-items: stretch; justify-content: stretch; flex-direction: column; }
  .admin-event-list__actions > a { text-align: center; }
  .event-form__section, .event-form__fields--two, .event-plan-grid, .event-form__visibility .event-plan-grid { grid-template-columns: 1fr; }
  .event-form__picker input { padding-right: .86rem; }
  .event-form__picker > button { display: none; }
  .event-form__footer { align-items: stretch; flex-direction: column; }
  .event-form__footer button { width: 100%; }
  .admin-event-editor__actions, .admin-event-editor__actions 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; }
  .contact-form__grid { grid-template-columns: 1fr; }
  .contact-form button { width: 100%; }
  .legal-page__identity { grid-template-columns: 1fr; gap: .15rem; }
  .legal-page__identity dd { margin-bottom: .55rem; }
}

.finder-recommendation__actions { display:flex; flex-wrap:wrap; gap:.55rem; }
.finder-recommendations article button.is-secondary { color:#eef5fc; background:transparent; border-color:#7692ad; }
.finder-provenance { color:#aebfd0; font-size:.72rem; }
.finder-provenance summary { cursor:pointer; font-weight:800; }
.finder-provenance p { margin:.4rem 0 0; }
.finder-osm-tiles img[hidden] { display:none; }
.finder-osm-frame:focus-visible { outline:3px solid #f5c451; outline-offset:-3px; }

/* Observation guide: clear search, compact cards and a scroll-friendly map. */
.observation-page .page { padding-top: 2rem; }
.observation-page h1 { max-width: 22ch; font-size: clamp(2rem,4.5vw,3.7rem); line-height: 1.12; margin: .6rem 0 1.5rem; }
.observation-page .breadcrumbs { margin-bottom: 1.4rem; }
.observation-page .finder-intro { margin-top: 0; }
.finder-jumps { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; margin-top: 1rem; }
.finder-jumps .finder-start { margin: 0; }
.finder-jumps > a:not(.finder-start), .finder-truth a { color: #e2edf8; font-weight: 700; text-underline-offset: .25rem; }
.finder-advisor__controls { grid-template-columns: 1.4fr 1fr 1fr 1fr auto; gap: .8rem; }
.finder-advisor input[type=search] { min-width: 0; width: 100%; min-height: 3.15rem; padding: .65rem .75rem; border: 1px solid #7491ac; border-radius: .62rem; color: #152334; background: #fff; font: inherit; }
.finder-filter-note { padding: 0 1.2rem; margin: 0 0 1rem; color: #b9c9da; font-size: .82rem; }
.finder-result-summary { padding: 1rem 1.2rem 0; margin: 0; border-top: 1px solid var(--finder-line); color: #e6eef7; }
.finder-recommendations { grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 0; }
.finder-recommendations article > div { display: flex; flex-direction: column; align-items: start; }
.finder-recommendations article { padding: 1.2rem; }
.finder-recommendations h3 { margin-top: .6rem; line-height: 1.25; }
.finder-card-duration { display: block; margin-top: .65rem; color: #fff0bf; font-size: 1.25rem; }
.finder-recommendations .finder-card-caption { margin-top: 0; color: #afc2d4; font-size: .8rem; }
.finder-recommendations article .finder-recommendation__caution { font-size: .88rem; color: #c3d1df !important; }
.finder-recommendation__actions { margin-top: auto; padding-top: .7rem; }
.finder-recommendations article button[aria-pressed=true] { background: #294568; border-color: #f5c451; color: #fff0bf; }
.finder-show-all { display: block; margin: 0 auto 1.3rem; padding: .8rem 1.2rem; min-height: 44px; border: 1px solid #91abc4; border-radius: .6rem; background: transparent; color: #eef5fc; font: inherit; cursor: pointer; }
.finder-show-all[hidden] { display: none; }
.finder-compare-tray { grid-template-columns: auto minmax(0,1fr) auto auto; position: sticky; bottom: 1rem; }
.finder-compare-tray > [data-compare-warning]:empty { display: none; }
.finder-compare-tray > [data-compare-warning]:not(:empty) { grid-column: 1/-1; }
.finder-compare-tray button:disabled { opacity: .65; cursor: default; }
.finder-compare__grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,16rem),1fr)); }
.finder-map-detail .finder-place__badges { padding-right: 2rem; }
.finder-map-detail .finder-provenance { margin: 1rem 0; }
.finder-osm-frame { touch-action: pan-y; }
.finder-map-marker.is-mapped::before { background: #efb83e; }
.finder-map-detail:focus-visible, .finder-compare:focus-visible { outline: 3px solid #f5c451; outline-offset: -3px; }
.finder-sources { padding: 1.2rem; border: 1px solid #456d90; border-radius: .8rem; }
.finder-sources summary { cursor: pointer; font-weight: 800; min-height: 2rem; }
.finder-advisor noscript { display: block; padding: 1.2rem; }
@media(max-width:1100px) { .finder-advisor__controls { grid-template-columns: repeat(2,minmax(0,1fr)); } .finder-search-label { grid-column: 1/-1; } .finder-recommendations { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:620px) { .finder-advisor__controls, .finder-recommendations { grid-template-columns: minmax(0,1fr); } .finder-search-label { grid-column: auto; } .finder-compare-tray { grid-template-columns: 1fr auto; bottom: .4rem; } .finder-jumps { gap: .85rem; } .finder-compare-tray > [data-compare-warning]:not(:empty) { grid-row: 4; } .finder-map-detail { min-height: 0; } }
@media(prefers-reduced-motion:reduce) { .finder-compare-tray.is-full { animation: none; } }
