/* V10: botanical framing, a composed desktop stage, and small tactile details. */
.site-header{background:#102d27;color:#f6efd9;min-height:116px;height:116px;border-bottom:1px solid #b5a57844;padding-top:8px}
.site-header:after{height:2px;bottom:-2px;background:linear-gradient(90deg,transparent,#c5ab7166 18%,#dcca9755 80%,transparent)}
.site-header .brand-lockup{filter:drop-shadow(0 2px 4px #0002)}
.site-header .brand-lockup text{fill:#f7efd9}
.site-header .nav-book{color:#fff2d8;background:#823b42;border:1px solid #b56d68;box-shadow:inset 0 0 0 3px #823b42,inset 0 0 0 4px #e6b48455;min-height:50px;padding:12px 21px}
.site-header .nav-book:hover{background:#9a4a4b}
.festive-garland{height:16px;background:radial-gradient(ellipse at top,#acc18d12,transparent);overflow:visible}
.festive-garland:before{content:'';position:absolute;left:0;right:0;top:2px;border-top:1px solid #b9a77933}
.festive-garland i{height:6px;width:4px;transform:translateY(1px);background:#ffe2a4;box-shadow:0 0 9px #ffce7488}
.festive-garland i:nth-child(3n){background:#b85250;box-shadow:0 0 7px #df635644}
.christmas-bell{display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px;background:none;color:#d5b97f;padding:5px 9px;border-radius:40px;line-height:1.05;flex:none}
.christmas-bell svg{width:27px;height:31px;transform-origin:50% 4px;filter:drop-shadow(0 2px 4px #0003)}
.christmas-bell span{font:9px/1.4 var(--sans);letter-spacing:1px;text-align:left}
.christmas-bell em{font:italic 17px/1.1 var(--serif);letter-spacing:0;color:#f1dec0}
.christmas-bell:hover svg,.christmas-bell:focus-visible svg{transform:rotate(-12deg)}
.bell-ringing .christmas-bell svg{animation:yuletide-bell .7s ease-in-out 2}
@keyframes yuletide-bell{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(18deg)}40%,80%{transform:rotate(-16deg)}}
.botanical-garland{filter:drop-shadow(0 10px 8px #001d2066);opacity:1!important}
.hero-bough,.page-bough{position:absolute;left:50%;top:-47px;width:min(1300px,calc(100% + 140px));height:auto;aspect-ratio:5;transform:translateX(-50%);pointer-events:none;z-index:1;opacity:1}
.hero-bough .drawn-garland,.page-bough .drawn-garland{position:static;width:100%;height:auto;display:block}
.hero-bauble{display:none}
.home-page .hero{padding-top:130px;padding-bottom:0;min-height:795px;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:0 4%;background:radial-gradient(ellipse at 84% 27%,#53795238,transparent 48%),radial-gradient(ellipse at 11% 95%,#30544766,transparent 55%),#102d27}
.hero-copy{padding-bottom:33px;max-width:590px}
.hero h1{font-size:clamp(76px,6.3vw,110px);line-height:.98;letter-spacing:-.055em}
.hero .eyebrow{letter-spacing:2.2px;font-size:8px;margin-bottom:27px}
.hero-intro{color:#e0dfca;font-size:14px;margin-top:29px}
.hero .button{background:#f3e4c6;box-shadow:0 4px 0 #b89c69;min-height:57px}
.hero .button:hover{box-shadow:0 6px 0 #b89c69,0 12px 28px #041b1633}
.hero-media{margin:0 9px 42px 0;align-self:center;padding:10px 10px 0;background:linear-gradient(135deg,#cbb57955,transparent 28%,#cbb57933);border:1px solid #c6ac7666;box-shadow:0 30px 80px #00171166}
.hero-media:before{inset:-11px 11px 12px -11px;border-color:#bdae7255}
.hero-media .photo-button{border:5px solid #ede4cd;outline:0;outline-offset:0}
.hero-media figcaption{padding:0 9px 15px;margin-top:14px;align-items:center}
.hero-media figcaption em{font-size:22px;color:#e5d4aa}
.hero-bottom{margin-top:15px;padding:21px 0 26px}
.hero-bottom p{padding-right:105px;font-size:20px}
.welcome-magic{margin:0;padding-top:34px;padding-bottom:29px;background:radial-gradient(ellipse at 80% 0,#ffeab26b,transparent 65%),#f1e8d2;border-top:3px solid #d1b983;box-shadow:inset 0 5px 0 #faf2df}
.magic-buttons button{border-radius:4px;background:#fff9eccc;box-shadow:0 3px 0 #b29c6b44;min-height:88px}
.magic-buttons button:hover{box-shadow:0 5px 0 #b29c6b44}
.magic-buttons button>span{color:#9a4147}
.wonder-hero{padding-top:127px;background:radial-gradient(ellipse at 72% 48%,#38656488,transparent 50%),linear-gradient(120deg,#173d33,#0c2730)}
.wonder-copy{padding-top:10px}
.wonder-copy h1{font-size:clamp(75px,7.1vw,115px)}
.wonder-playground{margin-top:-19px;filter:drop-shadow(0 25px 30px #041a224d)}
.discovery-note{border-top-color:#d6b57555}
.booking-main{position:relative;isolation:isolate;overflow:hidden;padding-top:142px;background:radial-gradient(ellipse at 12% 18%,#fff4d9aa,transparent 45%),linear-gradient(135deg,#eeeadb,#e5e9dd)}
.booking-main>.page-bough{z-index:-1;top:-44px;width:min(1420px,calc(100% + 140px));opacity:.97}
.booking-heading{padding-top:38px}
.booking-heading h1{font-size:clamp(67px,5.2vw,88px);max-width:530px}
.booking-heading>.eyebrow{color:#89444a}
.booking-contact{border-top:1px solid #ac956066;padding-top:27px}
.inquiry-paper{border:1px solid #c5b282;box-shadow:0 22px 65px #354d3522,inset 0 0 0 7px #f7f1e0,inset 0 0 0 8px #d7c59777;background:#fffaf0}
.paper-top{position:relative}
.paper-top:after{content:'';position:absolute;left:0;bottom:-14px;width:96px;height:3px;background:repeating-linear-gradient(120deg,#94424b 0 8px,#ecdbbb 8px 16px)}
.inquiry-paper input,.inquiry-paper select,.inquiry-paper textarea{background:#fffcf5;border-color:#b5b89e}
.closing-section{padding-top:99px;padding-bottom:86px;background:radial-gradient(ellipse at 50% 100%,#315540,#102d27 70%)}
.closing-section:before{content:'';position:absolute;inset:9px;border:1px solid #d5b87928;pointer-events:none;z-index:-1}
.closing-canes{opacity:.9}
.footer-forest{position:absolute;inset:auto 0 -2px;height:115px;pointer-events:none;z-index:-1;opacity:.9}
.footer-forest svg{width:100%;height:100%;display:block}
.site-footer{position:relative;isolation:isolate;background:#0c251f;padding-top:38px;padding-bottom:86px;gap:24px}
.site-footer .christmas-bell{margin-left:auto}
.site-footer .footer-forest{height:76px;opacity:.5}
.site-footer .footer-forest path:last-child{fill:#4d695648}
.site-footer nav{position:relative}
.site-footer nav a:hover{color:#f3d39c}
.home-lights-on .botanical-garland .workshop-bulb,.garland-lit .botanical-garland .workshop-bulb{fill:#fff9d1;filter:drop-shadow(0 0 5px #ffce69)}
.bell-ringing .botanical-garland .workshop-bulb{fill:#fffad9;filter:drop-shadow(0 0 6px #ffdf91)}
.magic-paused .christmas-bell svg{animation:none!important;transition:none!important;transform:none!important}
@media(min-width:1650px){.home-page .hero{padding-left:max(6%,calc((100% - 1500px)/2));padding-right:max(6%,calc((100% - 1500px)/2));min-height:875px;padding-top:153px}.hero-bough,.page-bough{width:1420px;top:-50px}.hero-copy{max-width:600px}.hero h1{font-size:112px}.hero-media{margin-bottom:35px}.booking-main{padding-top:155px}}
@media(max-width:1150px){.site-header{gap:20px}.site-header nav{gap:21px}.site-header>.christmas-bell span{display:none}.hero .eyebrow{letter-spacing:1.1px;font-size:7px}.hero h1{font-size:78px}.home-page .hero{gap:0 3%;padding-top:118px;min-height:735px}.hero-intro{font-size:13px}.hero-media figcaption{display:block}.hero-media figcaption em{display:block;font-size:21px;margin-top:5px}.booking-heading h1{font-size:65px}.hero-bottom p{font-size:17px}.wonder-copy h1{font-size:85px}}
@media(max-width:950px){.site-header{height:108px;min-height:108px}.site-header>.christmas-bell{display:none}.home-page .hero{display:grid;grid-template-columns:.94fr 1.06fr;padding:104px 5% 0;gap:0 4%;min-height:645px}.hero h1{font-size:64px}.hero-copy{padding-bottom:20px}.hero-intro{font-size:12px;margin:22px 0 25px}.hero .button{min-width:0;width:220px;padding:14px 18px;font-size:11px}.hero-media{width:auto;margin:15px 0 25px;padding:7px 7px 0}.hero-media .photo-button{border-width:3px}.hero-media figcaption{padding:0 3px 11px;font-size:7px;letter-spacing:1px}.hero-media figcaption em{font-size:18px}.hero-bottom{margin-top:10px}.hero-bottom p{padding-right:105px;font-size:14px}.hero-bough,.page-bough{width:1080px;top:-64px}.wonder-hero{padding-top:103px}.wonder-copy h1{font-size:76px}.booking-main{padding-top:110px}.booking-main>.page-bough{width:1080px;top:-59px}.booking-heading{padding-top:10px}.booking-heading h1{font-size:78px}.site-footer{flex-wrap:wrap}.site-footer .christmas-bell{margin-left:0}.site-footer nav{margin-left:auto}}
@media(max-width:700px){.home-page .hero{display:block;padding:102px 7% 0;min-height:0}.hero-copy{padding-bottom:38px;max-width:520px}.hero h1{font-size:clamp(58px,14.5vw,84px);line-height:1.01}.hero .eyebrow{font-size:7px;letter-spacing:1.3px;margin-bottom:25px}.hero-intro{font-size:13px;line-height:1.9;margin-top:24px}.hero .button{width:auto;min-width:223px;font-size:12px}.hero-media{width:100%;margin:0;padding:7px 7px 0}.hero-media figcaption{font-size:7px;display:block;padding-bottom:11px}.hero-media figcaption em{font-size:19px}.hero-bottom{margin-top:31px;padding:17px 0 22px}.hero-bottom p{display:none}.hero-bough,.page-bough{width:830px;top:-53px}.wonder-hero{padding-top:104px}.wonder-copy h1{font-size:clamp(66px,18vw,96px)}.booking-main{padding-top:107px}.booking-main>.page-bough{width:830px;top:-51px}.booking-heading h1{font-size:clamp(48px,12.5vw,67px)}.booking-heading{padding-top:0}.closing-section{padding-top:65px;padding-bottom:78px}.closing-section .footer-forest{height:75px}}
@media(max-width:600px){.site-header{height:auto;min-height:151px;padding:18px 6% 15px;gap:16px}.site-header nav{gap:24px}.site-header .nav-book{min-height:45px;padding:8px 13px}.welcome-magic{padding-top:27px;padding-bottom:25px}.magic-buttons button{min-height:83px}.site-footer{padding-top:27px;padding-bottom:81px;gap:16px}.site-footer .footer-brand{width:calc(100% - 91px);min-width:0}.site-footer .christmas-bell{width:66px;padding:0;gap:0;margin-left:auto}.site-footer .christmas-bell span{display:none}.site-footer nav{margin-left:0}.inquiry-paper{padding:28px 23px}.booking-main .inquiry-paper{margin-top:36px}.footer-forest{height:70px}}
@media(max-width:360px){.site-header nav{gap:17px}.hero h1{font-size:57px}.hero .eyebrow{font-size:6.5px;letter-spacing:1px}.hero .button{min-width:210px}.inquiry-paper{padding:25px 18px}.magic-buttons button{font-size:9px}.hero-media figcaption em{font-size:17px}.site-footer .footer-brand{width:calc(100% - 65px)}.site-footer .christmas-bell{width:50px}}
@media(prefers-reduced-motion:reduce){.christmas-bell svg{animation:none!important;transition:none!important;transform:none!important}}

/* A user-opened, nonmodal panel keeps Christmas music optional. */
.music-quick-toggle{position:fixed;left:16px;bottom:16px;z-index:119;display:flex;align-items:center;gap:9px;min-height:48px;padding:8px 14px;border:1px solid #d6b779;border-radius:28px;background:#153d36;color:#fff3d7;box-shadow:0 3px 14px #001b2540;text-align:left;font:12px/1.3 var(--sans)}
.music-quick-toggle>span:first-child{font-size:21px}.music-quick-toggle strong,.music-quick-toggle small{display:block}.music-quick-toggle strong{font-size:12px;font-weight:600}.music-quick-toggle small{font-size:10px;color:#e6d3a8}.music-quick-toggle:hover{background:#245347}.music-quick-toggle:focus-visible{outline:3px solid #ffe3a3;outline-offset:3px}
.christmas-music{position:fixed;left:24px;bottom:88px;z-index:120;width:min(380px,calc(100vw - 48px));max-height:calc(100dvh - 120px);overflow:auto;padding:25px 26px 20px;background:#fff7e3;color:#244638;border:1px solid #b7a174;box-shadow:0 14px 40px #142e3540}
.christmas-music[hidden]{display:none}.christmas-music .eyebrow{font:8px/1.5 var(--sans);letter-spacing:1.5px;color:#785a3b;margin:0 34px 15px 0}.music-title{font:400 32px/1.08 var(--serif);letter-spacing:-.02em;margin:0}.music-title em{font-weight:400;color:#904e40}
.christmas-music.music-from-footer{top:24px;bottom:auto}
.music-close{position:absolute;right:4px;top:4px;display:grid;place-items:center;width:44px;height:44px;padding:0;background:none;color:#244638;font:28px/1 var(--sans)}
.music-controls{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;padding-top:15px;margin-top:19px;border-top:1px solid #d6c8a6}.music-controls button{min-height:44px;min-width:84px;padding:9px 12px;background:#234d3d;color:#fff6e3;border:1px solid #234d3d;font:11px/1.3 var(--sans)}.music-controls button[aria-pressed=true]{background:transparent;color:#244638;border-color:#8e9a7b}.music-controls p{margin:0;font:11px/1.55 var(--sans);color:#455844}
.christmas-music button:focus-visible{outline:3px solid #9b6f29;outline-offset:3px}.music-close:hover{background:#eadfc5}.music-controls button:hover{border-color:#9b6f29}
.music-credit{font:10px/1.6 var(--sans);color:#57644f;margin:14px 0 0}.music-credit a{text-decoration:underline;text-underline-offset:3px}.music-credit a:focus-visible{outline:3px solid #9b6f29;outline-offset:3px}
@media(max-width:600px){.christmas-music{left:16px;bottom:82px;width:calc(100vw - 32px);padding:24px 22px 18px}.music-title{font-size:30px}}
