/*
Theme Name: galway.buzz
Theme URI: https://galway.buzz
Author: Ourside / Locali Gaillimh
Description: Gaillimh, the Galway City App. Bespoke classic theme on ACF Pro. Hummingbird Low-Carbon Playbook v2 and Security Playbook. Dark-first Aurora palette, Gaillimh display + Jost (Light for labels), content-card system, self-hosted.
Version: 4.0.0
Requires at least: 6.6
Requires PHP: 8.2
License: Proprietary
Text Domain: galway-app
*/
/* Compiled from website-rev4/{site,cards,pages,events,story,rev4}.css + page-level styles on 2026-11-04. Edit the design source, re-run the compile, do not hand-edit below this line. */
@font-face{font-family:"Gaillimh";src:url("assets/fonts/Gaillimh-Bold.woff2") format("woff2"),url("assets/fonts/Gaillimh-Bold.otf") format("opentype");font-weight:700;font-display:swap}
@font-face{font-family:"Gaillimh";src:url("assets/fonts/Gaillimh-Black.woff2") format("woff2"),url("assets/fonts/Gaillimh-Black.otf") format("opentype");font-weight:900;font-display:swap}
/* Jost (300–700) is self-hosted when assets/fonts/Jost-Variable.woff2 exists (setup.php), else Google Fonts. No JetBrains Mono: --mono resolves to Jost Light. */

