
:root{--sky:#35b6f2;--sky-d:#1d9bd8;--sky-l:#e3f4fe;--sun:#ffc93c;--sun-d:#f0a90c;
--coral:#ff6b5e;--coral-d:#e8503f;--grape:#8b5cf6;--mint:#2dd4a7;
--ink:#22314e;--muted:#5a6b8c;--bg:#f2f9ff;--paper:#fff;--line:#d9ebf9;
--r:24px;--shadow:0 2px 4px rgba(34,49,78,.06),0 14px 34px rgba(53,182,242,.12);
--spring:cubic-bezier(.34,1.56,.64,1)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.7 "Nunito",system-ui,-apple-system,"Segoe UI",sans-serif}
a{color:var(--sky-d)}:focus-visible{outline:3px solid var(--sun);outline-offset:2px;border-radius:8px}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}
h1,h2,h3{font-family:"Baloo 2","Nunito",sans-serif;line-height:1.15;margin:0 0 .4em;font-weight:800;letter-spacing:-.01em}
h1{font-size:clamp(34px,5vw,54px)}h2{font-size:clamp(26px,3.4vw,34px);margin-top:1.6em}h3{font-size:22px}
.lede{font-size:18px;max-width:60ch;color:var(--muted);margin:.4em 0 0;font-weight:600}
/* header */
header.site{background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:3px solid var(--sun);position:sticky;top:0;z-index:100}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;min-height:68px;gap:12px}
.logo{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;font:800 25px "Baloo 2",sans-serif}
.logo i{width:40px;height:40px;border-radius:14px;background:linear-gradient(135deg,var(--coral),var(--sun-d));display:grid;place-items:center;font-size:23px;box-shadow:0 4px 10px rgba(255,107,94,.35);transition:transform .3s var(--spring)}
.logo:hover i{transform:rotate(-12deg) scale(1.1)}
.navstate{font-weight:800;font-size:15px;color:var(--muted);text-decoration:none;background:var(--sky-l);padding:9px 18px;border-radius:999px}
.navstate:hover{background:var(--sky);color:#fff}
/* hero */
.hero{position:relative;overflow:hidden;border-radius:0 0 40px 40px;margin:0 -22px;padding:70px 22px 64px;background:linear-gradient(160deg,#1d9bd8 0%,#35b6f2 55%,#7cd4f7 100%);color:#fff}
.hero h1{color:#fff;text-shadow:0 3px 0 rgba(29,155,216,.45);max-width:15ch}
.hero .lede{color:#eaf7ff;font-weight:700}
.cloud{position:absolute;background:#fff;border-radius:999px;opacity:.5;filter:blur(2px);animation:drift 26s linear infinite}
.cloud::before,.cloud::after{content:"";position:absolute;background:#fff;border-radius:50%}
.cloud.c1{width:130px;height:38px;top:12%;left:-140px}.cloud.c1::before{width:52px;height:52px;top:-24px;left:22px}.cloud.c1::after{width:36px;height:36px;top:-16px;left:66px}
.cloud.c2{width:90px;height:28px;top:32%;left:-100px;animation-duration:38s;animation-delay:-14s}.cloud.c2::before{width:38px;height:38px;top:-18px;left:16px}.cloud.c2::after{width:26px;height:26px;top:-12px;left:48px}
.cloud.c3{width:160px;height:44px;top:64%;left:-170px;animation-duration:48s;animation-delay:-28s}.cloud.c3::before{width:62px;height:62px;top:-30px;left:30px}.cloud.c3::after{width:42px;height:42px;top:-20px;left:86px}
@keyframes drift{to{transform:translateX(calc(100vw + 340px))}}
.bball{position:absolute;border-radius:50%;animation:bounce 3.2s ease-in-out infinite;box-shadow:inset -8px -10px 0 rgba(0,0,0,.12),0 10px 18px rgba(0,0,0,.18)}
.bball.b1{width:64px;height:64px;right:9%;top:18%;background:radial-gradient(circle at 35% 30%,#ffd97a,var(--sun-d));animation-delay:-.6s}
.bball.b2{width:42px;height:42px;right:20%;bottom:16%;background:radial-gradient(circle at 35% 30%,#ff9d92,var(--coral-d));animation-delay:-1.8s}
.bball.b3{width:30px;height:30px;right:5%;bottom:34%;background:radial-gradient(circle at 35% 30%,#b7a5fb,var(--grape));animation-delay:-2.6s}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-26px)}}
.hero .wrap{position:relative;z-index:2}
/* search */
.big-search{position:relative;max-width:600px;margin-top:30px}
.big-search input{width:100%;font:700 18px "Nunito",sans-serif;padding:19px 24px 19px 58px;border:0;border-radius:999px;background:#fff;color:var(--ink);box-shadow:0 10px 30px rgba(13,71,106,.3)}
.big-search::before{content:"🔍";position:absolute;left:22px;top:50%;transform:translateY(-50%);font-size:22px}
.big-search input::placeholder{color:#9db1cc;font-weight:600}
.cityres{position:absolute;top:calc(100% + 10px);left:0;right:0;background:#fff;border-radius:20px;box-shadow:0 24px 60px rgba(13,71,106,.35);overflow:hidden;z-index:60}
.cityres a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 22px;text-decoration:none;color:var(--ink);font-weight:700}
.cityres a:hover{background:var(--sky-l)}
.cityres small{color:var(--muted);font-weight:600}
.searchhint{margin-top:16px;color:#eaf7ff;font-weight:700}
.searchhint a{color:#fff;text-decoration:underline}
/* crumbs */
.crumbs{font-size:14px;font-weight:700;color:var(--muted);padding-top:20px}
.crumbs a{color:var(--sky-d);text-decoration:none}.crumbs a:hover{text-decoration:underline}
/* state / city grids */
.citygrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;padding:0;list-style:none;margin-top:20px}
.citygrid a{display:block;background:var(--paper);border-radius:var(--r);overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:transform .35s var(--spring),box-shadow .3s ease;border:3px solid transparent}
.citygrid a:hover{transform:translateY(-8px) rotate(-.6deg);box-shadow:0 6px 10px rgba(34,49,78,.08),0 24px 48px rgba(53,182,242,.2);border-color:var(--sun)}
.citygrid .cimg{display:block;height:150px;overflow:hidden;background:var(--sky-l)}
.citygrid .cimg img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--spring)}
.citygrid a:hover .cimg img{transform:scale(1.08) rotate(1deg)}
.citygrid .cbody{display:block;padding:18px 20px}
.citygrid b{font:800 24px "Baloo 2",sans-serif;display:block;line-height:1.2}
.citygrid small{color:var(--muted);font-weight:700}
.citygrid .pcount{display:inline-block;margin-top:10px;background:var(--sun);color:#5c430a;font-weight:800;font-size:13.5px;padding:6px 14px;border-radius:999px}
/* park cards */
.cards{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:22px}
.card{background:var(--paper);border-radius:28px;box-shadow:var(--shadow);overflow:hidden;transition:transform .35s var(--spring),box-shadow .3s ease;border:3px solid transparent;display:grid;grid-template-columns:300px minmax(0,1fr)}
.card:hover{transform:translateY(-8px);box-shadow:0 8px 14px rgba(34,49,78,.08),0 30px 60px rgba(53,182,242,.22);border-color:var(--sky)}
.pthumb{overflow:hidden;min-height:220px;background:var(--sky-l);position:relative}
.pthumb img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0;transition:transform .5s var(--spring)}
.card:hover .pthumb img{transform:scale(1.07)}
.card .b{padding:26px 28px;display:flex;flex-direction:column;gap:14px;min-width:0}
.badges{display:flex;gap:8px;flex-wrap:wrap}
.fbadge{font-size:12.5px;font-weight:800;padding:6px 14px;border-radius:999px;letter-spacing:.03em;text-transform:uppercase}
.fbadge.fran{background:linear-gradient(135deg,var(--grape),#6d3ff0);color:#fff}
.fbadge.indie{background:linear-gradient(135deg,var(--mint),#14a37e);color:#fff}
.fbadge.tod{background:linear-gradient(135deg,var(--sun),var(--sun-d));color:#5c430a}
.card h3{margin:0;font-size:27px}
.card h3 a{color:var(--ink);text-decoration:none}
.card h3 a:hover{color:var(--sky-d)}
.facts{display:flex;flex-wrap:wrap;gap:8px 22px;list-style:none;padding:0;margin:0;font-size:15px;color:var(--muted);font-weight:600}
.facts li{display:inline-flex;align-items:center;gap:8px}
.attrchips{display:flex;flex-wrap:wrap;gap:8px}
.achip{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:800;background:var(--sky-l);color:#1d6fa8;padding:8px 15px;border-radius:999px}
.pricepills{display:flex;flex-wrap:wrap;gap:8px}
.ppill{font-size:14.5px;font-weight:800;background:#e7f9f1;color:#0e7a55;padding:8px 16px;border-radius:999px;border:2px dashed #9fe3c6}
.partybox{background:linear-gradient(135deg,#fff8e1,#ffecb3);border:3px solid var(--sun);border-radius:18px;padding:16px 20px}
.partybox b{font:800 19px "Baloo 2",sans-serif;color:#7a5b00;display:block}
.partybox .pprice{font:800 24px "Baloo 2",sans-serif;color:var(--coral-d)}
.partybox small{display:block;color:#8a6d1a;font-weight:700}
.card .foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:4px;flex-wrap:wrap}
.visit{font:800 16px "Baloo 2",sans-serif;color:#fff;background:linear-gradient(135deg,var(--sky),var(--sky-d));padding:12px 26px;border-radius:999px;text-decoration:none;box-shadow:0 6px 16px rgba(53,182,242,.4);transition:transform .25s var(--spring)}
.visit:hover{transform:scale(1.06) rotate(-1deg)}
.details{font:800 16px "Baloo 2",sans-serif;color:var(--coral-d);text-decoration:none}
.details:hover{text-decoration:underline}
/* park detail */
.phero{position:relative;border-radius:32px;overflow:hidden;margin:20px 0 28px;min-height:300px;display:flex;align-items:flex-end;color:#fff;box-shadow:var(--shadow)}
.phero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,40,70,.05) 0%,rgba(20,40,70,.55) 62%,rgba(20,40,70,.88) 100%);pointer-events:none}
.phero .ptext{position:relative;z-index:1;padding:36px 36px 30px}
.phero h1{color:#fff;text-shadow:0 3px 12px rgba(0,0,0,.4)}
.pgrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:26px;align-items:start}
.box{background:var(--paper);border-radius:var(--r);padding:26px;box-shadow:var(--shadow)}
.box h2{margin-top:0}
.side{position:sticky;top:88px;display:grid;gap:16px}
.side .btn{width:100%;text-align:center}
.btn{font:800 20px "Baloo 2",sans-serif;padding:15px 30px;border:0;border-radius:999px;background:linear-gradient(135deg,var(--coral),var(--coral-d));color:#fff;cursor:pointer;text-decoration:none;display:inline-block;box-shadow:0 8px 22px rgba(255,107,94,.45);transition:transform .25s var(--spring)}
.btn:hover{transform:scale(1.05) rotate(-1deg)}
dl.facts2{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:18px 26px;margin:0}
dl.facts2 dt{font-size:12.5px;color:var(--muted);margin-bottom:3px;text-transform:uppercase;letter-spacing:.06em;font-weight:800}
dl.facts2 dd{margin:0;font-weight:800;font-size:16.5px}
.pricerow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-bottom:2px dashed var(--line);font-weight:700}
.pricerow:last-child{border-bottom:0}
.pricerow .plabel{font-size:16.5px}
.pricerow .pdetail{display:block;font-size:13.5px;color:var(--muted);font-weight:600}
.src{font-size:12.5px;font-weight:800;color:var(--sky-d);text-decoration:none;white-space:nowrap;background:var(--sky-l);padding:6px 12px;border-radius:999px}
.src:hover{background:var(--sky);color:#fff}
.ppartycard{background:linear-gradient(135deg,#fff8e1,#ffecb3);border:3px solid var(--sun);border-radius:20px;padding:20px 24px;margin:0 0 14px}
.ppartycard b{font:800 21px "Baloo 2",sans-serif;color:#7a5b00}
.ppartycard .pprice{font:800 26px "Baloo 2",sans-serif;color:var(--coral-d);display:block;margin-top:4px}
/* faq */
.faqacc{margin:10px 0 0;display:grid;gap:12px}
.faqacc details{background:var(--paper);border:3px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden;transition:border-color .2s}
.faqacc details[open]{border-color:var(--sun)}
.faqacc summary{cursor:pointer;list-style:none;padding:18px 22px;font-weight:800;font-size:17px;display:flex;align-items:center;gap:12px;font-family:"Baloo 2",sans-serif}
.faqacc summary::-webkit-details-marker{display:none}
.faqacc summary::after{content:"+";margin-left:auto;font:800 28px "Baloo 2",sans-serif;color:var(--coral);flex:none;line-height:1;background:var(--sky-l);width:38px;height:38px;border-radius:50%;display:grid;place-items:center}
.faqacc details[open] summary::after{content:"−";background:var(--sun);color:#5c430a}
.faqacc .abody{padding:0 22px 20px;color:var(--muted);font-weight:600}
/* misc */
.linklist{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 20px}
.linklist a{text-decoration:none;font-weight:700}.linklist a:hover{text-decoration:underline}
.ad{margin:30px 0}
.cityfilter{font:700 16px "Nunito",sans-serif;padding:15px 22px;border:3px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);width:100%;max-width:440px;margin-top:18px;box-shadow:var(--shadow)}
.cityfilter:focus{border-color:var(--sky);outline:none}
.count{font-size:15px;color:var(--muted);margin:18px 0 4px;font-weight:700}
.empty{padding:40px;text-align:center;background:var(--paper);border-radius:var(--r);border:3px dashed var(--line);color:var(--muted);font-weight:700}
.how{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin-top:22px}
.how div{background:var(--paper);border-radius:var(--r);padding:24px;box-shadow:var(--shadow);text-align:center;transition:transform .3s var(--spring)}
.how div:hover{transform:translateY(-6px) rotate(.6deg)}
.how .step{font-size:40px;display:block;margin-bottom:8px}
.how b{font:800 21px "Baloo 2",sans-serif;display:block;margin-bottom:6px}
.how p{margin:0;font-size:15px;color:var(--muted);font-weight:600}
.brandstrip{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.brandstrip span{background:#fff;border:3px solid var(--line);font-weight:800;font-size:14.5px;padding:9px 20px;border-radius:999px;box-shadow:var(--shadow)}
.statehero{position:relative;border-radius:32px;overflow:hidden;margin:0 0 10px;min-height:330px;display:flex;align-items:flex-end;color:#fff;box-shadow:var(--shadow)}
.statehero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.statehero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,40,70,.08) 0%,rgba(20,40,70,.55) 60%,rgba(20,40,70,.88) 100%);pointer-events:none}
.statehero .stext{position:relative;z-index:1;padding:38px 36px 32px;max-width:800px}
.statehero h1{color:#fff;text-shadow:0 3px 12px rgba(0,0,0,.4)}
.statehero .lede{color:#eaf3fb;font-weight:700}
.credits{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px;margin:18px 0}
.credit{background:var(--paper);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);font-size:14px;color:var(--muted);font-weight:600}
.credit img{width:100%;height:150px;object-fit:cover;display:block}
.credit div{padding:14px 16px}.credit b{color:var(--ink)}
footer{margin-top:70px;padding:34px 0 50px;border-top:4px solid var(--sun);font-size:14px;color:var(--muted);background:#fff;font-weight:600}
footer .flinks{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px}
footer a{color:var(--sky-d);font-weight:800;text-decoration:none}
footer a:hover{text-decoration:underline}
@media (max-width:900px){.pgrid{grid-template-columns:1fr}.side{position:static}.card{grid-template-columns:1fr}.pthumb{min-height:190px;position:relative}.hero{padding:52px 22px 48px}}
@media (max-width:640px){.wrap{padding:0 16px}.hero{margin:0 -16px;border-radius:0 0 32px 32px}.card .b{padding:20px}.bball.b1{width:44px;height:44px}.bball.b2,.bball.b3{display:none}}
@media (prefers-reduced-motion:reduce){.cloud,.bball{animation:none!important}.card,.citygrid a,.how div{transition:none!important}}
