.christmas-page{background:#FDFFF9;color:#0C1824}.christmas-wrap{padding:clamp(2.5rem,6vw,5rem) max(1.25rem,calc((100vw - 1180px)/2));scroll-margin-top:95px}.christmas-page h1,.christmas-page h2,.christmas-page h3{font-family:"Playfair Display",Georgia,serif;letter-spacing:-.02em;line-height:1.2}.christmas-page h1{font-size:clamp(2.5rem,6.5vw,5.6rem);font-weight:700;margin:.6rem 0 1.3rem}.christmas-page h2{font-size:clamp(2rem,4vw,3.5rem);margin:.5rem 0 1.8rem}.christmas-page h3{font-size:1.65rem;margin:.8rem 0}.christmas-page p{line-height:1.6}.christmas-header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:1rem;background:#FDFFF9;padding:.6rem max(1.25rem,calc((100vw - 1180px)/2));border-bottom:1px solid #53615040;min-height:80px}.christmas-brand{display:block;width:190px;background:#AE465D;-webkit-mask:url('/logo.png') center / contain no-repeat;mask:url('/logo.png') center / contain no-repeat}.christmas-brand img{width:100%;height:auto;opacity:0}.christmas-header .button{min-height:46px;padding:.65rem 1rem;white-space:normal;text-align:center}.christmas-hero{display:grid;grid-template-columns:minmax(0,1fr) 190px;align-items:center;gap:2rem;background:#0C1824;color:#FDFFF9}.christmas-hero .eyebrow{color:#FFCEA3}.christmas-lead{font-size:clamp(1.1rem,2vw,1.4rem);max-width:600px;margin:0 0 1.4rem}.christmas-small{font-size:.95rem;margin:1.5rem 0 0;max-width:500px}.christmas-art{width:190px;height:331px;object-fit:contain}.christmas-package-grid,.christmas-extras-grid,.christmas-drink-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}.christmas-package-grid article{padding:1.5rem;background:#E1D6C4;border-radius:.6rem}.christmas-price{display:block;font:600 1.1rem/1.4 Inter,Arial,sans-serif;color:#AE465D}.christmas-package-grid article p:last-child{margin-bottom:0}.christmas-pricing{margin-top:2rem;padding:1.75rem 0;display:grid;grid-template-columns:1fr 1.4fr;gap:2rem;border-top:1px solid #53615050;border-bottom:1px solid #53615050}.christmas-pricing h3{margin-top:0}.christmas-pricing dl{margin:0}.christmas-pricing dl>div{display:flex;align-items:start;justify-content:space-between;gap:1rem;padding:.65rem 0}.christmas-pricing dt{min-width:0}.christmas-pricing dd{margin:0;white-space:nowrap;font-weight:600}.christmas-drink-details{margin-top:1.75rem}.christmas-drink-details p{margin:0}.christmas-extras{background:#E1D6C4}.christmas-extras-grid article{padding:1.4rem;background:#FDFFF9;border-radius:.6rem}.christmas-extras-grid h3{margin-top:0}.christmas-groups{display:grid;grid-template-columns:1fr 1fr;gap:2rem;background:#536150;color:#FDFFF9}.christmas-groups .eyebrow{color:#FDFFF9}.christmas-groups h2{margin-bottom:0}.christmas-groups p:first-child{margin-top:0}.christmas-enquiry{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,4rem);align-items:start}.christmas-enquiry .hire-form{background:#E1D6C4;border-radius:.6rem}.christmas-enquiry .hire-form button{width:100%;justify-self:stretch}.christmas-enquiry>div a{overflow-wrap:anywhere}.christmas-page .eyebrow{letter-spacing:.05em}.christmas-page section>*,.christmas-page article{min-width:0}.christmas-page .hire-trap{display:none!important}
@media(max-width:800px){.christmas-package-grid,.christmas-extras-grid,.christmas-drink-details{grid-template-columns:1fr}.christmas-pricing,.christmas-groups,.christmas-enquiry{grid-template-columns:1fr;gap:1.5rem}.christmas-art{width:130px;height:226px}.christmas-hero{grid-template-columns:minmax(0,1fr) 130px}}
@media(max-width:540px){.christmas-header{padding:.65rem 1rem;min-height:74px}.christmas-brand{width:128px;flex-shrink:0}.christmas-header .button{font-size:1rem;max-width:155px}.christmas-hero{display:block}.christmas-art{display:none}.christmas-hero .button{width:100%;min-height:50px;text-align:center;justify-content:center}.christmas-wrap{padding:2.5rem 1.25rem}.christmas-hero{padding-top:2rem}.christmas-page h1{font-size:2.55rem}.christmas-lead{font-size:1.1rem}.christmas-small{margin-top:1.2rem}.christmas-enquiry .hire-form{padding:1.25rem}.christmas-page .form-row{grid-template-columns:1fr}.christmas-pricing{padding:1.5rem 0}}

/* A festive page using the Willow & Ram palette. */
.christmas-home{font:700 1.35rem/1.2 "Playfair Display",Georgia,serif;letter-spacing:-.02em;color:#AE465D;text-decoration:none}
.christmas-hero{grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:2rem;padding-top:2rem;padding-bottom:2rem;overflow:hidden;border-bottom:6px solid #AE465D}
.christmas-art{display:block;width:100%;height:clamp(360px,40vw,540px);object-fit:contain;max-width:400px;justify-self:center}
.christmas-hero h1{font-size:clamp(2.7rem,5.8vw,5rem)}
.christmas-included{border-bottom:1px solid #53615040}.christmas-package-grid article{border-top:4px solid #AE465D}
.christmas-extras{background:#AE465D;color:#FDFFF9}.christmas-extras>.eyebrow{color:#FDFFF9}.christmas-extras-grid article{background:#FDFFF9;color:#0C1824}
.christmas-groups{background:#536150}.christmas-groups h2{color:#FFCEA3}
@media(max-width:800px){.christmas-hero{grid-template-columns:minmax(0,1fr) 220px;gap:1rem}.christmas-art{height:340px}.christmas-hero h1{font-size:2.8rem}}
@media(max-width:540px){.christmas-home{font-size:1.1rem;max-width:120px}.christmas-hero{display:flex;flex-direction:column;gap:1rem;padding-top:2rem;padding-bottom:1.5rem}.christmas-hero>div{width:100%}.christmas-hero h1{font-size:2.55rem}.christmas-art{display:block;width:220px;height:270px;max-width:100%;align-self:center}.christmas-header .button{font-size:.95rem}}

.christmas-barley{display:block;width:82px;height:125px;object-fit:contain;margin-bottom:1.2rem}
.christmas-art{border-radius:.6rem}.christmas-extras{background:#E1D6C4;color:#0C1824}.christmas-extras>.eyebrow{color:#AE465D}.christmas-extras-grid article{border-top:3px solid #AE465D}
@media(max-width:540px){.christmas-barley{width:60px;height:90px}}

/* Keep the hanging decorations small and preserve their proportions. */
.christmas-hanging-baubles{display:flex;justify-content:space-between;background:#0C1824;height:150px;overflow:hidden;pointer-events:none;padding:0 max(1rem,calc((100vw - 1180px)/2))}
.christmas-hanging-baubles span{position:relative;display:block;width:190px;height:150px;overflow:hidden}
.christmas-hanging-baubles img{position:absolute;top:0;display:block;width:450px;height:150px;max-width:none;object-fit:contain}
.baubles-left img{left:0}.baubles-right img{right:0}
.christmas-art{border-radius:0;width:100%;height:420px;max-width:300px;object-fit:contain}
.christmas-hero{padding-top:.5rem;padding-bottom:2rem;grid-template-columns:minmax(0,1.3fr) minmax(200px,.7fr)}
.christmas-hero h1{font-size:clamp(2.55rem,4.8vw,4rem)}
@media(max-width:800px){.christmas-art{height:340px;max-width:230px}.christmas-hero{grid-template-columns:minmax(0,1fr) 210px}}
@media(max-width:540px){.christmas-hanging-baubles{height:100px;padding:0 .5rem}.christmas-hanging-baubles span{height:100px;width:135px}.christmas-hanging-baubles img{width:300px;height:100px}.christmas-hero{padding-top:.5rem}.christmas-art{width:195px;height:290px}.christmas-hero h1{font-size:2.55rem}}

.christmas-hanging-baubles{position:relative}
.christmas-hanging-baubles .christmas-garland{position:absolute;z-index:1;left:50%;top:-25px;transform:translateX(-50%);width:min(100%,640px);height:auto;max-width:100%;object-fit:contain;object-position:center top}
.christmas-hanging-baubles span{z-index:2}
@media(max-width:540px){.christmas-hanging-baubles .christmas-garland{top:-15px;height:auto;width:100%;object-fit:contain}}

/* A festive train passes between the party extras and group sizes. */
.christmas-train-scene{position:relative;overflow:hidden;height:clamp(180px,24vw,280px);background:#0C1824;border-bottom:2px solid #536150}
.christmas-train{display:block;position:absolute;bottom:0;left:0;width:min(760px,85vw);height:auto;max-width:none;animation:christmas-train-pass 22s linear infinite;animation-delay:-7s;will-change:transform}
@keyframes christmas-train-pass{from{transform:translateX(-100%)}to{transform:translateX(100vw)}}
@media(max-width:540px){.christmas-train-scene{height:170px}.christmas-train{width:480px;animation-duration:18s;animation-delay:-5s}}


.christmas-train{bottom:10px;aspect-ratio:3/1}
.train-body{display:block;width:100%;height:auto;-webkit-clip-path:polygon(0 0,73% 0,73% 23%,88% 23%,88% 19%,93% 19%,93% 0,100% 0,100% 100%,0 100%);clip-path:polygon(0 0,73% 0,73% 23%,88% 23%,88% 19%,93% 19%,93% 0,100% 0,100% 100%,0 100%)}
.train-tracks{position:absolute;left:0;right:0;bottom:5px;height:12px;border-top:3px solid #9B988F;border-bottom:3px solid #E1D6C4;background:repeating-linear-gradient(90deg,transparent 0 18px,#382516 18px 25px,transparent 25px 38px)}
.train-wheel{position:absolute;left:calc(var(--x) - var(--wheel)/2);top:calc(var(--y) - var(--wheel)*1.5);width:var(--wheel);aspect-ratio:1;border-radius:50%;overflow:hidden;animation:train-wheel-turn 1.5s linear infinite;transform-origin:center}
.train-wheel img{position:absolute;max-width:none;width:2174%;height:auto;left:-106.5%;top:-573%;}
.train-steam{position:absolute;inset:0;width:100%;height:100%;max-width:none;clip-path:inset(0 6% 81% 73%);pointer-events:none;animation:train-steam-puff 2.8s ease-out infinite;transform-origin:90% 19%}
.steam-1{animation-delay:-.93s}.steam-2{animation-delay:-1.86s}
@keyframes train-wheel-turn{to{transform:rotate(360deg)}}
@keyframes train-steam-puff{0%{opacity:0;transform:translate(0,3px) scale(.8)}20%{opacity:.85}100%{opacity:0;transform:translate(-38px,-25px) scale(1.15)}}


/* Wispy steam rises from the chimney and disperses behind the engine. */
.train-steam{inset:auto;left:69%;top:-24%;width:25%;height:auto;clip-path:none;transform-origin:90% 90%;animation:train-steam-real 3.6s ease-out infinite;filter:blur(.4px)}
.steam-1{animation-delay:-1.2s}.steam-2{animation-delay:-2.4s}
@keyframes train-steam-real{0%{opacity:0;transform:translate(0,8px) scale(.55)}15%{opacity:.65}45%{opacity:.45}100%{opacity:0;transform:translate(-60px,-30px) scale(1.35)}}


.christmas-snow-dusted{position:relative;background-image:radial-gradient(circle at 12% 14%,#FDFFF9 0 2px,transparent 3px),radial-gradient(circle at 83% 9%,#FDFFF9 0 3px,transparent 4px),radial-gradient(circle at 92% 60%,#FDFFF990 0 2px,transparent 3px),radial-gradient(circle at 4% 82%,#FDFFF990 0 3px,transparent 4px);border-top:4px solid #FDFFF9;border-radius:0}
.christmas-extras{background-color:#0C1824;color:#FDFFF9}.christmas-extras>.eyebrow{color:#FFCEA3}.christmas-extras-grid article{color:#0C1824}
.christmas-snowman{display:block;width:170px;height:250px;object-fit:contain;margin:0 0 1.2rem}
.christmas-enquiry{background-color:#B9CAB8}.christmas-enquiry .hire-form{background:#FDFFF9}
@media(max-width:540px){.christmas-snowman{width:125px;height:180px;margin-bottom:1rem}}

.christmas-closing-garland{background:#0C1824;text-align:center;height:130px;overflow:hidden}.christmas-closing-garland img{width:min(500px,90%);height:auto;display:block;margin:-15px auto 0}
@media(max-width:540px){.christmas-closing-garland{height:100px}}

.christmas-closing-garland{height:auto;overflow:hidden}.christmas-closing-garland img{display:block;width:100%;max-width:none;height:auto;margin:-4.5vw 0 -4vw;object-fit:contain}
@media(max-width:540px){.christmas-closing-garland{height:auto}}
/* Navy and ivory Christmas menu styling. */
.christmas-wrap{padding-block:clamp(2.8rem,5vw,5rem)}
.christmas-included{background:#0C1824;color:#FDFFF9}
.christmas-included h2,.christmas-included h3,.christmas-included .eyebrow,.christmas-included .christmas-price{color:#FDFFF9}
.christmas-included article,.christmas-pricing,.christmas-drink-details{background:#0C1824;color:#FDFFF9;border-color:#536150}
.christmas-home img{display:block;width:64px;height:auto}
.christmas-included .christmas-package-grid article{background:#0C1824;color:#FDFFF9;border:1px solid #536150;border-top:4px solid #AE465D}

/* Explicit geometry and composited movement for mobile Safari. */
.christmas-train{--train-width:min(760px,85vw);width:var(--train-width);height:calc(var(--train-width) / 3);backface-visibility:hidden;-webkit-backface-visibility:hidden}
.train-wheel,.train-steam{will-change:transform,opacity;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.train-steam{filter:none}
@keyframes christmas-train-pass{from{transform:translate3d(-100%,0,0)}to{transform:translate3d(100vw,0,0)}}
@keyframes train-steam-real{0%{opacity:0;transform:translate3d(0,8px,0) scale(.55)}15%{opacity:.65}45%{opacity:.45}100%{opacity:0;transform:translate3d(-60px,-30px,0) scale(1.35)}}
@media(max-width:540px){.christmas-train-scene{height:210px}.christmas-train{--train-width:480px;animation-duration:18s;animation-delay:-5s}}
/* Honour an explicit motion choice without cancelling Play all animations. */
html.reduce-motion .christmas-train{left:50%;transform:translateX(-50%);--train-width:min(760px,95vw);will-change:auto}
html.reduce-motion .train-steam{opacity:0}html.reduce-motion .steam-0{opacity:.45;transform:scale(.9)}
@media(prefers-reduced-motion:reduce){html:not(.full-motion) .christmas-train{left:50%;transform:translateX(-50%);--train-width:min(760px,95vw);will-change:auto}html:not(.full-motion) .train-steam{opacity:0}html:not(.full-motion) .steam-0{opacity:.45;transform:scale(.9)}}

/* Visible route back from both the main site and Christmas subdomain. */
.christmas-header-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.6rem}
.christmas-header-actions .christmas-back-home{background:#AE465D;color:#FDFFF9}
@media(max-width:540px){.christmas-header{gap:.6rem}.christmas-header-actions{gap:.4rem}.christmas-header-actions .button{font-size:.9rem;padding:.6rem .75rem;max-width:none}}
