
:root{--ink:#28233c;--muted:#6c647a;--purple:#35237e;--orange:#ffb055;--paper:#faf8f5;--line:#e9e3ed}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.5}button,input,select{font:inherit}button,a,select,input{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #d87319;outline-offset:4px}button:focus:not(:focus-visible){outline:none}[hidden]{display:none!important}.skip{position:absolute;top:-90px;z-index:100;background:white;padding:16px}.skip:focus{top:10px}.wrap{max-width:1240px;margin:auto;padding:0 32px}.topbar{display:flex;justify-content:space-between;align-items:center;max-width:1304px;padding:22px 32px;margin:auto;background:var(--paper);gap:24px}.topbar img{width:210px;height:auto;display:block}.topbar nav{display:flex;gap:30px;align-items:center;font-size:14px;font-weight:700}.topbar a{text-decoration:none}.phone{border:1px solid #d8d0e6;padding:11px 16px;border-radius:12px}.hero{background:#271546;color:#fff;position:relative;overflow:hidden}.hero:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 85% 10%,#754d7a60,transparent 60%),radial-gradient(ellipse at 5% 100%,#64295070,transparent 50%);pointer-events:none}.hero-inner{max-width:1240px;margin:auto;display:grid;grid-template-columns:1.35fr 1fr;padding:66px 32px 68px;align-items:center;gap:24px;position:relative}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:800;margin:0 0 18px}.hero .eyebrow{color:#ffc184}.hero h1{font-size:clamp(36px,4.6vw,60px);line-height:1.1;letter-spacing:-2px;font-weight:750;margin:0 0 25px;max-width:700px;color:white}.hero h1 em{font-style:normal;color:#ffbb74}.hero-description{font-size:18px;color:#e7ddee;line-height:1.6;margin-bottom:28px}.button{display:inline-flex;align-items:center;justify-content:center;gap:26px;min-height:50px;padding:14px 24px;border-radius:13px;text-decoration:none;font-weight:750;border:0;transition:transform .18s,box-shadow .18s}.button:hover{transform:translateY(-2px);box-shadow:0 7px 18px #24193b1c}.orange{background:var(--orange);color:#2c173a}.hero-note{font-size:12px;color:#d2c3dc;margin-top:16px}.pumpkin-scene{position:relative;display:grid;place-items:center;min-width:0;padding-top:18px}.moon{width:230px;height:230px;border-radius:100%;position:absolute;top:-20px;right:0;background:linear-gradient(130deg,#fff5d4,#d9c7ed);opacity:.86;box-shadow:0 0 60px #f9e1ff16}.moon:after{content:'';position:absolute;width:26px;height:26px;left:60px;top:35px;background:#c7bad855;border-radius:50%;box-shadow:55px 74px 0 12px #c7bad830,3px 105px 0 -3px #c7bad84d}#pumpkin{border:0;background:none;position:relative;width:min(100%,355px);padding:0;filter:drop-shadow(0 16px 24px #10062260);transition:transform .25s}#pumpkin:hover{transform:rotate(-4deg) scale(1.025)}#pumpkin svg{width:100%;display:block}#pumpkin-hint{font-size:13px;color:#ebd9ed;position:relative;margin:0}.star{position:absolute;color:#f5d9a5;font-size:30px}.star-one{left:12%;top:13%}.star-two{right:0;bottom:22%;font-size:22px}.effects-toggle{position:absolute;right:24px;bottom:14px;border:1px solid #ffffff40;background:#27154680;color:#e4d6ec;border-radius:50px;padding:8px 14px;font-size:11px;min-height:36px}#spider{position:absolute;width:50px;top:0;left:58%;transform:translateY(-180px);pointer-events:none;animation:spider-drop 5s .6s ease-in-out 1}#spider span{display:block;height:106px;width:1px;background:#b5a6c775;margin:auto}#spider svg{display:block;width:50px}@keyframes spider-drop{0%,100%{transform:translateY(-180px)}25%,70%{transform:translateY(0) rotate(5deg)}50%{transform:translateY(8px) rotate(-5deg)}}.reassurance{display:flex;justify-content:center;gap:64px;padding:20px 24px;background:#f0eafa;color:var(--purple);font-size:13px;font-weight:700;border-bottom:1px solid #e7def0}.catalog{padding-top:60px;padding-bottom:48px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.purple{color:var(--purple)}h2{font-size:clamp(26px,3vw,36px);letter-spacing:-1px;line-height:1.2;margin:0}.last-label,.card-label{background:#fff0df;color:#863d13;border:1px solid #ffdcad;font-size:12px;font-weight:800;padding:7px 12px;border-radius:50px;white-space:nowrap}.filters{padding:20px;background:white;border:1px solid var(--line);border-radius:17px;display:flex;gap:14px;align-items:end;box-shadow:0 5px 14px #2d254206}.filters label{display:grid;gap:5px;font-size:12px;font-weight:700;flex:1}.filters .ages{display:flex;gap:10px}.filters .search-label{flex:1.5}.filters select,.filters input,.quote-controls select{width:100%;min-width:0;background:var(--paper);color:var(--ink);padding:11px 10px;border:1px solid #dcd5e5;border-radius:9px;min-height:46px;font-size:14px}.results-head{display:flex;justify-content:space-between;gap:16px;padding:8px 2px 18px;font-size:12px;color:var(--muted)}.results-head p{margin:12px 0 0}.hotel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.hotel-card{background:white;border:1px solid var(--line);border-radius:19px;overflow:hidden;box-shadow:0 5px 12px #27203905;display:flex;flex-direction:column}.card-image{border:0;padding:0;background:#e4deea;width:100%;height:226px;position:relative;display:block;overflow:hidden}.card-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}.card-image:hover img{transform:scale(1.035)}.card-image .card-label{position:absolute;left:14px;top:14px;background:#fff8f0ed;backdrop-filter:blur(5px)}.photo-count{position:absolute;bottom:12px;right:12px;background:#241438bf;color:white;border-radius:7px;font-size:11px;padding:5px 9px}.card-body{padding:21px;display:flex;flex-direction:column;flex:1}.location{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#776386;margin:0 0 8px}.hotel-card h3{font-size:22px;line-height:1.2;letter-spacing:-.5px;margin:0 0 12px;color:var(--ink)}.tagline{font-size:12px;color:var(--muted);margin:0 0 14px;min-height:36px}.card-dates{font-size:12px;color:var(--purple);background:#f3effb;padding:8px 10px;border-radius:8px;margin:0 0 16px}.card-price{margin-top:auto;display:flex;justify-content:space-between;gap:10px;align-items:end}.card-price small{display:block;font-size:11px;color:var(--muted)}.card-price strong{font-size:31px;letter-spacing:-1px;line-height:1.2}.card-price .no-price{font-size:20px}.card-total-note{font-size:11px;color:var(--muted);margin:5px 0 16px}.purple-button{background:var(--purple);color:white}.hotel-card .button{width:100%;font-size:14px;gap:15px;min-height:46px;padding:11px 15px}.calendar-note{display:flex;gap:22px;background:#f0eafa;border-radius:17px;padding:26px;margin-top:30px;color:#443257}.calendar-note>span{font-size:44px;line-height:1}.calendar-note h3{margin:0 0 7px;font-size:18px}.calendar-note p{margin:0;font-size:13px;max-width:820px}.help{background:#f0eafa;border-radius:20px;padding:38px;display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:60px}.help h2{font-size:29px}.help p:not(.eyebrow){font-size:14px;color:var(--muted)}.footer{padding-bottom:36px;font-size:13px}.footer img{width:190px;height:auto}.footer nav{display:flex;flex-wrap:wrap;gap:16px;margin:20px 0}.footer small{display:block;font-size:11px;color:var(--muted);line-height:1.8}dialog{max-width:1140px;width:calc(100% - 40px);max-height:94dvh;padding:0;border:0;border-radius:22px;background:var(--paper);color:var(--ink);box-shadow:0 20px 90px #120c2b50}dialog::backdrop{background:#180e32b8;backdrop-filter:blur(5px)}body:has(dialog[open]){overflow:hidden}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 24px;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:5}.dialog-top>span{font-size:12px;color:var(--muted)}.back{padding:10px 16px;min-height:44px;border:1px solid #ddd4e9;background:white;color:var(--purple);font-weight:700;border-radius:10px;font-size:13px}#hotel-detail{padding:26px}.detail-heading{margin-bottom:24px}.detail-heading h2{font-size:33px;margin-bottom:10px}.detail-columns{display:grid;grid-template-columns:1.1fr 1fr;gap:30px;align-items:start}.gallery-main{height:300px;border:0;padding:0;background:#dfd8e8;border-radius:14px;overflow:hidden;width:100%;display:block}.gallery-main img{width:100%;height:100%;object-fit:cover}.gallery-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.gallery-thumbs button{border:2px solid transparent;padding:0;height:66px;border-radius:9px;overflow:hidden;background:#ede8f2}.gallery-thumbs button[aria-pressed=true]{border-color:var(--purple)}.gallery-thumbs img{width:100%;height:100%;object-fit:cover}.gallery-caption{font-size:11px;color:var(--muted);margin:9px 0 22px}.detail-info{font-size:13px}.detail-info h3{font-size:19px;margin:22px 0 10px}.detail-info ul{padding-left:20px;line-height:1.7}.quote-panel{background:white;border:1px solid var(--line);border-radius:16px;padding:22px}.quote-panel h3{font-size:21px;margin:0 0 14px}.quote-controls{display:grid;grid-template-columns:1.3fr 1fr;gap:10px}.quote-controls label{font-size:11px;font-weight:700;display:grid;gap:5px}.detail-ages{grid-column:1/-1;display:flex;gap:10px}.detail-ages label{flex:1}.month-head{display:flex;justify-content:space-between;align-items:center;margin:20px 0 12px;font-size:15px}.month-head button{width:38px;height:38px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--purple);font-size:20px}.month-head button:disabled{opacity:.3}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.weekday{text-align:center;font-size:10px;color:var(--muted);padding:3px}.day{height:55px;min-width:0;border:1px solid #e8e1ed;border-radius:7px;padding:5px 1px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fbfafc;color:var(--muted);font-size:12px}.day small{font-size:9px;white-space:nowrap}.day.priced{border-color:#d9c9ec;color:var(--purple);background:#f4edff;font-weight:800}.day.chosen{border:2px solid #8a49be;background:#e8daf8;color:#302047}.day:disabled{opacity:.35;background:#faf9fa}.calendar-legend{font-size:10px;color:var(--muted);margin:10px 0 20px}.calendar-legend i{display:inline-block;width:9px;height:9px;background:#e4d6f7;border:1px solid #b29cc6;border-radius:3px;margin-right:4px}.quote-result{padding-top:15px;border-top:1px solid var(--line)}.selected-dates{font-size:13px;margin:0 0 4px;font-weight:700}.total-price{font-size:38px;letter-spacing:-1.5px;line-height:1.2;display:block}.total-price.no-price{font-size:24px}.price-caption{font-size:12px;color:var(--muted);margin:4px 0 14px}.rate-detail{font-size:12px;background:var(--paper);border-radius:9px;padding:12px;margin-bottom:14px;line-height:1.65}.rate-detail strong{display:block}.quote-result .button{width:100%;font-size:13px;padding:12px;gap:6px}.quote-result .footnote{font-size:10px;color:var(--muted);line-height:1.6;margin:10px 0 0}.comparison{margin-top:23px}.comparison h4{font-size:13px;margin:0 0 8px}.comparison table{width:100%;border-collapse:collapse;font-size:12px}.comparison th,.comparison td{text-align:left;padding:9px 7px;border-bottom:1px solid var(--line);font-weight:400}.comparison td:last-child{text-align:right;font-weight:700;color:var(--purple)}.comparison small{font-size:10px;color:var(--muted)}.tariff-choice{display:grid;font-size:12px;margin:10px 0;gap:5px}.tariff-choice select{max-width:100%;font-size:12px;padding:9px;border:1px solid #ddd4e8;border-radius:8px;background:white}#photo-dialog{padding:20px;max-width:1100px;background:#161221;color:white}#photo-dialog img{display:block;width:100%;height:70dvh;object-fit:contain;margin-top:15px}#photo-caption{text-align:center;font-size:12px}.empty{grid-column:1/-1;padding:40px;text-align:center;background:white;border:1px solid var(--line);border-radius:16px}.empty h3{font-size:21px}.empty button{margin-top:10px}#effect-layer{position:fixed;inset:0;overflow:hidden;z-index:90;pointer-events:none}.flying-bat{position:absolute;width:48px;color:#b785d1;animation:bat-flight 1.6s ease-out forwards;transform-origin:center}.flying-bat svg{width:100%}@keyframes bat-flight{0%{opacity:0;transform:translate(0,0) scale(.2) rotate(0)}20%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(1.25) rotate(var(--turn))}}#surprise-message{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#35237ef5;color:#fff;border-radius:15px;padding:15px 24px;font-size:15px;box-shadow:0 8px 35px #24133350;z-index:95;text-align:center;width:max-content;max-width:90vw;pointer-events:none;opacity:0;transition:opacity .2s}#surprise-message.show{opacity:1}.effects-off #spider,.effects-off .flying-bat{animation:none;display:none}.effects-off #pumpkin{transition:none}.mm-release-info{padding-bottom:25px!important}
@media(min-width:1500px){.hero-inner{padding-top:80px;padding-bottom:85px}}@media(max-width:1000px){.hero-inner{grid-template-columns:1.3fr 1fr}.hero h1{font-size:43px}.hotel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filters{flex-wrap:wrap}.filters>label{flex-basis:25%}.reassurance{gap:25px}.detail-columns{gap:20px}.quote-panel{padding:17px}.day{height:49px}.card-image{height:235px}}@media(max-width:700px){.wrap{padding-left:18px;padding-right:18px}.topbar{padding:18px;gap:12px}.topbar img{width:153px}.topbar nav{font-size:11px;gap:8px}.topbar .phone{display:none}.hero-inner{grid-template-columns:1fr;padding:37px 24px 43px;gap:3px}.hero h1{font-size:38px;letter-spacing:-1.5px;max-width:500px;margin-bottom:20px}.hero-description{font-size:15px;margin-bottom:22px}.hero .eyebrow{font-size:10px;margin-bottom:16px}.hero .button{font-size:14px;min-height:48px}.hero-note{font-size:10px}.pumpkin-scene{position:absolute;width:130px;right:10px;bottom:4px;opacity:.92;padding-top:0}.moon{width:94px;height:94px;right:5px;top:4px}.moon:after{display:none}.pumpkin-scene #pumpkin{width:124px}.pumpkin-scene #pumpkin-hint{font-size:8px;margin-top:-9px}.star{font-size:12px}.star-two{display:none}.hero-copy{padding-bottom:70px}.hero-description{max-width:95%}.effects-toggle{right:auto;left:24px;bottom:15px;font-size:10px;padding:6px 10px;min-height:32px}#spider{left:auto;right:12px;width:34px}#spider svg{width:34px}.reassurance{padding:15px 18px;gap:12px;font-size:10px;justify-content:space-around}.reassurance span:last-child{display:none}.catalog{padding-top:32px;padding-bottom:32px}.section-heading{align-items:start;gap:12px}.section-heading h2{font-size:27px}.section-heading .eyebrow{font-size:9px;letter-spacing:1px;margin-bottom:12px}.last-label{font-size:9px;padding:5px 8px;margin-top:3px}.filters{padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.filters>label:first-child{grid-column:1/-1}.filters .ages{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.filters .search-label{grid-column:1/-1}.filters select,.filters input{font-size:13px;min-height:44px}.results-head{display:block;padding-bottom:16px}.results-head p{font-size:10px}.hotel-grid{grid-template-columns:1fr;gap:20px}.card-image{height:238px}.card-body{padding:20px}.hotel-card h3{font-size:24px}.tagline{min-height:0}.card-price strong{font-size:34px}.calendar-note{padding:20px;gap:14px}.calendar-note>span{font-size:30px}.calendar-note h3{font-size:17px}.calendar-note p{font-size:12px}.help{margin:0 18px 36px;display:block;padding:25px;border-radius:16px}.help h2{font-size:26px}.help .button{margin-top:12px;font-size:13px}.footer nav{font-size:12px;gap:12px}.footer small{font-size:10px}dialog{width:100%;max-width:100%;max-height:100dvh;height:100dvh;border-radius:0;margin:0}.dialog-top{padding:10px 14px}.dialog-top>span{display:none}.back{font-size:12px}#hotel-detail{padding:20px 16px}.detail-heading h2{font-size:28px}.detail-columns{grid-template-columns:1fr;gap:15px}.gallery-main{height:245px}.gallery-thumbs{grid-template-columns:repeat(4,1fr)}.gallery-thumbs button{height:57px}.quote-panel{padding:17px}.day{height:56px}.day small{font-size:10px}.quote-result .button{font-size:13px}.detail-info{margin-bottom:15px}#photo-dialog{padding:15px}#photo-dialog img{height:76dvh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}#spider,.flying-bat{display:none}#pumpkin:hover,.button:hover{transform:none}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
