/* ==========================================================================
   Lion Hotel — Christmas page festive layer.

   Loaded after events-light.css on /christmas/ only. It keeps every layout
   pattern from the shared event design system (hero, alternating rows, menu
   grids, cards, timeline) and dresses it in the brochure's look: midnight
   navy and gold, holly and berries, gold script taglines, and a light,
   slow snowfall over the hero and the call-to-action band.

   Everything is scoped to .ev-page.is-christmas so the header, footer and
   the other event pages are untouched.
   ========================================================================== */

.ev-page.is-christmas{
    --navy:#1b2440;
    --navy-deep:#121a30;
    --holly:#2f6b3a;
    --berry:#b9232b;
    --cream:#fbf7ef;
    --gold-light:#e6cf97;

    --heading:var(--navy);
    --bg-alt:var(--cream);
    --line:#e8dfcc;
}

/* Brochure-style ornaments, embedded so nothing else has to be requested. */
.ev-page.is-christmas{
    /* Gold bells with red bow and holly: the hotel's own artwork, transparent PNG. */
    --holly-svg:url("/img/events/xmas-bells.png?v=2");
    --star-svg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0l2.6 9.4L24 12l-9.4 2.6L12 24l-2.6-9.4L0 12l9.4-2.6z' fill='%23ccae73'/%3E%3C/svg%3E");
    --star-white-svg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0l2.6 9.4L24 12l-9.4 2.6L12 24l-2.6-9.4L0 12l9.4-2.6z' fill='%23ffffff'/%3E%3C/svg%3E");
}

/* ---------- Hero foot: thin gold rule and a soft shadow onto the page ---- */
.ev-page.is-christmas .ev-hero{
    position:relative; z-index:2;
    border-bottom:1px solid rgba(204,174,115,.65);
    box-shadow:
        0 1px 0 rgba(255,255,255,.35),
        0 14px 34px -14px rgba(18,26,48,.55),
        0 30px 60px -30px rgba(18,26,48,.35);
}
.ev-page.is-christmas .ev-hero + .ev-section{ position:relative; z-index:1; }

/* ---------- Script taglines (the brochure's gold handwriting) ------------ */
.xm-script{
    display:block;
    font-family:'Great Vibes', 'Playfair Display', Georgia, serif;
    font-weight:400; font-style:normal;
    font-size:34px; line-height:1.2em;
    color:var(--gold-dark);
    margin:-2px 0 14px;
}
.ev-hero .xm-script{ color:var(--gold-light); font-size:44px; margin:14px 0 0; }
.ev-section-head .xm-script{ margin-top:-6px; }

/* ---------- Hero: navy dusk, gold stars, falling snow -------------------- */
.ev-page.is-christmas .ev-hero:after{
    background:
        linear-gradient(180deg, rgba(18,26,48,.45) 0%, rgba(18,26,48,.62) 60%, rgba(18,26,48,.85) 100%);
}

/* The hotel frontage is the subject, so the copy sits at the foot of the
   picture and the darkening is kept to the bottom third, leaving the lit
   facade, the wreaths and the tree clear. Taller than the standard hero so
   the whole building fits. */
.ev-page.is-christmas .ev-hero.is-facade{
    min-height:82vh;
    align-items:flex-end;
    background-position:center 30%;
}
.ev-page.is-christmas .ev-hero.is-facade:after{
    background:
        linear-gradient(180deg, rgba(18,26,48,.18) 0%, rgba(18,26,48,.10) 40%, rgba(18,26,48,.66) 78%, rgba(18,26,48,.9) 100%);
}
.ev-page.is-christmas .ev-hero.is-facade .ev-wrap{
    padding-top:180px; padding-bottom:56px;
    text-align:center;
}
.ev-page.is-christmas .ev-hero.is-facade h1{ max-width:none; }
.ev-page.is-christmas .ev-hero.is-facade .ev-hero-sub{ margin-left:auto; margin-right:auto; }

