/* Seasonal styling is scoped to the promotion and the Halloween page. */
#halloween-home[hidden],.halloween-page [hidden],.season-booking-note[hidden]{display:none!important}
#halloween-home{position:relative;margin:0;padding:28px 0 30px;background:radial-gradient(ellipse at 12% 15%,#73409d88,transparent 55%),linear-gradient(115deg,#28143c,#4c236c 58%,#2a153e);color:#fff;overflow:hidden}
.halloween-home-content{position:relative}
#halloween-home h2{position:relative;font-size:clamp(24px,3vw,34px);color:#ffb05f;margin:0 0 18px;line-height:1.2}
.halloween-teasers{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.halloween-teaser{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:16px;background:#ffffff0d;border:1px solid #ffffff30;border-radius:15px;padding:12px;transition:transform .2s,background .2s}
.halloween-teaser:hover{transform:translateY(-3px);background:#ffffff1c}
.halloween-teaser img{width:100%;height:130px;object-fit:contain;background:#21142c;border-radius:8px}
.halloween-teaser h3{font-size:17px;line-height:1.35;margin:0 0 8px;color:#fff2e5}
.halloween-teaser strong{color:#ffb05f;font-size:20px}
.halloween-decoration{position:absolute;right:15px;top:-20px;font-size:95px;line-height:1;opacity:.22;pointer-events:none;user-select:none}
.halloween-page{--season-purple:#532879;--season-orange:#ff9b39;background:#f8f3fa}
.halloween-page header{background:var(--paper)}
.halloween-intro{position:relative;overflow:hidden;background:radial-gradient(ellipse at 80% 10%,#76459e66,transparent 60%),linear-gradient(110deg,#261331,#502269);color:#fff;padding:28px 0;border-bottom:3px solid #f29b49}
.halloween-intro .wrap{position:relative}
.halloween-intro .eyebrow{color:#ffc88d;margin:0 0 8px}
.halloween-intro h1{position:relative;font-size:clamp(30px,4vw,50px);line-height:1.16;letter-spacing:-1.3px;max-width:none;margin:8px 0 12px;color:#ffb567}
.halloween-intro p{position:relative;max-width:840px;font-size:16px;color:#f1e9f8;margin:8px 0}
.halloween-intro .button{margin-top:10px;background:#ffb05f;color:#28122e;min-height:45px;padding:10px 19px}
.halloween-intro .halloween-decoration{right:0;top:-20px;font-size:130px;opacity:.17}
.halloween-offers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;padding-top:28px;padding-bottom:20px;align-items:start}
.halloween-offer{min-width:0;background:white;border:1px solid #e0d3e8;border-radius:18px;overflow:hidden;box-shadow:0 5px 20px #32164309;scroll-margin-top:20px}
.halloween-offer>a{display:block;background:#1d1028}
.halloween-offer img{display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:contain}
.halloween-offer>div{padding:20px}
.halloween-offer h2{font-size:clamp(22px,2.1vw,28px);line-height:1.22;letter-spacing:-.6px;margin:8px 0 12px;color:#482265}
.halloween-offer .eyebrow{font-size:13px;color:#704197;margin:0}
.halloween-offer ul{padding-left:20px;line-height:1.65;margin:10px 0}
.halloween-offer li{margin:3px 0}
.halloween-price{font-size:28px;color:#a33c0b;font-weight:800;margin:15px 0 2px!important}
.halloween-offer p{font-size:15px;line-height:1.65;margin:8px 0}
.halloween-offer .button{background:#532879;color:#fff;margin-top:12px;width:100%;justify-content:center;min-height:46px;padding:11px 18px}
.halloween-planning{padding-top:20px;padding-bottom:28px;display:block}
.halloween-picker{background:#fff;border:1px solid #d8c2e6;border-radius:18px;padding:24px;max-width:760px;margin:0 auto;min-width:0}
.halloween-picker h2,.halloween-faq h2{font-size:clamp(24px,2.6vw,32px);line-height:1.22;letter-spacing:-.5px;margin:0 0 16px;color:#482265}
.halloween-picker fieldset{padding:0;border:0;margin:0 0 16px;min-width:0}
.halloween-picker legend{font-weight:700;margin-bottom:4px}
.halloween-option{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #e8dfed;cursor:pointer}
.halloween-option input{width:22px;height:22px;flex:0 0 22px;accent-color:#532879}
.halloween-option span{flex:1;min-width:0}
.halloween-option strong{white-space:nowrap;color:#532879}
.halloween-picker input[type=number]{display:block;width:100%;padding:10px;border:1px solid #bdb4c4;border-radius:8px;margin:7px 0 12px}
.halloween-sum{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:16px;font-weight:700}
.halloween-sum strong{font-size:30px;color:#532879}
.halloween-picker .button{margin-top:8px;background:#532879;color:#fff;width:100%;justify-content:center}
.halloween-picker [aria-disabled=true]{opacity:.55;cursor:not-allowed}
.halloween-picker p{font-size:14px;line-height:1.6;margin:9px 0}
.halloween-faq{padding-top:15px;padding-bottom:32px;max-width:960px}
.halloween-faq details{padding:15px 0;border-bottom:1px solid #dfd0e8}
.halloween-faq summary{font-weight:700;cursor:pointer;color:#482265}
.halloween-faq p{margin:10px 0}
.season-ended{background:#fff0df;color:#442158;border-radius:14px;padding:18px!important;margin-top:16px}
.halloween-intro .season-ended p{color:#442158}
.season-booking-note{border:1px solid #cdb8de;background:#faf4ff;border-radius:12px;padding:13px 16px;margin:14px 0}
.season-booking-note p{font-size:14px;margin:0 0 6px}.season-booking-note a{text-decoration:underline;font-size:14px;color:#532879}
.booking-forms .order-tabs{flex-wrap:wrap}.booking-forms .order-tabs button{flex:1 1 auto}
@media(min-width:950px){.halloween-intro h1{white-space:nowrap}}
@media(max-width:1000px){.halloween-teaser{grid-template-columns:72px 1fr;gap:10px;padding:10px}.halloween-teaser img{height:108px}.halloween-teaser h3{font-size:15px}.halloween-offers{gap:16px}.halloween-offer>div{padding:16px}}
@media(max-width:760px){.halloween-offers{grid-template-columns:1fr;max-width:540px;gap:20px;padding-top:22px}.halloween-offer img{aspect-ratio:auto}.halloween-offer>div{padding:20px}.halloween-offer h2{font-size:26px}.halloween-offer p{font-size:16px}.halloween-intro{padding:24px 0}.halloween-picker{padding:20px}.halloween-option{font-size:15px}.halloween-sum{flex-wrap:wrap}.halloween-decoration{font-size:70px;top:-12px}}
@media(max-width:650px){.halloween-teasers{grid-template-columns:1fr;gap:10px}.halloween-teaser{grid-template-columns:75px 1fr;padding:10px;gap:16px}.halloween-teaser h3{font-size:17px}.halloween-teaser img{height:110px}#halloween-home{padding:23px 0}}
.halloween-spider{position:absolute;right:38px;top:57px;font-size:26px;line-height:1;opacity:.42;pointer-events:none;user-select:none}
.halloween-intro .halloween-spider{right:33px;top:90px;font-size:30px;opacity:.4}
@media(max-width:650px){.halloween-spider{right:22px;top:42px;font-size:20px}.halloween-intro .halloween-spider{right:24px;top:66px;font-size:23px}}
/* Continuous purple page, with compact offer selection. */
.halloween-page{color:#fff4e9;background:radial-gradient(ellipse at 90% 0%,#76459e55,transparent 45%),linear-gradient(110deg,#261331,#502269);min-height:100vh}
.halloween-page header{background:transparent}
.halloween-page header nav a,.halloween-page footer,.halloween-page footer a,.halloween-page footer span{color:#fff4e9}
.halloween-page header nav a:hover,.halloween-page footer a:hover{color:#ffb05f}
.halloween-page .logo{background:transparent;border-radius:0;padding:0}
.halloween-page footer{border-color:#ffffff30;padding-top:25px;padding-bottom:25px}
.halloween-page .halloween-intro{background:transparent;border-bottom:1px solid #ffffff25;padding:22px 0}
.halloween-page .halloween-offers{padding-top:20px;gap:18px}
.halloween-page .halloween-offer{background:#ffffff09;border-color:#ffffff30;box-shadow:none}
.halloween-page .halloween-offer>div{padding:16px}
.halloween-page .halloween-offer h2,.halloween-page .halloween-picker h2{color:#ffb05f}
.halloween-page .halloween-offer .eyebrow{color:#e5c9fa}
.halloween-page .halloween-price,.halloween-page .halloween-option strong,.halloween-page .halloween-sum strong{color:#ffb05f}
.halloween-page .halloween-offer .button,.halloween-page .halloween-picker .button{background:#ffb05f;color:#28122e}
.halloween-page .halloween-planning{padding-top:8px;padding-bottom:28px}
.halloween-page .halloween-picker{background:#ffffff09;border-color:#ffffff30;max-width:680px;padding:20px}
.halloween-page .halloween-picker h2{font-size:26px;margin-bottom:12px}
.halloween-page .halloween-picker legend{font-size:14px;font-weight:500;color:#e5c9fa}
.halloween-page .halloween-option{padding:10px 0;border-color:#ffffff25}
.halloween-page .halloween-option input{accent-color:#ffb05f}
.halloween-page .halloween-picker input[type=number]{color:#fff4e9;background:#271536;border-color:#ffffff55;max-width:150px;margin-bottom:8px}
.halloween-page .halloween-picker input:focus-visible{outline:2px solid #ffb05f;outline-offset:2px}
.halloween-page .halloween-sum{margin-top:10px}
.halloween-page .halloween-picker p{color:#e5c9fa}
.halloween-page #halloween-error{color:#ffc2aa}
.halloween-page .cookie-settings-link{color:#fff4e9}
#standalone-form.season-selected .form-required-note,#standalone-form.season-selected .booking-selection-summary{display:none}
#standalone-form.season-selected .form-title{margin-bottom:10px}
#standalone-form.season-selected .form-title h3{font-size:24px}
#standalone-form.season-selected label{margin-bottom:10px}
#standalone-form.season-selected .field-row{margin-bottom:0;gap:12px}
#standalone-form.season-selected #standalone-builder h3{font-size:17px;margin:10px 0}
#standalone-form.season-selected #standalone-add{min-height:38px;padding:8px 13px;margin:5px 0 12px}
#standalone-form.season-selected .booking-total{padding:14px;margin:12px 0}
#standalone-form.season-selected .form-bottom,#standalone-form.season-selected .privacy-notice{font-size:13px;margin:10px 0}
@media(max-width:760px){.halloween-page .halloween-offer>div{padding:18px}.halloween-page .halloween-picker{padding:18px}.halloween-page .halloween-picker h2{font-size:24px}}
/* Poster selection replaces the separate calculator. */
.halloween-offer img{aspect-ratio:3/4;object-fit:contain}
.halloween-card-choice{display:flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;background:#ffb05f;color:#28122e;font-weight:700;padding:12px 18px;border-radius:9px;margin:16px 0 0}
.halloween-card-choice input{width:23px;height:23px;margin:0;accent-color:#532879;flex:0 0 23px}
.halloween-card-choice:focus-within{outline:2px solid #fff;outline-offset:4px}
.halloween-page .halloween-offer.is-selected{border-color:#ffb05f;box-shadow:0 0 0 2px #ffb05f55}
.halloween-selection-action{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;padding:8px 0 16px}
.halloween-selection-action p{margin:0;font-size:15px;color:#e5c9fa}
.halloween-selection-action .button{background:#ffb05f;color:#28122e;min-width:200px;justify-content:center}
.halloween-selection-action [aria-disabled=true]{opacity:.55}
.booking-forms.halloween-booking-active{--ink:#fff4e9;--line:#ffffff30;--orange:#ffb05f;--blue:#ffb05f}
.halloween-booking-active .order-tabs{background:#321943;border-color:#704492}
.halloween-booking-active .order-tabs [role=tab]{color:#f7eaff}
.halloween-booking-active .order-tabs [aria-selected=true]{background:#ffb05f;color:#28122e;border-color:#ffb05f}
#standalone-form.season-selected{background:radial-gradient(ellipse at 95% 0%,#7745a077,transparent 55%),linear-gradient(120deg,#291537,#502269);border-color:#714594;color:#fff4e9}
#standalone-form.season-selected .form-title h3,#standalone-form.season-selected #standalone-builder h3{color:#ffb05f}
#standalone-form.season-selected input,#standalone-form.season-selected select,#standalone-form.season-selected textarea{background:#271536;color:#fff4e9;border-color:#ffffff55;color-scheme:dark}
#standalone-form.season-selected input::placeholder,#standalone-form.season-selected textarea::placeholder{color:#d2b9df}
#standalone-form.season-selected .activity-row{background:#ffffff0d}
#standalone-form.season-selected .booking-total{background:#ffffff0d;border-color:#ffffff40;color:#ffb05f}
#standalone-form.season-selected .booking-total small,#standalone-form.season-selected .form-bottom,#standalone-form.season-selected .privacy-notice,#standalone-form.season-selected .remove-activity{color:#f0defa}
#standalone-form.season-selected .button{background:#ffb05f;color:#28122e;border-color:#ffb05f}
#standalone-form.season-selected .reset-booking{background:transparent;color:#fff4e9;border-color:#ffffff55}
#standalone-form.season-selected #standalone-result{background:#392d4a;color:#fff4e9;border:1px solid #ffffff40}
#standalone-form.season-selected #standalone-result[data-state=error]{background:#592c3b;color:#fff4e9}

#halloween-home .halloween-teaser img{aspect-ratio:3/4;height:auto;object-fit:contain}

.halloween-offer>.season-photo{display:block;width:100%;padding:0;border:0;border-radius:0;background:#1d1028;cursor:zoom-in}.halloween-offer>.season-photo:focus-visible{outline:3px solid #ffb05f;outline-offset:-3px}
/* Native checkbox behaviour with a themed, animated selection state. */
.halloween-card-choice{border:1px solid #ffb05f;transition:background .2s,color .2s,box-shadow .2s,transform .2s;min-height:52px}
.halloween-card-choice:hover{transform:translateY(-1px);box-shadow:0 4px 14px #16092455}
.halloween-card-choice input{appearance:none;-webkit-appearance:none;display:block;width:24px;height:24px;flex-basis:24px;border:2px solid #532879;border-radius:7px;background:#fff4e9;cursor:pointer;transition:background .18s,border-color .18s,box-shadow .18s;background-position:center;background-repeat:no-repeat;background-size:17px}
.halloween-card-choice input:checked{border-color:#ffb05f;background-color:#ffb05f;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12 4 4 10-10' fill='none' stroke='%2328122e' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");animation:halloween-check-pop .26s ease-out}
.halloween-card-choice:has(input:checked){background:#532879;color:#fff4e9;box-shadow:0 0 0 3px #ffb05f18}
.halloween-card-choice input:focus-visible{outline:2px solid #fff;outline-offset:3px}
.halloween-page .halloween-offer{transition:border-color .22s,box-shadow .22s,background .22s}
.halloween-page .halloween-offer.is-selected{background:#ffffff12;box-shadow:0 0 0 2px #ffb05f55,0 8px 24px #14092333}
@keyframes halloween-check-pop{0%{transform:scale(.8)}55%{transform:scale(1.15)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.halloween-card-choice,.halloween-card-choice input,.halloween-page .halloween-offer{transition:none}.halloween-card-choice input:checked{animation:none}.halloween-card-choice:hover{transform:none}}

/* Tighter seasonal spacing on phones, matching the main catalogue rhythm. */
@media(max-width:760px){
 #halloween-home{padding:20px 0}
 #halloween-home h2{margin-bottom:12px}
 #halloween-home .halloween-teasers{gap:8px}
 .halloween-page .halloween-intro{padding-top:20px;padding-bottom:20px}
 .halloween-page .halloween-offers{gap:16px;padding-top:20px;padding-bottom:16px}
 .halloween-page .halloween-offer>div{padding:16px}
}

/* All three seasonal offers fit in one phone row. */
@media(max-width:760px){
 #halloween-home{padding:16px 0}
 #halloween-home h2{font-size:24px;margin-bottom:10px}
 #halloween-home .halloween-teasers{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;align-items:stretch}
 #halloween-home .halloween-teaser{display:flex;flex-direction:column;align-items:stretch;gap:0;min-width:0;padding:0;overflow:hidden;border-radius:12px}
 #halloween-home .halloween-teaser img{width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;border-radius:0}
 #halloween-home .halloween-teaser>div{display:flex;flex:1;flex-direction:column;padding:7px 6px}
 #halloween-home .halloween-teaser h3{flex:1;font-size:13px;line-height:1.3;margin:0 0 5px;overflow-wrap:anywhere}
 #halloween-home .halloween-teaser strong{font-size:15px;line-height:1.3}
}
@media(max-width:760px){#halloween-home .halloween-teaser>div{text-align:center}}
