.christmas-content{--ink:#010f1c;--dark:#010f1c;--cream:#f4f1ea;--copper:#c59d5f;--gold:#c59d5f;--muted:#69675e}.christmas-content *{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}.christmas-content{margin:0;background:var(--cream);color:var(--ink);font-family:var(--body-font);font-size:15px;line-height:1.6}.christmas-content a{color:inherit;text-decoration:none}.christmas-content button,.christmas-content input,.christmas-content select,.christmas-content textarea{font:inherit}.christmas-content button,.christmas-content a,.christmas-content input,.christmas-content select,.christmas-content textarea,.christmas-content summary{-webkit-tap-highlight-color:transparent}.christmas-content a,.christmas-content button,.christmas-content summary{touch-action:manipulation}.christmas-content a:focus-visible,.christmas-content button:focus-visible,.christmas-content summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}.christmas-content h1,.christmas-content h2,.christmas-content h3,.christmas-content p{margin:0}.christmas-content h1,.christmas-content h2,.christmas-content h3{font-family:var(--title-font);font-weight:400;line-height:1.15}.christmas-content h2{font-size:clamp(34px,3.3vw,48px)}.christmas-content em{font-weight:400;color:#a85a34}.christmas-content img{max-width:100%}.christmas-content .eyebrow{text-transform:uppercase;letter-spacing:2.5px;font-size:10px;font-weight:700;color:#9c4e2d}.christmas-content .button{display:inline-flex;justify-content:center;align-items:center;gap:22px;padding:15px 23px;min-height:49px;background:var(--copper);border:1px solid var(--copper);color:white;font-size:12px;font-weight:600;cursor:pointer;border-radius:3px;transition:background .2s,transform .2s}.christmas-content .button:hover{background:#943d21;transform:translateY(-2px)}.christmas-content .button-gold{background:var(--gold);border-color:var(--gold);color:#111b18}.christmas-content .button-gold:hover{background:#dbb979}.christmas-content .button-outline{background:rgba(8,17,14,.3);border-color:#ba9960}.christmas-content .button-outline:hover{background:#17231d}.christmas-content .skip-link{position:fixed;top:-80px;left:20px;background:var(--cream);padding:10px;z-index:100}.christmas-content .skip-link:focus{top:10px}.christmas-content .hero{min-height:625px;position:relative;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--cream);background:linear-gradient(90deg,#07120c45,#060d0ba6 48%,#080e0750),url('../img/christmas/festive-dining.jpg') center 52%/cover;padding:70px 25px 100px}.christmas-content .hero-content{position:relative;z-index:1;max-width:850px}.christmas-content .hero .eyebrow{color:#e2c17e}.christmas-content .festive-rule{display:flex;align-items:center;justify-content:center;gap:15px;color:#cfaa65;margin:17px 0}.christmas-content .festive-rule:before,.christmas-content .festive-rule:after{content:'';height:1px;width:65px;background:#c4a06080}.christmas-content .hero h1{font-size:clamp(48px,5.4vw,80px);letter-spacing:-2px;margin-bottom:18px}.christmas-content .hero h1 span{color:#e4c78f}.christmas-content .hero-subtitle{font:clamp(21px,2.3vw,31px) var(--title-font)}.christmas-content .booking-open{font:clamp(21px,2vw,28px) var(--title-font);margin:9px 0 20px}.christmas-content .hero-description{color:#e4e0d8;font-size:14px}.christmas-content .hero-buttons{display:flex;justify-content:center;gap:14px;margin-top:30px}.christmas-content .guest-seal{position:absolute;right:4%;bottom:80px;border:1px solid #d0ac6c;outline:1px solid #d0ac6c66;outline-offset:6px;border-radius:50%;width:132px;height:132px;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#17201aba;transform:rotate(7deg);color:#eacb8a}.christmas-content .guest-seal strong{font:37px var(--title-font)}.christmas-content .guest-seal span{text-transform:uppercase;font-size:9px;letter-spacing:1.3px}.christmas-content .hero-footnote{position:absolute;bottom:26px;left:0;width:100%;letter-spacing:2.2px;font-size:9px;color:#e0d4bd}.christmas-content .hero-footnote span{margin:0 15px}.christmas-content .highlights{background:var(--ink);color:var(--cream);display:grid;grid-template-columns:repeat(3,1fr);padding:25px max(30px,calc((100vw - 1180px)/2));border-bottom:2px solid var(--gold)}.christmas-content .highlights>div{display:flex;gap:18px;align-items:center;padding:0 27px;border-right:1px solid #ffffff25}.christmas-content .highlights>div:last-child{border:0}.christmas-content .highlight-icon{font:39px var(--title-font);color:#d3975d}.christmas-content .highlights strong{display:block;font-size:14px;font-weight:500}.christmas-content .highlights p>span{display:block;color:#c6cdc6;font-size:11px}.christmas-content .section-pad{padding:65px max(30px,calc((100vw - 1180px)/2))}.christmas-content .section-heading{text-align:center;margin-bottom:35px}.christmas-content .section-heading h2{margin:10px 0 17px}.christmas-content .section-heading>p:last-child{font-size:14px;color:var(--muted)}.christmas-content .occasion-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.christmas-content .occasion{min-height:270px;position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:15px;padding:30px;color:white;border-radius:4px;overflow:hidden;background:linear-gradient(0deg,#04120bf2,transparent),url('../img/christmas/festive-dining.jpg') 10% 70%/cover;transition:transform .25s}.christmas-content .occasion:hover{transform:translateY(-4px)}.christmas-content .family{background-position:90% 75%}.christmas-content .occasion .eyebrow{color:#e7bb7b;font-size:9px;margin-bottom:9px}.christmas-content .occasion h3{font-size:26px;margin-bottom:10px}.christmas-content .occasion p:last-child{font-size:11px;color:#deded3;max-width:330px}.christmas-content .circle-arrow{border:1px solid #d4b77b;border-radius:50%;width:37px;height:37px;flex-shrink:0;display:grid;place-items:center;font-size:21px}.christmas-content .christmas-menu{padding-top:25px;background:radial-gradient(ellipse at bottom left,#e8d8b84d,transparent 55%),var(--cream)}.christmas-content .menu-top{border-top:1px solid #d9ccb4;padding-top:45px;display:flex;justify-content:space-between;align-items:center;gap:30px}.christmas-content .menu-top h2{margin:10px 0 18px}.christmas-content .menu-price{text-transform:uppercase;color:#944725;letter-spacing:2px;font-size:12px;font-weight:600}.christmas-content .menu-price span{border-left:1px solid #b48a58;margin-left:14px;padding-left:14px}.christmas-content .button-download{background:transparent;color:#713c25;border-color:#b88859;gap:12px}.christmas-content .button-download:hover{background:#eadbc6}.christmas-content .button-download small{font-size:9px;border-left:1px solid #b88859;padding-left:12px}.christmas-content .button-download>span{font-size:23px;line-height:1}.christmas-content .menu-grid{display:grid;grid-template-columns:1fr 1fr 1fr;margin:38px 0 30px}.christmas-content .menu-course{padding:0 35px;border-right:1px solid #d8c8aa}.christmas-content .menu-course:first-child{padding-left:0}.christmas-content .menu-course:last-child{padding-right:0;border:0}.christmas-content .course-number{font:20px var(--title-font);color:#b99060;margin-bottom:10px}.christmas-content .menu-course h3{font-size:22px;color:#894021}.christmas-content .choose{text-transform:uppercase;font-size:9px;letter-spacing:2px;margin-top:6px;color:#6f675c}.christmas-content .menu-course dl{margin:23px 0 0}.christmas-content .menu-course dl div{margin-bottom:19px}.christmas-content .menu-course dt{font-size:14px;font-weight:600;line-height:1.5}.christmas-content .menu-course dd{font-size:12px;color:#736c60;margin:3px 0 0}.christmas-content .vegetarian{color:#99522e}.christmas-content .menu-notes{text-align:center;border-top:1px solid #d9ccb4;padding-top:25px;font-size:12px}.christmas-content .menu-notes p+p{color:#736c60;font-size:11px;margin-top:9px}.christmas-content .how-to{background:var(--ink);color:var(--cream);padding-top:45px;padding-bottom:45px}.christmas-content .how-to .eyebrow{color:#d2a16d}.christmas-content .how-to h2{font-size:34px}.christmas-content .steps{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;padding:0;gap:28px;margin:0}.christmas-content .steps li{display:flex;gap:15px;align-items:flex-start}.christmas-content .steps li>span{color:#d5aa6e;border:1px solid #92754b;border-radius:50%;width:42px;height:42px;flex-shrink:0;display:grid;place-items:center;font:20px var(--title-font)}.christmas-content .steps h3{font-family:var(--body-font);font-size:13px;margin:4px 0 8px}.christmas-content .steps p{font-size:11px;color:#c4cac1}.christmas-content .enquiry{display:grid;grid-template-columns:.85fr 1.15fr;background:#0e1a16;color:var(--cream);border-top:1px solid #a08246}.christmas-content .enquiry-picture{background:linear-gradient(180deg,#06120b8a,transparent 80%),url('../img/christmas/festive-dining.jpg') 27% center/cover;min-height:680px;padding:65px 50px}.christmas-content .enquiry-picture .eyebrow{color:#ebc489;margin-bottom:22px}.christmas-content .enquiry-picture h2{font-size:48px}.christmas-content .enquiry-picture em{color:#eed0a0}.christmas-content .enquiry-picture>p:last-child{font-size:14px;margin-top:22px;color:#e4ddcc}.christmas-content .enquiry-content{padding:50px clamp(28px,4vw,65px)}.christmas-content .enquiry-content>.eyebrow{color:#d4a16a}.christmas-content .enquiry-content h2{font-size:36px;margin:10px 0 12px}.christmas-content .enquiry-content>p:last-of-type{font-size:13px;color:#c7ccc4}.christmas-content .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 16px;margin-top:26px}.christmas-content label{display:block;font-size:11px;color:#e1ddcf}.christmas-content label>span{color:#e7b574}.christmas-content input,.christmas-content select,.christmas-content textarea{display:block;width:100%;color:#f5f0e6;background:#1f2c25;border:1px solid #455046;border-radius:3px;padding:11px 12px;font-size:12px;margin-top:6px;min-height:42px;color-scheme:dark}.christmas-content textarea{resize:vertical}.christmas-content input::placeholder,.christmas-content textarea::placeholder{color:#aeb7ad;opacity:1}.christmas-content input:focus,.christmas-content select:focus,.christmas-content textarea:focus{outline:2px solid #c4a060;outline-offset:2px}.christmas-content .form-note{font-size:10px;color:#b9c0b5;margin:20px 0 16px;line-height:1.7}.christmas-content .form-note a{text-decoration:underline}.christmas-content .submit-button{width:100%}.christmas-content .submit-button:disabled{opacity:.65;cursor:wait;transform:none}.christmas-content #form-status{font-size:13px;margin-top:12px}.christmas-content #form-status[data-state=error]{color:#ffc0a4}.christmas-content #form-status[data-state=success]{color:#bce3b1}
@media(min-width:1500px){.hero{min-height:700px}}
@media(max-width:1150px){.christmas-content .guest-seal{right:25px;bottom:55px;width:108px;height:108px}.christmas-content .guest-seal strong{font-size:30px}.christmas-content .guest-seal span{font-size:8px}.christmas-content .hero h1{font-size:64px}.christmas-content .highlights>div{padding:0 15px;gap:10px}.christmas-content .highlights strong{font-size:12px}.christmas-content .highlights p>span{font-size:10px}.christmas-content .enquiry-picture{padding:50px 30px}.christmas-content .steps{gap:18px}.christmas-content .steps li{gap:10px}}
@media(max-width:800px){.christmas-content .hero{min-height:630px;padding:65px 24px 155px}.christmas-content .hero h1{font-size:56px}.christmas-content .guest-seal{width:86px;height:86px;bottom:40px;right:calc(50% - 43px)}.christmas-content .guest-seal strong{font-size:26px}.christmas-content .guest-seal span{font-size:6px}.christmas-content .hero-footnote{display:none}.christmas-content .highlights{padding:20px;gap:20px}.christmas-content .highlights>div{padding:0 8px;gap:8px}.christmas-content .highlight-icon{display:none}.christmas-content .highlights strong{font-size:12px}.christmas-content .highlights p>span{font-size:10px}.christmas-content .section-pad{padding:45px 25px}.christmas-content .occasion{min-height:260px;padding:23px}.christmas-content .occasion h3{font-size:25px}.christmas-content .occasion p:last-child{font-size:10px}.christmas-content .occasion .circle-arrow{width:30px;height:30px}.christmas-content .occasion-grid{gap:16px}.christmas-content .menu-top{align-items:flex-start;flex-direction:column;padding-top:0;border:0;gap:24px}.christmas-content .menu-grid{grid-template-columns:1fr 1fr;gap:30px}.christmas-content .menu-course{padding:0 20px 0 0}.christmas-content .menu-course:nth-child(2){border:0;padding:0}.christmas-content .menu-course:last-child{grid-column:1/-1;padding:25px 0 0;border-top:1px solid #d8c8aa}.christmas-content .steps{grid-template-columns:1fr 1fr;gap:28px}.christmas-content .enquiry{grid-template-columns:1fr}.christmas-content .enquiry-picture{min-height:340px;padding:45px 30px;background-position:center 55%}.christmas-content .enquiry-picture h2{font-size:44px}.christmas-content .enquiry-content{padding:40px 30px}}
@media(max-width:480px){.christmas-content .hero{min-height:655px;padding-top:45px}.christmas-content .hero h1{font-size:48px;line-height:1.05;letter-spacing:-1.5px}.christmas-content .hero h1 span{display:block;margin-top:8px}.christmas-content .hero-subtitle{font-size:22px;line-height:1.35}.christmas-content .booking-open{font-size:21px}.christmas-content .hero .eyebrow{font-size:8px;letter-spacing:2px}.christmas-content .hero-description{font-size:12px}.christmas-content .hero-buttons{flex-direction:column;align-items:stretch;gap:10px;max-width:290px;margin:24px auto 0}.christmas-content .highlights{grid-template-columns:1fr;padding:7px 25px;gap:0}.christmas-content .highlights>div{padding:13px 0;border-right:0;border-bottom:1px solid #ffffff20;gap:17px}.christmas-content .highlight-icon{display:block;width:32px;font-size:30px;text-align:center}.christmas-content .highlights strong{font-size:13px}.christmas-content .highlights p>span{font-size:11px}.christmas-content .section-pad{padding:42px 22px}.christmas-content .section-heading>p:last-child{font-size:12px}.christmas-content .desktop-break{display:none}.christmas-content .occasion-grid{grid-template-columns:1fr}.christmas-content .occasion{min-height:250px}.christmas-content .occasion h3{font-size:26px}.christmas-content .menu-top h2{font-size:35px}.christmas-content .menu-top .eyebrow{font-size:8px}.christmas-content .menu-price{font-size:10px;letter-spacing:1px}.christmas-content .menu-price span{margin-left:8px;padding-left:8px}.christmas-content .menu-grid{grid-template-columns:1fr;gap:25px}.christmas-content .menu-course,.christmas-content .menu-course:nth-child(2),.christmas-content .menu-course:last-child{padding:0 0 24px;border:0;border-bottom:1px solid #d8c8aa}.christmas-content .menu-course:last-child{padding-bottom:0;border:0}.christmas-content .menu-course dl{margin-top:18px}.christmas-content .menu-course dl div{margin-bottom:16px}.christmas-content .menu-notes{font-size:11px}.christmas-content .steps{grid-template-columns:1fr;gap:23px}.christmas-content .how-to h2{font-size:31px}.christmas-content .steps li{gap:18px}.christmas-content .steps p{font-size:12px}.christmas-content .enquiry-content{padding:38px 22px}.christmas-content .enquiry-content h2{font-size:33px}.christmas-content .form-grid{grid-template-columns:1fr;gap:16px}.christmas-content input,.christmas-content select,.christmas-content textarea{font-size:16px}.christmas-content label{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.christmas-content *{transition:none!important}}
/* Match the established KOYLA theme and typography. */
.christmas-page>.skip-link{position:fixed;top:-80px;left:20px;z-index:10000;background:#f4f1ea;padding:12px;color:#010f1c}.christmas-page>.skip-link:focus{top:12px}.christmas-page .header-main .main-menu ul li:focus-within>.submenu{opacity:1;visibility:visible;transform:translateY(0)}.christmas-content h1,.christmas-content h2,.christmas-content h3{font-weight:700;color:inherit;text-transform:none;line-height:1.3}.christmas-content h2{font-size:clamp(30px,3vw,42px);letter-spacing:-1px}.christmas-content em{color:var(--gold);font-style:normal;font-weight:700}.christmas-content .eyebrow{color:#94703e;font-size:11px}.christmas-content .button{border-radius:9px;font-size:14px;padding:16px 24px}.christmas-content .button:hover{background:#a77f43}.christmas-content .hero{min-height:780px;padding-top:190px;background-image:linear-gradient(90deg,#010f1c70,#010f1cb0 50%,#010f1c55),url('../img/christmas/festive-dining.jpg')}.christmas-content .hero h1{font-size:clamp(42px,5.2vw,70px);font-weight:700;letter-spacing:-2.5px}.christmas-content .hero-subtitle{font:600 clamp(18px,2vw,25px)/1.6 var(--body-font)}.christmas-content .booking-open{font:500 20px/1.6 var(--body-font)}.christmas-content .hero .eyebrow{color:#e1bf87}.christmas-content .hero-description{font-size:14px}.christmas-content .guest-seal{background:#010f1cb0;transform:none}.christmas-content .guest-seal strong{font:700 32px/1.5 var(--title-font)}.christmas-content .highlights strong{font-weight:700}.christmas-content .occasion{border-radius:13px;background-image:linear-gradient(0deg,#010f1cf0,transparent),url('../img/christmas/festive-dining.jpg')}.christmas-content .occasion h3{font-size:24px}.christmas-content .christmas-menu{background:#fff;padding-top:65px;padding-bottom:65px}.christmas-content .menu-top{border:0;padding:0;margin-bottom:35px}.christmas-content .menu-top h2{max-width:650px;margin:12px 0 20px}.christmas-content .menu-price{color:#87612d}.christmas-content .button-download{background:var(--ink);color:white;border-color:var(--ink);white-space:nowrap}.christmas-content .button-download:hover{background:#203343}.christmas-content .button-download small{border-color:#ffffff50}.christmas-content .menu-grid{grid-template-columns:1fr 1fr;gap:25px;margin:0}.christmas-content .menu-course,.christmas-content .menu-course:first-child,.christmas-content .menu-course:nth-child(2){position:relative;padding:32px 32px 14px;border:1px solid #e5d8c1;border-radius:14px;background:linear-gradient(130deg,#f8f5ef,#fff);box-shadow:0 12px 40px #010f1c06;overflow:hidden}.christmas-content .menu-course:before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gold)}.christmas-content .course-icon{float:right;display:grid;place-items:center;width:50px;height:50px;border:1px solid #e3cfaa;background:#f5ecdd;color:#997239;border-radius:50%;font-size:22px}.christmas-content .menu-course h3{font-size:25px;color:var(--ink)}.christmas-content .choose{font-size:10px;color:#93703f;font-weight:600;margin-top:8px}.christmas-content .menu-course dl{margin:24px 0 0}.christmas-content .menu-course dl>div{padding:19px 0;margin:0;border-top:1px solid #e8dfd0}.christmas-content .menu-course dt{font-size:15px;font-weight:700;line-height:1.6}.christmas-content .menu-course dd{font-size:12px;line-height:1.8;margin:0}.christmas-content .menu-course .dish-ingredients{color:#99703b;margin-top:4px;font-weight:500}.christmas-content .menu-course .dish-description{color:var(--text);margin-top:7px;max-width:480px}.christmas-content .vegetarian{color:#5a7845;font-size:11px}.christmas-content .menu-course:last-child{grid-column:1/-1;background:var(--ink);color:#fff;padding:28px 32px;border:0;display:grid;grid-template-columns:auto 155px 1fr;align-items:center;gap:0 24px}.christmas-content .menu-course:last-child:before{display:none}.christmas-content .menu-course:last-child .course-icon{grid-row:1/3;float:none;background:#c59d5f15;border-color:#c59d5f66;color:#dcb578}.christmas-content .menu-course:last-child h3{grid-column:2;color:#fff}.christmas-content .menu-course:last-child .choose{grid-column:2;color:#d1b17e}.christmas-content .menu-course:last-child dl{grid-column:3;grid-row:1/3;margin:0;border-left:1px solid #ffffff22;padding-left:28px}.christmas-content .menu-course:last-child dl>div{border:0;padding:0}.christmas-content .menu-course:last-child .dish-ingredients{color:#dcba80}.christmas-content .menu-course:last-child .dish-description{color:#bac3cc;max-width:650px}.christmas-content .menu-notes{border:0;margin-top:28px;padding:0;font-size:12px;color:var(--text)}.christmas-content .menu-notes .preorder-note{font-size:12px;font-weight:700;color:var(--ink);margin-bottom:12px}.christmas-content .how-to{background:var(--cream);color:var(--ink);padding-top:65px;padding-bottom:65px}.christmas-content .how-to .eyebrow{color:#94703e}.christmas-content .how-to h2{font-size:clamp(30px,3vw,40px)}.christmas-content .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.christmas-content .steps li{display:block;border:1px solid #e0d6c4;border-radius:12px;background:#fff;padding:26px 23px;box-shadow:0 6px 22px #010f1c04}.christmas-content .step-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.christmas-content .step-icon{background:#f6eddf;color:#a37b40;display:grid;place-items:center;width:49px;height:49px;border-radius:12px;font-size:22px}.christmas-content .step-number{font-size:29px;font-weight:700;color:#dac8a9;line-height:1}.christmas-content .steps h3{font-family:var(--title-font);font-size:17px;font-weight:800;color:var(--ink);margin:0 0 12px;line-height:1.5}.christmas-content .steps p{font-size:13px;font-weight:400;line-height:1.9;color:var(--text)}.christmas-content .enquiry{background:var(--ink)}.christmas-content .enquiry-picture{background-image:linear-gradient(180deg,#010f1caa,transparent 80%),url('../img/christmas/festive-dining.jpg')}.christmas-content .enquiry-picture h2{font-size:42px}.christmas-content .enquiry-content>.eyebrow{color:#d5af74}.christmas-content label{font-size:12px;font-weight:600}.christmas-content input,.christmas-content select,.christmas-content textarea{background:#122330;border-color:#3a4852;border-radius:7px;font-weight:400;color:#fff}.christmas-content input:focus{color:white}
@media(max-width:1100px){.christmas-content .steps{grid-template-columns:1fr 1fr}}
@media(max-width:800px){.christmas-content .hero{padding-top:165px;min-height:790px}.christmas-content .menu-course,.christmas-content .menu-course:first-child,.christmas-content .menu-course:nth-child(2){padding:26px 23px 12px}.christmas-content .course-icon{width:38px;height:38px;font-size:18px}.christmas-content .menu-course h3{font-size:22px}.christmas-content .menu-course:last-child{grid-template-columns:auto 1fr;padding:25px;gap:0 20px}.christmas-content .menu-course:last-child dl{grid-column:1/-1;grid-row:3;border-left:0;border-top:1px solid #ffffff25;padding:20px 0 0;margin-top:22px}.christmas-content .enquiry-picture h2{font-size:38px}}
@media(max-width:520px){.christmas-content .hero{min-height:800px;padding-top:150px}.christmas-content .hero h1{font-size:42px;letter-spacing:-1.5px}.christmas-content .hero h1 span{display:block}.christmas-content .hero-subtitle{font-size:18px}.christmas-content .booking-open{font-size:17px}.christmas-content .hero .eyebrow{font-size:9px;letter-spacing:1.5px}.christmas-content .hero-buttons{flex-direction:column}.christmas-content .menu-grid,.christmas-content .steps{grid-template-columns:1fr}.christmas-content .menu-course:last-child{grid-column:auto}.christmas-content .steps li{padding:24px}.christmas-content .step-top{margin-bottom:17px}.christmas-content .steps h3{font-size:18px;margin-bottom:8px}.christmas-content .form-grid{grid-template-columns:1fr}.christmas-content .enquiry-picture h2{font-size:35px}}
/* Supporting copy uses Roboto, already included by the site's font stylesheet. */
.christmas-content .hero-description,
.christmas-content .section-heading > p:last-child,
.christmas-content .occasion p:last-child,
.christmas-content .dish-description,
.christmas-content .menu-notes,
.christmas-content .steps p,
.christmas-content .enquiry-content > p:last-of-type,
.christmas-content .enquiry-picture > p:last-child {
  font-family: "Roboto", var(--body-font), sans-serif;
  font-weight: 400;
  letter-spacing: .15px;
  line-height: 1.8;
}
.christmas-content .hero-description { font-size: 17px; }
.christmas-content .section-heading > p:last-child,
.christmas-content .steps p { font-size: 15px; }
.christmas-content .button-outline:hover,
.christmas-content .button-outline:focus-visible {
  color: #010f1c;
  background: #c59d5f;
  border-color: #c59d5f;
}
@media (max-width: 520px) {
  .christmas-content .hero-description { font-size: 15px; }
}
/* Override the shared theme's !important gold link hover on filled buttons. */
.christmas-content .button:hover { color: #fff !important; }
.christmas-content .button-outline:hover,
.christmas-content .button-outline:focus-visible { color: #010f1c !important; }
/* Original compact numbered steps, in the current cream/navy/gold palette. */
.christmas-content .how-to { padding-top: 48px; padding-bottom: 48px; }
.christmas-content .steps { gap: 28px; }
.christmas-content .steps li {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.christmas-content .steps li > .step-number {
  flex: 0 0 46px;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 1px solid #b48b50;
  border-radius: 50%;
  background: transparent;
  color: #94703e;
  font-family: var(--title-font);
  font-size: 18px;
  font-weight: 600;
}
.christmas-content .steps .step-copy { min-width: 0; }
.christmas-content .steps h3 { margin: 2px 0 9px; font-size: 16px; font-weight: 700; }
.christmas-content .steps p { font-size: 14px; line-height: 1.8; }
@media (max-width: 520px) {
  .christmas-content .steps { gap: 25px; }
  .christmas-content .steps li { padding: 0; gap: 18px; }
}
/* Desktop hero: fit the visible screen so the buttons and guest seal aren't cut off on shorter laptop screens. */
@media (min-width: 801px) {
  .christmas-content .hero { min-height: clamp(600px, 100svh, 780px); padding-top: 145px; padding-bottom: 90px; }
  .christmas-content .hero h1 { margin-bottom: 12px; }
  .christmas-content .hero-buttons { margin-top: 22px; }
}
/* Phones and tablets: readable minimum text sizes. Tiny 6-9px labels were hard to read and got
   enlarged by browsers' minimum font size, which broke the layout (e.g. the guest seal). */
@media (max-width: 800px) {
  .christmas-content .eyebrow,
  .christmas-content .hero .eyebrow,
  .christmas-content .menu-top .eyebrow { font-size: 11px; letter-spacing: 1.8px; line-height: 1.6; }
  .christmas-content .occasion .eyebrow { font-size: 10.5px; letter-spacing: 1.6px; }
  .christmas-content .occasion p:last-child { font-size: 13px; line-height: 1.6; }
  .christmas-content .highlights p > span { font-size: 12.5px; }
  .christmas-content .choose,
  .christmas-content .menu-price { font-size: 11px; }
  .christmas-content .menu-notes,
  .christmas-content .menu-notes p + p,
  .christmas-content .vegetarian,
  .christmas-content label { font-size: 12.5px; }
  .christmas-content .form-note { font-size: 12px; }
  .christmas-content .button-download small { font-size: 10px; }
  /* Guest seal becomes a pill below the buttons, sized by its text, so a larger
     browser font size can't push the words outside a fixed circle. */
  .christmas-content .hero { flex-direction: column; min-height: 0; padding-bottom: 56px; }
  .christmas-content .guest-seal {
    position: static; width: auto; height: auto; margin: 30px auto 0;
    flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 4px 10px;
    padding: 10px 22px; border-radius: 999px; outline-offset: 4px;
  }
  .christmas-content .guest-seal strong { font-size: 24px; line-height: 1.2; white-space: nowrap; }
  .christmas-content .guest-seal span { font-size: 11px; line-height: 1.3; letter-spacing: 1.2px; white-space: nowrap; }
}@media (max-width: 380px) {
  .christmas-content .guest-seal { border-radius: 22px; padding: 10px 24px 12px; }
  .christmas-content .guest-seal span:first-of-type { flex-basis: 100%; text-align: center; }
}
/* Christmas page photos, one file per area. To use real restaurant photos, replace these
   files in assets/img/christmas/ keeping the same names (sizes are listed in IMAGES.txt there). */
.christmas-content .hero { background-image: linear-gradient(90deg,#010f1c70,#010f1cb0 50%,#010f1c55), url('../img/christmas/christmas-hero.jpg'); }
.christmas-content .occasion.corporate { background-image: linear-gradient(0deg,#010f1cf0,transparent), url('../img/christmas/corporate-party.jpg'); }
.christmas-content .occasion.family { background-image: linear-gradient(0deg,#010f1cf0,transparent), url('../img/christmas/family-gathering.jpg'); }
.christmas-content .enquiry-picture { background-image: linear-gradient(180deg,#010f1caa,transparent 80%), url('../img/christmas/enquiry.jpg'); }
/* ---------- Festive garland ornament (assets/img/christmas/garland.svg) ---------- */
.christmas-content .garland {
  width: min(480px, 100%); aspect-ratio: 480 / 64; margin: 0 auto 30px;
  background: url('../img/christmas/garland.svg') center / contain no-repeat;
}
.christmas-content .holly-divider {
  width: min(260px, 100%); aspect-ratio: 300 / 40; margin: 26px 0;
  background: url('../img/christmas/holly-divider.svg') center / contain no-repeat;
}

/* ---------- Menu: printed-menu feel ---------- */
.christmas-content .christmas-menu {
  background:
    radial-gradient(circle at 8% 12%, #c59d5f14 0 120px, transparent 121px),
    radial-gradient(circle at 94% 88%, #c59d5f12 0 160px, transparent 161px),
    #fbf8f2;
}
.christmas-content .menu-course::after {
  content: ''; position: absolute; inset: 8px; border: 1px solid #c59d5f33; border-radius: 10px; pointer-events: none;
}
.christmas-content .menu-course:last-child::after { border-color: #c59d5f40; }
.christmas-content .menu-course dt::before { content: '✦'; margin-right: 8px; color: var(--gold); font-size: 10px; vertical-align: 2px; }
.christmas-content .menu-served-with {
  margin: 30px auto 0; text-align: center; color: #87632e;
  font: 600 14px/1.6 var(--body-font); letter-spacing: .3px;
}
.christmas-content .menu-served-with span { margin: 0 8px; font-size: 10px; vertical-align: 2px; }

/* ---------- Christmas FAQ ---------- */
.christmas-content .christmas-faq {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 70px; align-items: start;
  background: var(--cream);
}
.christmas-content .faq-intro { position: sticky; top: 120px; }
.christmas-content .faq-intro h2 { margin: 12px 0 16px; font-size: 44px; line-height: 1.15; }
.christmas-content .faq-intro h2 em { font-style: normal; color: var(--gold); }
.christmas-content .faq-intro > p:not(.eyebrow) { color: var(--muted); font: 400 15px/1.75 "Roboto", var(--body-font), sans-serif; max-width: 380px; }
.christmas-content .faq-help {
  display: flex; flex-direction: column; gap: 6px; max-width: 340px; padding: 22px 24px;
  border: 1px solid #e3d6bf; border-radius: 14px; background: #fff;
}
.christmas-content .faq-help p { margin: 0 0 4px; font-weight: 700; color: var(--ink); }
.christmas-content .faq-help a { color: #87632e; font-weight: 600; text-decoration: none; }
.christmas-content .faq-help a:hover { color: var(--ink) !important; text-decoration: underline; }

.christmas-content .faq-list details {
  margin-bottom: 12px; border: 1px solid #e6dac5; border-radius: 12px; background: #fff;
  transition: border-color .2s, box-shadow .2s;
}
.christmas-content .faq-list details[open] { border-color: #c59d5f; box-shadow: 0 14px 34px #010f1c0d; }
.christmas-content .faq-list summary {
  position: relative; display: block; padding: 20px 64px 20px 24px; cursor: pointer; list-style: none;
  font: 700 16px/1.45 var(--body-font); color: var(--ink);
}
.christmas-content .faq-list summary::-webkit-details-marker { display: none; }
.christmas-content .faq-list summary::after {
  content: ''; position: absolute; right: 20px; top: 50%; width: 30px; height: 30px; margin-top: -15px;
  border: 1px solid #d9c49f; border-radius: 50%;
  background:
    linear-gradient(#94703e, #94703e) center / 12px 1.5px no-repeat,
    linear-gradient(#94703e, #94703e) center / 1.5px 12px no-repeat;
  transition: transform .25s, background-color .2s;
}
.christmas-content .faq-list details[open] summary::after {
  transform: rotate(180deg); background-color: #c59d5f;
  background-image: linear-gradient(#fff, #fff), linear-gradient(transparent, transparent);
}
.christmas-content .faq-list summary:hover { color: #87632e; }
.christmas-content .faq-list summary:focus-visible { outline: 3px solid #c59d5f; outline-offset: 3px; border-radius: 12px; }
.christmas-content .faq-answer { padding: 0 24px 22px; }
.christmas-content .faq-answer p { margin: 0; padding-top: 14px; border-top: 1px solid #efe6d6; color: var(--text); font: 400 15px/1.75 "Roboto", var(--body-font), sans-serif; }
.christmas-content .faq-answer strong { color: var(--ink); }
.christmas-content .faq-answer a { color: #87632e; font-weight: 600; }
.christmas-content .faq-answer .faq-link { display: inline-block; margin-top: 10px; text-decoration: none; }

@media (max-width: 991px) {
  .christmas-content .christmas-faq { grid-template-columns: 1fr; gap: 32px; }
  .christmas-content .faq-intro { position: static; text-align: center; }
  .christmas-content .faq-intro > p:not(.eyebrow), .christmas-content .faq-help { margin-left: auto; margin-right: auto; }
  .christmas-content .holly-divider { margin: 22px auto; }
  .christmas-content .faq-help { align-items: center; }
}
@media (max-width: 520px) {
  .christmas-content .faq-intro h2 { font-size: 34px; }
  .christmas-content .faq-list summary { padding: 17px 56px 17px 18px; font-size: 15px; }
  .christmas-content .faq-list summary::after { right: 14px; width: 28px; height: 28px; margin-top: -14px; }
  .christmas-content .faq-answer { padding: 0 18px 18px; }
  .christmas-content .faq-answer p { font-size: 14px; }
  .christmas-content .menu-served-with { font-size: 13px; }
  .christmas-content .garland { margin-bottom: 22px; }
}.christmas-content .christmas-faq { border-top: 1px solid #e6dac5; }
.christmas-content section[id] { scroll-margin-top: 100px; }
/* ---------- Enquiry section: waving Santa (photo panel) and Christmas tree (form) ---------- */
.christmas-content .enquiry-picture { position: relative; overflow: hidden; }
.christmas-content .enquiry-santa {
  position: absolute; right: 28px; bottom: 0; width: 170px; height: auto; pointer-events: none;
  filter: drop-shadow(0 10px 24px #0008);
  transform: translateY(105%); transition: transform 1.2s cubic-bezier(.25, 1.2, .4, 1) .2s;
}
.christmas-content .enquiry-content { position: relative; }
.christmas-content .enquiry-tree {
  position: absolute; top: 34px; right: clamp(24px, 4vw, 60px); width: 118px; height: auto; pointer-events: none;
  filter: drop-shadow(0 8px 18px #0007);
  opacity: 0; transform: translateY(16px) scale(.94); transition: opacity 1.2s ease .3s, transform 1.2s ease .3s;
}
.christmas-content .enquiry.is-visible .enquiry-santa { transform: none; }
.christmas-content .enquiry.is-visible .enquiry-tree { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .christmas-content .enquiry-santa, .christmas-content .enquiry-tree { transition: none; transform: none; opacity: 1; }
}
@media (max-width: 991px) {
  .christmas-content .enquiry-santa { width: 130px; right: 20px; }
}
@media (max-width: 520px) {
  .christmas-content .enquiry-santa { width: 110px; right: 12px; }
  .christmas-content .enquiry-tree { top: 30px; right: 16px; width: 70px; }
  .christmas-content .enquiry-content > .eyebrow,
  .christmas-content .enquiry-content > h2,
  .christmas-content .enquiry-content > h2 + p { padding-right: 78px; }
}
/* ---------- Festive theme: fairy lights, snow, gifts and trees ---------- */
.christmas-content .festive-lights {
  position: absolute; left: 0; right: 0; height: 44px; z-index: 1; pointer-events: none;
  background: url('../img/christmas/fairy-lights.svg') repeat-x 0 0 / auto 44px;
}
.christmas-content .hero .festive-lights { top: 100px; }
.christmas-content .how-to { position: relative; }
.christmas-content .how-to .festive-lights { top: 0; }

/* Gentle snowfall over the hero photo: two layers moved with transform (GPU-composited,
   no repainting), each exactly one tile per loop so the animation is seamless. */
.christmas-content .snow { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.christmas-content .snow::before, .christmas-content .snow::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; will-change: transform;
  background-image:
    radial-gradient(2px 2px at 20px 30px, #fff, transparent),
    radial-gradient(1.5px 1.5px at 90px 120px, #fff, transparent),
    radial-gradient(2.5px 2.5px at 160px 60px, #ffffffcc, transparent),
    radial-gradient(1.5px 1.5px at 230px 170px, #fff, transparent),
    radial-gradient(2px 2px at 300px 90px, #ffffffb0, transparent);
}
.christmas-content .snow::before { top: -220px; background-size: 340px 220px; opacity: .55; animation: snow-fall 20s linear infinite; }
.christmas-content .snow::after { top: -360px; background-size: 520px 360px; opacity: .45; animation: snow-fall-slow 32s linear infinite; }
@keyframes snow-fall { to { transform: translateY(220px); } }
@keyframes snow-fall-slow { to { transform: translateY(360px); } }

/* "More than a meal" heading: tree on the left, gifts on the right. */
.christmas-content .celebrations .section-heading { position: relative; }
.christmas-content .heading-tree, .christmas-content .heading-gifts { position: absolute; bottom: 0; height: auto; pointer-events: none; }
.christmas-content .heading-gifts { left: calc(50% - 490px); width: 170px; }
.christmas-content .heading-tree { right: calc(50% - 480px); width: 120px; }

@media (min-width: 801px) {
  .christmas-content .hero { padding-top: 165px; }
}
@media (max-width: 1099px) {
  .christmas-content .heading-tree, .christmas-content .heading-gifts { display: none; }
}
@media (max-width: 800px) {
  .christmas-content .hero .festive-lights { top: 84px; height: 36px; background-size: auto 36px; }
}
@media (max-width: 640px) {
  .christmas-content .festive-lights { height: 34px; background-size: auto 34px; }
}
@media (prefers-reduced-motion: reduce) {
  .christmas-content .snow::before, .christmas-content .snow::after { animation: none; }
}@media (min-width: 801px) {
  .christmas-content .festive-lights { height: 54px; background-size: auto 54px; }
  .christmas-content .hero .festive-lights { top: 96px; }
}.christmas-content .how-to { padding-top: 84px; }
@media (max-width: 800px) { .christmas-content .how-to { padding-top: 64px; } }

/* ---------- Menu: Santa waving from the Dessert card ---------- */
.christmas-content .menu-santa {
  position: absolute; right: 26px; bottom: 0; width: 118px; height: auto; pointer-events: none;
  filter: drop-shadow(0 8px 18px #0008);
  transform: translateY(105%); transition: transform 1.2s cubic-bezier(.25, 1.2, .4, 1) .2s;
}
.christmas-content .menu-course.is-visible .menu-santa { transform: none; }
/* Keep the dessert text clear of Santa on desktop. */
.christmas-content .menu-course:last-child dl { padding-right: 130px; }
@media (max-width: 800px) {
  .christmas-content .menu-course:last-child dl { padding-right: 0; }
  /* Phones/tablets: Santa sits top-right beside the "Dessert" title and fades in. */
  .christmas-content .menu-santa {
    top: 12px; bottom: auto; right: 16px; width: 64px;
    opacity: 0; transform: translateY(-10px); transition: opacity 1s ease .2s, transform 1s ease .2s;
  }
  .christmas-content .menu-course.is-visible .menu-santa { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .christmas-content .menu-santa { transition: none; transform: none; opacity: 1; }
}
/* ---------- Menu: Santa sitting on the top edge of the menu cards, holding a menu ---------- */
.christmas-content .menu-top { position: relative; }
.christmas-content .menu-sitting-santa {
  /* Seat line is 79% down the image; bottom offset = card gap (35px) + part below the seat. */
  position: absolute; right: 262px; bottom: -67px; width: 130px; height: auto; z-index: 2; pointer-events: none;
  filter: drop-shadow(0 10px 14px #010f1c26);
  opacity: 0; transform: translateY(-40px); transition: opacity .6s ease .3s, transform .9s cubic-bezier(.3, 1.5, .5, 1) .3s;
}
.christmas-content .menu-top.is-visible .menu-sitting-santa { opacity: 1; transform: none; }
@media (max-width: 800px) {
  .christmas-content .menu-sitting-santa { right: 6px; bottom: -59px; width: 96px; }
}
@media (prefers-reduced-motion: reduce) {
  .christmas-content .menu-sitting-santa { transition: none; opacity: 1; transform: none; }
}
/* ---------- Hero: Christmas tree in the bottom-left corner ---------- */
.christmas-content .hero-tree {
  position: absolute; bottom: 0; left: 3%; width: 130px; height: auto; z-index: 1; pointer-events: none;
  filter: drop-shadow(0 8px 16px #0009);
}

/* ---------- Hero: Santa sitting on top of the "Gather together 30-50" circle ---------- */
.christmas-content .seal-santa {
  /* The image ends at his seat, so he rests on the thin outer ring with nothing inside the circle. */
  position: absolute; left: 50%; top: -102px; width: 100px; height: auto; margin-left: -50px; pointer-events: none;
  filter: drop-shadow(0 8px 12px #0008);
  animation: seal-santa-in 1s 1.2s cubic-bezier(.3, 1.5, .5, 1) both;
}
@keyframes seal-santa-in { from { opacity: 0; transform: translateY(-36px); } }
@media (max-width: 1150px) {
  .christmas-content .seal-santa { top: -86px; width: 84px; margin-left: -42px; }
}
@media (max-width: 800px) {
  .christmas-content .hero-tree, .christmas-content .seal-santa { display: none; }
}
@media (prefers-reduced-motion: reduce) { .christmas-content .seal-santa { animation: none; } }
/* ---------- Phone fixes: give each Santa his own space (no overlap with text/buttons) ---------- */
@media (max-width: 800px) {
  /* Menu: open a gap under the Download button so the sitting Santa fits between it and the cards. */
  .christmas-content .menu-top { margin-bottom: 84px; }
  .christmas-content .menu-sitting-santa { right: 22px; bottom: -105px; width: 84px; }
}
@media (max-width: 991px) {
  /* Enquiry photo panel: room below the text for the waving Santa. */
  .christmas-content .enquiry-picture { padding-bottom: 165px; }
}
@media (max-width: 520px) {
  .christmas-content .enquiry-picture { padding-bottom: 140px; }
}
/* Phones/tablets load a smaller copy of the hero photo (see IMAGES.txt). */
@media (max-width: 800px) {
  .christmas-content .hero { background-image: linear-gradient(90deg,#010f1c70,#010f1cb0 50%,#010f1c55), url('../img/christmas/christmas-hero-mobile.jpg'); }
}
/* ---------- Festive decorations wait until the page has loaded (html.festive-ready, set by christmas.js) ---------- */
html:not(.festive-ready) .christmas-content .festive-lights { background-image: none; }
html:not(.festive-ready) .christmas-content .snow { display: none; }
html.festive-ready .christmas-content .festive-lights, html.festive-ready .christmas-content .snow, html.festive-ready .christmas-content .hero-tree { animation: festive-fade-in 1s ease both; }
@keyframes festive-fade-in { from { opacity: 0; } }
/* The badge Santa starts his hop only once his image has been switched on. */
html:not(.festive-ready) .christmas-content .seal-santa { visibility: hidden; animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  .christmas-content .festive-lights, .christmas-content .snow, .christmas-content .hero-tree { animation: none; }
}
/* Hero heading on two lines ("Christmas at" / "KOYLA") at a calmer size. */
.christmas-content .hero h1 { font-size: clamp(34px, 3.8vw, 52px); line-height: 1.08; margin-bottom: 16px; }
.christmas-content .hero h1 span { display: block; }
@media (max-width: 520px) { .christmas-content .hero h1 { font-size: 35px; } }
/* Phones/tablets: show the tree and the seated Santa too, each with its own space. */
@media (max-width: 800px) {
  .christmas-content .hero { padding-bottom: 104px; }
  /* Santa sits on the top-right edge of the "Gather together" pill (room made above it). */
  .christmas-content .guest-seal { position: relative; top: auto; right: auto; bottom: auto; left: auto; margin-top: 74px; }
  .christmas-content .seal-santa { display: block; left: auto; right: 18px; top: -63px; width: 64px; margin-left: 0; }
  /* Tree stands in the bottom-left corner, below the pill. */
  .christmas-content .hero-tree { display: block; left: 12px; width: 66px; }
}
/* Hero: Gift Cards button (third button) */
.christmas-content .hero-buttons { flex-wrap: wrap; }
.christmas-content .button-gift { gap: 10px; }
.christmas-content .button-gift .gift-icon { flex: none; }