@media (max-width:921px){
    .ev-page.is-christmas .ev-hero.is-facade{ min-height:70vh; background-position:center 40%; }
}
@media (max-width:544px){
    .ev-page.is-christmas .ev-hero.is-facade{ min-height:0; background-position:center; }
    .ev-page.is-christmas .ev-hero.is-facade .ev-wrap{ padding-top:300px; padding-bottom:40px; }
}
.ev-page.is-christmas .ev-hero .ev-eyebrow{
    color:var(--gold-light);
    display:inline-flex; align-items:center; gap:14px;
}
.ev-page.is-christmas .ev-hero .ev-eyebrow:before,
.ev-page.is-christmas .ev-hero .ev-eyebrow:after{
    content:""; width:14px; height:14px;
    background:var(--star-svg) center/contain no-repeat;
}
.ev-page.is-christmas .ev-hero h1{ text-shadow:0 2px 24px rgba(0,0,0,.45); }
.ev-page.is-christmas .ev-hero .ev-hero-sub{ color:rgba(255,255,255,.88); }

/* Snow: three layers of soft white dots drifting down at different speeds.
   Pure CSS, no elements — pointer-events off so nothing underneath is blocked. */
.xm-snow{
    position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden;
}
.xm-snow:before,
.xm-snow:after{
    content:""; position:absolute; left:0; right:0; top:-100%; height:200%;
    background-image:
        radial-gradient(circle, rgba(255,255,255,.95) 0 1.6px, transparent 2.2px),
        radial-gradient(circle, rgba(255,255,255,.75) 0 1.2px, transparent 1.8px),
        radial-gradient(circle, rgba(255,255,255,.55) 0 1px,   transparent 1.5px);
    background-size:210px 230px, 150px 170px, 110px 120px;
    background-position:0 0, 60px 40px, 30px 90px;
    animation:xm-snowfall 28s linear infinite;
}
.xm-snow:after{
    background-size:170px 190px, 130px 140px, 90px 100px;
    background-position:90px 10px, 20px 70px, 75px 30px;
    opacity:.7;
    animation-duration:42s;
    animation-direction:reverse;
    animation-name:xm-snowfall-drift;
}
@keyframes xm-snowfall{
    from{ transform:translate3d(0,0,0); }
    to  { transform:translate3d(0,50%,0); }
}
@keyframes xm-snowfall-drift{
    from{ transform:translate3d(0,50%,0); }
    to  { transform:translate3d(-40px,0,0); }
}
@media (prefers-reduced-motion:reduce){
    .xm-snow:before,.xm-snow:after{ animation:none; }
}

/* ---------- Section headings with holly and gold ornament ---------------- */
.ev-page.is-christmas .ev-section-head.is-centre h2{ position:relative; padding-top:84px; }
.ev-page.is-christmas .ev-section-head.is-centre h2:before{
    content:""; position:absolute; top:0; left:50%; transform:translateX(-50%);
    width:68px; height:68px;
    background:var(--holly-svg) center/contain no-repeat;
}
.ev-page.is-christmas .ev-section-head.is-centre h2:after{
    content:""; display:flex; width:180px; height:12px; margin:14px auto 0;
    background:
        var(--star-svg) center/12px 12px no-repeat,
        linear-gradient(90deg, transparent, var(--gold) 30%, transparent 46%, transparent 54%, var(--gold) 70%, transparent);
    background-position:center, center;
    background-size:12px 12px, 100% 1px;
}

/* Row headings get a small gold star before them. */
.ev-page.is-christmas .ev-row-body h3{ position:relative; padding-left:30px; }
.ev-page.is-christmas .ev-row-body h3:before{
    content:""; position:absolute; left:0; top:.42em; width:18px; height:18px;
    background:var(--star-svg) center/contain no-repeat;
}

