/* ==========================================================================
   Lion Hotel â party & group dining layer (year-round).

   The party menus are sold all year to groups, works nights, birthdays and
   family celebrations, so they must not read as a Christmas page. This layer
   keeps every layout pattern from events-light.css and the shared "xm-"
   widgets (sticky jump tabs, script taglines, booking band, back-to-top)
   that live unscoped in christmas.css, and dresses them in a season-neutral
   navy-and-gold celebration look: champagne sparkles instead of holly and
   bells, no snowfall, no berry red.

   Everything is scoped to .ev-page.is-party, so the Christmas, New Year and
   Valentine's pages are untouched. Load order: events-light.css,
   christmas.css (shared widgets), then this file.
   ========================================================================== */

.ev-page.is-party{
    --navy:#1b2440;
    --navy-deep:#121a30;
    --cream:#fbf7ef;
    --gold-light:#e6cf97;

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

/* Ornaments. A champagne sparkle replaces the Christmas bells, and the gold
   four-point star is kept because it reads as celebration in any month.
   Both are embedded so the page requests nothing extra. */
.ev-page.is-party{
    --spark-svg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='%23ccae73'%3E%3Cpath d='M38 6l3.6 13.4L55 23l-13.4 3.6L38 40l-3.6-13.4L21 23l13.4-3.6z'/%3E%3Cpath d='M18 34l2.2 8.1L28 44l-7.8 2.1L18 54l-2.2-7.9L8 44l7.8-1.9z' opacity='.85'/%3E%3Cpath d='M52 42l1.4 5.2L58 48l-4.6 1.2L52 54l-1.4-4.8L46 48l4.6-.8z' opacity='.7'/%3E%3C/g%3E%3C/svg%3E");
    --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");
    /* Nothing Christmassy is inherited: the bells variable is emptied so any
       shared rule that still reaches for it draws nothing. */
    --holly-svg:none;
}

/* ---------- Hero foot: thin gold rule and a soft shadow onto the page ---- */
.ev-page.is-party .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-party .ev-hero + .ev-section{ position:relative; z-index:1; }

/* ---------- Hero: evening navy over the photograph ---------------------- */
.ev-page.is-party .ev-hero:after{
    background:
        linear-gradient(180deg, rgba(18,26,48,.42) 0%, rgba(18,26,48,.60) 60%, rgba(18,26,48,.86) 100%);
}
.ev-page.is-party .ev-hero .ev-eyebrow{
    color:var(--gold-light);
    display:inline-flex; align-items:center; gap:14px;
}
.ev-page.is-party .ev-hero .ev-eyebrow:before,
.ev-page.is-party .ev-hero .ev-eyebrow:after{
    content:""; width:14px; height:14px;
    background:var(--star-svg) center/contain no-repeat;
}
.ev-page.is-party .ev-hero h1{ text-shadow:0 2px 24px rgba(0,0,0,.45); }
.ev-page.is-party .ev-hero .ev-hero-sub{ color:rgba(255,255,255,.88); }
.ev-page.is-party .ev-hero.is-short{ min-height:52vh; }
.ev-page.is-party .ev-hero.is-short .ev-wrap{ text-align:center; padding-top:150px; padding-bottom:60px; }
.ev-page.is-party .ev-hero.is-short h1{ max-width:none; }
.ev-page.is-party .ev-hero.is-short .ev-hero-sub{ margin-left:auto; margin-right:auto; }

/* ---------- Section headings: sparkle above, gold rule below ------------- */
.ev-page.is-party .ev-section-head.is-centre h2{ position:relative; padding-top:70px; }
.ev-page.is-party .ev-section-head.is-centre h2:before{
    content:""; position:absolute; top:0; left:50%; transform:translateX(-50%);
    width:56px; height:56px;
    background:var(--spark-svg) center/contain no-repeat;
}
.ev-page.is-party .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-party .ev-row-body h3{ position:relative; padding-left:30px; }
.ev-page.is-party .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, no corner ornament ------------------ */
.ev-page.is-party .ev-row-media{ position:relative; }
.ev-page.is-party .ev-row-media img{
    border:1px solid var(--gold);
    padding:8px; background:#fff;
    box-shadow:0 18px 40px -22px rgba(27,36,64,.45);
}

/* ---------- Prices in deep gold ----------------------------------------- */
.ev-page.is-party .ev-price{ color:var(--gold-dark); }

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

/* ---------- Buttons: gold primary, navy ghost --------------------------- */
.ev-page.is-party .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-party .ev-btn:hover{ background:var(--gold-dark); }
.ev-page.is-party .ev-btn.is-ghost{
    background:transparent; box-shadow:none;
    color:var(--navy) !important; border-color:var(--navy);
}
.ev-page.is-party .ev-btn.is-ghost:hover{ background:var(--navy); color:#fff !important; }

/* ---------- Menus: gold star headings and diamond-bulleted dishes -------- */
.ev-page.is-party .ev-course h4{
    border-bottom-color:var(--gold);
    display:flex; align-items:center; gap:12px;
}
.ev-page.is-party .ev-course h4:before{
    content:""; flex:none; width:16px; height:16px;
    background:var(--star-svg) center/contain no-repeat;
}
.ev-page.is-party .ev-menu .ev-dish{ position:relative; padding-left:22px; }
.ev-page.is-party .ev-menu .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-party .ev-menu .ev-dish:hover:before{ background:var(--gold); }

/* ---------- Cards ------------------------------------------------------- */
.ev-page.is-party .ev-card{
    border-color:var(--gold);
    box-shadow:0 26px 50px -36px rgba(27,36,64,.55);
    position:relative; overflow:hidden;
}
.ev-page.is-party .ev-cards.is-two .ev-card-body{
    background:linear-gradient(180deg, var(--cream), #fff 40%);
}
.ev-page.is-party .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-party .ev-incl li:before{ border-color:var(--gold-dark); background:var(--gold-dark); }

/* ---------- Alt sections: faint gold sparks on cream -------------------- */
.ev-page.is-party .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;
}

/* ---------- Booking band: warm dining room under a navy wash ------------- */
.ev-page.is-party .ev-cta{
    position:relative; overflow:hidden;
    border-top:3px solid var(--gold);
    border-bottom:3px solid var(--gold);
}
.ev-page.is-party .ev-cta .ev-wrap{ position:relative; z-index:2; }
.ev-page.is-party .ev-cta h2{ color:var(--gold-light); }
.ev-page.is-party .ev-cta p{ color:rgba(255,255,255,.86); }

.ev-page.is-party .xm-book{
    text-align:left; padding:84px 0;
    background:
        radial-gradient(circle at 18% 28%, rgba(230,207,151,.5) 0 2px, transparent 3px),
        radial-gradient(circle at 74% 18%, rgba(230,207,151,.4) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 88% 62%, rgba(230,207,151,.45) 0 2px, transparent 3px),
        radial-gradient(circle at 40% 80%, rgba(230,207,151,.35) 0 1.5px, transparent 2.5px),
        linear-gradient(180deg, rgba(18,26,48,.88) 0%, rgba(27,36,64,.80) 50%, rgba(18,26,48,.92) 100%),
        url("/img/events/dining-warm-lamps.webp") center 45%/cover no-repeat,
        var(--navy-deep);
    background-size:900px 700px, 900px 700px, 900px 700px, 900px 700px, auto, cover, auto;
}
/* Warm glow rising from the bottom, like the lamps in the photograph. */
.ev-page.is-party .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%);
}
.ev-page.is-party .xm-book .ev-eyebrow{ color:var(--gold-light); margin-bottom:10px; }
.ev-page.is-party .xm-book h2{ color:#fff; margin-bottom:.15em; }
.ev-page.is-party .xm-book .xm-script{ color:var(--gold-light); font-size:36px; margin:0 0 18px; }
.ev-page.is-party .xm-book p{ margin:0 0 22px; max-width:none; font-size:17px; }
.ev-page.is-party .xm-book-card .ev-btn{ min-width:140px; text-align:center; }
.ev-page.is-party .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;
}
/* The phone number reaches for the Christmas berry red on hover; give it a
   gold of its own so it does not fall back to body grey. */
