:root{--ocean:#069fc6;--deep:#064f97;--navy:#07356f;--sky:#eafaff;--pink:#ff4f91;--yellow:#ffd84d;--green:#24b67a;--purple:#7352d9;--ink:#163759;--muted:#5f7891;--white:#fff;--shadow:0 14px 35px rgba(4,66,121,.14);--radius:28px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:ui-rounded,"Arial Rounded MT Bold",Nunito,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:#fff;line-height:1.55}a{color:inherit}.wrap{width:min(1180px,92%);margin:auto}.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;background:#fff;padding:8px 12px;z-index:1000}.top{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-bottom:1px solid #dff3f7}.nav{min-height:84px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;min-width:245px}.brand img{width:245px;max-height:66px;object-fit:contain}.menu{margin-left:auto;display:flex;align-items:center;gap:22px;font-weight:800}.menu a{text-decoration:none}.menu a:not(.btn):hover{color:var(--ocean)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:none;border-radius:999px;padding:13px 20px;background:linear-gradient(135deg,#28c96f,#0ba85a);color:#fff!important;text-decoration:none;font-weight:900;box-shadow:0 8px 20px rgba(11,168,90,.22)}.btn.blue{background:linear-gradient(135deg,#0bbbe1,#0677c7);box-shadow:0 8px 20px rgba(6,119,199,.22)}.btn.pink{background:linear-gradient(135deg,#ff6bab,#f23d83)}.btn.secondary{background:#fff;color:var(--deep)!important;border:2px solid #cdeff6;box-shadow:none}.hero{position:relative;min-height:670px;display:grid;align-items:end;overflow:hidden;background:#0b6ba8}.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,45,83,.88) 0%,rgba(2,62,105,.68) 38%,rgba(1,58,97,.16) 72%),linear-gradient(0deg,rgba(0,63,113,.45),transparent 45%)}.hero-media{position:absolute;inset:0}.hero-media img,.hero-media video{width:100%;height:100%;object-fit:cover;display:block}.hero-content{position:relative;z-index:2;margin:64px 0 68px;padding:34px 38px;color:var(--navy);max-width:760px;background:rgba(255,255,255,.90);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.72);border-radius:32px;box-shadow:0 18px 50px rgba(2,45,83,.22)}.eyebrow,.pill{display:inline-flex;align-items:center;gap:8px;border-radius:999px;background:#e5f8ff;border:1px solid #bfeaf5;padding:8px 14px;font-weight:900;color:#0874a6}.hero h1{font-size:clamp(3rem,7vw,6.2rem);line-height:.9;margin:18px 0 18px;letter-spacing:-.045em;text-shadow:none}.hero h1 .yellow{color:#087fb8}.hero p{font-size:clamp(1.08rem,2vw,1.35rem);max-width:690px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.proof{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.proof span{background:#eaf9ff;color:var(--deep);border:1px solid #cdeff6;padding:7px 12px;border-radius:999px;font-weight:800}.wave{position:relative}.wave:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:34px;background:radial-gradient(32px 24px at 32px 0,#fff 98%,transparent 100%) 0 0/64px 34px repeat-x}.section{padding:78px 0}.section.soft{background:linear-gradient(#f5fdff,#eaf9ff)}.section h2{font-size:clamp(2rem,4vw,3.4rem);line-height:1.03;margin:0 0 12px;color:var(--navy);letter-spacing:-.035em}.lead{font-size:1.14rem;color:var(--muted);max-width:780px;margin:0 0 30px}.center{text-align:center}.center .lead{margin-left:auto;margin-right:auto}.cards2,.cards3,.cards4,.gallery,.extras{display:grid;gap:22px}.cards2{grid-template-columns:repeat(2,1fr)}.cards3{grid-template-columns:repeat(3,1fr)}.cards4{grid-template-columns:repeat(4,1fr)}.card{background:#fff;border:1px solid #dceff5;border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);position:relative;overflow:hidden}.card.fun:before{content:"";position:absolute;width:120px;height:120px;border-radius:50%;background:var(--yellow);opacity:.18;right:-35px;top:-35px}.tag{display:inline-block;border-radius:999px;background:#dff8ff;color:#0874a6;padding:6px 11px;font-weight:900;font-size:.85rem}.card h3{font-size:1.6rem;margin:12px 0 8px;color:var(--navy)}.choice-icon{font-size:2.3rem}.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.price{background:#fff;border:2px solid #d8eff6;border-radius:24px;padding:22px;text-align:center;box-shadow:var(--shadow)}.price:nth-child(2){border-color:#ffc4da;transform:translateY(-6px)}.price .kids{font-weight:900;color:var(--muted)}.price strong{font-size:2.3rem;color:var(--navy);display:block;margin-top:3px}.price .mini{font-size:.85rem;color:var(--muted)}.feature{display:grid;grid-template-columns:1fr 1.15fr;gap:44px;align-items:center}.feature img,.feature video{width:100%;border-radius:32px;box-shadow:var(--shadow);display:block}.gallery{grid-template-columns:repeat(12,1fr);grid-auto-rows:170px}.gallery figure{margin:0;border-radius:22px;overflow:hidden;box-shadow:var(--shadow);position:relative}.gallery figure:nth-child(1){grid-column:span 7;grid-row:span 2}.gallery figure:nth-child(2){grid-column:span 5;grid-row:span 1}.gallery figure:nth-child(3){grid-column:span 5;grid-row:span 1}.gallery figure:nth-child(4){grid-column:span 4;grid-row:span 2}.gallery figure:nth-child(5){grid-column:span 4;grid-row:span 2}.gallery figure:nth-child(6){grid-column:span 4;grid-row:span 2}.gallery img{width:100%;height:100%;object-fit:cover;transition:.3s}.gallery figure:hover img{transform:scale(1.035)}.extras{grid-template-columns:repeat(3,1fr)}.extra-card{background:#fff;border-radius:26px;overflow:hidden;box-shadow:var(--shadow);border:1px solid #e3eff4}.extra-card img{width:100%;height:225px;object-fit:cover}.extra-card .body{padding:20px}.extra-card h3{margin:0 0 5px;color:var(--navy)}.extra-card strong{color:var(--pink);font-size:1.35rem}.mascots{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.mascot{background:white;border-radius:24px;padding:10px;box-shadow:var(--shadow);text-align:center}.mascot img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:17px}.mascot b{display:block;padding:10px 4px 6px}.faq{display:grid;gap:12px;max-width:900px;margin:auto}.faq details{background:#fff;border:1px solid #dceff5;border-radius:18px;padding:18px 20px}.faq summary{cursor:pointer;font-weight:900;color:var(--navy)}.cta{background:linear-gradient(135deg,#087ec1,#04b3cf);border-radius:32px;padding:34px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px;box-shadow:var(--shadow)}.cta h3{font-size:2rem;margin:0 0 6px}.footer{background:#053b72;color:#dff7ff;padding:54px 0 90px;position:relative;overflow:hidden}.footer:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 25%,rgba(255,255,255,.12) 0 7px,transparent 8px),radial-gradient(circle at 80% 45%,rgba(255,255,255,.08) 0 11px,transparent 12px);background-size:130px 130px}.footer-grid{position:relative;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:36px}.footer img{width:290px;max-width:100%;filter:drop-shadow(0 6px 10px rgba(0,0,0,.14))}.footer a{color:#fff}.mobilebar{display:none}.subhero{background:linear-gradient(135deg,#0a8cc2,#07599d);color:#fff;padding:62px 0 50px;position:relative;overflow:hidden}.subhero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 90% 30%,rgba(255,255,255,.15) 0 20px,transparent 21px),radial-gradient(circle at 75% 70%,rgba(255,255,255,.12) 0 10px,transparent 11px);background-size:150px 150px}.subhero .wrap{position:relative;z-index:2}.subhero h1{font-size:clamp(2.7rem,6vw,5rem);line-height:1;margin:8px 0 15px}.tablewrap{overflow-x:auto}.pricing-table{width:100%;border-collapse:separate;border-spacing:0 10px}.pricing-table td,.pricing-table th{padding:16px 18px;background:#fff}.pricing-table th{background:#e8f8fc;color:var(--navy)}.pricing-table tr>*:first-child{border-radius:15px 0 0 15px}.pricing-table tr>*:last-child{border-radius:0 15px 15px 0}.info-list{display:grid;gap:12px}.info-list div{background:#fff;border-radius:17px;padding:15px 17px;border:1px solid #e1eff4}.notice{background:#fff7d6;border:1px solid #ffe079;border-radius:18px;padding:18px}.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:32px}.contact-box{background:#fff;border-radius:28px;padding:28px;box-shadow:var(--shadow)}@media(max-width:900px){.menu a:not(.btn){display:none}.brand{min-width:0}.brand img{width:210px}.hero{min-height:620px}.cards3,.cards4,.price-grid,.extras{grid-template-columns:repeat(2,1fr)}.feature,.contact-grid{grid-template-columns:1fr}.gallery{grid-auto-rows:150px}.mascots{grid-template-columns:repeat(3,1fr)}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}@media(max-width:620px){.nav{min-height:72px}.brand img{width:180px}.menu{gap:8px}.menu .btn{padding:10px 14px}.hero{min-height:690px}.hero-content{margin:42px 0 54px;padding:28px 24px}.hero h1{font-size:3.45rem}.cards2,.cards3,.cards4,.price-grid,.extras,.mascots{grid-template-columns:1fr}.price:nth-child(2){transform:none}.gallery{grid-template-columns:1fr;grid-auto-rows:230px}.gallery figure{grid-column:auto!important;grid-row:auto!important}.cta{flex-direction:column;align-items:flex-start}.footer-grid{grid-template-columns:1fr}.mobilebar{display:block;position:fixed;bottom:0;left:0;right:0;padding:10px;background:rgba(255,255,255,.95);z-index:80;border-top:1px solid #dceff5}.mobilebar .btn{width:100%}.footer{padding-bottom:120px}.section{padding:58px 0}}

.icon-card{display:flex;min-height:345px;flex-direction:column}.service-icon{height:225px;display:grid;place-items:center;font-size:6rem;background:linear-gradient(145deg,#e8fbff,#fff3fa);border-bottom:1px solid #e3eff4}.icon-card:nth-of-type(5) .service-icon{background:linear-gradient(145deg,#fff3fa,#fff8d9)}.icon-card:nth-of-type(6) .service-icon{background:linear-gradient(145deg,#fff8d9,#e8fbff)}


/* V3.2: reservation flow, reviews, map and performance-friendly refinements */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:34px}.step{position:relative;background:#fff;border:1px solid #dceff5;border-radius:28px;padding:28px;box-shadow:var(--shadow);overflow:hidden}.step-number{position:absolute;right:18px;top:14px;font-weight:1000;font-size:3.6rem;line-height:1;color:rgba(6,159,198,.10)}.step-icon{font-size:2.4rem;margin-bottom:10px}.step h3{margin:0 0 8px;color:var(--navy);font-size:1.35rem}.step p{margin:0;color:var(--muted)}.step-cta{margin-top:26px}
.reviews-section{background:#fff}.reviews-panel{display:grid;grid-template-columns:.7fr 1.3fr;gap:34px;align-items:center;background:linear-gradient(135deg,#eefbff,#fff7fb);border:1px solid #d8eff6;border-radius:32px;padding:36px;box-shadow:var(--shadow)}.rating-block{text-align:center;padding:24px;border-radius:26px;background:#fff;border:1px solid #dceff5}.stars{font-size:2rem;letter-spacing:.08em;color:#f7b500}.rating-block strong{display:block;font-size:3rem;line-height:1;color:var(--navy);margin:8px 0}.rating-block span{color:var(--muted);font-weight:800}.reviews-copy h2{margin-top:10px}.review-actions{display:flex;gap:12px;flex-wrap:wrap}.rating-note{font-size:.82rem;color:var(--muted);margin:16px 0 0}.footer-hours{max-width:360px;color:#bfeaf5;font-size:.92rem}.time-extra{margin:18px 0}.extras-note{margin:22px auto 0;color:var(--muted)}
.directions{margin-left:10px}.map-card{margin-top:32px;background:#fff;border-radius:28px;box-shadow:var(--shadow);overflow:hidden;display:grid;grid-template-columns:.75fr 1.25fr;border:1px solid #dceff5}.map-copy{padding:30px}.map-copy h2{font-size:2rem;margin:10px 0 8px}.map-card iframe{width:100%;min-height:360px;border:0;display:block}
@media(max-width:900px){.steps{grid-template-columns:1fr}.reviews-panel,.map-card{grid-template-columns:1fr}.rating-block{max-width:420px;width:100%;margin:auto}.map-card iframe{min-height:320px}}
@media(max-width:620px){.reviews-panel{padding:24px}.directions{margin:10px 0 0;width:100%}.contact-box>.btn{width:100%}.review-actions .btn{width:100%}.steps{gap:16px}}

/* V3.2.1: preserve native image proportions everywhere.
   Width/height attributes remain in HTML to reserve layout space, while CSS
   prevents those intrinsic dimensions from stretching responsive images. */
img{max-width:100%;height:auto}
.feature img{height:auto;object-fit:contain}
.contact-box img{height:auto;object-fit:contain}
.footer img{height:auto}
.hero-media img{height:100%;object-fit:cover}
.gallery img{height:100%;object-fit:cover}
.extra-card img{height:225px;object-fit:cover}
.mascot img{height:auto;aspect-ratio:3/4;object-fit:cover}


/* V3.3: facilities page and stronger internal linking */
.menu{gap:18px}.facility-feature img{aspect-ratio:16/9;object-fit:cover}.facilities-teaser{background:#fff}.facility-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:34px}.facility-card{background:#fff;border:1px solid #dceff5;border-radius:26px;overflow:hidden;box-shadow:var(--shadow)}.facility-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.facility-card .body{padding:20px}.facility-card h3{margin:0 0 6px;color:var(--navy);font-size:1.35rem}.facility-card p{margin:0;color:var(--muted)}
@media(max-width:1050px){.menu{gap:13px}.menu a:not(.btn){font-size:.92rem}.brand img{width:225px}.brand{min-width:225px}}
@media(max-width:900px){.facility-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.facility-grid{grid-template-columns:1fr}.facility-feature img{aspect-ratio:auto;object-fit:contain}}
