:root{--bg:#f0f4ef;--surface:#fff;--text:#131a22;--muted:#5f6c76;--line:#d8e0e6;--brand:#0f766e;--brand-strong:#115e59;--accent:#f59e0b}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{color:var(--text);font-family:Avenir Next,Segoe UI,sans-serif;background:radial-gradient(circle at 10% 0,#d8f3ea 0,transparent 45%),radial-gradient(circle at 90% 0,#dbeafe 0,transparent 40%),var(--bg)}a{color:inherit;text-decoration:none}.app-shell{width:min(1200px,100% - 28px);margin:0 auto;padding:24px 0 72px;display:grid;grid-gap:18px;gap:18px}.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 8px 28px rgba(15,23,42,.06)}.hero{padding:26px}.hero h1{margin:4px 0 8px;font-size:clamp(1.5rem,4.5vw,2.2rem)}.eyebrow{margin:0;font-size:.86rem;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-strong);font-weight:700}.lead{margin:0;color:var(--muted);max-width:70ch}.info-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}.metric{font-size:1.35rem;font-weight:800}.cards-grid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:1fr}@media (min-width:840px){.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.location-card{overflow:hidden;padding:0}.location-body{padding:16px 16px 18px}.location-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.location-head h2{margin:0;font-size:1.18rem}.stars{color:var(--accent);font-size:.95rem;white-space:nowrap}.muted{color:var(--muted)}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.chip{font-size:.78rem;font-weight:700;letter-spacing:.01em;border-radius:999px;background:#e8f8f4;border:1px solid #c2ebe1;color:#0f766e;padding:5px 10px}.chip.subtle{background:#f3f5f8;border-color:#dbe2e8;color:#556270}.facts{margin:8px 0 0;padding-left:18px;display:grid;grid-gap:6px;gap:6px}.cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.event-compact{margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#f8fbff}.event-compact p{margin:0}.event-compact p+p{margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.88rem;border-radius:10px;padding:9px 12px;border:1px solid transparent;transition:transform .12s ease,background-color .12s ease,color .12s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-strong)}.btn-ghost{border-color:var(--line);background:#fff;color:#344252}.btn-ghost:hover{background:#f8fafb}.carousel{position:relative;width:100%;aspect-ratio:16/10;background:linear-gradient(180deg,#eff4f9,#d7e0ea)}.carousel-image{width:100%;height:100%;object-fit:cover;display:block}.carousel-empty{width:100%;aspect-ratio:16/10;background:linear-gradient(180deg,#eff4f9,#d7e0ea);color:#4b5563;display:grid;place-items:center;font-weight:700}.carousel-nav{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:999px;border:0;background:rgba(13,23,40,.68);color:#fff;font-size:1.35rem;line-height:1;cursor:pointer}.carousel-prev{left:10px}.carousel-next{right:10px}.carousel-dots{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:6px}.dot{width:8px;height:8px;border-radius:999px;border:none;cursor:pointer;background:hsla(0,0%,100%,.55)}.dot.active{background:hsla(0,0%,100%,.95)}.detail-shell{gap:14px}.detail-hero h1{margin:0}.back-link{font-weight:700;color:var(--brand-strong)}.detail-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:1fr}@media (min-width:960px){.detail-grid{grid-template-columns:1.2fr .8fr}}.events-list,.hours-list{margin:8px 0 0;padding-left:18px;display:grid;grid-gap:8px;gap:8px}.events-list li{border-top:1px solid var(--line);padding-top:10px;list-style:none;margin-left:-18px;padding-left:18px}.events-list li:first-child{border-top:0;padding-top:0}.mobile-tabbar{position:-webkit-sticky;position:sticky;bottom:10px;z-index:30;margin-top:8px;background:hsla(0,0%,100%,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:999px;padding:8px 10px;display:flex;justify-content:space-around;box-shadow:0 8px 24px rgba(15,23,42,.12)}.tab{font-size:.86rem;color:var(--muted);font-weight:700}.tab.active{color:var(--brand-strong)}@media (min-width:961px){.mobile-tabbar{display:none}}