:root{--ink:#182b3d;--blue:#0758a8;--ice:#eef5f8;--line:#d8e2e8;--accent:#56c0bb;--dark:#142c42}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:86px}body{margin:0;color:var(--ink);font-family:"Noto Sans JP","Yu Gothic",sans-serif;line-height:1.75;background:#fff;padding-bottom:80px}img{max-width:100%}a{color:var(--blue)}.site-header{position:sticky;top:0;z-index:35;display:flex;justify-content:space-between;align-items:center;min-height:74px;gap:16px;padding:13px max(4vw,24px);background:#fff;box-shadow:0 2px 12px #112e4010}.brand{display:flex;flex-direction:column;color:var(--ink);text-decoration:none;line-height:1;flex-shrink:0}.brand span{font:600 .64rem sans-serif;letter-spacing:.15em}.brand strong{font:700 1.22rem Georgia,serif}.site-header nav{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(14px,3vw,42px)}.site-header nav a{color:var(--ink);text-decoration:none;font-size:.86rem;white-space:nowrap}.site-header nav a:hover,.site-header nav a:focus-visible{color:var(--blue);text-decoration:underline;text-underline-offset:4px}.hero{height:min(690px,70vw);min-height:460px;position:relative;overflow:hidden;background:#173b5a}.hero-video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center 54%;background:#173b5a}.hero-copy{position:absolute;left:max(8vw,32px);top:50%;transform:translateY(-50%);width:min(590px,78vw);color:#fff}.eyebrow{font-size:.76rem;font-weight:700;letter-spacing:.16em;color:#338d9b;margin:0 0 9px}.hero .eyebrow{color:#b8e5e4}.hero-copy h1,.hero-copy p{text-shadow:0 2px 10px rgba(0,0,0,.72),0 1px 2px rgba(0,0,0,.9)}.hero h1{font:700 clamp(3.5rem,8vw,6.3rem)/.96 Georgia,serif;margin:12px 0 20px;letter-spacing:-.04em}.hero .lead{font-size:clamp(1rem,1.8vw,1.22rem);font-weight:600}.hero-date{font-size:.87rem;margin-top:17px}.hero-date span{font-size:.76rem;color:#dce9ee}.hero-cta{display:inline-flex;gap:18px;align-items:center;background:var(--accent);color:#073449;text-decoration:none;font-weight:700;padding:10px 18px;margin-top:13px}.hero-cta:hover{background:#a1e1dc}.video-toggle{position:absolute;top:clamp(12px,2vw,24px);right:max(2vw,14px);bottom:auto;display:flex;align-items:center;justify-content:center;width:40px;height:40px;color:#fff;background:#091d32af;border:1px solid #ffffff8a;border-radius:50%;padding:0;cursor:pointer;font-size:1.1rem;line-height:1;backdrop-filter:blur(6px)}.video-toggle:hover{background:#091d32ea}.video-toggle[hidden]{display:none}.venue-strip{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 35px;background:var(--dark);padding:15px 5vw;color:#fff;font-size:.86rem}.venue-strip strong{color:#9de1d8;margin-right:10px}.section{padding:78px max(7vw,28px)}.section-heading{text-align:center;max-width:830px;margin:0 auto 38px}.section-heading h2{font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.32;margin:8px 0 11px}.section-heading>p:last-child{color:#526374;margin:.4rem 0}.access-section{background:#f7fafb}.access-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:24px;max-width:1120px;margin:auto}.access-facts,.access-note{background:#fff;border:1px solid var(--line);padding:28px}.access-icon{font-size:1.6rem}.access-route{font-size:1.13rem}.access-facts p,.access-note p{margin:.4em 0 1em}.access-note{background:#eaf3f7}.access-note>strong{color:var(--blue)}.muted,.quiet{font-size:.84rem;color:#566676}.text-link{display:inline-flex;gap:7px;align-items:center;font-weight:700;text-decoration:underline;text-underline-offset:4px}.activities-section{max-width:1340px;margin:auto}.activity-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-width:1120px;margin:0 auto 24px;background:#fff;border:1px solid var(--line);overflow:hidden}.activity-media{position:relative;min-height:300px;background:#deebf0}.activity-media img{width:100%;height:100%;display:block;object-fit:cover}.activity-body{padding:clamp(22px,3.6vw,44px)}.activity-body h3,.park-body h3{font-size:clamp(1.32rem,2.4vw,1.72rem);line-height:1.4;margin:6px 0 15px}.activity-body p{font-size:.93rem}.activity-details{margin:23px 0 0;border-top:1px solid #cbdce4}.activity-details>div{display:grid;grid-template-columns:128px minmax(0,1fr);gap:12px;border-bottom:1px solid #d1e0e7;padding:11px 0;font-size:.91rem}.activity-details dt{color:#526374;font-weight:700}.activity-details dd{margin:0;font-weight:700}.activity-details small{display:block;font-size:.76rem;color:#526374;font-weight:400}.photo-label,.season-tag{display:inline-block;background:var(--blue);color:#fff;padding:6px 13px;line-height:1.3;font-size:.74rem;font-weight:700;letter-spacing:.06em}.photo-label{position:absolute;left:16px;bottom:16px}.small-note{font-size:.82rem!important;color:#586776;line-height:1.7}.park-section{background:var(--ice)}.park-section .section-heading .quiet{display:inline}.park-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-width:1120px;margin:0 auto 22px;background:#fff;overflow:hidden;border:1px solid var(--line)}.park-media{min-height:280px;background:#dfebf1}.park-media img{display:block;height:100%;width:100%;object-fit:cover}.park-body{padding:clamp(20px,3.5vw,42px)}.park-body p{font-size:.9rem}.season-tag{background:#e982ae;margin-bottom:6px}.price-section{max-width:1340px;margin:auto}.price-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;max-width:1120px;margin:auto}.price-card{background:#fff;border:1px solid var(--line);padding:25px;min-width:0}.price-card h3{font-size:1.2rem;margin:0 0 18px;border-left:4px solid var(--accent);padding-left:13px}.price-card table{width:100%;border-collapse:collapse;font-size:.88rem}.price-card th,.price-card td{padding:11px 0;border-bottom:1px solid #dbe6eb;text-align:left;vertical-align:top}.price-card th{font-weight:500;line-height:1.5}.price-card td{text-align:right;font-weight:700;white-space:nowrap;padding-left:12px}.price-card .small-note{margin:17px 0 0}.price-card.parking-card{background:#f5f9fb}.parking-card p{font-size:.9rem}.price-footnote{max-width:1120px;margin:19px auto 0;font-size:.81rem;color:#526374}.booking-section{background:var(--dark);color:#fff;padding:78px max(7vw,28px)}.booking-section .eyebrow{color:#9de1d8}.booking-section .section-heading>p:last-child{color:#dae4e9}.booking-panel{max-width:1120px;margin:auto;min-height:150px;background:#fff;color:var(--ink);padding:clamp(14px,3vw,28px);overflow:hidden;border-radius:3px}.booking-panel noscript{padding:20px;display:block}.closing-info{max-width:1100px;margin:auto;font-size:.89rem}.closing-info .section-heading{margin-bottom:20px}.closing-info p{color:#526374}.floating-booking{position:fixed;z-index:40;right:clamp(14px,3vw,36px);bottom:calc(17px + env(safe-area-inset-bottom,0px));padding:11px 19px;display:inline-flex;justify-content:center;align-items:center;min-height:49px;background:var(--blue);color:#fff;text-decoration:none;border-radius:999px;box-shadow:0 6px 25px #071f3b55;font-size:.92rem;font-weight:700}.floating-booking:hover{background:#03437d}.floating-booking:focus-visible,.video-toggle:focus-visible,.hero-cta:focus-visible{outline:3px solid var(--accent);outline-offset:4px}footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 20px;background:var(--dark);color:#fff;padding:25px max(7vw,28px);font-size:.83rem}footer a{color:#b9e7e3}
@media(max-width:760px){html{scroll-padding-top:120px}body{padding-bottom:82px}.site-header{min-height:66px;flex-wrap:wrap;padding:11px 17px;gap:9px}.site-header nav{order:3;justify-content:space-around;gap:7px 13px;width:100%}.site-header nav a{font-size:.79rem}.hero{height:580px;min-height:0}.hero-video{object-position:67% center}.hero-copy{left:7vw;right:6vw;width:auto}.hero h1{font-size:clamp(3.15rem,12vw,5rem)}.hero-date{font-size:.8rem}.video-toggle{right:12px;top:12px;bottom:auto;width:36px;height:36px}.venue-strip{padding:15px 6vw}.venue-strip span{width:100%}.section,.booking-section{padding:54px 6vw}.section-heading{margin-bottom:26px}.access-grid,.price-layout{grid-template-columns:1fr}.access-facts,.access-note{padding:21px}.activity-row,.park-row{grid-template-columns:minmax(0,1fr)}.activity-media,.park-media{min-height:0;display:block}.activity-media img,.park-media img{width:100%;height:auto;object-fit:contain;aspect-ratio:auto;max-height:none}.activity-body,.park-body{padding:22px}.activity-details>div{grid-template-columns:96px minmax(0,1fr);gap:7px}.price-card{padding:21px}footer{padding:24px 6vw}.floating-booking{right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px))}}
@media(max-width:390px){.site-header nav{gap:5px 8px}.site-header nav a{font-size:.73rem}.activity-body,.park-body{padding:17px}.price-card th,.price-card td{font-size:.8rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-video{display:none}.floating-booking{transition:none}}

/* V3: keep the full video frame clear and place all campaign copy in document flow below it. */
.hero{height:auto;min-height:0;aspect-ratio:16/9;position:relative;overflow:hidden;background:#173b5a}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;background:#173b5a}
.hero-intro{background:#f2f7f8}
.hero-intro .hero-copy{position:static;left:auto;top:auto;transform:none;width:min(1120px,100%);margin:0 auto;padding:clamp(38px,5vw,68px) max(6vw,24px) clamp(42px,5vw,68px);text-align:center;color:var(--ink)}
.hero-intro .eyebrow{color:#338d9b}
.hero-intro .hero-copy h1{font:700 clamp(3rem,6.5vw,5.4rem)/.98 Georgia,serif;color:var(--ink);margin:12px 0 18px;letter-spacing:-.035em;text-shadow:none}
.hero-intro .hero-copy h1 .hero-title-logo{display:block;width:min(100%,520px);height:auto;margin:0 auto}
.hero-intro .hero-copy p{ text-shadow:none }
.hero-intro .lead{font-size:clamp(1.05rem,2vw,1.25rem);font-weight:600;margin:.5em 0}
.hero-intro .hero-date{font-size:.9rem;margin:16px 0 0;color:#425768}
.hero-intro .hero-date span{font-size:.82rem;color:#566b7b}
.hero-intro .hero-cta{margin-top:22px}
@media(max-width:760px){.hero{height:auto;min-height:0;aspect-ratio:16/9}.hero-video{object-position:center}.hero-intro .hero-copy{padding:34px 20px 42px}.hero-intro .hero-copy h1{font-size:clamp(2.6rem,10vw,4.25rem);margin:10px 0 14px}.hero-intro .hero-date{font-size:.82rem}.hero-intro .hero-date span{font-size:.76rem}}

/* Subway guidance: official copy and diagram side by side without card frames. */
.access-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:clamp(28px,4.7vw,70px);align-items:center}
.access-copy{min-width:0}
.access-copy h3{font-size:clamp(1.25rem,2.2vw,1.7rem);font-weight:700;line-height:1.55;letter-spacing:.02em;margin:0 0 23px}
.access-copy p{font-size:.96rem;line-height:1.9;margin:0 0 15px}
.access-copy .text-link{margin-top:13px;font-size:.92rem}
.access-route-figure{margin:0;min-width:0}
.access-map-link{display:block;line-height:0}
.access-map-link img{display:block;width:100%;max-width:600px;height:auto;object-fit:contain}
.access-map-link:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
@media(max-width:760px){.access-grid{grid-template-columns:minmax(0,1fr);gap:28px}.access-copy h3{margin-bottom:17px}.access-route-figure{width:100%;max-width:560px;margin:0 auto}}
@media(max-width:390px){.access-copy .text-link{font-size:.84rem}}

/* Secondary eligibility information below activity price names. */
.price-card .price-condition{display:block;margin-top:4px;font-size:.77rem;line-height:1.55;color:#566676;font-weight:400;white-space:normal}

.organizer-contact{max-width:760px;margin:26px auto 0;padding:20px 24px;background:#f7fafb;border-left:3px solid var(--accent)}
.organizer-contact p{margin:0 0 9px}
.organizer-contact p:last-child{margin-bottom:0}
.organizer-contact .contact-email{overflow-wrap:anywhere}
@media(max-width:760px){.hero-intro .hero-copy h1 .hero-title-logo{width:min(100%,420px)}.organizer-contact{padding:18px 16px}}

/* Hero captions stay in normal flow below the video. */
.hero-notes{padding:10px max(6vw,24px);background:#f7fafb;color:#526374;text-align:right;font-size:.78rem;line-height:1.65;overflow-wrap:anywhere}
.hero-notes p{margin:0}
.hero-notes p+p{margin-top:.2em}
@media(max-width:390px){.hero-notes{padding:9px 18px;font-size:.72rem}}

/* Keep the three visitor notices visually distinct from organizer details. */
.closing-info .visitor-notes{max-width:900px;margin:0 auto}
.closing-info .visitor-notes p{margin:0 0 .8em;line-height:1.8}
.closing-info .visitor-notes p:last-child{margin-bottom:0}


/* Customer-supplied Snow Zone venue map, with a full-resolution PDF zoom path. */
.venue-map-section{background:#f7fafb}
.venue-map-figure{max-width:1120px;margin:0 auto}
.venue-map-link{display:block;max-width:100%;line-height:0;background:#fff;border:1px solid var(--line)}
.venue-map-link img{display:block;width:100%;max-width:100%;height:auto;object-fit:contain}
.venue-map-link:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.venue-map-caption{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin:12px 0 0;color:#526374;font-size:.84rem;line-height:1.65}
.venue-map-caption .text-link{flex-shrink:0}
@media(max-width:760px){.venue-map-caption{flex-direction:column;gap:6px}}
@media(max-width:390px){.venue-map-caption{font-size:.78rem}}