.ev-page.is-party .xm-book-phone:hover{ color:var(--gold-dark) !important; }

/* The booking card carries bells on the Christmas pages — not here. */
.ev-page.is-party .xm-book-card:before{ display:none; }

/* ---------- Responsive -------------------------------------------------- */
@media (max-width:921px){
    .ev-page.is-party .xm-book{ padding:64px 0; }
}
@media (max-width:544px){
    .ev-page.is-party .ev-hero.is-short .ev-wrap{ padding-top:130px; padding-bottom:44px; }
    .ev-page.is-party .ev-section-head.is-centre h2{ padding-top:58px; }
    .ev-page.is-party .ev-section-head.is-centre h2:before{ width:46px; height:46px; }
    .ev-page.is-party .ev-row-body h3{ padding-left:26px; }
    .ev-page.is-party .ev-row-body h3:before{ width:15px; height:15px; }
    .ev-page.is-party .xm-book{ padding:48px 0; }
    .ev-page.is-party .xm-book .xm-script{ font-size:29px; }
}

/* ==========================================================================
   Drinks packages (party-menus.php only).

   The packages used to sit in a plain key/value list beside a photograph,
   where the prices were buried in the middle of a sentence and the room
   offer — which is not a drink — read as a fourth drinks package. They are
   now three cards, ordered by the moment of the night they belong to, with
   the price as the loudest thing on each card and the overnight stay pulled
   out underneath as its own strip.
   ========================================================================== */