/* ---------- Photos: soft gold frame ------------------------------------- */
.ev-page.is-christmas .ev-row-media{ position:relative; }
.ev-page.is-christmas .ev-row-media img{
    border:1px solid var(--gold);
    padding:8px; background:#fff;
    box-shadow:0 18px 40px -22px rgba(27,36,64,.45);
}
.ev-page.is-christmas .ev-row-media:after{
    content:""; position:absolute; right:-18px; bottom:-20px;
    width:80px; height:80px;
    background:var(--holly-svg) center/contain no-repeat;
    transform:rotate(-8deg);
    filter:drop-shadow(0 6px 10px rgba(0,0,0,.25));
}

/* ---------- Prices in deep berry red ------------------------------------ */
.ev-page.is-christmas .ev-price{ color:var(--berry); }

/* ---------- Detail lists: gold star keys -------------------------------- */
.ev-page.is-christmas .ev-list .k{ color:var(--navy); }
.ev-page.is-christmas .ev-list li{ border-color:var(--line); }

/* ---------- Buttons: gold primary, navy ghost --------------------------- */
.ev-page.is-christmas .ev-btn{
    background:linear-gradient(180deg, #d9bd82, var(--gold-dark));
    border-color:var(--gold-dark);
    box-shadow:0 6px 16px -8px rgba(163,139,92,.9);
}
.ev-page.is-christmas .ev-btn:hover{ background:var(--gold-dark); }
.ev-page.is-christmas .ev-btn.is-ghost{
    background:transparent; box-shadow:none;
    color:var(--navy) !important; border-color:var(--navy);
}
.ev-page.is-christmas .ev-btn.is-ghost:hover{ background:var(--navy); color:#fff !important; }

/* ---------- Menus: gold bauble headings and star-bulleted dishes ---------- */
.ev-page.is-christmas .ev-course h4{
    border-bottom-color:var(--gold);
    display:flex; align-items:center; gap:12px;
}
.ev-page.is-christmas .ev-course h4:before{
    content:""; flex:none; width:16px; height:16px;
    background:var(--star-svg) center/contain no-repeat;
}
.ev-page.is-christmas .ev-menu:not(.is-flow) .ev-dish{ position:relative; padding-left:22px; }
.ev-page.is-christmas .ev-menu:not(.is-flow) .ev-dish:before{
    content:""; position:absolute; left:0; top:9px; width:8px; height:8px;
    border:1px solid var(--gold); transform:rotate(45deg);
}
.ev-page.is-christmas .ev-menu:not(.is-flow) .ev-dish:hover:before{ background:var(--gold); }

/* Flowing menu: centred headings keep the ornament under them, not beside. */
.ev-page.is-christmas .ev-menu.is-flow .ev-course h4{ display:block; }
.ev-page.is-christmas .ev-menu.is-flow .ev-course h4:before{ display:none; }
.ev-page.is-christmas .ev-menu.is-flow .ev-course h4:after{
    width:150px; height:12px; margin:14px auto 0;
    background:
        var(--star-svg) center/12px 12px no-repeat,
        linear-gradient(90deg, transparent, var(--gold) 30%, transparent 46%, transparent 54%, var(--gold) 70%, transparent) center/100% 1px no-repeat;
}
.ev-page.is-christmas .ev-menu.is-flow{
    background:#fff;
    border:1px solid var(--gold);
    padding:52px 56px;
    box-shadow:0 30px 60px -40px rgba(27,36,64,.5);
    position:relative;
}
.ev-page.is-christmas .ev-menu.is-flow:before,
.ev-page.is-christmas .ev-menu.is-flow:after{
    content:""; position:absolute; width:76px; height:76px;
    background:var(--holly-svg) center/contain no-repeat;
    filter:drop-shadow(0 6px 10px rgba(0,0,0,.22));
}
.ev-page.is-christmas .ev-menu.is-flow:before{ top:-30px; left:-26px; transform:rotate(-14deg); }
.ev-page.is-christmas .ev-menu.is-flow:after{ bottom:-30px; right:-26px; transform:rotate(12deg); }
.ev-page.is-christmas .ev-menu.is-flow .ev-course{ border-bottom-color:var(--line); }

/* ---------- Package cards: navy crown with a gold ribbon ----------------- */
.ev-page.is-christmas .ev-card{
    border-color:var(--gold);
    box-shadow:0 26px 50px -36px rgba(27,36,64,.55);
    position:relative; overflow:hidden;
}
.ev-page.is-christmas .ev-cards.is-two .ev-card-body{
    background:linear-gradient(180deg, var(--cream), #fff 40%);
}
.ev-page.is-christmas .ev-cards.is-two .ev-card-body h4{
    color:var(--navy); padding-bottom:12px; margin-bottom:14px;
    border-bottom:1px solid var(--gold);
}
.ev-page.is-christmas .ev-cards.is-two .ev-card:before{
    content:""; position:absolute; top:10px; left:10px; z-index:2;
    width:78px; height:78px;
    background:var(--holly-svg) center/contain no-repeat;
    transform:rotate(-10deg);
    filter:drop-shadow(0 6px 10px rgba(0,0,0,.35));
}
.ev-page.is-christmas .ev-incl li:before{ border-color:var(--berry); background:var(--berry); }

/* ---------- Timeline: gold baubles on a ribbon --------------------------- */
.ev-page.is-christmas .ev-timeline:before{ background:var(--gold); width:2px; left:6px; }
.ev-page.is-christmas .ev-tl:before{
    background:radial-gradient(circle at 35% 35%, #f3e3b6, var(--gold) 45%, var(--gold-dark));
    box-shadow:0 0 0 5px var(--bg-alt), 0 0 0 6px var(--gold);
}
.ev-page.is-christmas .ev-tl h4{ color:var(--berry); }

/* ---------- Call-to-action: midnight navy with snow ---------------------- */
.ev-page.is-christmas .ev-cta{
    position:relative; overflow:hidden;
    background:
        radial-gradient(ellipse at top, rgba(204,174,115,.22), transparent 55%),
        linear-gradient(180deg, var(--navy), var(--navy-deep));
    border-top:3px solid var(--gold);
    border-bottom:3px solid var(--gold);
}
.ev-page.is-christmas .ev-cta .ev-wrap{ position:relative; z-index:2; }
.ev-page.is-christmas .ev-cta h2{ color:var(--gold-light); }
.ev-page.is-christmas .ev-cta p{ color:rgba(255,255,255,.86); }
.ev-page.is-christmas .ev-cta .ev-btn.is-light{ box-shadow:none; background:#fff; }
.ev-page.is-christmas .ev-cta .ev-btn.is-light:hover{ background:var(--gold-light); }

/* ---------- Alt sections: faint gold stars on cream ---------------------- */
.ev-page.is-christmas .ev-section.is-alt{
    background-color:var(--cream);
    background-image:
        radial-gradient(circle at 12% 18%, rgba(204,174,115,.16) 0 2px, transparent 3px),
        radial-gradient(circle at 78% 26%, rgba(204,174,115,.14) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 34% 72%, rgba(204,174,115,.12) 0 2px, transparent 3px),
        radial-gradient(circle at 88% 80%, rgba(204,174,115,.16) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 56% 44%, rgba(204,174,115,.10) 0 1px, transparent 2px);
    background-size:640px 520px;
}

/* ---------- Responsive ------------------------------------------------- */
@media (max-width:921px){
    .ev-page.is-christmas .ev-menu.is-flow{ padding:40px 30px; }
    .xm-script{ font-size:30px; }
    .ev-hero .xm-script{ font-size:38px; }
}
@media (max-width:544px){
    .ev-page.is-christmas .ev-menu.is-flow{ padding:32px 20px; }
    .ev-page.is-christmas .ev-menu.is-flow:before,
    .ev-page.is-christmas .ev-menu.is-flow:after{ width:54px; height:54px; }
    .ev-page.is-christmas .ev-menu.is-flow:before{ top:-20px; left:-12px; }
    .ev-page.is-christmas .ev-menu.is-flow:after{ bottom:-20px; right:-12px; }
    .ev-page.is-christmas .ev-row-media:after{ width:58px; height:58px; right:-6px; bottom:-14px; }
    .ev-page.is-christmas .ev-section-head.is-centre h2{ padding-top:70px; }
    .ev-page.is-christmas .ev-section-head.is-centre h2:before{ width:56px; height:56px; }
    .xm-script{ font-size:27px; }
    .ev-hero .xm-script{ font-size:32px; }
    .ev-page.is-christmas .ev-row-body h3{ padding-left:26px; }
    .ev-page.is-christmas .ev-row-body h3:before{ width:15px; height:15px; }
}


/* ---------- Booking band: copy on the left, a cream booking card on the right */
.ev-page.is-christmas .xm-book{ text-align:left; padding:84px 0; }
.xm-book-grid{
    display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center;
}
.ev-page.is-christmas .xm-book .ev-eyebrow{ color:var(--gold-light); margin-bottom:10px; }
.ev-page.is-christmas .xm-book h2{ color:#fff; margin-bottom:.15em; }
.ev-page.is-christmas .xm-book .xm-script{ color:var(--gold-light); font-size:36px; margin:0 0 18px; }
.ev-page.is-christmas .xm-book p{ margin:0 0 22px; max-width:none; font-size:17px; }
.xm-book-points{ list-style:none; margin:0; padding:0; }
.xm-book-points li{
    position:relative; padding:6px 0 6px 30px;
    color:rgba(255,255,255,.9); font-size:15.5px;
}
.xm-book-points li:before{
    content:""; position:absolute; left:2px; top:11px; width:14px; height:14px;
    background:var(--star-svg) center/contain no-repeat;
}

.xm-book-card{
    position:relative;
    background:linear-gradient(180deg, #fffdf8, var(--cream));
    border:1px solid var(--gold);
    padding:38px 36px 30px;
    text-align:center;
    box-shadow:0 30px 60px -30px rgba(0,0,0,.6), 0 0 0 6px rgba(204,174,115,.14);
}
.xm-book-card:before{
    content:""; position:absolute; top:-30px; right:-24px;
    width:86px; height:86px;
    background:var(--holly-svg) center/contain no-repeat;
    transform:rotate(12deg);
    filter:drop-shadow(0 8px 12px rgba(0,0,0,.35));
}
.xm-book-label{
    display:block; font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
    color:var(--gold-dark); margin-bottom:6px;
}
.xm-book-phone{
    display:block;
    font-family:'Playfair Display', Georgia, serif; font-size:40px; font-weight:700; line-height:1.2em;
    color:var(--navy) !important; text-decoration:none !important;
    margin-bottom:6px;
}
.xm-book-phone:hover{ color:var(--berry) !important; }
.xm-book-sub{ display:block; color:var(--muted); font-size:14px; margin-bottom:22px; }
.xm-book-card .ev-btns{ justify-content:center; margin:0 0 20px; }
.ev-page.is-christmas .xm-book-card .ev-btn{ min-width:140px; text-align:center; }
.ev-page.is-christmas .xm-book .xm-book-note{
    margin:0; padding-top:18px; border-top:1px solid var(--line);
    color:var(--muted); font-size:13.5px; line-height:1.6em;
}

@media (max-width:921px){
    .ev-page.is-christmas .xm-book{ padding:64px 0; }
    .xm-book-grid{ grid-template-columns:1fr; gap:36px; }
    .xm-book-card{ max-width:520px; margin:0 auto; width:100%; }
}
@media (max-width:544px){
    .ev-page.is-christmas .xm-book{ padding:48px 0; }
    .ev-page.is-christmas .xm-book .xm-script{ font-size:29px; }
    .xm-book-card{ padding:30px 20px 24px; }
    .xm-book-card:before{ width:64px; height:64px; top:-22px; right:-10px; }
    .xm-book-phone{ font-size:31px; }
}


/* ---------- Booking band: candlelit photo under a midnight-navy wash --------
   The candlelit Christmas Eve table sits behind a deep navy gradient so the
   bokeh lights glow through, with gold sparkles and the snow on top. */
.ev-page.is-christmas .xm-book{
    background:
        radial-gradient(circle at 18% 28%, rgba(230,207,151,.55) 0 2px, transparent 3px),
        radial-gradient(circle at 74% 18%, rgba(230,207,151,.45) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 88% 62%, rgba(230,207,151,.5) 0 2px, transparent 3px),
        radial-gradient(circle at 40% 80%, rgba(230,207,151,.4) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 60% 40%, rgba(230,207,151,.35) 0 1px, transparent 2px),
        linear-gradient(180deg, rgba(18,26,48,.86) 0%, rgba(27,36,64,.78) 50%, rgba(18,26,48,.9) 100%),
        url("/img/events/christmas-eve-candlelit.jpg") center 40%/cover no-repeat,
        var(--navy-deep);
    background-size:900px 700px, 900px 700px, 900px 700px, 900px 700px, 900px 700px, auto, cover, auto;
}
/* Warm glow rising from the bottom, like candlelight. */
.ev-page.is-christmas .xm-book:before{
    content:""; position:absolute; inset:0; pointer-events:none;
    background:
        radial-gradient(ellipse at 50% 110%, rgba(204,174,115,.28), transparent 55%),
        radial-gradient(ellipse at 0% 0%, rgba(204,174,115,.12), transparent 45%);
}


/* ---------- Back-to-top button --------------------------------------------
   A gold disc with an up arrow, wrapped in a thin ring that fills as the
   reader scrolls down the page. A "Back to top" label slides out on hover. */
.xm-totop{
    position:fixed; right:28px; bottom:28px; z-index:1200;
    width:56px; height:56px; padding:0;
    border:0; border-radius:50%;
    background:
        radial-gradient(circle at 35% 30%, rgba(255,255,255,.45), transparent 45%),
        linear-gradient(180deg, #e2c68a 0%, #c9ab6b 55%, #a38b5c 100%);
    color:#1b2440;
    cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    box-shadow:
        0 12px 26px -10px rgba(0,0,0,.5),
        0 0 0 1px rgba(230,207,151,.9),
        0 0 0 6px rgba(27,36,64,.35);
    opacity:0; transform:translateY(18px) scale(.86);
    transition:opacity .35s ease, transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, background .25s ease, color .25s ease;
    -webkit-tap-highlight-color:transparent;
    overflow:visible;
}
.xm-totop.is-visible{ opacity:1; transform:translateY(0) scale(1); }
.xm-totop:hover{
    background:linear-gradient(180deg, #27324f 0%, #1b2440 100%);
    color:#e6cf97;
    box-shadow:
        0 16px 32px -10px rgba(0,0,0,.6),
        0 0 0 1px rgba(230,207,151,.9),
        0 0 0 6px rgba(204,174,115,.28),
        0 0 28px rgba(230,207,151,.35);
}
.xm-totop:active{ transform:translateY(1px) scale(.94); transition-duration:.1s; }
.xm-totop:focus-visible{ outline:2px solid #fff; outline-offset:4px; }

/* Progress ring around the disc. */
.xm-totop-ring{
    position:absolute; inset:-6px; width:calc(100% + 12px); height:calc(100% + 12px);
    transform:rotate(-90deg); pointer-events:none;
}
.xm-totop-track{ fill:none; stroke:rgba(230,207,151,.25); stroke-width:2; }
.xm-totop-bar{
    fill:none; stroke:#e6cf97; stroke-width:2.5; stroke-linecap:round;
    stroke-dasharray:100; stroke-dashoffset:100;
    transition:stroke-dashoffset .15s linear, stroke .25s ease;
    filter:drop-shadow(0 0 4px rgba(230,207,151,.7));
}
.xm-totop:hover .xm-totop-bar{ stroke:#fff; }

/* Arrow nudges upward on hover. */
.xm-totop-arrow{ position:relative; display:block; transition:transform .3s cubic-bezier(.2,.8,.2,1); }
.xm-totop:hover .xm-totop-arrow{ transform:translateY(-3px); }

/* Sliding label. */
.xm-totop-label{
    position:absolute; right:calc(100% + 16px); top:50%;
    transform:translate(8px,-50%); opacity:0;
    white-space:nowrap;
    font-family:'Open Sans', Arial, sans-serif; font-size:12px; font-weight:600;
    letter-spacing:.16em; text-transform:uppercase;
    color:#e6cf97; background:rgba(27,36,64,.94);
    padding:8px 14px; border:1px solid rgba(230,207,151,.5); border-radius:999px;
    box-shadow:0 8px 20px -8px rgba(0,0,0,.5);
    pointer-events:none;
    transition:opacity .25s ease, transform .3s cubic-bezier(.2,.8,.2,1);
}
.xm-totop-label:after{
    content:""; position:absolute; right:-5px; top:50%; width:8px; height:8px;
    background:rgba(27,36,64,.94); border-right:1px solid rgba(230,207,151,.5); border-top:1px solid rgba(230,207,151,.5);
    transform:translateY(-50%) rotate(45deg);
}
.xm-totop:hover .xm-totop-label,
.xm-totop:focus-visible .xm-totop-label{ opacity:1; transform:translate(0,-50%); }

@media (prefers-reduced-motion:reduce){
    .xm-totop, .xm-totop.is-visible{ transition:opacity .2s ease; transform:none; }
    .xm-totop-arrow, .xm-totop-label, .xm-totop-bar{ transition:none; }
}
@media (hover:none){
    .xm-totop-label{ display:none; }
}
@media (max-width:544px){
    .xm-totop{ right:16px; bottom:16px; width:48px; height:48px; }
    .xm-totop-arrow{ width:19px; height:19px; }
}

/* ---------- Menu pages: sticky jump tabs under the hero -------------------- */
.xm-tabs{
    position:sticky; top:0; z-index:50;
    background:rgba(251,247,239,.96); backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line, #e8dfcc);
}
.xm-tabs .ev-wrap{ display:flex; gap:4px; overflow-x:auto; padding-top:8px; padding-bottom:8px; scrollbar-width:none; }
.xm-tabs .ev-wrap::-webkit-scrollbar{ display:none; }
.xm-tabs a{
    flex:none; white-space:nowrap; text-decoration:none !important;
    font-family:'Open Sans', Arial, sans-serif; font-size:13px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
    color:#1b2440; padding:9px 14px; border-radius:999px; border:1px solid transparent;
    transition:background .2s ease, border-color .2s ease, color .2s ease;
}
.xm-tabs a:hover{ border-color:#ccae73; color:#1b2440; }
.xm-tabs a.is-active{ background:#1b2440; color:#e6cf97; }
.ev-page .ev-section[id]{ scroll-margin-top:72px; }
.ev-page.is-christmas .ev-hero.is-short{ min-height:52vh; }
.ev-page.is-christmas .ev-hero.is-short .ev-wrap{ text-align:center; padding-top:150px; padding-bottom:60px; }
.ev-page.is-christmas .ev-hero.is-short h1{ max-width:none; }
.ev-page.is-christmas .ev-hero.is-short .ev-hero-sub{ margin-left:auto; margin-right:auto; }
.xm-menu-meta{ text-align:center; margin:-10px 0 26px; }
.xm-menu-meta .ev-price{ font-size:26px; }
@media (max-width:544px){
    .ev-page.is-christmas .ev-hero.is-short .ev-wrap{ padding-top:130px; padding-bottom:44px; }
}

/* Keep the back-to-top button out of the page flow until it is shown, even
   where a page reset gives [hidden] a lower priority than the flex display. */
.xm-totop[hidden]{ display:none !important; }