/* ---- site.css ---- */
/* Aurora palette - dark-first, crest vivids, teal = system */
:root{--forest:#0A0C11;--moss:#14171F;--fern:#00D6C2;--lime:#00D6C2;--lime-ink:#0A0C11;--cream:#F4F5F8;--sand:#1B1F29;--ink:#F4F5F8;--muted:#9CA3B4;--teal:#00D6C2;--magenta:#FF1E8E;--orange:#FF8A3D;--blue:#3AA0FF;--yellow:#FFC83D;--purple:#9A5BFF;--line:rgba(255,255,255,.08);--line2:rgba(255,255,255,.14);--grad-hot:linear-gradient(100deg,#FF8A3D,#FF1E8E 55%,#9A5BFF);--grad-cool:linear-gradient(120deg,#00D6C2,#3AA0FF);--radius:28px;--serif:"Newsreader",Georgia,serif;--sans:"Jost","Futura",system-ui,sans-serif;--display:"Gaillimh",var(--sans);--mono:"Jost",system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);color:var(--ink);background:#0E1118;line-height:1.5;text-wrap:pretty}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}a:hover{color:var(--fern)}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:-.01em;line-height:1.02}
.wrap{width:min(100% - 40px,1180px);margin-inline:auto}
@media(max-width:480px){.wrap{width:min(100% - 32px,1180px)}}
.eyebrow{font-family:var(--sans)!important;font-size:14px!important;font-weight:500;letter-spacing:.08em;text-transform:none;color:var(--fern);display:flex;align-items:center;gap:10px;max-width:none!important;line-height:1.2}

.dark .eyebrow{color:var(--lime)}
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;font-weight:600;font-size:15px;min-height:48px;transition:transform .15s,background .15s}
.btn:active{transform:scale(.97)}
.btn-lime{background:var(--lime);color:var(--lime-ink)}.btn-lime:hover{background:#00b8a6;color:var(--lime-ink)}
.btn-ghost{border:1.5px solid currentColor}.btn-ghost:hover{background:rgba(255,255,255,.08)}
.dark .btn-ghost:hover{color:#fff}
.btn-forest{background:var(--cream);color:var(--forest)}.btn-forest:hover{background:#fff;color:var(--forest)}
.pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:600;background:rgba(255,255,255,.14);color:#fff;backdrop-filter:blur(8px)}
.dark{background:var(--forest);color:var(--cream)}
.hero.dark{background:radial-gradient(900px 500px at 80% -10%,rgba(154,91,255,.22),transparent 60%),radial-gradient(700px 400px at 0% 100%,rgba(0,214,194,.14),transparent 60%),var(--forest)}

/* nav */
.nav{position:sticky;top:0;z-index:50;padding:12px 0}
.nav .bar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:rgba(255,255,255,.72);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-radius:999px;padding:8px 10px 8px 10px;border:1px solid rgba(255,255,255,.4);box-shadow:0 8px 30px rgba(0,0,0,.25)}
.nav .brand{color:#0A0C11}.nav .nav-links{color:#4F5767}.nav .nav-links a:hover{color:#0A0C11}
.nav .menu-btn{background:#0A0C11;color:#fff}
.nav .brand.lockup img{filter:none!important}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-size:20px;font-weight:900;color:var(--cream)}
.brand img{width:56px;height:auto}
.nav .brand{font-size:24px;gap:12px}.nav .brand img{width:56px;margin:0}
.brand.lockup{flex:none}.brand.lockup img{width:auto!important;height:44px!important;max-width:none;margin:0;flex:none;content:normal!important}
@media(min-width:900px){.brand.lockup img{height:52px!important}}
.menu-top .brand.lockup img{filter:none!important;height:48px!important;content:url("assets/img/gaillimh-lockup-white.png")!important}
footer .brand{gap:12px;font-size:24px}footer .brand img{width:56px}
.nav-links{display:none;gap:36px;font-family:var(--display);font-size:17px;font-weight:700;letter-spacing:.01em;color:var(--muted);align-items:center;margin-left:auto;padding-right:28px}
.nav-links a:hover{color:var(--cream)}
.menu-btn{width:44px;height:44px;border-radius:50%;background:var(--sand);color:var(--cream);display:grid;place-items:center}
@media(min-width:900px){.nav-links{display:flex}.menu-btn{display:none}}

/* hero */
.hero{position:relative;overflow:clip;padding:56px 0 64px}
.hero .wrap{display:grid;gap:48px}
.hero h1{font-size:clamp(44px,9vw,104px);max-width:12ch}
.hero h1 em{font-style:normal;color:var(--lime)}
.hero .loc{display:inline-flex;align-items:center;gap:10px;margin-top:32px;padding:10px 16px 10px 12px;border-radius:999px;background:var(--moss);border:1px solid var(--line2);font-size:16px;color:var(--ink)}
.hero .loc b{font-weight:600}
.hero .loc .loc-dot{width:10px;height:10px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px rgba(0,214,194,.25);animation:pulse 2s infinite}
body[data-bg="paper"] .hero .loc{background:#fff;box-shadow:0 8px 24px rgba(10,12,17,.08)}
body[data-bg="paper"] .hero .loc .loc-dot{background:#009183;box-shadow:0 0 0 4px rgba(0,145,131,.2)}
.hero p.lede{font-size:clamp(17px,2vw,21px);color:#C7CDD9;margin-top:20px!important;max-width:46ch}
.hero .ctas{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.hero .ctas small{font-size:13px;color:var(--muted);flex-basis:100%;margin-top:-4px}
.store{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:14px;background:#000;color:#fff;font-size:13px;line-height:1.1;border:1px solid rgba(255,255,255,.15)}
.store b{display:block;font-size:15px}
.hero-art{position:relative;height:clamp(300px,48vw,440px);border-radius:var(--radius);overflow:hidden;background:var(--moss)}
.hero-art img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero-art .card{position:absolute;padding:12px 14px;border-radius:18px;background:rgba(20,23,31,.88);backdrop-filter:blur(12px);border:1px solid var(--line2);color:var(--ink);border-radius:20px;padding:14px 16px;box-shadow:0 20px 50px rgba(0,0,0,.35)}
.hero-art .card.weather{left:16px;top:16px;display:flex;gap:14px;align-items:center}
.hero-art .card.weather .t{font-family:var(--display);font-size:24px;line-height:1}
.hero-art .card.weather small{display:block;font-size:11px;color:var(--muted);font-family:var(--mono)}
.hero-art .card.tide{right:16px;bottom:16px;min-width:168px}
.hero-art .card.tide .row{display:flex;justify-content:space-between;font-size:13px;margin-top:6px}
.hero-art .card.tide .row b{font-family:var(--mono);font-weight:500}
.hero-art .badge{position:absolute;left:16px;bottom:16px}
.hero-art .badge .pill{background:rgba(10,12,17,.7);color:var(--teal)}
@media(min-width:900px){.hero{padding-top:64px;padding-bottom:64px}.hero .wrap{grid-template-columns:1fr;align-items:end;gap:64px}.hero .wrap>div:first-child{padding-bottom:0}.hero-art{height:480px}.hero h1{max-width:10ch}}

/* ticker */
.ticker{background:var(--grad-hot);color:var(--lime-ink);overflow:hidden;white-space:nowrap;padding:14px 0;font-family:var(--display);font-size:20px}
.ticker .track{display:inline-flex;gap:40px;animation:tick 40s linear infinite;padding-left:100%}
.ticker span::before,.ticker a::before{content:"•";margin-right:40px;color:rgba(10,12,17,.5)}
.ticker a{color:inherit!important}.ticker a:hover{color:inherit!important;text-decoration:underline;text-underline-offset:4px}
@keyframes tick{to{transform:translateX(-100%)}}

/* sections */
section{padding:64px 0}
@media(min-width:900px){section{padding:112px 0}}
.sec-head{display:grid;gap:16px;margin-bottom:32px}
.sec-head h2{font-size:clamp(34px,5.5vw,64px);max-width:16ch;margin-top:16px}
.sec-head>p{color:var(--muted);font-size:17px;max-width:50ch}
@media(min-width:900px){.sec-head{grid-template-columns:1fr 1fr;align-items:end;gap:48px;margin-bottom:48px}.sec-head>p{justify-self:end}}

/* category grid */
.grid6{display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}
@media(min-width:900px){.grid6{gap:16px}}
@media(min-width:720px){.grid6{grid-template-columns:repeat(3,1fr)}}
.cat{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:1;background:var(--sand);display:flex;align-items:flex-end;padding:16px;padding-right:48px;color:#fff;isolation:isolate}
.cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .5s}
.cat:hover img{transform:scale(1.04)}
.cat::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(10,12,17,.9));z-index:-1}
.cat h3{font-size:clamp(18px,2.4vw,26px);color:#fff}
.cat .n{position:absolute;top:14px;left:14px;font-family:var(--mono);font-size:11px;background:rgba(255,255,255,.18);backdrop-filter:blur(6px);padding:4px 8px;border-radius:6px}
.cat .arr{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:var(--c,var(--teal));color:var(--lime-ink);display:grid;place-items:center}
.cat:hover{color:#fff}

/* map */
.map-wrap{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--moss);border:1px solid var(--line);height:clamp(420px,70vw,640px);box-shadow:0 30px 80px rgba(0,0,0,.4)}
#map{position:absolute;inset:0}
.map-fallback{position:absolute;inset:0;background:radial-gradient(ellipse at 60% 50%,#1B1F29,#0A0C11 70%);display:grid;place-items:center;text-align:center;padding:24px}
.map-fallback canvas{position:absolute;inset:0;width:100%;height:100%}
.map-fallback .note{position:relative;background:rgba(10,12,17,.8);backdrop-filter:blur(8px);padding:14px 18px;border-radius:16px;font-size:13px;color:var(--muted);max-width:36ch;border:1px solid var(--line2)}
.map-fallback .note code{font-family:var(--mono);color:var(--lime)}
.map-ui{position:absolute;left:16px;right:16px;top:16px;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;z-index:2;padding-bottom:4px}.map-ui::-webkit-scrollbar{display:none}.map-ui .chip{flex:none}
.chip{padding:9px 14px;border-radius:999px;background:rgba(20,23,31,.9);backdrop-filter:blur(8px);color:var(--cream);font-size:13px;font-weight:600;min-height:40px;display:inline-flex;align-items:center;gap:6px;border:1px solid transparent}
.chip[aria-pressed="true"]{background:var(--lime);color:var(--lime-ink)}
.chip .dot{width:8px;height:8px;border-radius:50%;background:currentColor}
.map-card{position:absolute;left:16px;right:16px;bottom:16px;z-index:2;background:rgba(20,23,31,.94);backdrop-filter:blur(12px);border:1px solid var(--line2);color:var(--ink);border-radius:20px;padding:14px;display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:center;box-shadow:0 20px 50px rgba(0,0,0,.4)}
.map-card img{width:64px;height:64px;border-radius:14px;object-fit:cover}.map-card img[hidden]{display:none}
.map-card .mark{width:64px;height:64px;border-radius:14px;display:grid;place-items:center;font-family:var(--display);font-size:30px;font-weight:900;line-height:1;color:#0A0C11;background:var(--yellow)}.map-card .mark[hidden]{display:none}
.map-card .mark[data-t="eat"]{background:var(--orange)}.map-card .mark[data-t="shop"]{background:var(--yellow)}.map-card .mark[data-t="stay"]{background:var(--purple);color:#fff}.map-card .mark[data-t="info"]{background:var(--blue);color:#fff}
.map-card .sub{display:block;font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:4px;letter-spacing:.02em}.map-card .sub:empty{display:none}
.open-pill{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:13px;font-weight:600}.open-pill::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.open-pill.is-open{color:#34D399}.open-pill.is-closed{color:#FF5A47}.open-pill.is-unknown{color:var(--muted)}
.map-card h3{font-size:18px}
.map-card small{color:var(--muted);font-size:13px;display:block}
.map-card .stat{font-family:var(--mono);font-size:12px;color:var(--muted);text-align:right;line-height:1.4}
.map-card .stat b{color:var(--ink);font-weight:500;display:block;font-size:14px}
@media(min-width:900px){.map-card{left:auto;width:420px}}
.marker{width:14px;height:14px;border-radius:50%;background:var(--yellow);border:3px solid var(--forest);box-shadow:0 0 0 4px rgba(255,255,255,.15);cursor:pointer}
.marker.trail{background:var(--teal)}.marker.event{background:var(--magenta)}.marker.eat{background:var(--orange)}
.marker.shop{background:var(--purple)}.marker.stay{background:var(--blue)}.marker.info{background:var(--muted)}
.marker.approx{width:11px;height:11px;border-width:2px;box-shadow:none;opacity:.9}
.marker.me{background:#fff;animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.5)}100%{box-shadow:0 0 0 18px rgba(255,255,255,0)}}

/* geofence */
.geo{display:grid;gap:48px;align-items:center}
@media(min-width:900px){.geo{grid-template-columns:1fr 1fr;gap:64px}}
.geo .copy h2{font-size:clamp(34px,5.5vw,60px)}
.geo .copy h2{margin-top:16px}
.geo .copy p{color:var(--muted);font-size:17px;margin-top:16px;max-width:46ch}
.geo .copy ul{list-style:none;margin-top:32px;display:grid;gap:16px}
.geo .copy li{display:grid;grid-template-columns:40px 1fr;gap:16px;align-items:start}
.geo .copy li b{display:block;font-weight:600}
.geo .copy li span{color:var(--muted);font-size:14px}
.geo .copy li i{width:40px;height:40px;border-radius:12px;background:var(--sand);color:var(--teal);display:grid;place-items:center;font-style:normal;font-family:var(--mono);font-size:13px}
.geo-img{border-radius:var(--radius);overflow:hidden;aspect-ratio:4/5;background:var(--moss)}
.geo-img img{width:100%;height:100%;object-fit:cover}
.phone{position:relative;width:min(100%,340px);aspect-ratio:9/19;margin-inline:auto;border-radius:48px;background:#1B1F29;padding:12px;box-shadow:0 40px 100px rgba(0,0,0,.5),0 0 0 1px var(--line2)}
.phone .screen{position:relative;height:100%;border-radius:38px;overflow:hidden;background:var(--forest)}
.phone .screen>img{width:100%;height:100%;object-fit:cover;opacity:.85}
.phone .island{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:100px;height:30px;border-radius:999px;background:#000}
.geo-ring{position:absolute;left:50%;top:48%;width:170px;height:170px;border-radius:50%;border:2px dashed rgba(0,214,194,.6);transform:translate(-50%,-50%);animation:ring 3s ease-in-out infinite}
@keyframes ring{0%,100%{transform:translate(-50%,-50%) scale(.95);opacity:.5}50%{transform:translate(-50%,-50%) scale(1.05);opacity:1}}
.geo-me{position:absolute;left:50%;top:48%;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid var(--lime);transform:translate(-50%,-50%);animation:walk 6s ease-in-out infinite}
@keyframes walk{0%{transform:translate(-140px,60px)}50%,100%{transform:translate(-50%,-50%)}}
.toast{position:absolute;left:14px;right:14px;top:58px;background:rgba(27,31,41,.96);border:1px solid var(--line2);color:var(--ink);border-radius:18px;padding:12px 14px;display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:center;box-shadow:0 12px 30px rgba(0,0,0,.3);animation:toast 6s ease-in-out infinite}
.toast img{width:40px;height:40px;border-radius:10px}
.toast b{display:block;font-size:14px;font-family:var(--display)}.toast span{font-size:12px;color:var(--muted)}
@keyframes toast{0%,45%{transform:translateY(-120px);opacity:0}55%,95%{transform:none;opacity:1}100%{opacity:0}}
.stop-sheet{position:absolute;left:0;right:0;bottom:0;background:var(--moss);border-top:1px solid var(--line2);color:var(--ink);border-radius:28px 28px 38px 38px;padding:18px 18px 22px}
.stop-sheet .eyebrow{font-size:10px}
.stop-sheet h3{font-size:22px;margin-top:6px}
.stop-sheet .player{display:flex;align-items:center;gap:12px;margin-top:12px}
.stop-sheet .play{width:44px;height:44px;border-radius:50%;background:var(--teal);color:var(--forest);display:grid;place-items:center;flex:none}
.stop-sheet .bar{flex:1;height:4px;border-radius:2px;background:var(--sand);overflow:hidden}
.stop-sheet .bar i{display:block;height:100%;width:38%;background:var(--teal)}
.stop-sheet small{font-family:var(--mono);font-size:11px;color:var(--muted)}
.geo-live{margin-top:32px;padding:16px 20px;border-radius:18px;background:var(--moss);border:1px solid var(--line);display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.geo-live p{margin:0;font-size:14px;color:var(--ink)}
.geo-live p small{display:block;color:var(--muted);font-family:var(--mono);font-size:12px;margin-top:2px}

/* featured tour */
.feature .eyebrow{color:var(--magenta)}
.feature{display:grid;gap:24px;border-radius:var(--radius);overflow:hidden;background:var(--moss);border:1px solid var(--line);color:var(--cream)}
.feature .img{aspect-ratio:4/3;overflow:hidden}
.feature .img img{width:100%;height:100%;object-fit:cover}
.feature .body{padding:32px 24px 36px;display:grid;gap:20px;align-content:center}
.feature h3{font-size:clamp(30px,4.5vw,52px)}
.feature p{color:var(--muted);max-width:46ch}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.stats div{background:var(--sand);border-radius:16px;padding:14px 16px}
.stats b{display:block;font-family:var(--display);font-size:22px;line-height:1.1}
.stats small{display:block;font-family:var(--mono);font-size:11px;color:var(--muted)}
@media(min-width:900px){.feature{grid-template-columns:1.1fr .9fr;gap:0}.feature .img{aspect-ratio:auto}.feature .body{padding:64px}}

/* notify */
.notify{background:var(--moss)}
.notify .box{display:grid;gap:40px;align-items:center}
@media(min-width:900px){.notify .box{grid-template-columns:1.1fr .9fr;gap:64px}}
.notify h2{font-size:clamp(34px,5.5vw,60px);margin-top:16px}
.notify p{color:var(--muted);font-size:17px;margin-top:16px;max-width:48ch}
.notify form{background:var(--forest);border-radius:24px;padding:24px;display:grid;gap:12px;border:1px solid var(--line)}
.notify form .btn{margin-top:8px;justify-content:center}
.notify label{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border-radius:14px;background:var(--sand);font-size:14px;cursor:pointer}
.notify label input{margin-top:3px;accent-color:var(--teal);width:18px;height:18px}
.notify label b{display:block}.notify label span{color:var(--muted);font-size:13px}
.never{font-size:13px;color:var(--muted);line-height:1.6}
.never b{color:var(--ink)}

/* partners */
.tiers{display:grid;gap:14px}
@media(min-width:720px){.tiers{grid-template-columns:repeat(4,1fr)}}
.tier{border-radius:22px;padding:22px;background:var(--moss);border:1px solid var(--line);display:grid;gap:10px;align-content:start}
.tier.hi{background:var(--grad-cool);color:var(--lime-ink);border-color:transparent}.tier.hi p{opacity:.85}
.tier .price{font-family:var(--display);font-size:34px;line-height:1}
.tier .price small{font-family:var(--mono);font-size:12px;font-weight:400;opacity:.7}
.tier h3{font-size:16px;font-family:var(--sans);font-weight:600}
.tier p{font-size:13px;opacity:.8}

/* footer */
footer{padding:64px 0 32px;background:var(--forest);border-top:1px solid var(--line);color:var(--muted);font-size:14px}
footer .cols{display:grid;gap:32px}
@media(min-width:720px){footer .cols{grid-template-columns:2fr 1fr 1fr 1fr}}
footer h4{color:var(--cream);font-size:18px;font-family:var(--display);letter-spacing:0;text-transform:none;margin-bottom:12px;font-weight:700}
footer ul{list-style:none;display:grid;gap:10px}
footer a:hover{color:var(--teal)}
footer .legal{margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:12px}
footer .mission{font-family:var(--display);font-size:22px;color:var(--cream);max-width:26ch;margin-top:12px;line-height:1.15;letter-spacing:-.01em}

/* today */
.today{padding:0 0 64px}
.today-grid{display:grid;gap:12px;grid-template-columns:1fr}
.tile{background:var(--moss);border:1px solid var(--line);border-radius:20px;padding:16px;display:grid;gap:12px;align-content:space-between;min-height:0}
@media(min-width:800px){.tile{padding:20px}}
.tile>small{font-family:var(--sans);font-weight:300;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.tile .big{display:flex;align-items:baseline;gap:2px;font-family:var(--display);font-size:clamp(34px,7vw,48px);line-height:1;flex-wrap:wrap}
.tile .big .unit{font-size:18px;color:var(--muted)}
.tile .big .imp{font-family:var(--mono);font-size:13px;color:var(--muted);margin-left:8px;font-weight:400}
.tile p{color:#C7CDD9}
.tile .mini{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.tile .mini div{background:var(--sand);border-radius:14px;padding:12px}
.tile .mini b{display:block;font-weight:600;font-size:15px}
.tile .mini i{display:block;font-style:normal;font-family:var(--mono);font-size:11px;color:var(--muted)}
.tile .mini span{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.tide-list{display:grid;gap:8px}
.trow{display:grid;grid-template-columns:48px 60px 1fr;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;background:var(--sand)}
.trow .k{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}
.trow .k.lo{color:var(--teal)}
.trow b{font-weight:600;font-size:16px}
.trow em{font-style:normal;font-family:var(--mono);font-size:12px;color:var(--muted);text-align:right}
.tide-curve{width:100%;height:60px;margin-top:4px}
.tide-note{font-family:var(--mono);font-size:11px;color:var(--muted)}
/* news */
.news-grid{display:grid;gap:12px}
@media(min-width:800px){.news-grid{grid-template-columns:1.4fr 1fr}.news-grid .lead{grid-row:span 3}}
.story{background:var(--moss);border:1px solid var(--line);border-radius:22px;padding:20px;display:grid;gap:8px;align-content:end;transition:border-color .15s}
.story:hover{border-color:var(--blue)}
.story small{font-family:var(--mono);font-size:11px;color:var(--blue)}
.story h3{font-size:20px}
.story.lead{padding:0;overflow:hidden;min-height:320px;position:relative;color:#fff}
.story.lead img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.story.lead div{position:relative;padding:24px;background:linear-gradient(180deg,transparent,rgba(10,12,17,.92));display:grid;gap:8px;align-self:end}
.story.lead h3{font-size:clamp(24px,3vw,34px)}

/* ---- BG options (street / QR use) ---- */
body[data-bg="paper"]{--forest:#F4F5F8;--moss:#FFFFFF;--sand:#E9ECF2;--cream:#0A0C11;--ink:#0A0C11;--muted:#4F5767;--line:rgba(10,12,17,.08);--line2:rgba(10,12,17,.14);--lime-ink:#0A0C11;background:#EEF0F4;color:#0A0C11}
body[data-bg="paper"] .hero.dark{background:radial-gradient(900px 500px at 80% -10%,rgba(0,214,194,.18),transparent 60%),radial-gradient(700px 400px at 0% 100%,rgba(255,30,142,.10),transparent 60%),#F4F5F8}
body[data-bg="paper"] .hero p.lede,body[data-bg="paper"] .tile p{color:#2E3542}
body[data-bg="paper"] .eyebrow,body[data-bg="paper"] .dark .eyebrow{color:#009183}
body[data-bg="paper"] .hero h1 em{color:#007A6E}
body[data-bg="paper"] .btn-lime{background:#009183;color:#fff}body[data-bg="paper"] .btn-lime:hover{background:#00756b;color:#fff}
body[data-bg="paper"] .btn-forest{background:#0A0C11;color:#fff}body[data-bg="paper"] .btn-forest:hover{background:#1B1F29;color:#fff}
body[data-bg="paper"] .btn-ghost:hover{background:rgba(10,12,17,.06)}
body[data-bg="paper"] .nav .bar{background:rgba(255,255,255,.85)}
body[data-bg="paper"] .menu-btn{background:#0A0C11;color:#fff}
body[data-bg="paper"] .hero-art .card{background:rgba(255,255,255,.92)}
body[data-bg="paper"] .hero-art .badge .pill{background:rgba(255,255,255,.9);color:#009183}
body[data-bg="paper"] .map-wrap{box-shadow:0 30px 80px rgba(10,12,17,.18)}
body[data-bg="paper"] .map-fallback{background:radial-gradient(ellipse at 60% 50%,#1B1F29,#0A0C11 70%)}
body[data-bg="paper"] .map-wrap{background:#E9ECF2}
body[data-bg="paper"] .marker{border-color:#fff;box-shadow:0 2px 8px rgba(10,12,17,.3)}
body[data-bg="paper"] .chip{background:rgba(255,255,255,.92);color:#0A0C11}body[data-bg="paper"] .chip[aria-pressed="true"]{background:#009183;color:#fff}
body[data-bg="paper"] .map-card{background:rgba(255,255,255,.96)}
body[data-bg="paper"] .phone{background:#0A0C11}body[data-bg="paper"] .phone .screen{background:#14171F}
body[data-bg="paper"] .toast{background:rgba(255,255,255,.96);color:#0A0C11}
body[data-bg="paper"] .stop-sheet{background:#fff}
body[data-bg="paper"] .stop-sheet .play{background:#009183;color:#fff}body[data-bg="paper"] .stop-sheet .bar i{background:#009183}
body[data-bg="paper"] .geo .copy li i{background:#0A0C11;color:#00D6C2}
body[data-bg="paper"] .trow .k{color:#1C7ED6}body[data-bg="paper"] .trow .k.lo{color:#009183}
body[data-bg="paper"] .story small{color:#1C7ED6}body[data-bg="paper"] .story:hover{border-color:#1C7ED6}
body[data-bg="paper"] .tier.hi{color:#0A0C11}
body[data-bg="paper"] .notify label input{accent-color:#009183}
body[data-bg="paper"] footer{background:#0A0C11;color:#9CA3B4}
body[data-bg="paper"] footer .brand,body[data-bg="paper"] footer .mission,body[data-bg="paper"] footer h4{color:#F4F5F8}
body[data-bg="paper"] #font-toggle{background:#0A0C11;color:#fff}
body[data-bg="paper"] .marker{border-color:#fff}
body[data-bg="paper"] .tile{background:#14171F;border-color:rgba(255,255,255,.08);color:#F4F5F8;box-shadow:0 20px 50px rgba(10,12,17,.18)}
body[data-bg="paper"] .tile>small,body[data-bg="paper"] .tile .big .unit,body[data-bg="paper"] .tile .big .imp,body[data-bg="paper"] .tile .mini i,body[data-bg="paper"] .tile .mini span,body[data-bg="paper"] .trow em,body[data-bg="paper"] .tide-note{color:#9CA3B4}
body[data-bg="paper"] .tile p{color:#C7CDD9}
body[data-bg="paper"] .tile .mini div,body[data-bg="paper"] .trow{background:#1B1F29}
body[data-bg="paper"] .trow .k{color:#3AA0FF}body[data-bg="paper"] .trow .k.lo{color:#00D6C2}
body[data-bg="paper"] .tide-curve path{stroke:#00D6C2}body[data-bg="paper"] .tide-curve circle{fill:#FFC83D;stroke:#14171F}

body[data-bg="teal"]{--forest:#02302C;--moss:#0A3F3A;--sand:#135049;--line:rgba(255,255,255,.10);--line2:rgba(255,255,255,.18);--muted:#9FC9C2;--lime:#FFC83D;--teal:#5EEBDD;--fern:#5EEBDD;background:#043732}
body[data-bg="teal"] .hero.dark{background:radial-gradient(900px 500px at 80% -10%,rgba(94,235,221,.22),transparent 60%),radial-gradient(700px 400px at 0% 100%,rgba(255,200,61,.12),transparent 60%),#02302C}
body[data-bg="teal"] .dark .eyebrow,body[data-bg="teal"] .eyebrow{color:#FFC83D}
body[data-bg="teal"] .btn-lime{background:#FFC83D;color:#0A0C11}body[data-bg="teal"] .btn-lime:hover{background:#ffd666;color:#0A0C11}
body[data-bg="teal"] .hero p.lede,body[data-bg="teal"] .tile p{color:#D6ECE8}
body[data-bg="teal"] .ticker{background:#FFC83D;color:#0A0C11}
body[data-bg="teal"] .map-fallback{background:radial-gradient(ellipse at 60% 50%,#0A3F3A,#02302C 70%)}
body[data-bg="teal"] .tier.hi{background:#FFC83D;color:#0A0C11}
body[data-bg="teal"] .stop-sheet .play{background:#FFC83D;color:#0A0C11}body[data-bg="teal"] .stop-sheet .bar i{background:#FFC83D}
body[data-bg="teal"] #font-toggle{background:#FFC83D;color:#0A0C11}
body[data-bg="teal"] footer{background:#02302C}

body[data-bg="dusk"]{--forest:#120B22;--moss:#1C1230;--sand:#281A42;--line:rgba(255,255,255,.09);--line2:rgba(255,255,255,.16);--muted:#B2A8CC;--lime:#FF1E8E;--fern:#FF7BC0;background:linear-gradient(180deg,#120B22,#0A0C11 60%)}
body[data-bg="dusk"] .hero.dark{background:radial-gradient(900px 500px at 80% -10%,rgba(255,30,142,.28),transparent 60%),radial-gradient(700px 400px at 0% 100%,rgba(154,91,255,.26),transparent 60%),#120B22}
body[data-bg="dusk"] .dark .eyebrow,body[data-bg="dusk"] .eyebrow{color:#FF7BC0}
body[data-bg="dusk"] .btn-lime{background:#FF1E8E;color:#fff}body[data-bg="dusk"] .btn-lime:hover{background:#ff4da6;color:#fff}
body[data-bg="dusk"] .hero p.lede,body[data-bg="dusk"] .tile p{color:#DDD6EE}
body[data-bg="dusk"] .map-fallback{background:radial-gradient(ellipse at 60% 50%,#1C1230,#0A0C11 70%)}
body[data-bg="dusk"] .tier.hi{background:var(--grad-hot);color:#fff}
body[data-bg="dusk"] .stop-sheet .play{background:#FF1E8E;color:#fff}body[data-bg="dusk"] .stop-sheet .bar i{background:#FF1E8E}
body[data-bg="dusk"] .hero-art .badge .pill{color:#FF7BC0}
body[data-bg="dusk"] #font-toggle{background:#FF1E8E;color:#fff}
body[data-bg="dusk"] footer{background:#0A0C11}
body[data-bg="dusk"] .nav .bar{background:rgba(255,255,255,.94);border-color:transparent}
body[data-bg="dusk"] .nav .brand{color:#120B22}body[data-bg="dusk"] .nav-links{color:#5A5273}body[data-bg="dusk"] .nav-links a:hover{color:#120B22}
body[data-bg="dusk"] .nav .btn-forest{background:#120B22;color:#fff}body[data-bg="dusk"] .nav .menu-btn{background:#120B22;color:#fff}

/* weather tile */
.wx{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.wx-icon{width:52px;height:52px;flex:none;color:var(--yellow)}
@media(min-width:800px){.wx-icon{width:64px;height:64px}}
.wx p{font-size:14px}
.wx-icon.rain,.wx-icon.drizzle{color:var(--blue)}.wx-icon.cloud,.wx-icon.fog{color:var(--muted)}.wx-icon.snow{color:#fff}.wx-icon.storm{color:var(--purple)}
.wind{display:flex;align-items:baseline;gap:8px;padding:10px 12px;border-radius:12px;background:var(--sand);flex-wrap:wrap}
.wind span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-family:var(--mono)}
.wind b{font-weight:600;font-size:15px}.wind i{font-style:normal;font-family:var(--mono);font-size:12px;color:var(--muted)}.wind em{font-style:normal;margin-left:auto;font-weight:600;color:var(--teal)}
body[data-bg="paper"] .wind{background:#1B1F29}body[data-bg="paper"] .wind span,body[data-bg="paper"] .wind i{color:#9CA3B4}

/* tide tile */
.tide-next{display:grid;gap:8px;grid-template-columns:1fr 1fr}
.tn{background:var(--sand);border-radius:12px;padding:10px 12px;display:grid;gap:1px}
.tn .k{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}
.tn.lo .k{color:var(--teal)}
.tn b{font-family:var(--display);font-size:24px;line-height:1.05;font-weight:700}
.tn em{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--muted)}
.tn i{font-style:normal;font-size:11px;color:var(--muted);margin-top:2px}
body[data-bg="paper"] .tn{background:#1B1F29}body[data-bg="paper"] .tn em,body[data-bg="paper"] .tn i{color:#9CA3B4}body[data-bg="paper"] .tn .k{color:#3AA0FF}body[data-bg="paper"] .tn.lo .k{color:#00D6C2}

/* full-screen menu */
.menu{position:fixed;inset:0;z-index:100;background:var(--forest);color:var(--cream);display:flex;flex-direction:column;padding:12px 20px calc(20px + env(safe-area-inset-bottom));animation:menuIn .25s ease-out}
.menu[hidden]{display:none}
@keyframes menuIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.menu-top{display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:0 0 0 2px}
.menu-top .brand{gap:12px;font-size:24px}
.menu-list{flex:1;display:flex;flex-direction:column;justify-content:center;gap:4px}
.menu-list a{display:flex;align-items:center;gap:16px;padding:14px 0;font-family:var(--display);font-size:clamp(32px,8vw,44px);line-height:1;color:var(--cream);border-bottom:1px solid var(--line)}
.menu-list a:last-child{border-bottom:0}
.menu-list a:hover{color:var(--teal)}
.menu-list .d{width:12px;height:12px;border-radius:50%;background:var(--c);flex:none}
.menu-foot{padding-top:16px}
.menu-loc{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:18px;background:var(--moss);border:1px solid var(--line2);color:var(--cream)}
.menu-loc svg{color:var(--teal);flex:none}
.menu-loc span{flex:1;display:grid;gap:2px}.menu-loc b{font-size:18px;font-family:var(--display);font-weight:700}.menu-loc small{font-size:13px;color:var(--muted)}
.menu-loc i{font-style:normal;font-size:22px;color:var(--muted)}
body.menu-open{overflow:hidden}
body[data-bg="paper"] .menu{background:#F4F5F8;color:#0A0C11}
body[data-bg="paper"] .menu .brand{color:#0A0C11}
body[data-bg="paper"] .menu-list a{color:#0A0C11;border-color:rgba(10,12,17,.08)}body[data-bg="paper"] .menu-list a:hover{color:#009183}
body[data-bg="paper"] .menu-loc{background:#fff;border-color:rgba(10,12,17,.1);color:#0A0C11;box-shadow:0 8px 24px rgba(10,12,17,.06)}
body[data-bg="paper"] .menu-loc svg{color:#009183}body[data-bg="paper"] .menu-loc small,body[data-bg="paper"] .menu-loc i{color:#4F5767}

/* ---- homepage v2 ---- */
.hero.v2{padding:40px 0 32px}
.hero.v2 h1{font-size:clamp(40px,8.5vw,96px)}
.hero.v2 h1 a{color:var(--purple);transition:color .15s}.hero.v2 h1 a:hover{color:#B98CFF}
.lead-story{display:grid;grid-template-columns:1fr;border-radius:22px;overflow:hidden;background:var(--moss);border:1px solid var(--line);color:var(--ink);margin-top:28px;transition:border-color .15s}
.lead-story:hover{border-color:var(--purple);color:var(--ink)}
.lead-story img{width:100%;aspect-ratio:16/9;object-fit:cover}
.lead-story div{padding:16px 18px 18px;display:grid;gap:6px}
.lead-story small{font-family:var(--mono);font-size:11px;color:var(--blue)}
.lead-story h3{font-size:clamp(20px,3vw,30px)}
@media(min-width:720px){.lead-story{grid-template-columns:1.2fr 1fr}.lead-story img{aspect-ratio:auto;height:100%}.lead-story div{padding:28px;align-content:center}}
.near{padding:0 0 40px}
.near .hd{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
.near .hd h2{font-size:clamp(26px,5vw,40px)}
.near .hd a{font-size:14px;font-weight:600;color:var(--teal)}
.near-row{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(-1*(100vw - 100%)/2);padding-inline:calc((100vw - 100%)/2);padding-bottom:4px}
.near-row::-webkit-scrollbar{display:none}
.nc{flex:none;width:156px;scroll-snap-align:start;position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/5;background:var(--sand);display:flex;flex-direction:column;justify-content:flex-end;padding:12px;color:#fff;isolation:isolate}
@media(min-width:720px){.nc{width:200px}}
.nc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.nc::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,12,17,.05) 30%,rgba(10,12,17,.92));z-index:-1}
.nc:hover{color:#fff}
.nc h3{font-size:16px;line-height:1.1;color:#fff}
.nc .dist{position:absolute;top:10px;left:10px;font-family:var(--mono);font-size:11px;background:rgba(10,12,17,.6);backdrop-filter:blur(6px);padding:4px 8px;border-radius:6px}
.nc .open-pill{margin-top:6px;font-size:12px;color:#4ADE80}
.near-empty{color:var(--muted);font-size:14px;padding:14px 16px;border-radius:14px;background:var(--moss);border:1px solid var(--line)}
.ev-strip{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(-1*(100vw - 100%)/2);padding-inline:calc((100vw - 100%)/2);padding-block:6px;margin-block:-6px;margin-top:20px}
.ev-strip::-webkit-scrollbar{display:none}
.evc{flex:none;width:240px;scroll-snap-align:start;background:var(--moss);border:1px solid var(--line);border-left:4px solid var(--c,var(--magenta));border-radius:18px;padding:14px 16px;display:grid;gap:6px;align-content:start;color:var(--ink);transition:border-color .15s}
.evc:hover{border-color:var(--c,var(--magenta));color:var(--ink)}
.evc small{font-family:var(--mono);font-size:11px;color:var(--muted)}
.evc h3{font-size:17px;line-height:1.15}
.evc span{font-size:13px;color:var(--muted)}
.evc.more{display:grid;place-items:center;text-align:center;border-left-width:1px;font-family:var(--display);font-size:20px;color:var(--teal)}
.near-fab{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:60;display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;background:var(--teal);color:var(--lime-ink);font-weight:600;font-size:15px;box-shadow:0 12px 36px rgba(0,0,0,.45);min-height:52px}
.near-fab:hover{background:#00b8a6;color:var(--lime-ink)}
.near-fab svg{flex:none}
@media(min-width:900px){.near-fab{display:none}}
body.menu-open .near-fab{display:none}
.v2-pad{padding-bottom:88px;--sec:64px;--hd:32px}
@media(min-width:900px){.v2-pad{--sec:120px;--hd:48px}}
.v2-pad section{padding:var(--sec) 0!important}
.v2-pad .hero.v2{padding:40px 0 var(--sec)!important}
.v2-pad .ticker{margin:0}
.v2-pad .near .hd{margin-bottom:var(--hd)}
.v2-pad .sec-head{margin-bottom:var(--hd)}
.v2-pad .today-grid{margin-top:var(--hd)!important}
.v2-pad section.band,.v2-pad section.dark.band{background:var(--moss)}
.v2-pad section.band .tile,.v2-pad section.band .evc,.v2-pad section.band .story,.v2-pad section.band .feature,.v2-pad section.band .near-empty{background:var(--forest)}
.v2-pad section.band .nc{background:var(--sand)}

/* mono role now set in Jost Light */
.mono,.eb,.tag,.badge,.tide-note,.trow .k,.tn .k,.tn em,.trow em,.wind span,.wind i,.stats small,.tstats small,.stop-sheet small,.geo-live p small,.map-card .sub,.map-card .stat,.story small,.hero-art .card.weather small,.tile .big .imp,.tile .mini i,.cat .n,.kv span,.tier .price small{font-weight:300;letter-spacing:.06em}

/* ---- cards.css ---- */
/* Content card system (redesign/cards/Content Cards.html): eyebrow → title → one mono fact line → one state/action. --k is the category colour. */
:root{--k-whatson:#FF1E8E;--k-eat:#FF8A3D;--k-shop:#FFC83D;--k-attr:#FF5A47;--k-trail:#00D6C2;--k-news:#3D8BFF;--k-tour:#9A5BFF;--k-stay:#3D8BFF;--k-do:#9A5BFF}
.c{position:relative;border-radius:22px;overflow:hidden;color:#F4F5F8;background:#14171F;border:1px solid rgba(255,255,255,.08);display:grid;isolation:isolate;text-decoration:none;text-align:left;font:inherit;cursor:pointer;transition:border-color .15s}
.c:hover{color:#F4F5F8;border-color:rgba(255,255,255,.22)}
.c img{width:100%;height:100%;object-fit:cover;display:block}
.c h3{font-family:var(--display);font-size:22px;line-height:1.1;margin:0;letter-spacing:-.005em;color:inherit;text-wrap:balance}
.c .eb{font-family:"Jost",var(--sans);font-size:12px;letter-spacing:.06em;font-weight:500;display:inline-flex;align-items:center;gap:6px;text-transform:uppercase;color:var(--k)}
.c .eb i{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.c .mono{font-family:var(--mono);font-size:11px;color:#9CA3B4;line-height:1.5}
.c p{color:#C7CDD9;font-size:14px;line-height:1.5;margin:0}
/* date tile */
.dt{display:grid;place-items:center;width:46px;border-radius:12px;overflow:hidden;background:#fff;color:#0A0C11;text-align:center;font-family:var(--mono);line-height:1;flex:none;align-self:center}
.dt b{display:block;width:100%;background:var(--k,#FF1E8E);color:#fff;font-size:9px;letter-spacing:.1em;padding:4px 0;font-weight:600}
.dt.light b{color:#0A0C11}
.dt span{display:block;font-size:17px;font-weight:600;padding:5px 0 2px;font-family:var(--display)}
.dt small{display:block;font-size:9px;padding-bottom:5px;color:#4F5767}
/* pills */
.pill2{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:5px 10px;border-radius:999px;background:rgba(10,12,17,.65);backdrop-filter:blur(6px);color:#fff;white-space:nowrap;font-family:var(--sans)}
.pill2.open{color:#34D399}.pill2.open::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.pill2.free{background:#34D399;color:#0A0C11}
.pill2 .conf{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase}
/* wash: greyscale photo under category colour */
.wash{aspect-ratio:4/5;grid-template-rows:1fr auto}
.wash img{position:absolute;inset:0;z-index:-2;filter:grayscale(1) contrast(1.05)}
.wash::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,color-mix(in oklch,var(--k),transparent 55%) 0%,color-mix(in oklch,var(--k),#0A0C11 55%) 100%);mix-blend-mode:multiply}
.wash::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 40%,rgba(10,12,17,.75))}
.wash .top{padding:16px;display:flex;justify-content:space-between;align-items:start;gap:8px}
.wash .bot{padding:16px;display:grid;gap:12px}
.wash .eb,.wash .mono{color:#fff}
.wash h3{font-size:clamp(20px,2.4vw,26px)}
.wash .meta{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}
/* solid: no photo, category colour does the work */
.solid{aspect-ratio:4/5;background:var(--k);color:#0A0C11;grid-template-rows:auto 1fr auto;padding:16px}
.solid .eb,.solid .mono{color:inherit}.solid .mono{opacity:.75}
.solid .big{font-family:var(--display);font-size:96px;line-height:.85;letter-spacing:-.03em;align-self:end;opacity:.95}
.solid .big small{display:block;font-size:14px;letter-spacing:.1em;font-family:var(--mono);opacity:.8;margin-top:8px}
.solid h3{margin-top:12px}
/* news: tinted head, photo below */
.news{grid-template-rows:auto 180px}
.news .head{padding:18px 18px 16px;background:color-mix(in oklch,var(--k),#14171F 78%);display:grid;gap:10px;align-content:start}
.news .arrow{position:absolute;right:14px;bottom:194px;width:36px;height:36px;border-radius:50%;background:#0A0C11;color:#fff;display:grid;place-items:center;font-size:16px;border:1px solid rgba(255,255,255,.14)}
.news.noimg{grid-template-rows:auto}.news.noimg .head{min-height:220px;align-content:space-between;background:color-mix(in oklch,var(--k),#14171F 70%)}
.news.noimg .arrow{bottom:14px}
.news.noimg .q{font-family:var(--display);font-size:120px;line-height:.6;color:var(--k);opacity:.35;position:absolute;right:18px;top:40px;pointer-events:none}
.news.compact .head{min-height:0;padding:14px 16px}.news.compact h3{font-size:19px}.news.compact .q,.news.compact .arrow{display:none}
.news h3{font-size:clamp(20px,2.4vw,24px)}
.news .head p{font-size:14px;color:#C7CDD9}
/* listing: photo or monogram · eyebrow · title · fact · open state */
.lst{grid-template-columns:96px 1fr;gap:14px;padding:12px;align-items:center}
.lst .ph,.lst .mg{width:96px;height:96px;border-radius:14px;overflow:hidden;background:#1B1F29;flex:none}
.lst .mg{display:grid;place-items:center;background:var(--k);color:#0A0C11;font-family:var(--display);font-size:44px;font-weight:900;position:relative}
.lst .mg::after{content:"";position:absolute;inset:auto -20% -40% -20%;height:60%;background:rgba(10,12,17,.12);border-radius:50%}
.lst .b{display:grid;gap:4px;min-width:0}
.lst h3{font-size:19px}
.lst .op{font-size:13px;font-weight:600;color:#34D399;display:inline-flex;gap:6px;align-items:center}.lst .op::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.lst .op.cl{color:#FF5A47}.lst .op.un{color:#C7CDD9}
.lst.sm{grid-template-columns:auto 1fr;gap:12px}
.lst.sm .dt{width:56px}.lst.sm .dt span{font-size:22px}
.lst .end{align-self:start;justify-self:end}
/* trail: route drawing is the picture */
.trl{grid-template-rows:200px auto}
.trl .map{position:relative;background:#1B1F29;display:grid;place-items:center;color:#00D6C2;isolation:isolate}
.trl .map svg{width:150px;height:150px}
.trl .map .badge{position:absolute;left:12px;top:12px;margin:0}
.trl .map img{position:absolute;inset:0;z-index:-1;opacity:.9}
.trl .b{padding:16px;display:grid;gap:10px}
.trl .st{display:flex;gap:16px;font-size:13px}.trl .st b{font-weight:600;display:block}.trl .st i{font-style:normal;font-family:var(--mono);font-size:11px;color:#9CA3B4}
.trl .st .q b{color:#9CA3B4}
/* grids that hold them */
.pl-grid{grid-template-columns:1fr}
@media(min-width:720px){.pl-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.pl-grid{grid-template-columns:repeat(3,1fr)}}
.at-grid{display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}
@media(min-width:720px){.at-grid{grid-template-columns:repeat(3,1fr);gap:16px}}
@media(min-width:1000px){.at-grid{grid-template-columns:repeat(4,1fr)}}
.at-grid .wash{aspect-ratio:4/4.4}
.rt-list{grid-template-columns:1fr}
@media(min-width:640px){.rt-list{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.rt-list{grid-template-columns:repeat(3,1fr)}}
.nw-list .news.noimg .head{min-height:200px}
/* home strips */
.ev-strip .lst{flex:none;width:300px;scroll-snap-align:start}
.ev-strip .evc.more{display:grid;place-items:center;text-align:center;width:160px;font-family:var(--display);font-size:20px;color:var(--teal);background:#14171F;border:1px solid rgba(255,255,255,.08);border-radius:22px;flex:none;scroll-snap-align:start}
.near-row .lst{flex:none;width:300px;scroll-snap-align:start;aspect-ratio:auto;padding:12px}
@media(min-width:800px){.news-grid .lead{grid-row:span 3}}

.ev.lst{grid-template-columns:auto 1fr auto;padding:12px;gap:12px;background:#14171F;width:100%;border:1px solid rgba(255,255,255,.08)}
.ev.lst:hover{border-color:rgba(255,255,255,.22)}
.ev .dt small{font-size:9px;color:#4F5767;margin:0;display:block}
.ev .b .mono{display:block;margin-top:2px}
.news.noimg{background:color-mix(in oklch,var(--k),#14171F 70%)}.news.noimg .head{background:none}
.news.noimg .q{z-index:-1}
.news.lead .arrow{display:none}
.news-grid .lead{grid-template-rows:auto 180px}.news-grid .lead img{min-height:0}
@media(min-width:800px){.news-grid .lead{grid-row:span 3}}
.nw-list .lead{grid-column:1/-1;grid-template-rows:auto 280px}
.trl .map .sk svg{width:150px;height:150px}

#ev-lead{margin-top:20px}#ev-lead .wash{aspect-ratio:4/3.6;max-width:560px}
@media(min-width:720px){#ev-lead .wash{aspect-ratio:16/8}}
#ev-lead+.ev-strip{margin-top:12px}
.ev-strip .solid.more{flex:none;width:170px;aspect-ratio:auto;padding:14px;scroll-snap-align:start;gap:8px}
.ev-strip .solid.more .big{font-size:56px}.ev-strip .solid.more .big small{font-size:10px;margin-top:4px}.ev-strip .solid.more h3{font-size:16px;margin:0}
.ev-strip .trl{flex:none;width:260px;scroll-snap-align:start;grid-template-rows:150px auto}
.ev-strip .trl .map .sk svg{width:110px;height:110px}
.ev-strip .trl .map .badge{left:10px;top:10px;font-size:11px;padding:4px 8px}
.ev-strip .trl h3{font-size:19px}

.hero-next{margin:20px 0 0;padding-inline:0;width:100%;max-width:100%;min-width:0}
.hero .wrap,.hero .wrap>div{min-width:0;max-width:100%}.hero .wrap{grid-template-columns:minmax(0,1fr)}.hero-next .lst{width:280px}.hero-next .lst h3{font-size:17px}

.feature-wash{aspect-ratio:4/4.4;max-width:640px}
@media(min-width:720px){.feature-wash{aspect-ratio:16/8}}
.feature-wash .bot{gap:8px}.feature-wash h3{font-size:clamp(24px,3vw,34px)}
.hd{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}

/* tours: wash cards, purple */
.tours-pg .at-grid{grid-template-columns:1fr}@media(min-width:720px){.tours-pg .at-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1000px){.tours-pg .at-grid{grid-template-columns:repeat(3,1fr)}}
.tours-pg .at-grid .wash{aspect-ratio:4/4.4}.tours-pg .wash .bot{gap:8px}.tours-pg .wash p{font-size:14px}

/* ---- pages.css ---- */
/* inner pages: directories, info, trails, tours, news */
.pg-head{padding:24px 0 8px}
.pg-head h1{font-size:clamp(40px,9vw,80px);margin-top:12px}
.pg-head>p{color:var(--muted);font-size:16px;margin-top:12px;max-width:52ch}
.pg-tools{position:sticky;top:76px;z-index:40;padding:12px 0;background:linear-gradient(#0E1118 70%,transparent)}
.pg-tools .row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.pg-tools .row::-webkit-scrollbar{display:none}
.pg-tools .chip{flex:none}
.search{display:flex;align-items:center;gap:10px;background:var(--moss);border:1px solid var(--line2);border-radius:999px;padding:0 16px;min-height:48px;margin-bottom:10px}
.search input{flex:1;background:none;border:0;color:var(--ink);font:inherit;font-size:16px;outline:none;min-width:0}
.search svg{color:var(--muted);flex:none}
.count{font-family:var(--mono);font-size:12px;color:var(--muted);margin:8px 0 16px}
main.pg{padding-bottom:64px}
/* place cards: image · title · open/closed, nothing else */
.pl-grid{display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}
@media(min-width:720px){.pl-grid{grid-template-columns:repeat(3,1fr);gap:16px}}
@media(min-width:1000px){.pl-grid{grid-template-columns:repeat(4,1fr)}}
.pl{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/5;background:var(--sand);display:flex;flex-direction:column;justify-content:flex-end;padding:14px;color:#fff;isolation:isolate}
.pl img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .5s}
.pl:hover img{transform:scale(1.04)}.pl:hover{color:#fff}
.pl::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,12,17,.05) 30%,rgba(10,12,17,.92));z-index:-1}
.pl h3{font-size:clamp(17px,2.2vw,22px);line-height:1.08;color:#fff;text-wrap:balance}
.pl .open-pill{margin-top:8px;font-size:12px}
.pl .open-pill.is-open{color:#4ADE80}.pl .open-pill.is-closed{color:#FF7A6B}.pl .open-pill.is-unknown{color:#C7CDD9}
.pl.hidden{display:none}
.empty{padding:48px 0;color:var(--muted);text-align:center}
/* info */
.info-grid{display:grid;gap:12px}
@media(min-width:720px){.info-grid{grid-template-columns:repeat(2,1fr)}}
.info{background:var(--moss);border:1px solid var(--line);border-radius:22px;padding:20px;display:grid;gap:12px;align-content:start}
.info.urgent{background:var(--magenta);color:#fff;border-color:transparent}
.info.urgent small,.info.urgent p{color:rgba(255,255,255,.85)}
.info>small{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.info h3{font-size:24px}
.info p{color:var(--muted);font-size:14px}
.info ul{list-style:none;display:grid;gap:8px}
.info li{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:14px;background:var(--sand);font-size:14px;align-items:center}
.info.urgent li{background:rgba(255,255,255,.14)}
.info li b{font-weight:600}.info li span{color:var(--muted);font-size:13px;text-align:right}.info.urgent li span{color:#fff}
.info li a.tel{font-family:var(--mono);font-weight:500;white-space:nowrap}
.info li a.tel:hover{color:var(--teal)}
.offline{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;color:var(--teal);margin-top:8px}
.offline::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
/* trails + tours */
.rt-list{display:grid;gap:12px}
@media(min-width:800px){.rt-list{grid-template-columns:repeat(2,1fr);gap:16px}}
.rt{display:grid;grid-template-columns:112px 1fr;gap:16px;background:var(--moss);border:1px solid var(--line);border-radius:22px;overflow:hidden;color:var(--ink);transition:border-color .15s}
.rt:hover{border-color:var(--teal);color:var(--ink)}
.rt img{width:112px;height:100%;min-height:140px;object-fit:cover}
.rt .b{padding:16px 16px 16px 0;display:grid;gap:8px;align-content:center}
.rt small{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--teal)}
.rt.tour small{color:var(--purple)}
.rt h3{font-size:clamp(18px,2.4vw,24px)}
.rt p{color:var(--muted);font-size:14px}
.rt .st{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px}
.rt .st b{font-weight:600}.rt .st i{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--muted);margin-left:4px}
.rt .st span{display:inline-flex;align-items:baseline}
.hero-rt{position:relative;border-radius:var(--radius);overflow:hidden;min-height:360px;display:flex;align-items:flex-end;padding:24px;color:#fff;margin-bottom:16px;isolation:isolate}
.hero-rt img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero-rt::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(10,12,17,.92));z-index:-1}
.hero-rt h2{font-size:clamp(30px,6vw,56px);max-width:14ch}
.hero-rt p{color:#C7CDD9;margin-top:8px;max-width:44ch}
.hero-rt .stats{margin-top:16px;max-width:460px}
.hero-rt .stats div{background:rgba(20,23,31,.8);backdrop-filter:blur(8px)}
.hero-rt:hover{color:#fff}
@media(min-width:800px){.hero-rt{min-height:460px;padding:40px}}
/* news */
.nw-list{display:grid;gap:12px}
@media(min-width:800px){.nw-list{grid-template-columns:repeat(2,1fr);gap:16px}}
.nw{background:var(--moss);border:1px solid var(--line);border-radius:22px;padding:20px;display:grid;gap:10px;align-content:start;transition:border-color .15s}
.nw:hover{border-color:var(--blue);color:var(--ink)}
.nw small{font-family:var(--mono);font-size:11px;color:var(--blue);display:flex;gap:8px;flex-wrap:wrap}
.nw small b{color:var(--ink);font-weight:500}
.nw h3{font-size:clamp(20px,2.6vw,26px)}
.nw p{color:var(--muted);font-size:14px}
.nw.lead{grid-column:1/-1;padding:0;overflow:hidden;position:relative;min-height:340px;color:#fff}
.nw.lead img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.nw.lead>div{position:relative;padding:24px;background:linear-gradient(180deg,transparent,rgba(10,12,17,.94));display:grid;gap:10px;align-self:end;height:100%;align-content:end}
.nw.lead h3{font-size:clamp(26px,4vw,44px);max-width:20ch}.nw.lead p{color:#C7CDD9}
.nw.lead small{color:#8CC4FF}.nw.lead small b{color:#fff}
.nw-promise{margin-top:32px;padding:20px;border-radius:22px;background:var(--moss);border:1px solid var(--line);display:grid;gap:8px}
.nw-promise h3{font-size:22px}.nw-promise p{color:var(--muted);font-size:14px}
.nw-promise b{color:var(--ink)}

/* ---- events.css ---- */
/* events calendar */
.ev-head{padding:24px 0 16px}
.ev-head h1{font-size:clamp(34px,8vw,56px)}
.ev-head p{color:var(--muted);font-size:14px;margin-top:8px}
.ev-bar{position:sticky;top:84px;z-index:40;background:rgba(10,12,17,.85);backdrop-filter:blur(14px);padding:10px 0;border-bottom:1px solid var(--line)}
.ev-bar .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.seg{display:inline-flex;padding:4px;border-radius:999px;background:var(--moss);border:1px solid var(--line)}
.seg button{padding:8px 14px;border-radius:999px;font-size:13px;font-weight:600;color:var(--muted);min-height:36px}
.seg button[aria-pressed="true"]{background:var(--cream);color:var(--forest)}
.ev-nav{display:flex;align-items:center;gap:6px}
.ev-nav button{width:40px;height:40px;border-radius:50%;background:var(--moss);border:1px solid var(--line);color:var(--cream);display:grid;place-items:center}
.ev-nav .today{width:auto;padding:0 14px;border-radius:999px;font-size:13px;font-weight:600}
.ev-title{font-family:var(--display);font-size:20px;flex:1 1 100%;order:3}
@media(min-width:720px){.ev-title{flex:0 1 auto;order:0}}
.ev-body{padding:20px 0 72px;min-height:60vh}

/* month */
.mgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.mgrid .dow{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:center;padding:6px 0}
.mday{min-width:0;min-height:72px;border-radius:10px;background:var(--moss);border:1px solid var(--line);padding:6px 4px 4px;display:flex;flex-direction:column;gap:3px;text-align:left;color:var(--cream);cursor:pointer}
@media(min-width:720px){.mday{min-height:110px;padding:8px}}
.mday.out{opacity:.35}.mday.today{border-color:var(--teal)}
.mday .num{font-size:12px;font-weight:600;line-height:1}
.mday.today .num{color:var(--teal)}
.mday .bar{height:5px;border-radius:3px;background:var(--c)}
.mday .bar.cont{border-radius:0}.mday .bar.start{border-radius:3px 0 0 3px}.mday .bar.end{border-radius:0 3px 3px 0}
.mday .more{font-family:var(--mono);font-size:10px;color:var(--muted);margin-top:auto}
@media(min-width:720px){.mday .bar{height:auto;font-size:11px;font-weight:600;padding:2px 6px;color:#0A0C11;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mday .bar.cont,.mday .bar.end{color:transparent}}

/* week strip + day list */
.wstrip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:16px}
.wstrip button{border-radius:12px;padding:8px 2px;background:var(--moss);border:1px solid var(--line);color:var(--cream);display:grid;gap:2px;justify-items:center}
.wstrip button[aria-pressed="true"]{background:var(--cream);color:var(--forest)}
.wstrip small{font-family:var(--mono);font-size:10px;text-transform:uppercase;color:var(--muted)}
.wstrip button[aria-pressed="true"] small{color:var(--forest)}
.wstrip b{font-size:16px;font-weight:600}
.wstrip .dots{display:flex;gap:2px;height:4px}.wstrip .dots i{width:4px;height:4px;border-radius:50%;background:var(--c)}
.daygroup{margin-bottom:24px}
.daygroup h3{font-size:18px;margin-bottom:10px;display:flex;align-items:baseline;gap:10px}
.daygroup h3 small{font-family:var(--mono);font-size:11px;color:var(--muted);font-weight:400;text-transform:uppercase;letter-spacing:.08em}
.evlist{display:grid;gap:8px}
.ev{display:grid;grid-template-columns:6px 1fr auto;gap:14px;align-items:center;padding:14px 16px 14px 0;border-radius:16px;background:var(--moss);border:1px solid var(--line);color:var(--cream);text-align:left;cursor:pointer;overflow:hidden}
.ev:hover{border-color:var(--line2);color:var(--cream)}
.ev .stripe{height:100%;background:var(--c);border-radius:0}
.ev h4{font-size:16px;font-weight:600;font-family:var(--sans);line-height:1.25}
.ev small{display:block;color:var(--muted);font-size:13px;margin-top:3px}
.ev .tag{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:right;display:grid;gap:6px;justify-items:end}
.conf{display:inline-flex;align-items:center;gap:5px}
.conf::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--au-green,#34D399)}
.conf.medium::before{background:var(--orange)}.conf.provisional::before{background:#FF5A47}
.empty{padding:40px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line2);border-radius:16px}

/* legend */
.legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:16px;font-size:12px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:3px;background:var(--c)}

/* detail sheet */
.sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:90}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:95;background:var(--moss);border-radius:24px 24px 0 0;padding:12px 20px calc(24px + env(safe-area-inset-bottom));border-top:1px solid var(--line2);max-height:85vh;overflow:auto;animation:sheetIn .25s ease-out}
@media(min-width:720px){.sheet{left:50%;right:auto;width:520px;transform:translateX(-50%);bottom:24px;border-radius:24px}}
@keyframes sheetIn{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.sheet .grab{width:40px;height:4px;border-radius:2px;background:var(--line2);margin:0 auto 16px}
.sheet .cat{aspect-ratio:auto;padding:0;background:none;display:inline-flex;gap:8px;align-items:center;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--c);border-radius:0}
.sheet .cat::after{display:none}
.sheet h2{font-size:clamp(26px,6vw,34px);margin-top:10px}
.sheet .meta{display:grid;gap:6px;margin-top:14px;font-size:15px}
.sheet .meta span{color:var(--muted)}
.sheet p{margin-top:14px;color:#C7CDD9;line-height:1.55}
.sheet .actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.sheet .conf-note{margin-top:16px;padding:12px 14px;border-radius:12px;background:var(--sand);font-size:13px;color:var(--muted)}
.sp{display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:999px;background:#1DB954;color:#0A0C11;font-weight:600;font-size:14px}
.sp:hover{color:#0A0C11;background:#24d660}

/* month as rows (mobile) */
.mrows{display:grid;gap:6px;margin-top:8px}
.mrow{display:grid;grid-template-columns:52px 1fr;gap:10px;align-items:start}
.mdate{display:grid;justify-items:center;gap:0;padding:8px 0;border-radius:12px;background:var(--moss);border:1px solid var(--line);color:var(--cream);position:sticky;top:150px}
.mdate small{font-family:var(--mono);font-size:10px;text-transform:uppercase;color:var(--muted)}
.mdate b{font-family:var(--display);font-size:20px;line-height:1.1}
.mrow.today .mdate{border-color:var(--teal)}.mrow.today .mdate b{color:var(--teal)}
.mevs{display:grid;gap:4px}
.mev{display:grid;grid-template-columns:4px 1fr auto;gap:10px;align-items:center;padding:10px 12px 10px 0;border-radius:12px;background:var(--moss);border:1px solid var(--line);color:var(--cream);text-align:left;overflow:hidden}
.mev i{height:100%;background:var(--c);display:block}
.mev span{font-size:14px;font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.mev small{font-family:var(--mono);font-size:10px;color:var(--muted);white-space:nowrap}
@media(max-width:719px){.mgrid .mday .bar,.mgrid .mday .more{display:none}.mday{min-height:40px;padding:6px 2px;align-items:center}.mday .num{font-size:13px}.mday::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--dot,transparent)}.legend{display:none}}
@media(min-width:720px){.mrows{display:none}}

.mday.past{opacity:.28;pointer-events:none}.mday.past .bar{display:none}
.ev-nav button:disabled{opacity:.3;cursor:default}

/* ---- story.css ---- */
.art{max-width:680px}
.art .back{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:14px;margin-bottom:20px}.art .back:hover{color:var(--ink)}
.art h1{font-size:clamp(30px,5.5vw,52px);max-width:18ch;margin-top:12px}
.art .std{color:var(--muted);font-size:clamp(16px,2vw,19px);margin-top:14px;max-width:46ch}
.art .by{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-family:var(--mono);font-size:12px;color:var(--blue);margin-top:20px}.art .by b{color:var(--ink);font-weight:500}
.art figure{margin:28px 0;border-radius:var(--radius);overflow:hidden;background:var(--moss)}
.art figure img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.art figcaption{font-family:var(--mono);font-size:11px;color:var(--muted);padding:10px 14px}
.art .body{font-size:17px;line-height:1.6;display:grid;gap:18px}
.art .body h2{font-size:clamp(22px,3vw,28px);margin-top:12px}
.art .body a{color:var(--teal);text-decoration:underline;text-underline-offset:3px}.art .body a:hover{color:#fff}
.art .fact{background:color-mix(in oklch,var(--c,var(--purple)),#14171F 78%);border:1px solid rgba(255,255,255,.08);border-radius:22px;padding:18px;display:grid;gap:14px}
.art .fact h3{font-size:12px;font-family:"Jost",var(--sans);letter-spacing:.06em;text-transform:uppercase;font-weight:500;color:var(--c,var(--purple));display:inline-flex;align-items:center;gap:6px}
.art .fact dl{display:grid;gap:0;margin:0;font-size:15px}.art .fact dt{color:#9CA3B4;font-family:var(--mono);font-size:11px;letter-spacing:.02em;padding-top:12px}.art .fact dd{margin:4px 0 12px;line-height:1.5;color:#F4F5F8;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:12px}.art .fact dd:last-child{border-bottom:0;padding-bottom:0;margin-bottom:0}.art .fact dt:first-of-type{padding-top:0}
@media(min-width:600px){.art .fact dl{grid-template-columns:minmax(120px,auto) 1fr;column-gap:20px}.art .fact dt{padding-top:12px;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:12px}.art .fact dt:first-of-type{padding-top:0}.art .fact dd{margin:0;padding-top:12px}.art .fact dd:first-of-type{padding-top:0}.art .fact dt:last-of-type,.art .fact dd:last-of-type{border-bottom:0;padding-bottom:0}}
.art .body ul{padding-left:20px;display:grid;gap:8px}
.art .src{margin-top:32px;padding-top:20px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.art .src ul{list-style:none;display:grid;gap:6px;margin-top:8px}.art .src a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}.art .src a:hover{color:var(--ink)}
.art .pf{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--c,var(--purple));vertical-align:1px;margin-right:0}
/* ---- rev4.css ---- */
/* Rev 4: desktop layouts + spacing scale. Loads after site.css / pages.css / cards.css. */
:root{--s1:12px;--s2:16px;--s3:24px;--s4:40px;--s5:64px;--s6:96px;--gap:12px}
@media(min-width:900px){:root{--gap:20px;--s4:48px;--s5:96px;--s6:144px}}
.wrap{width:min(100% - 40px,1240px)}
section,.v2-pad section{padding:var(--s5) 0!important}
.v2-pad .hero.v2{padding:var(--s3) 0 var(--s5)!important}
.sec-head{margin-bottom:var(--s4)!important}
.hd{margin-bottom:var(--s3)}.hd h2{font-size:clamp(28px,4vw,44px)}
.hd a{font-size:14px;font-weight:600;color:var(--yellow)!important}.hd a:hover{color:#fff!important}
.sec-head>p{font-size:18px;line-height:1.55}
/* hero: headline on top, next-up card row (one of each type) beneath */
.hero.v2 .wrap{gap:var(--s5);padding-top:calc(var(--s5)*.8);padding-bottom:var(--s5)}
@media(min-width:900px){.hero.v2 .wrap{grid-template-columns:1fr;align-items:start;gap:var(--s5);padding-top:calc(var(--s6)*.8);padding-bottom:var(--s6)}.hero.v2 .wrap>div:first-child{padding-top:0}}
.hero.v2 h1{font-size:clamp(40px,7.6vw,92px);max-width:11ch}
.hero-aside{display:grid;gap:var(--s2);align-content:start;min-width:0}
.hero-aside .hd{margin:0;display:flex;justify-content:space-between;align-items:baseline}
.hero-aside .hd h2{font-size:clamp(22px,2.4vw,28px)}
.r4-list{display:grid;gap:10px}
.r4-list .lst{width:100%!important}
/* next-up strip: swipe on mobile */
.next-up{display:flex;gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(-1*(100vw - 100%)/2);padding-inline:calc((100vw - 100%)/2);padding-bottom:4px;align-items:stretch}
.next-up::-webkit-scrollbar{display:none}
.next-up>.c{flex:none;width:min(78vw,300px);scroll-snap-align:start;aspect-ratio:auto;height:auto}
.next-up .wash,.next-up .solid{min-height:0}
.next-up .solid{color:#fff;gap:10px}.next-up .solid .big{font-size:72px}.next-up .solid .big small{white-space:nowrap;letter-spacing:.06em;font-size:12px}
.next-up .news{grid-template-rows:1fr 180px;align-self:stretch}.next-up .news .head{min-height:0;display:flex;flex-direction:column;justify-content:flex-end}.next-up .news .arrow{display:none}
.next-up .lst{grid-template-columns:1fr;grid-template-rows:auto 1fr;align-items:start;padding:12px;gap:12px}.next-up .lst .ph{width:100%;height:180px;aspect-ratio:auto}.next-up .lst h3{font-size:22px}.next-up .lst .b{gap:6px}
@media(min-width:900px){.next-up.r4-grid{align-items:stretch}.next-up.r4-grid>.c{width:auto;height:100%}}
@media(max-width:899px){.hero-aside .r4-list{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(-1*(100vw - 100%)/2);padding-inline:calc((100vw - 100%)/2);padding-block:6px}.hero-aside .r4-list::-webkit-scrollbar{display:none}.hero-aside .r4-list .lst{flex:none;width:280px!important;scroll-snap-align:start}}
.ev-strip,.hero-aside .r4-list{scroll-padding-inline:calc((100vw - 100%)/2)}
/* strips become grids on desktop */
@media(min-width:900px){.ev-strip.r4-grid{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));gap:var(--gap);margin-inline:0;padding-inline:0;overflow:visible}.ev-strip.r4-grid>*{width:auto!important;flex:none}}
.ev-strip.r4-grid .trl{grid-template-rows:200px auto}
@media(min-width:900px){.ev-strip.r4-grid .trl .map .sk svg{width:150px;height:150px}.ev-strip.r4-grid .trl h3{font-size:22px}}
/* news band on home */
.news-grid{gap:var(--gap)}
@media(min-width:900px){.news-grid{grid-template-columns:1.35fr 1fr 1fr;grid-auto-rows:auto}.news-grid .lead{grid-row:span 2;grid-template-rows:1fr 180px}.news-grid .lead .head{min-height:0;display:flex;flex-direction:column;justify-content:flex-end}.news-grid .lead img{min-height:0;max-height:none}.news-grid .news.noimg:not(.compact) .head{min-height:200px}}
@media(min-width:900px){.news-grid .wide{grid-column:span 2}.news-grid .news.wide{grid-template-columns:1fr 220px;grid-template-rows:auto}.news-grid .news.wide .head{min-height:0;align-content:space-between}.news-grid .news.wide .arrow{display:none}}
/* today tiles */
@media(min-width:900px){.today-grid{grid-template-columns:1fr 1fr 1fr;gap:var(--gap)}}
.tile.sun{align-content:start}
.tile .sunrow{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tile .sunrow div{background:var(--sand);border-radius:12px;padding:10px 12px}
.tile .sunrow b{display:block;font-family:var(--display);font-size:24px;line-height:1.05}
.tile .sunrow span{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--yellow)}
.tile .sunrow i{display:block;font-style:normal;font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:2px}
/* open now: 2-col list on desktop with a solid count card */
@media(min-width:900px){.near-row.r4-grid{--cols:3}.near-row.r4-grid .lst{padding:12px}}
.near-row .solid.more{flex:none;width:170px;aspect-ratio:auto;padding:14px;scroll-snap-align:start;gap:8px}
.near-row .solid.more .big{font-size:56px}.near-row .solid.more .big small{font-size:10px;margin-top:4px}.near-row .solid.more h3{font-size:16px;margin:0}
@media(min-width:900px){.near-row .solid.more{width:auto;grid-template-rows:auto 1fr auto}}
/* explore: six across on wide */
@media(min-width:1100px){.grid6{grid-template-columns:repeat(6,1fr);gap:var(--gap)}.cat{aspect-ratio:3/4;padding:14px;padding-right:14px}.cat h3{font-size:22px}}
/* featured: wash + solid side by side */
.feat-row{display:grid;gap:var(--gap)}
@media(min-width:900px){.feat-row{grid-template-columns:2fr 1fr}.feat-row .feature-wash{max-width:none;aspect-ratio:auto;min-height:420px}.feat-row .solid{aspect-ratio:auto}}
.feat-row .solid .big{font-size:72px}
/* ticker spacing */
.ticker{padding:16px 0}
/* footer */
footer{padding:var(--s5) 0 var(--s3)}footer .cols{gap:var(--s4)}
footer a{color:var(--yellow)}footer a:hover{color:#fff}footer .brand{color:var(--cream)!important}
/* ---- news page ---- */
.pg-head{padding:var(--s3) 0 var(--s3)}
@media(min-width:900px){.pg-head{display:grid;grid-template-columns:1.2fr .8fr;align-items:end;gap:48px;padding:var(--s4) 0 var(--s4)}.pg-head .eyebrow{grid-column:1/-1}.pg-head h1{margin-top:4px}.pg-head>p{justify-self:end;margin:0 0 10px;font-size:18px}}
.pg-head h1{font-size:clamp(40px,6.5vw,76px);max-width:14ch}
main.pg{padding-top:0!important;padding-bottom:var(--s6)}
.nw-sec{margin-top:var(--s5)}.nw-sec:first-child{margin-top:0}
.nw-top{display:grid;gap:var(--gap)}.nw-top .lead{grid-template-rows:auto 180px}
@media(min-width:900px){.nw-top{grid-template-columns:1.6fr 1fr}.nw-top .lead{grid-row:span 2;grid-template-rows:1fr 180px}.nw-top .lead .head{display:flex;flex-direction:column;justify-content:flex-end}.nw-top .lead img{min-height:0;max-height:none}.nw-top .lead .head{padding:28px 28px 24px}.nw-top .lead h3{font-size:clamp(26px,2.6vw,36px)}.nw-top .news.noimg .head{min-height:0}}
.nw-grid{display:grid;gap:var(--gap)}
@media(min-width:720px){.nw-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.nw-grid{grid-template-columns:repeat(3,1fr)}}
.nw-grid .news{grid-template-rows:auto 1fr;align-content:start}.nw-grid .news img{height:200px;align-self:end}.nw-grid .news .arrow{bottom:214px}
.nw-grid .news .head{min-height:0}
.nw-grid .news.noimg .head{min-height:240px}
.nw-grid .solid{aspect-ratio:auto;min-height:240px}
.nw-rooms{display:grid;gap:10px}
@media(min-width:900px){.nw-rooms{grid-template-columns:repeat(2,1fr);gap:var(--gap)}}
.nw-rooms .lst{grid-template-columns:64px 1fr auto}
.nw-rooms .lst .mg{width:64px;height:64px;font-size:28px;color:#fff}
.nw-rooms .lst h3{font-size:19px}
.nw-rooms .lst .end{font-family:var(--mono);font-size:11px;color:var(--muted);align-self:center;white-space:nowrap}
.nw-promise{margin-top:var(--s5);display:grid;gap:12px;padding:var(--s3)}
@media(min-width:900px){.nw-promise{grid-template-columns:1fr 2fr;align-items:center;gap:48px;padding:var(--s4)}.nw-promise h3{font-size:32px}.nw-promise p{font-size:16px}}
.nw-promise a{color:var(--yellow)}

/* ---- feed ---- */

.feed{max-width:560px;margin:0 auto;padding:0 0 64px}
.feed-head{padding:24px 0 8px}.feed-head h1{font-size:clamp(34px,8vw,48px)}.feed-head p{color:var(--muted);font-size:15px;margin-top:10px;max-width:46ch}
.day{font-family:"Jost",var(--sans);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:10px;margin:36px 0 8px}.day::after{content:"";flex:1;height:1px;background:var(--line)}
.day:first-of-type{margin-top:16px}
.items{display:grid;gap:0}
.items .c{width:100%}
.src{display:flex;align-items:center;gap:10px;padding:0 2px 10px;font-size:14px;color:var(--muted)}
.src .av{width:32px;height:32px;border-radius:50%;background:var(--k,#3D8BFF);color:#0A0C11;display:grid;place-items:center;font-family:var(--display);font-weight:900;font-size:14px;flex:none;overflow:hidden}.src .av img{width:100%;height:100%;object-fit:cover;display:block}.src .av.logo{background:#fff}
.src b{color:var(--ink);font-weight:600}.src .t{margin-left:auto;font-family:var(--mono);font-size:11px}
.post{display:grid;gap:0;padding:22px 0 24px;border-bottom:1px solid var(--line)}.post:last-child{border-bottom:0}.items .post:first-child{padding-top:6px}
.post .c.lst{grid-template-columns:72px 1fr}.post .lst .mg,.post .lst .ph{width:72px;height:72px;font-size:32px}
.post .c.wash{aspect-ratio:4/3.4}
.post .act{display:flex;gap:8px;padding:14px 2px 0;flex-wrap:wrap}
.post .act a{font-size:13px;font-weight:600;color:var(--teal);display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:var(--moss);border:1px solid var(--line)}
.post .act a:hover{border-color:var(--teal);color:var(--teal)}
.post .act .share{color:var(--ink)}
.post .act .bump{color:var(--ink)}.post .act .bump.on{background:var(--teal);border-color:var(--teal);color:#0A0C11}
.post.rose{animation:rose .6s ease-out}@keyframes rose{from{box-shadow:0 0 0 2px var(--teal);border-radius:24px}to{box-shadow:0 0 0 0 transparent}}
.end{margin-top:40px;padding:24px;border-radius:22px;background:var(--moss);border:1px solid var(--line);display:grid;gap:8px;text-align:center}
.end h3{font-size:24px}.end p{color:var(--muted);font-size:14px}
.tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:12px 0 4px;position:sticky;top:76px;z-index:30;background:linear-gradient(#0E1118 70%,transparent)}.tabs::-webkit-scrollbar{display:none}
.tabs .chip{flex:none}
.feed-foot{font-family:var(--mono);font-size:11px;color:var(--muted);padding:8px 4px 0}

/* ---- trails ---- */

.rt .sk{width:112px;min-height:140px;height:100%;display:grid;place-items:center;background:var(--sand);color:var(--teal)}
.hero-rt .sk{position:absolute;right:24px;top:24px;width:120px;height:120px;color:#fff;opacity:.9}
.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--orange);border:1px solid currentColor;border-radius:999px;padding:3px 9px}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.badge.ok{color:#34D399}
.rt .b .badge{justify-self:start}
.rt .st span.q b{color:var(--muted);font-weight:500}

/* ---- trail single ---- */

.tmap{height:min(62vh,560px);border-radius:var(--radius);overflow:hidden;background:var(--moss);border:1px solid var(--line);position:relative}
.tmap .sk{position:absolute;inset:0;display:grid;place-items:center;color:var(--teal)}
.poi{width:26px;height:26px;border-radius:50%;background:#0A0C11;color:#fff;border:2px solid #00D6C2;font:600 12px/22px var(--mono);text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.5);cursor:pointer}
.poi.s{background:#00D6C2;color:#0A0C11}.poi.f{background:#FF8A3D;border-color:#FF8A3D;color:#0A0C11}
.mapboxgl-popup-content{background:#14171F;color:#F4F5F8;border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:10px 14px;font:500 14px Jost,system-ui,sans-serif;box-shadow:0 12px 30px rgba(0,0,0,.5)}
.mapboxgl-popup-tip{border-top-color:#14171F!important;border-bottom-color:#14171F!important}
.mapboxgl-popup-close-button{color:#9CA3B4;font-size:18px;padding:2px 8px}
.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--orange);border:1px solid currentColor;border-radius:999px;padding:3px 9px}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.badge.ok{color:#34D399}
.tstats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}
.tstats div{background:var(--moss);border:1px solid var(--line);border-radius:16px;padding:14px}
.tstats b{display:block;font-family:var(--display);font-size:24px;line-height:1.1}
.tstats small{display:block;font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:4px}
.tgrid{display:grid;gap:24px;margin-top:32px}
@media(min-width:900px){.tgrid{grid-template-columns:1.1fr .9fr;gap:40px}}
.tgrid h2{font-size:clamp(22px,3vw,30px);margin-bottom:12px}
.wps{list-style:none;display:grid;counter-reset:w}
.wps li{display:grid;grid-template-columns:28px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px;align-items:center;cursor:pointer}
.wps li:hover{color:var(--teal)}
.wps li::before{counter-increment:w;content:counter(w);font-family:var(--mono);font-size:12px;color:var(--teal);width:28px;height:28px;border-radius:50%;border:1px solid var(--line2);display:grid;place-items:center}
.kv{display:grid;gap:8px;font-size:15px}.kv div{display:grid;grid-template-columns:88px 1fr;gap:12px}.kv span{color:var(--muted);font-family:var(--mono);font-size:12px;padding-top:3px}
details.check{background:var(--moss);border:1px solid var(--line);border-radius:20px;padding:0 20px;margin-top:24px}
details.check summary{padding:16px 0;font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
details.check summary::after{content:"+";font-family:var(--mono);color:var(--muted)}details.check[open] summary::after{content:"–"}
details.check .in{padding:0 0 20px}
.check label{display:grid;grid-template-columns:22px 1fr;gap:12px;padding:8px 0;font-size:15px;align-items:start;cursor:pointer}
.check input{width:22px;height:22px;accent-color:var(--teal);margin-top:1px}
.check textarea{width:100%;margin-top:12px;background:var(--forest);border:1px solid var(--line2);border-radius:12px;color:var(--ink);font:inherit;font-size:15px;padding:12px;min-height:96px;resize:vertical}
.check .row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.back{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:14px;margin-bottom:16px}.back:hover{color:var(--ink)}
.dl{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}

/* ---- attractions ---- */

.at-grid{display:grid;gap:12px}
@media(min-width:720px){.at-grid{grid-template-columns:repeat(2,1fr);gap:16px}}
@media(min-width:1100px){.at-grid{grid-template-columns:repeat(3,1fr)}}
.at{display:grid;grid-template-rows:auto 1fr;background:var(--moss);border:1px solid var(--line);border-radius:22px;overflow:hidden;color:var(--ink);transition:border-color .15s}
.at:hover{border-color:var(--teal);color:var(--ink)}
.at img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.at .b{padding:16px;display:grid;gap:8px;align-content:start}
.at small{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--teal);display:flex;gap:10px;flex-wrap:wrap}
.at small i{font-style:normal;color:var(--muted)}
.at h3{font-size:clamp(18px,2.2vw,22px);line-height:1.15}
.at p{color:var(--muted);font-size:14px;line-height:1.5}
.at .go{font-size:13px;font-weight:600;color:var(--teal);margin-top:4px}
.at .free{color:#34D399}

/* ---- attraction single ---- */

.ad{max-width:820px}
.ad .back{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:14px;margin-bottom:16px}.ad .back:hover{color:var(--ink)}
.ad .photo{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--moss);aspect-ratio:16/9}
.ad .photo img{width:100%;height:100%;object-fit:cover;display:block}
.ad .photo .credit{position:absolute;right:10px;bottom:8px;font-family:var(--mono);font-size:10px;color:#fff;background:rgba(10,12,17,.6);padding:3px 8px;border-radius:999px}
.ad .photo .credit:empty{display:none}
.ad h1{font-size:clamp(28px,5vw,48px);margin-top:16px;max-width:20ch}
.ad .meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:10px}
.ad .meta .free{color:#34D399}
.ad .desc{font-size:17px;line-height:1.6;margin-top:16px;max-width:60ch}
.ad .acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.ad .kv{display:grid;gap:14px;margin-top:28px;background:var(--moss);border:1px solid var(--line);border-radius:20px;padding:20px}
.ad .kv div{display:grid;grid-template-columns:96px 1fr;gap:12px;font-size:15px}.ad .kv span{color:var(--muted);font-family:var(--mono);font-size:12px;padding-top:3px}.ad .kv a{color:var(--teal)}
.ad .map{height:260px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);margin-top:20px;background:var(--moss)}
.ad .claim{margin-top:28px;border:1px dashed var(--line2);border-radius:20px;padding:20px;display:grid;gap:10px}
.ad .claim h2{font-size:20px}.ad .claim p{color:var(--muted);font-size:14px;max-width:56ch}
.ad .claim .row{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}

/* ---- theme additions ---- */
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;z-index:99;background:var(--teal);color:#0A0C11;padding:8px 12px;border-radius:8px}
.pager{display:flex;gap:8px;justify-content:space-between;margin-top:24px}.pager a{padding:10px 14px;border-radius:999px;background:var(--moss);border:1px solid var(--line);font-size:14px;font-weight:600}
.mapboxgl-canvas{outline:none}
.next-up .lst .mg{width:100%;height:180px;font-size:64px;border-radius:14px}
.next-up .news .head p{display:none}
.post .act button{font:inherit;font-size:13px;font-weight:600;color:var(--ink);display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:var(--moss);border:1px solid var(--line)}.post .act button.on{background:var(--teal);border-color:var(--teal);color:#0A0C11}