.ev-page.is-party .pk-intro{
    max-width:46em; margin:0 auto 34px; text-align:center;
    color:var(--muted); font-size:16.5px;
    text-wrap:pretty;
}

/* The bar line-up, framed like the other images. It is already composed as a
   wide strip (1800x675), so it is shown whole rather than cropped to a fixed
   height — the banner before it was a portrait photograph squeezed into a
   letterbox, which cut the drinks in half and left Christmas baubles in shot. */
.ev-page.is-party .pk-banner{
    margin:0 0 44px; padding:8px;
    background:#fff; border:1px solid var(--gold);
    box-shadow:0 18px 40px -22px rgba(27,36,64,.45);
}
.ev-page.is-party .pk-banner img{
    display:block; width:100%; height:auto;
}


/* ---------- The package cards ------------------------------------------- */
.ev-page.is-party .pk-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:28px; align-items:stretch;
}
.ev-page.is-party .pk-card{
    position:relative; display:flex; flex-direction:column;
    padding:34px 28px 30px;
    background:linear-gradient(180deg,#fffdf8,var(--cream));
    border:1px solid var(--line); border-top:3px solid var(--gold);
    box-shadow:0 24px 46px -34px rgba(27,36,64,.5);
}
/* The biggest package is the one most tables end up on, so it is lifted out
   of the row: white ground, navy edge, a gold ribbon across the corner. */
.ev-page.is-party .pk-card.is-featured{
    background:#fff;
    border-color:var(--gold); border-top:3px solid var(--navy);
    box-shadow:0 30px 58px -30px rgba(27,36,64,.6), 0 0 0 4px rgba(204,174,115,.14);
}
.ev-page.is-party .pk-flag{
    position:absolute; top:-13px; left:50%; transform:translateX(-50%);
    white-space:nowrap;
    font-family:'Open Sans', Arial, sans-serif;
    font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
    color:var(--navy);
    background:linear-gradient(180deg,#e9d3a2,var(--gold));
    padding:6px 16px; border-radius:999px;
    box-shadow:0 8px 18px -10px rgba(27,36,64,.7);
}
.ev-page.is-party .pk-when{
    display:block;
    font-family:'Open Sans', Arial, sans-serif;
    font-size:11.5px; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
    color:var(--gold-dark); margin-bottom:10px;
}
.ev-page.is-party .pk-name{
    font-size:25px; line-height:1.28em; color:var(--navy); margin:0 0 14px;
    text-wrap:balance; hyphens:none;
}
.ev-page.is-party .pk-price{
    font-family:'Playfair Display', Georgia, serif;
    font-size:46px; font-weight:700; line-height:1; color:var(--gold-dark);
    margin:0 0 10px;
}
.ev-page.is-party .pk-unit{
    display:block; margin-top:9px;
    font-family:'Open Sans', Arial, sans-serif;
    font-size:12.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
    color:var(--muted);
}
/* The saving is the whole argument for a package, so the menu price it beats
   sits directly under the price rather than in the small print. */
.ev-page.is-party .pk-save{
    margin:0 0 20px; padding-bottom:18px;
    border-bottom:1px solid var(--line);
    font-family:'Open Sans', Arial, sans-serif;
    font-size:13px; font-style:italic; color:var(--muted);
}

.ev-page.is-party .pk-incl{
    list-style:none; margin:0 0 22px; padding:0; flex:1;
}
.ev-page.is-party .pk-incl li{
    position:relative; padding:0 0 12px 24px;
    font-size:14.5px; line-height:1.55em; color:var(--text);
    text-wrap:pretty; hyphens:none;
}
.ev-page.is-party .pk-incl li:last-child{ padding-bottom:0; }
.ev-page.is-party .pk-incl li:before{
    content:""; position:absolute; left:1px; top:7px;
    width:7px; height:7px; border:1px solid var(--gold); transform:rotate(45deg);
}
.ev-page.is-party .pk-card.is-featured .pk-incl li:before{ background:var(--gold); }
.ev-page.is-party .pk-foot{
    margin:0; padding-top:16px; border-top:1px solid var(--line);
    font-size:13.5px; font-style:italic; line-height:1.6em; color:var(--muted);
    text-wrap:pretty; hyphens:none;
}

/* ---------- Overnight stay: its own strip, not a drinks card ------------- */
.ev-page.is-party .pk-stay{
    display:grid; grid-template-columns:.8fr 1.2fr; gap:0;
    margin-top:44px;
    background:#fff; border:1px solid var(--gold);
    box-shadow:0 26px 50px -36px rgba(27,36,64,.55);
    overflow:hidden;
}
.ev-page.is-party .pk-stay-media img{
    display:block; width:100%; height:100%; min-height:260px;
    object-fit:cover;
}
.ev-page.is-party .pk-stay-body{ padding:38px 40px; align-self:center; }
.ev-page.is-party .pk-stay-body .pk-name{ margin-bottom:12px; }
.ev-page.is-party .pk-stay-body p{ margin:0 0 24px; color:var(--text); }
.ev-page.is-party .pk-stay-body strong{ color:var(--gold-dark); font-weight:700; }
.ev-page.is-party .pk-stay-body .ev-btns{ margin:0; }

.ev-page.is-party .pk-note{
    margin:30px auto 0; max-width:52em; text-align:center;
}

/* ---------- Responsive -------------------------------------------------- */
@media (max-width:921px){
    .ev-page.is-party .pk-grid{ grid-template-columns:1fr; gap:34px; max-width:560px; margin:0 auto; }
    .ev-page.is-party .pk-stay{ grid-template-columns:1fr; max-width:560px; margin-left:auto; margin-right:auto; }
    .ev-page.is-party .pk-stay-media img{ min-height:220px; }
    .ev-page.is-party .pk-stay-body{ padding:32px 28px; }
}
@media (max-width:544px){
    .ev-page.is-party .pk-card{ padding:30px 22px 26px; }
    .ev-page.is-party .pk-price{ font-size:40px; }
    .ev-page.is-party .pk-stay-body{ padding:28px 20px; }
    .ev-page.is-party .pk-stay-body .ev-btns{ flex-direction:column; align-items:stretch; }
    .ev-page.is-party .pk-stay-body .ev-btn{ text-align:center; }
}
