.season-special{padding:90px max(24px,calc((100vw - 1280px)/2));color:white;background:radial-gradient(ellipse at 90% 0,#3384ff99,transparent 60%),linear-gradient(135deg,#092d67,#0756ce);position:relative;overflow:hidden}
.season-special:before{content:"";position:absolute;pointer-events:none;width:800px;height:800px;border:1px solid #ffffff18;border-radius:50%;top:-520px;right:-100px;box-shadow:0 0 0 90px #ffffff04,0 0 0 180px #ffffff03}
.season-intro{display:flex;justify-content:space-between;gap:40px;align-items:end;position:relative;margin-bottom:38px}.season-intro h2{font-size:clamp(36px,4.5vw,62px);line-height:1.05;letter-spacing:-.04em;margin:18px 0 0;color:white}.season-intro>p{max-width:350px;line-height:1.7;font-size:16px;color:#d5e7ff}
.season-grid,.camp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;position:relative}
.season-card{padding:30px;background:linear-gradient(130deg,#ffffff20,#ffffff09);border:1px solid #ffffff50;border-radius:25px;display:flex;flex-direction:column;align-items:start;min-width:0}
.season-saving{font-size:13px;background:#d5eeff;color:#06419c;padding:7px 12px;border-radius:999px;font-weight:700}.season-card h3{font-size:26px;line-height:1.2;margin:24px 0 8px;letter-spacing:-.025em;color:white}.season-card>p{font-size:14px;color:#dcecff;margin:0 0 24px;line-height:1.6}.season-price{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:auto 0 28px}.season-price del{color:#bdd5f6;font-size:18px}.season-price strong{font-size:50px;line-height:1;letter-spacing:-.04em}.season-card .button{width:100%;justify-content:space-between;gap:10px;white-space:normal;text-align:start;padding:15px 20px;min-height:54px;border-radius:999px;font-size:14px}.season-note{font-size:13px;color:#d2e4fc;line-height:1.6;max-width:800px;margin:24px 0 0}
.season-banner,.family-holiday{margin:0;padding:44px max(24px,calc((100vw - 1280px)/2));display:flex;align-items:center;justify-content:space-between;gap:32px;background:linear-gradient(110deg,#073b85,#0966e8);color:white}.season-banner h3,.family-holiday h3{font-size:clamp(27px,3vw,38px);line-height:1.15;margin:12px 0;color:inherit}.season-banner p,.family-holiday p{font-size:15px;line-height:1.6;max-width:650px;color:inherit}.season-banner .button,.family-holiday .button{flex-shrink:0;border-radius:999px;text-align:start;white-space:normal;max-width:360px;gap:15px}
.family-holiday{background:linear-gradient(120deg,#ebf5ff,#d0e7ff);color:#0c366c;border-block:1px solid #b9d4f2}.family-holiday .eyebrow{color:#075af0}
.sport-offers--camp{display:block;padding-block:85px;background:radial-gradient(ellipse at 0 0,#2372d588,transparent 65%),#082d67}.camp-heading{max-width:760px;margin-bottom:35px}.camp-heading h2{margin:18px 0}.camp-heading p{margin-top:18px}.camp-card{padding:30px;border:1px solid #ffffff40;border-radius:25px;background:#ffffff0b;display:flex;flex-direction:column;min-width:0}.camp-card h3{font-size:56px;line-height:1;letter-spacing:-.04em;margin:26px 0}.camp-card h3 span{font-size:19px;letter-spacing:0}.camp-card .camp-price{margin:0 0 30px;display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;line-height:1.3}.camp-price strong{font-size:32px;color:white}.camp-price span{font-size:14px}.camp-card .button{margin-top:auto;border-radius:999px;font-size:14px;gap:12px;white-space:normal;justify-content:space-between;padding:16px 20px}.camp-inclusions{margin-top:32px;padding-top:25px;border-top:1px solid #ffffff30;font-size:14px;line-height:1.7;color:#daeaff}.camp-inclusions p{margin:0 0 10px;max-width:none}.camp-inclusions ul{display:flex;gap:12px 38px;flex-wrap:wrap;list-style:none;padding:0}.camp-inclusions li:before{content:"✓";color:#8ad6ff;margin-inline-end:10px}
.booking-grid--request{grid-template-columns:minmax(0,650px);justify-content:start}.request-package .booking-package__top .category-icon{width:40px;height:40px;margin-bottom:25px}.request-package__body{padding:28px 32px;line-height:1.75}.request-package__body p+p{margin-top:14px}.request-package .booking-package__bottom{margin-top:auto}
.season-card .button>span,.camp-card .button>span,.season-banner .button>span,.family-holiday .button>span{flex:1;text-align:start}
@media(min-width:1001px){.booking-dock .booking-categories{grid-template-columns:repeat(8,minmax(0,1fr))}.booking-panel[data-booking-panel="duo"] .booking-panel__intro,.booking-panel[data-booking-panel="weekday"] .booking-panel__intro{grid-template-columns:1fr 1fr}}
@media(min-width:1101px){.v2-experience-links{grid-template-columns:repeat(4,minmax(0,1fr))}.v2-experience-links .v2-mega-link strong{font-size:19px}}
@media(max-width:900px){.season-special,.sport-offers--camp{padding-block:58px}.season-intro{display:block}.season-intro>p{margin-top:22px;max-width:600px}.season-grid,.camp-grid{gap:14px}.season-card,.camp-card{padding:23px}.season-card h3{font-size:23px}.season-card .button,.camp-card .button{padding:13px 16px}.season-banner,.family-holiday{align-items:start;flex-direction:column;gap:20px}}
@media(max-width:650px){.season-grid,.camp-grid{grid-template-columns:1fr}.season-card,.camp-card{padding:27px}.season-price{margin:8px 0 25px}.season-card h3{font-size:27px}.camp-card h3{font-size:52px}.season-intro h2{font-size:38px}.season-card .button,.camp-card .button{font-size:15px}.season-banner .button,.family-holiday .button{max-width:100%;font-size:14px}.camp-inclusions ul{display:block}.camp-inclusions li{margin-top:10px}.request-package__body{padding:24px}}
/* Campaign overview: each promotion owns one expandable tile. */
.sport-promotions{padding-block:100px;background:radial-gradient(ellipse at 75% 20%,#175fb5 0,transparent 60%),#072857}
.sport-promotions>.camp-heading{max-width:820px;margin-bottom:42px}.sport-promotions>.camp-heading h2{font-size:clamp(38px,4.5vw,64px);letter-spacing:-.04em;line-height:1.06}.sport-promotions>.camp-heading p{max-width:620px;color:#d5e7ff}
.promotion-grid{display:grid;gap:28px}.promotion-card{min-width:0;border:1px solid #9fc7ff66;border-radius:32px;background:#0a326e;overflow:clip;box-shadow:0 25px 60px #031a3e35}
.promotion-summary{position:relative;display:block;list-style:none;cursor:pointer;isolation:isolate;background:radial-gradient(ellipse at 80% 30%,#3687ee99,transparent 60%),linear-gradient(130deg,#064bb7,#052e72);padding:48px;min-height:550px;color:white}.promotion-summary::-webkit-details-marker{display:none}.promotion-summary::marker{content:""}.promotion-summary:focus-visible{outline:3px solid #b7edff;outline-offset:-6px;border-radius:30px}.promotion-summary:hover .promotion-cta{background:#d7f1ff;transform:translateY(-3px)}
.promotion-copy{position:relative;width:59%;z-index:2;pointer-events:none}.promotion-badge{display:inline-flex;border:1px solid #b6e1ff88;padding:8px 14px;border-radius:999px;font-size:12px;letter-spacing:.09em;text-transform:uppercase;font-weight:600;background:#072d7480}
.promotion-copy h3{font-size:clamp(56px,6.5vw,88px);line-height:.96;letter-spacing:-.05em;margin:27px 0 19px;color:#fff}.promotion-copy h3 em{font-style:normal;color:#bdeaff;display:block}.promotion-lead{font-size:20px!important;line-height:1.5!important;max-width:400px!important;margin:0 0 28px!important;color:#e4f1ff}
.promotion-rates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:560px;padding:20px 0;border-block:1px solid #ffffff36}.promotion-rates>div{display:flex;flex-direction:column;gap:8px;min-width:0}.promotion-rates>div+div{border-inline-start:1px solid #ffffff36;padding-inline-start:18px}.promotion-rates span{font-size:12px;color:#d3e8ff}.promotion-rates strong{font-size:29px;line-height:1.2;font-family:Outfit,sans-serif;letter-spacing:-.03em}.promotion-rates small{font-size:13px;font-weight:400;letter-spacing:0;margin-inline-start:4px}.promotion-rates .rate-request{font-size:22px;letter-spacing:-.02em}.promotion-perks{font-size:13px!important;line-height:1.65!important;color:#d3e8ff!important;margin:18px 0 24px!important;max-width:470px!important}
.promotion-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:16px 24px;background:#fff;color:#0644a2;border-radius:999px;font-size:15px;font-weight:600;transition:transform .25s,background .25s;max-width:100%;text-align:start}.promotion-cta svg{width:22px;height:22px;flex-shrink:0;transition:transform .3s}.when-open{display:none}.promotion-card[open] .when-open{display:inline}.promotion-card[open] .when-closed{display:none}.promotion-card[open] .promotion-cta svg{transform:rotate(45deg)}
.promotion-art{position:absolute;inset:0 0 0 53%;z-index:1;pointer-events:none}.promotion-art img{position:absolute;width:100%;height:96%;object-fit:contain;right:-1%;top:1%;transform:rotate(-12deg);filter:drop-shadow(12px 22px 22px #021e5b55);transition:transform .7s cubic-bezier(.2,.7,.2,1)}.promotion-summary:hover .promotion-art img{transform:translateY(-10px) rotate(-9deg)}.promotion-orbit{position:absolute;width:95%;aspect-ratio:1;top:15%;left:8%;border:1px solid #bbebff55;border-radius:50%;box-shadow:0 0 0 40px #bbebff08,0 0 0 80px #bbebff05}.promotion-year{position:absolute;right:6%;bottom:8%;font-family:Outfit,sans-serif;font-size:clamp(100px,14vw,190px);font-weight:800;line-height:1;color:#ffffff0b;letter-spacing:-.06em}
.promotion-details{padding:38px 40px 32px;background:linear-gradient(130deg,#092c61,#0a3979);border-top:1px solid #9fc7ff50}.promotion-card[open] .promotion-details{animation:campaign-reveal .35s ease both}.promotion-details-head h3{font-size:clamp(26px,3vw,38px);line-height:1.2;margin:14px 0}.promotion-details-head p{margin-bottom:28px;font-size:15px}.promotion-details .camp-card{padding:24px;background:#ffffff09}.promotion-details .camp-card h3{font-size:48px}.promotion-details .camp-price strong{font-size:27px}.promotion-details .camp-card .button{font-size:13px;padding:15px}.promotion-details .camp-inclusions{margin-top:26px}
@keyframes campaign-reveal{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
/* Christmas: original cutout, airy motion and readable foreground offers. */
.season-special--flight{background:radial-gradient(ellipse at 72% 20%,#3179d9 0,transparent 55%),linear-gradient(150deg,#062d68,#0749ac 65%,#0756ce);padding-top:76px;isolation:isolate}.season-special--flight:before{top:-260px;right:-140px;opacity:.7}.season-intro--flight{display:block;min-height:390px;margin-bottom:20px;isolation:isolate}.season-intro-copy{position:relative;width:52%;padding-top:22px;z-index:2}.season-intro-copy h2{font-size:clamp(40px,4.8vw,66px);max-width:610px;text-wrap:balance}.season-intro-copy>p{font-size:16px;line-height:1.7;max-width:390px;color:#d5e7ff;margin-top:24px}.season-flight{position:absolute;inset:-20px -30px -40px 46%;pointer-events:none;z-index:1}.season-santa{width:115%;max-width:none;height:auto;position:absolute;top:22%;left:-6%;transform:translate3d(0,var(--santa-y,0px),0) rotate(var(--santa-rotate,-5deg));filter:drop-shadow(0 20px 25px #00205333);will-change:transform}.season-orbit{width:78%;aspect-ratio:1;position:absolute;left:12%;top:-8%;border:1px solid #dcecff26;border-radius:50%;box-shadow:0 0 0 35px #dcecff04,0 0 0 90px #dcecff03}.season-special--flight .season-grid{z-index:3}.season-special--flight .season-card{background:linear-gradient(135deg,#104faaa8,#092f7999);border-color:#a2cbff66;box-shadow:0 12px 28px #03245222;backdrop-filter:blur(9px)}.season-special--flight .season-saving{background:#f6e6c8;color:#533714}.season-special--flight .season-note{position:relative;z-index:3}
.season-particles{position:absolute;inset:0;overflow:visible}.season-particles i{position:absolute;left:calc(6% + var(--i)*6.3%);bottom:5%;height:65px;width:1px;background:linear-gradient(transparent,#d7f3ff99,transparent);opacity:0;animation:season-wind 4s linear infinite;animation-delay:calc(var(--i)*-.43s);animation-play-state:paused}.season-particles i:nth-child(3n){height:4px;width:4px;border-radius:50%;background:#d7f3ff}
.season-gifts{position:absolute;inset:0}.season-gift{position:absolute;width:30px;height:30px;left:calc(12% + var(--i)*18%);bottom:0;color:#c3e8ff;opacity:0;animation:season-gift-rise 6.5s linear infinite;animation-delay:calc(var(--i)*-1.6s);animation-play-state:paused}.season-gift:nth-child(2n){color:#f1d7a6;width:23px;height:23px}.season-special--flight.is-visible .season-particles i,.season-special--flight.is-visible .season-gift{animation-play-state:running}
@keyframes season-wind{0%{transform:translate3d(0,0,0);opacity:0}18%{opacity:.65}80%{opacity:.25}100%{transform:translate3d(20px,-350px,0);opacity:0}}
@keyframes season-gift-rise{0%{transform:translate3d(0,30px,0) rotate(-14deg) scale(.7);opacity:0}18%{opacity:.7}65%{opacity:.5}100%{transform:translate3d(35px,-350px,0) rotate(22deg) scale(1);opacity:0}}
@media(max-width:1000px){.promotion-summary{padding:32px;min-height:520px}.promotion-copy{width:60%}.promotion-art{left:55%}.promotion-rates{gap:8px}.promotion-rates>div+div{padding-inline-start:10px}.promotion-rates strong{font-size:25px}.promotion-rates .rate-request{font-size:19px}.promotion-details{padding:28px}.promotion-details .camp-grid{grid-template-columns:1fr}.promotion-details .camp-card{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:12px 24px}.promotion-details .camp-card h3{grid-column:1;margin:0}.promotion-details .camp-card>.eyebrow{grid-column:1/-1}.promotion-details .camp-card .camp-price{grid-column:2;grid-row:2;margin:0}.promotion-details .camp-card .button{grid-column:1/-1}.season-intro--flight{min-height:340px}.season-intro-copy{width:55%}.season-flight{inset:0 -30px -30px 48%}.season-santa{top:30%;width:124%}}
@media(max-width:650px){.sport-promotions{padding-block:58px}.sport-promotions>.camp-heading h2{font-size:38px}.sport-promotions>.camp-heading{margin-bottom:28px}.promotion-card{border-radius:25px}.promotion-summary{padding:27px 24px 30px;min-height:0;display:flex;flex-direction:column}.promotion-copy{width:100%;display:contents}.promotion-badge{align-self:start;order:0}.promotion-copy h3{font-size:62px;order:1;margin:24px 0 12px;position:relative;z-index:2}.promotion-copy h3 em{display:inline}.promotion-lead{order:2;font-size:17px!important;margin-bottom:0!important;position:relative;z-index:2;max-width:70%!important}.promotion-art{position:relative;inset:auto;order:3;height:310px;margin:-4px -16px -2px;z-index:1}.promotion-art img{height:110%;width:87%;right:-3%;top:-9%;transform:rotate(-28deg)}.promotion-summary:hover .promotion-art img{transform:translateY(-6px) rotate(-26deg)}.promotion-orbit{width:74%;left:15%;top:4%}.promotion-year{font-size:125px;bottom:5%;right:auto;left:0}.promotion-rates{order:4;position:relative;z-index:2;gap:6px;width:100%;max-width:none}.promotion-rates>div+div{padding-inline-start:10px}.promotion-rates span{font-size:11px}.promotion-rates strong{font-size:26px}.promotion-rates .rate-request{font-size:18px}.promotion-rates small{display:block;margin:3px 0 0;font-size:12px}.promotion-perks{order:5}.promotion-cta{order:6;align-self:start;font-size:14px;padding:15px 20px;pointer-events:none}.promotion-details{padding:26px 18px}.promotion-details .camp-card{display:flex;padding:24px;gap:0;align-items:stretch}.promotion-details .camp-card h3{margin:22px 0}.promotion-details .camp-card .camp-price{margin-bottom:22px}.promotion-details .camp-card .button{font-size:14px}.promotion-details .camp-price strong{font-size:29px}.season-special--flight{padding-top:58px}.season-intro--flight{min-height:0;margin-bottom:8px}.season-intro-copy{width:100%;padding:0}.season-intro-copy h2{font-size:40px;max-width:500px}.season-intro-copy>p{max-width:100%;font-size:15px;margin-top:20px}.season-flight{position:relative;inset:auto;height:245px;margin:5px -18px 5px}.season-santa{width:112%;top:13%;left:-6%}.season-orbit{width:70%;top:-3%;left:18%}.season-gift{width:25px;height:25px}.season-special--flight .season-card{backdrop-filter:none;background:linear-gradient(135deg,#1659b3,#0a3b89)}.season-special--flight .season-grid{gap:18px}}
@media(prefers-reduced-motion:reduce){.promotion-summary:hover .promotion-art img,.promotion-summary:hover .promotion-cta{transform:none}.promotion-details,.season-particles i,.season-gift{animation:none!important}.season-santa{transform:rotate(-5deg)!important;will-change:auto}.promotion-art img,.promotion-cta{transition:none}}
[data-motion="reduce"] .season-particles i,[data-motion="reduce"] .season-gift{animation:none!important}[data-motion="reduce"] .season-santa{transform:rotate(-5deg)!important}
/* Keep the full silhouette inside the campaign and gifts behind the flyer. */
@media(min-width:1001px){.season-flight{inset:-20px 0 -40px 48%}.season-santa{width:100%;left:0;top:19%}}
.season-santa{z-index:2}.season-gifts,.season-particles{z-index:1}
@media(max-width:650px){.season-santa{width:100%;left:0;top:15%}}
@media(max-width:650px){.promotion-art img{width:90%;height:100%;right:5%;top:0;transform:rotate(-12deg)}.promotion-summary:hover .promotion-art img{transform:translateY(-6px) rotate(-10deg)}}
/* A visible campaign year, independent of the flyer layer. */
.promotion-summary>.promotion-year{top:22px;right:30px;bottom:auto;left:auto;font-size:clamp(80px,9vw,126px);color:#ffffff24;z-index:3;pointer-events:none}
.season-saving--best{position:relative;isolation:isolate}.season-saving-hat{position:absolute;width:43px;height:38px;right:-12px;top:-27px;transform:rotate(15deg);pointer-events:none;filter:drop-shadow(0 3px 3px #03245035)}
@media(max-width:650px){.promotion-summary>.promotion-year{top:18px;right:15px;font-size:62px;color:#ffffff25}.season-saving-hat{width:40px;height:35px;top:-25px;right:-11px}}
@media(max-width:650px){.season-santa{filter:none;backface-visibility:hidden;-webkit-backface-visibility:hidden}.season-particles i:nth-child(2n){display:none}.season-gift:nth-child(n+3){display:none}}
