/* What's On widget — shared by home + /whats-on.html */
.wo { padding: 56px 0; background: linear-gradient(180deg, #fff 0%, var(--sand, #F6F1EA) 100%); position: relative; overflow: hidden; }
.wo::before { content: ""; position: absolute; width: 420px; height: 420px; right: -140px; top: -160px; border-radius: 50%; background: radial-gradient(circle, rgba(196,92,58,.14), transparent 70%); pointer-events: none; }
.wo-head { display: flex; justify-content: space-between; align-items: end; gap: 16px; flex-wrap: wrap; }
.wo-head h2 { margin: 0; font-family: Nunito, sans-serif; font-weight: 800; color: #0E2A4A; font-size: clamp(1.6rem, 3vw, 2.1rem); }
.wo-head h2 .where { color: #C45C3A; }
.wo-head p { margin: 4px 0 0; color: #5C6770; }
.wo-cities, .wo-dates, .wo-cats { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.wo-pill { border: 1.5px solid #E8E0D6; background: #fff; color: #0E2A4A; border-radius: 999px; padding: 8px 15px; font: inherit; font-weight: 700; font-size: .92rem; cursor: pointer; transition: transform .15s, background .2s, border-color .2s; display: inline-flex; align-items: center; gap: 6px; }
.wo-pill:hover { transform: translateY(-2px); border-color: #0E2A4A; }
.wo-pill[aria-pressed="true"] { background: #0E2A4A; border-color: #0E2A4A; color: #fff; }
.wo-dates .wo-pill[aria-pressed="true"] { background: #C45C3A; border-color: #C45C3A; }
.wo-cats .wo-pill { padding: 6px 12px; font-size: .86rem; }
.wo-grid { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 300px); gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 22px 4px 14px; scrollbar-width: thin; }
.wo.full .wo-grid { grid-auto-flow: row; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); overflow: visible; }
.ev { scroll-snap-align: start; background: #fff; border: 1px solid #E8E0D6; border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 6px 22px rgba(14,42,74,.07);
  transition: transform .25s, box-shadow .25s; animation: evIn .45s both; text-decoration: none; color: inherit; }
.ev:hover { transform: translateY(-6px) rotate(-.4deg); box-shadow: 0 14px 34px rgba(14,42,74,.14); }
.ev.hosted { border: 2px solid #C45C3A; }
@keyframes evIn { from { opacity: 0; transform: translateY(14px) scale(.98); } }
.ev .ph { position: relative; aspect-ratio: 16/10; background: #E8E0D6; }
.ev .ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ev .date { position: absolute; left: 12px; top: 12px; background: #fff; border-radius: 12px; text-align: center; padding: 4px 10px 6px; box-shadow: 0 4px 12px rgba(0,0,0,.15); font-family: Nunito, sans-serif; line-height: 1; color: #0E2A4A; }
.ev .date b { display: block; font-size: 1.45rem; font-weight: 800; } .ev .date small { font-size: .68rem; font-weight: 800; text-transform: uppercase; color: #C45C3A; letter-spacing: .04em; }
.ev .cat { position: absolute; right: 12px; top: 12px; background: rgba(8,30,54,.82); color: #fff; border-radius: 999px; padding: 4px 10px; font-size: .78rem; font-weight: 700; }
.ev .soon { position: absolute; left: 12px; bottom: 12px; background: #C45C3A; color: #fff; border-radius: 999px; padding: 3px 10px; font-size: .75rem; font-weight: 800; animation: pulse 2s infinite; }
@keyframes pulse { 50% { box-shadow: 0 0 0 6px rgba(196,92,58,.25); } }
.ev .bd { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.ev h3 { margin: 0; font-family: Nunito, sans-serif; font-size: 1.08rem; color: #0E2A4A; line-height: 1.25; }
.ev .meta { color: #5C6770; font-size: .87rem; }
.ev .host { align-self: flex-start; background: rgba(196,92,58,.1); color: #B04E30; border-radius: 8px; padding: 3px 9px; font-size: .8rem; font-weight: 800; }
.ev .foot { margin-top: auto; display: flex; justify-content: space-between; align-items: center; padding-top: 8px; }
.ev .price { font-weight: 800; color: #0E2A4A; } .ev .price.free { color: #4A7C59; }
.ev .go { color: #C45C3A; font-weight: 800; font-size: .9rem; }
.ev .sample { font-size: .7rem; color: #5C6770; background: #F6F1EA; border-radius: 6px; padding: 1px 6px; align-self: flex-start; }
.wo-empty { padding: 34px; text-align: center; color: #5C6770; background: #fff; border: 1.5px dashed #E8E0D6; border-radius: 18px; margin-top: 22px; }
.wo-more { margin-top: 6px; }
.wo-more a { color: #0E2A4A; font-weight: 800; }
.nearby { font-size: .84rem; font-weight: 700; color: #0E2A4A; background: #F6F1EA; border-radius: 10px; padding: 6px 10px; text-decoration: none; display: block; }
.nearby:hover { background: #E8E0D6; }
@media (max-width: 600px) { .wo { padding: 40px 0; } .wo-dates, .wo-cats, .wo-cities { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 4px; } .wo-pill { flex: 0 0 auto; } .wo-grid { grid-auto-columns: 80%; } }
@media (prefers-reduced-motion: reduce) { .ev, .ev:hover, .wo-pill:hover { animation: none; transform: none; transition: none; } .ev .soon { animation: none; } }

/* ---- What's On explorer ---- */
.wo2-hero{background:linear-gradient(135deg,var(--navy,#0E2A4A),#173d66);color:#fff;padding:38px 0 30px}
.wo2-hero h1{font-family:Nunito,sans-serif;font-size:clamp(1.8rem,4vw,2.6rem);margin:0}.wo2-hero p{opacity:.85;margin:4px 0 16px}
.wo2-search{position:relative;display:flex;align-items:center;gap:8px;background:#fff;border-radius:16px;padding:6px 14px;max-width:640px;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.wo2-search input{flex:1;border:0;outline:0;font:inherit;font-size:1.05rem;padding:10px 0;color:var(--navy,#0E2A4A);background:transparent}
.wo2-search ul{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border-radius:14px;list-style:none;margin:0;padding:6px;box-shadow:0 14px 40px rgba(0,0,0,.18);z-index:500;color:var(--navy,#0E2A4A)}
.wo2-search li{display:flex;gap:8px;align-items:baseline;padding:9px 10px;border-radius:10px;cursor:pointer}
.wo2-search li span{color:var(--muted,#5C6770);font-size:.85rem}.wo2-search li em{margin-left:auto;font-style:normal;font-weight:800;color:var(--terracotta,#C45C3A)}
.wo2-search li[aria-selected=true],.wo2-search li:hover{background:#f6efe4}.wo2-search li.none{color:var(--muted);cursor:default}
.wo2-crumbs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:18px 0 10px;font-weight:700}.wo2-crumbs a{color:var(--navy,#0E2A4A)}.wo2-crumbs a:last-child{color:var(--terracotta,#C45C3A)}
.wo2-places{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.wo2-places .wo-pill b{margin-left:4px;color:var(--terracotta,#C45C3A)}.wo2-places .h{font-size:.8rem;opacity:.8}
.wo2-bar{display:flex;justify-content:space-between;align-items:center;margin:6px 0 14px;color:var(--muted);font-weight:600}
.wo2-view{display:flex;border:1.5px solid #d9cdb8;border-radius:999px;overflow:hidden}.wo2-view button{border:0;background:#fff;padding:7px 14px;font:inherit;font-weight:700;cursor:pointer;color:var(--navy,#0E2A4A)}
.wo2-view button[aria-pressed=true]{background:var(--navy,#0E2A4A);color:#fff}
#woMap{height:560px;border-radius:18px;overflow:hidden;margin-bottom:24px;border:1px solid #e6dccb}
.wo2-pin{display:grid!important;place-items:center;background:#fff;border:2px solid var(--navy,#0E2A4A);border-radius:50%;font-size:15px}.wo2-pin.hosted{border-color:var(--terracotta,#C45C3A);background:#fff4ee}
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:rgba(196,92,58,.25)!important}.marker-cluster div{background:var(--terracotta,#C45C3A)!important;color:#fff;font-weight:800}
.wo2-more{text-align:center;color:var(--muted);padding:20px 0 40px}
.wo2 #woGrid{display:grid;grid-auto-flow:row;padding:4px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;overflow:visible;scroll-snap-type:none}
.wo2 #woGrid>*{width:auto;min-width:0}
.wo2 .wo2-crumbs{background:none;border:0;box-shadow:none;padding:0;position:static}

/* Pro event boosts */
.ev.boosted { box-shadow: 0 0 0 2px var(--terracotta), 0 12px 30px rgba(196,92,58,.18); }
.ev .boost { display: inline-block; background: var(--terracotta); color: #fff; font-weight: 800; font-size: .75rem; border-radius: 99px; padding: 2px 8px; margin-bottom: 4px; }
.wo2-pin.boosted { background: var(--terracotta); color: #fff; font-size: 20px; box-shadow: 0 0 0 6px rgba(196,92,58,.25), 0 6px 18px rgba(196,92,58,.5); animation: wo2pulse 1.8s ease-out infinite; }
@keyframes wo2pulse { 0% { box-shadow: 0 0 0 0 rgba(196,92,58,.5); } 100% { box-shadow: 0 0 0 16px rgba(196,92,58,0); } }
@media (prefers-reduced-motion: reduce) { .wo2-pin.boosted { animation: none; } }

.hlogo-s { width: 20px; height: 20px; border-radius: 6px; object-fit: contain; background: #fff; border: 1px solid #E8E0D6; vertical-align: -5px; margin-right: 2px; }
