:root{--coral:#F26B5B;--coral-d:#C2412F;--sun:#FFC845;--sun-l:#FFF1C7;--teal:#1A9E94;--teal-d:#0E6F68;--cream:#FFF8EC;--navy:#1E2A4A;--muted:#4A5573;--line:#F0E3CC;--r:20px;--sh:0 2px 4px rgba(30,42,74,.05),0 10px 28px rgba(30,42,74,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Nunito,system-ui,sans-serif;background:var(--cream);color:var(--navy);line-height:1.6;font-size:16.5px}
h1,h2,h3,.brand{font-family:Fredoka,Nunito,sans-serif;line-height:1.2;letter-spacing:-.01em}h1{font-size:clamp(2rem,5.5vw,3.3rem);margin:.2em 0 .3em;font-weight:600}h2{font-size:clamp(1.4rem,3.4vw,1.9rem);font-weight:600;margin:1.6em 0 .6em}h3{font-weight:600}
a{color:var(--teal-d)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
svg{width:1em;height:1em;flex:none}.wrap{max-width:1120px;margin:auto;padding:0 20px}
.nav{position:sticky;top:0;z-index:20;background:rgba(255,248,236,.92);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;gap:6px;min-height:66px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy);font-size:1.35rem;font-weight:600;margin-right:auto}.brand b{color:var(--coral-d);font-weight:600}.logo{width:42px;height:42px}
.nav nav{display:flex;gap:2px;overflow-x:auto;max-width:100%}.nav nav a{text-decoration:none;color:var(--navy);font-weight:700;padding:8px 12px;border-radius:99px;white-space:nowrap;font-size:.95rem}.nav nav a:hover,.nav nav a[aria-current]{background:var(--sun-l)}
.hero{position:relative;overflow:hidden;padding:56px 0 70px}.hero .blob{position:absolute;z-index:0;pointer-events:none}.hero .wrap{position:relative;z-index:1;display:grid;gap:36px;grid-template-columns:1fr}
@media(min-width:880px){.hero .wrap{grid-template-columns:1.15fr .85fr;align-items:center}}
.eyebrow{display:inline-flex;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);padding:6px 14px;border-radius:99px;font-weight:800;font-size:.85rem;color:var(--teal-d);box-shadow:var(--sh)}
.lead{font-size:1.15rem;color:var(--muted);max-width:36em}.hl{background:linear-gradient(transparent 62%,var(--sun) 62%);padding:0 .1em}
.cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.btn{display:inline-flex;align-items:center;gap:8px;font-weight:800;text-decoration:none;border-radius:99px;padding:12px 22px;border:0;cursor:pointer;font-size:1rem;font-family:inherit;transition:transform .15s,box-shadow .15s}.btn:hover{transform:translateY(-2px)}
.btn-p{background:var(--coral-d);color:#fff;box-shadow:0 6px 16px rgba(194,65,47,.3)}.btn-s{background:#fff;color:var(--navy);border:2px solid var(--navy)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:30px;max-width:520px}.stat{background:#fff;border-radius:16px;padding:14px;text-align:center;box-shadow:var(--sh)}.stat b{display:block;font-family:Fredoka,sans-serif;font-size:2rem;line-height:1.1;color:var(--coral-d)}.stat:nth-child(2) b{color:var(--teal-d)}.stat:nth-child(3) b{color:#9A6A00}.stat span{font-size:.85rem;font-weight:700;color:var(--muted)}
.wk{background:#fff;border-radius:28px;padding:22px;box-shadow:var(--sh);border:3px solid var(--sun);position:relative}.wk h2{margin:0 0 4px;font-size:1.45rem}.wk .sub{color:var(--muted);margin:0 0 12px;font-weight:700;font-size:.92rem}
.wk ul{list-style:none;margin:0;padding:0}.wk li{display:flex;gap:12px;align-items:center;padding:10px 0;border-top:1px dashed var(--line)}.wk li a{font-weight:800;color:var(--navy);text-decoration:none}.wk li a:hover{color:var(--coral-d)}.wk .mini{font-size:.86rem;color:var(--muted)}
.sticker{position:absolute;top:-16px;right:18px;background:var(--coral-d);color:#fff;font-family:Fredoka,sans-serif;font-weight:600;padding:5px 14px;border-radius:99px;transform:rotate(4deg);font-size:.9rem}
.wave{display:block;width:100%;height:60px;margin-top:-1px}
.band{background:#fff}.section{padding:20px 0 50px}
.grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.card{background:#fff;border-radius:var(--r);box-shadow:var(--sh);padding:18px;display:flex;flex-direction:column;gap:10px;border:1px solid #F5EBDA;transition:transform .15s,box-shadow .15s}.card:hover{transform:translateY(-3px);box-shadow:0 4px 8px rgba(30,42,74,.06),0 18px 40px rgba(30,42,74,.13)}
.ev .top{display:flex;gap:14px;align-items:flex-start}.date{flex:none;width:62px;border-radius:16px;text-align:center;overflow:hidden;background:var(--cream);border:2px solid var(--navy);font-family:Fredoka,sans-serif}.date small{display:block;background:var(--navy);color:#fff;font-size:.72rem;font-weight:600;letter-spacing:.08em;padding:2px 0}.date b{display:block;font-size:1.6rem;line-height:1.2;font-weight:600}.date i{display:block;font-style:normal;font-size:.72rem;font-weight:700;padding-bottom:3px;color:var(--muted)}
.ev h3{margin:0;font-size:1.15rem}.meta{display:flex;flex-direction:column;gap:3px;font-size:.9rem;color:var(--muted);margin-top:4px}.meta span{display:flex;gap:6px;align-items:center}.meta a{color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;gap:5px;align-items:center;font-size:.8rem;font-weight:800;padding:4px 10px;border-radius:99px}
.c-baby{background:#FDE3DF;color:#9E2F1F}.c-tod{background:#FFF0C2;color:#7A5300}.c-pre{background:#DDF3F0;color:#0B5F59}.c-all{background:#E6E9F5;color:#2B3A6B}.c-free{background:#E3F6DF;color:#2D6A1F}
.sum{font-size:.92rem;color:#3A4563;margin:0}.go{margin-top:auto;align-self:flex-start;padding:9px 16px;font-size:.92rem;background:var(--teal-d);color:#fff}.go:hover{background:#0A5A54}
.note{display:flex;gap:10px;background:var(--sun-l);border-radius:16px;padding:12px 16px;font-size:.92rem;margin:14px 0}
.filters{position:sticky;top:66px;z-index:10;background:var(--cream);padding:12px 0;border-bottom:1px solid var(--line);margin-bottom:8px}.filters .row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.filters input[type=search],.filters select{font:inherit;font-size:.95rem;padding:9px 14px;border-radius:99px;border:2px solid var(--line);background:#fff;color:var(--navy)}.filters input[type=search]{flex:1 1 220px}
.pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.pill{font:inherit;font-weight:800;font-size:.85rem;padding:6px 13px;border-radius:99px;border:2px solid var(--line);background:#fff;color:var(--navy);cursor:pointer;display:inline-flex;gap:5px;align-items:center}.pill[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.count{font-weight:800;color:var(--muted);font-size:.9rem;margin:6px 0 0}
.dayh{display:flex;align-items:baseline;gap:10px;margin:30px 0 12px}.dayh h2{margin:0}.dayh span{color:var(--muted);font-weight:700;font-size:.9rem}
.pg-h{padding:40px 0 10px;position:relative;overflow:hidden}.pg-h p{color:var(--muted);font-size:1.08rem;max-width:40em}
.place .ic{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:24px;background:var(--sun-l);color:#7A5300}.place:nth-child(3n+2) .ic{background:#DDF3F0;color:var(--teal-d)}.place:nth-child(3n) .ic{background:#FDE3DF;color:var(--coral-d)}.place h3{margin:0;font-size:1.15rem}
.news{background:var(--navy);color:#fff;border-radius:28px;padding:30px;display:grid;gap:14px;position:relative;overflow:hidden;margin:40px 0}.news h2{margin:0;color:#fff}.news p{margin:0;color:#D9DEEE}.news .soon{display:inline-block;background:var(--sun);color:var(--navy);font-weight:800;padding:4px 12px;border-radius:99px;font-size:.82rem;width:max-content}
footer{background:#14203B;color:#C9D0E4;padding:44px 0 30px;margin-top:40px;font-size:.93rem}footer .cols{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}footer h4{font-family:Fredoka,sans-serif;color:#fff;margin:0 0 8px;font-size:1.05rem;font-weight:600}footer a{color:#FFD873}footer ul{list-style:none;padding:0;margin:0}footer li{margin:4px 0}footer .fine{border-top:1px solid #2A3757;margin-top:26px;padding-top:16px;font-size:.82rem;color:#A9B2CC}
.empty{text-align:center;padding:40px;color:var(--muted);font-weight:700}
@media(max-width:600px){.nav .wrap{padding-top:6px;padding-bottom:4px}.brand{font-size:1.15rem}.logo{width:36px;height:36px}.hero{padding:30px 0 50px}.filters{top:104px}.stat b{font-size:1.6rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}