/* Bullseye Packages
 * Matched to packages.bullseyeeventgroup.com: PT Sans Caption for headings
 * and buttons, Roboto for body, #DE2027, buttons at 11px / 700 / 4.29px
 * tracking / 4px radius. Everything inherits the theme's own faces where the
 * theme loads them, so this only supplies structure and the brand accents.
 */
.bep { --bep-red:#de2027; --bep-red-dk:#b9161c; --bep-red-soft:#fdeced;
       --bep-ink:#51545b; --bep-head:#2b2d31; --bep-line:#e2e2e4;
       --bep-line2:#d3d3d6; --bep-strip:#f1f1f1; --bep-muted:#8b8d94;
       --bep-good:#1a7a4f; }

.bep, .bep-grid { color:var(--bep-ink); }
.bep { font-size:14px; line-height:1.45; }
.bep *, .bep-grid * { box-sizing:border-box; }

/* ---------- landing page header ---------- */
.bep-evt { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:28px; align-items:start;
  padding-bottom:26px; border-bottom:1px solid #e2e2e4; margin:24px 0 26px; color:#51545b; font-size:15px; line-height:1.5; }
.bep-evt__eyebrow { font-family:"PT Sans Caption",Helvetica,Arial,sans-serif; font-size:11px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:#de2027; }
.bep-evt__h { font-family:"PT Sans Caption",Helvetica,Arial,sans-serif; font-size:30px; font-weight:700; color:#2b2d31;
  line-height:1.1; margin:6px 0 10px; text-transform:none; }
.bep-evt__lead p { margin:0 0 10px; max-width:60ch; }
.bep-evt__inc { background:#f4f4f5; padding:16px 18px; }
.bep-evt__inc h4 { font-family:"PT Sans Caption",Helvetica,Arial,sans-serif; font-size:11px; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase; color:#2b2d31; margin:0 0 10px; }
.bep-evt__inc ul { margin:0; padding:0; list-style:none; display:grid; gap:6px; font-size:12.5px; line-height:1.4; }
.bep-evt__inc li { display:flex; gap:8px; margin:0; }
.bep-evt__inc li::before { content:"\2714"; color:#de2027; font-size:11px; margin-top:2px; flex:none; }
@media (max-width:860px) { .bep-evt { grid-template-columns:1fr; } }
.bep-card__tier { font-family:"PT Sans Caption",Helvetica,Arial,sans-serif; font-size:10px; letter-spacing:.2em;
  text-transform:uppercase; color:#8b8d94; margin-top:14px; }
.bep-card__tier + .bep-card__name { margin-top:4px; }

/* Themes style headings, links and list items with rules of their own. These
 * restate the card's sizes with enough weight to hold on any theme. */
.bep-grid h3.bep-card__name { font-size:19px; line-height:1.2; margin:15px 0 12px; text-transform:none; letter-spacing:0; }
.bep-grid .bep-card__tier + h3.bep-card__name { margin-top:4px; }
.bep-grid ul.bep-card__list { padding:0; margin:0 0 16px; }
.bep-grid ul.bep-card__list li { margin:0; padding:0; font-size:12.5px; line-height:1.35; list-style:none; }
.bep-grid a.bep-btn, .bep a.bep-btn { text-decoration:none; }
.bep-evt .bep-evt__h { font-family:"PT Sans Caption",Helvetica,Arial,sans-serif; font-size:30px; font-weight:700;
  line-height:1.1; margin:6px 0 10px; color:#2b2d31; text-transform:none; letter-spacing:0; text-align:left; }
.bep-evt .bep-evt__lead p { font-size:15px; line-height:1.5; margin:0 0 10px; }
.bep-evt .bep-evt__inc ul li { margin:0; padding:0; list-style:none; font-size:12.5px; line-height:1.4; }

/* ---------- property grid ---------- */
.bep-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(256px,1fr)); gap:20px; margin:24px 0; }
.bep-card { border:1px solid #de2027; padding:11px; display:flex; flex-direction:column; text-align:center; background:#fff; }
.bep-card.is-off { opacity:.6; border-color:#d3d3d6; }
.bep-card__shot { aspect-ratio:16/9; overflow:hidden; background:#f1f1f1; }
.bep-card__shot img { width:100%; height:100%; object-fit:cover; display:block; }
.bep-card__name { font-family:"PT Sans Caption",Helvetica,Arial,sans-serif; font-size:19px;
  font-weight:700; color:#de2027; margin:15px 0 12px; }
.bep-card__list { list-style:none; margin:0 0 16px; padding:0; display:grid; gap:7px;
  font-size:12.5px; text-align:left; color:#51545b; }
.bep-card__list li { display:flex; gap:8px; line-height:1.35; }
.bep-card__list li::before { content:"\2714"; color:#de2027; font-size:11px; flex:none; margin-top:1px; }
.bep-card__bar { background:#93959a; color:#fff; font-family:"PT Sans Caption",sans-serif;
  font-weight:700; font-size:11.5px; letter-spacing:.11em; text-transform:uppercase;
  padding:9px 6px; margin-top:auto; text-indent:.11em; }
.bep-card__bar--off { background:#b6b7bb; }

.bep-btn { display:inline-block; background:#de2027; color:#fff !important; border:0; border-radius:4px;
  font-family:"PT Sans Caption",Helvetica,Arial,sans-serif; font-weight:700; font-size:11px;
  letter-spacing:.39em; text-transform:uppercase; padding:14px 20px; text-indent:.39em;
  margin-top:15px; cursor:pointer; text-decoration:none; }
.bep-btn:hover { background:#b9161c; color:#fff !important; }
.bep-btn--wide { width:100%; margin-top:0; }

/* ---------- package product page: full width ---------- */
.bep-package.single-product div.product .woocommerce-product-gallery { display:none; }
.bep-package.single-product div.product div.summary { float:none; width:100%; max-width:none; margin-left:0; margin-right:0; }
/* A panel can only follow the page if nothing above it traps scrolling.
 * Themes often hide overflow on the main wrapper or the body, which does
 * exactly that. Clip keeps the same visual result without the trap. */
.bep-package #primary, .bep-package main.site-main { overflow:clip; }
body.bep-package { overflow-x:clip; overflow-y:visible; }

/* ---------- configurator ---------- */
.bep-config { display:block; }
.bep-step { margin:0 0 30px; }
.bep-step > h3 { font-family:"PT Sans Caption",Helvetica,Arial,sans-serif; font-size:19px;
  font-weight:700; text-transform:uppercase; color:#de2027; margin:0 0 3px; letter-spacing:.03em; }
.bep-step > p { color:#8b8d94; font-size:13px; margin:0 0 14px; }

.bep-modes { display:flex; gap:10px; flex-wrap:wrap; }
.bep-mode { flex:1 1 195px; background:#fff; border:1px solid #d3d3d6; padding:12px 14px;
  text-align:left; cursor:pointer; font:inherit; color:inherit; }
.bep-mode b { display:block; font-family:"PT Sans Caption",sans-serif; font-weight:700;
  font-size:13.5px; color:#2b2d31; margin-bottom:2px; }
.bep-mode span { font-size:11.5px; color:#8b8d94; }
.bep-mode[aria-pressed="true"] { border-color:#de2027; background:#fdeced; }
.bep-mode[aria-pressed="true"] b { color:#de2027; }

.bep-occ { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.bep-occ button { background:#fff; border:1px solid #d3d3d6; padding:14px 8px; cursor:pointer;
  font:inherit; color:inherit; text-align:center; }
.bep-occ b { display:block; font-family:"PT Sans Caption",sans-serif; font-weight:700; font-size:13px;
  text-transform:uppercase; letter-spacing:.09em; color:#2b2d31; }
.bep-occ .pp { display:block; font-family:"PT Sans Caption",sans-serif; font-size:21px;
  font-weight:700; color:#2b2d31; margin:7px 0 2px; }
.bep-occ .tot { display:block; font-size:11px; color:#8b8d94; }
.bep-occ button[aria-pressed="true"] { border-color:#de2027; background:#fdeced; }
.bep-occ button[aria-pressed="true"] b,
.bep-occ button[aria-pressed="true"] .pp { color:#de2027; }

.bep-rooms { display:flex; align-items:center; gap:10px; }
.bep-rooms input { width:80px; padding:8px; border:1px solid #d3d3d6; font:inherit; }
.bep-rooms span { color:#8b8d94; font-size:13px; }

.bep-tierwrap { display:grid; grid-template-columns:minmax(0,1fr) 250px; gap:22px; align-items:start; }
.bep-tiers { display:grid; }
.bep-tier { display:flex; align-items:center; gap:11px; background:#fff; border:1px solid #e2e2e4;
  border-bottom:0; padding:10px 12px; cursor:pointer; font:inherit; color:inherit;
  text-align:left; width:100%; }
.bep-tiers .bep-tier:last-child { border-bottom:1px solid #e2e2e4; }
.bep-tier:nth-child(even) { background:#f1f1f1; }
.bep-tier[aria-pressed="true"] { background:#fdeced; border-color:#de2027; box-shadow:inset 3px 0 0 #de2027; }
.bep-sw { width:14px; height:14px; flex:none; border:1px solid rgba(0,0,0,.14); }
.bep-lbl { flex:1; font-size:13px; }
.bep-up { font-family:"PT Sans Caption",sans-serif; font-weight:700; font-size:13.5px;
  color:#2b2d31; white-space:nowrap; text-align:right; }
.bep-up small { display:block; font-size:10px; color:#8b8d94; font-weight:400;
  font-family:Roboto,sans-serif; letter-spacing:0; }
.bep-inc { font-family:"PT Sans Caption",sans-serif; font-size:9.5px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:#fff; background:#1a7a4f;
  padding:3px 7px; text-indent:.14em; }
.bep-map img, .bep-map svg, .bep-map canvas { width:100%; height:auto; display:block; }
.bep-map canvas { cursor:pointer; }
.bep-map [hidden] { display:none; }
.bep-maplabel { font-size:11px; color:#8b8d94; text-align:center; margin:8px 0 0; }

/* ---------- summary panel ---------- */
.bep-panel { border:1px solid #de2027; background:#fff; max-width:420px; }

/* Wide layouts: options on the left, the package panel on the right, and the
 * panel follows the buyer down the page. This keys off the width of the
 * configurator itself, not the window, so it stays single column when a theme
 * puts it in a narrow product summary. Themes with a fixed header can set
 * --bep-sticky-top on .bep to clear it. If the panel is taller than the
 * window it scrolls inside, with Book Now pinned to its bottom edge. */
.bep { container-type:inline-size; }
@container (min-width:860px) {
  .bep-config { display:grid; grid-template-columns:minmax(0,1fr) 380px; column-gap:32px; align-items:start; }
  .bep-config > .bep-step, .bep-config > .bep-slider, .bep-config > .bep-about, .bep-config > .bep-hbar { grid-column:1; }
  .bep-config > .bep-panel { grid-column:2; grid-row:1 / span 12; position:sticky;
    top:var(--bep-sticky-top, 24px); max-width:none;
    max-height:calc(100vh - var(--bep-sticky-top, 24px) - 16px); overflow-y:auto; overscroll-behavior:contain; }
  .bep-config > .bep-panel .bep-panel__head { position:sticky; top:0; z-index:2; }
  /* The summary stays put. Only the payment choices scroll beneath it. */
  .bep-config > .bep-panel .bep-lines { position:sticky; top:39px; z-index:1; background:#fff; border-bottom:1px solid #e2e2e4;
    max-height:42vh; overflow-y:auto; }
  .bep-config > .bep-panel .bep-cta { position:sticky; bottom:0; background:#fff; padding-top:10px;
    border-top:1px solid #e2e2e4; }
  .bep-tierwrap { grid-template-columns:1fr; }
  .bep-map { max-width:320px; }
}
/* With room to spare, the tier list and the stadium map sit side by side. */
@container (min-width:1100px) {
  .bep-tierwrap { grid-template-columns:minmax(0,1fr) 300px; }
  .bep-map { max-width:none; }
}
.admin-bar .bep { --bep-sticky-top:56px; }
.bep-panel__head { background:#de2027; color:#fff; padding:11px 16px;
  font-family:"PT Sans Caption",sans-serif; font-weight:700; font-size:11.5px;
  letter-spacing:.2em; text-transform:uppercase; text-indent:.2em; }
.bep-lines { padding:15px 16px; display:grid; gap:10px; font-size:13px; }
.bep-ln { display:flex; justify-content:space-between; gap:12px; align-items:baseline; }
.bep-ln .k small { display:block; color:#8b8d94; font-size:11px; }
.bep-ln .v { font-family:"PT Sans Caption",sans-serif; font-weight:700; color:#2b2d31; white-space:nowrap; }
.bep-disc .k, .bep-disc .v { color:#1a7a4f; }
.bep-rule { height:1px; background:#e2e2e4; }
.bep-tot .k { font-family:"PT Sans Caption",sans-serif; font-weight:700; font-size:15px;
  text-transform:uppercase; letter-spacing:.08em; color:#2b2d31; }
.bep-tot .v { font-size:23px; color:#de2027; }

.bep-pay { padding:0 16px 14px; display:grid; gap:7px; }
.bep-pay h5 { font-family:"PT Sans Caption",sans-serif; font-size:10px; font-weight:700;
  letter-spacing:.22em; text-transform:uppercase; color:#8b8d94; margin:8px 0 1px; text-indent:.22em; }
.bep-opt { display:flex; gap:10px; align-items:flex-start; background:#f1f1f1;
  border:1px solid transparent; padding:10px 12px; cursor:pointer; font:inherit;
  color:inherit; text-align:left; width:100%; }
.bep-opt[aria-pressed="true"] { border-color:#de2027; background:#fdeced; }
.bep-dot { width:13px; height:13px; border-radius:50%; border:1.5px solid #d3d3d6;
  flex:none; margin-top:3px; position:relative; background:#fff; }
.bep-opt[aria-pressed="true"] .bep-dot { border-color:#de2027; }
.bep-opt[aria-pressed="true"] .bep-dot::after { content:""; position:absolute; inset:2.5px;
  border-radius:50%; background:#de2027; }
.bep-opt .t { flex:1; font-size:12.5px; }
.bep-opt .t b { display:block; font-family:"PT Sans Caption",sans-serif; font-weight:700;
  font-size:13px; color:#2b2d31; }
.bep-opt[aria-pressed="true"] .t b { color:#de2027; }
.bep-opt .t span { color:#8b8d94; font-size:11px; }
.bep-opt .amt { font-family:"PT Sans Caption",sans-serif; font-weight:700; font-size:13px;
  color:#2b2d31; white-space:nowrap; }

.bep-sched { padding:0 16px 14px; }
.bep-sched table { width:100%; border-collapse:collapse; font-size:12px; }
.bep-sched td { padding:5px 0; border-bottom:1px dotted #e2e2e4; }
.bep-sched tr:last-child td { border-bottom:0; }
.bep-sched td:last-child { text-align:right; font-family:"PT Sans Caption",sans-serif;
  font-weight:700; color:#2b2d31; }
.bep-sched .hd td { font-family:"PT Sans Caption",sans-serif; font-size:10px; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase; color:#8b8d94; border-bottom:1px solid #e2e2e4; }

.bep-cta { padding:0 16px 16px; }
.bep-rea { margin:11px 0 0; font-size:11px; color:#8b8d94; text-align:center; line-height:1.45; }

.bep-off { border:1px solid #de2027; background:#fdeced; padding:16px 18px; font-size:14px; }
.bep-note { color:#8b8d94; font-style:italic; }

.bep button:focus-visible, .bep-grid a:focus-visible { outline:2px solid #de2027; outline-offset:2px; }

/* ---------- room total, per person, plan deadline ---------- */
.bep-occ .room { display:block; font-size:11px; color:#2b2d31; margin-top:6px; padding-top:6px;
  border-top:1px solid #e2e2e4; }
.bep-each { text-align:right; font-size:11.5px; color:#8b8d94; margin-top:-4px; }
.bep-until { margin:0 16px 12px; font-size:12px; color:#8b8d94; line-height:1.45; }
.bep-until b { color:#2b2d31; font-weight:500; }

/* ---------- sold out and waitlist ---------- */
.bep-tier.is-sold { color:#8b8d94; }
.bep-tier.is-sold .bep-lbl small { display:block; font-size:11px; color:#8b8d94; }
.bep-inc--sold { background:#8b8d94; }
.bep-up .bep-inc { display:inline-block; margin-bottom:4px; }
.bep-card__bar--sold { background:#2b2d31; }
.bep-wl, .bep-wlbox { display:grid; gap:8px; text-align:left; font-size:13px; margin-top:14px; }
.bep-wlbox { margin:0; padding:14px; background:#fdeced; border:1px solid #de2027; border-top:0; }
.bep-wl p, .bep-wlbox p { margin:0; }
.bep-wl label, .bep-wlbox label { font-family:"PT Sans Caption",sans-serif; font-weight:700; font-size:10px;
  letter-spacing:.14em; text-transform:uppercase; color:#2b2d31; }
.bep-wl input[type=email], .bep-wlbox input[type=email] { width:100%; padding:9px; border:1px solid #d3d3d6;
  font:inherit; background:#fff; }
.bep-wl .bep-btn, .bep-wlbox .bep-btn { margin-top:2px; }
.bep-wlbox .bep-btn { justify-self:start; }
.bep-wl--sent, .bep-wlbox.is-sent { background:#e6f3ec; color:#1a7a4f; border-color:#1a7a4f; padding:12px 14px; display:block; }
.bep-wl__err, .bep-req p.bep-wl__err { color:#b9161c; font-size:12px; }

/* ---------- hotel photo slider ---------- */
.bep [hidden] { display:none !important; }
.bep-slider { margin:0 0 28px; }
.bep-slider__stage { position:relative; aspect-ratio:16/9; background:#f1f1f1; overflow:hidden; touch-action:pan-y; }
.bep-slider__stage img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
  opacity:0; transition:opacity .25s; }
.bep-slider__stage img.is-on { opacity:1; }
.bep-slider__nav { position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border-radius:50%;
  border:0; background:rgba(0,0,0,.55); color:#fff; font-size:20px; line-height:1; cursor:pointer; padding:0; }
.bep-slider__nav:hover { background:#de2027; }
.bep-slider__nav--prev { left:10px; } .bep-slider__nav--next { right:10px; }
.bep-slider__count { position:absolute; right:10px; bottom:10px; background:rgba(0,0,0,.6); color:#fff;
  font-size:11px; padding:3px 8px; font-variant-numeric:tabular-nums; }
.bep-slider__thumbs { display:flex; gap:8px; margin-top:8px; overflow-x:auto; }
.bep-slider__thumbs button { flex:0 0 96px; height:60px; padding:0; border:2px solid transparent; background:#f1f1f1;
  opacity:.6; cursor:pointer; }
.bep-slider__thumbs button[aria-current="true"] { border-color:#de2027; opacity:1; }
.bep-slider__thumbs img { width:100%; height:100%; object-fit:cover; display:block; }

/* ---------- hotel description and address, from the hotel record ---------- */
.bep-about { margin:0 0 28px; font-size:14px; line-height:1.55; }
.bep-about__stay { font-family:"PT Sans Caption",Helvetica,Arial,sans-serif; font-size:11px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:#de2027; margin:0 0 10px; }
.bep-about__short p { margin:0 0 10px; }
.bep-about__addr { margin:0; color:#8b8d94; font-size:13px; }
.bep-addr { display:inline-flex; align-items:center; gap:5px; color:inherit; text-decoration:none; border-bottom:1px solid transparent; }
.bep-addr svg { flex:none !important; width:14px !important; height:14px !important; max-width:none !important; color:#de2027; display:inline-block; vertical-align:-2px; }
.bep-addr span { white-space:normal; }
.bep-addr:hover, .bep-addr:focus-visible { color:#de2027; border-bottom-color:#de2027; }
.bep-addr--page { display:inline; border-bottom:1px solid currentColor; }
.bep-addr--page:hover { color:#de2027; }

/* ---------- custom seat row ---------- */
.bep-tier--custom .bep-lbl small { display:block; font-size:11px; color:#8b8d94; }
.bep-sw--custom { background:#fff; border:1px dashed #8b8d94; }
.bep-inc--req { background:#2b2d31; }

/* ---------- custom payment request ---------- */
.bep-req { margin:0 16px 14px; display:grid; gap:7px; font-size:12.5px; }
.bep-req p { margin:0 0 2px; color:#8b8d94; }
.bep-req label { font-family:"PT Sans Caption",sans-serif; font-weight:700; font-size:10px; letter-spacing:.14em;
  text-transform:uppercase; color:#2b2d31; margin-top:4px; }
.bep-req input, .bep-req textarea { width:100%; padding:8px; border:1px solid #d3d3d6; font:inherit; background:#fff; color:#2b2d31; }
.bep-req textarea { min-height:84px; resize:vertical; }
.bep-req.is-sent { display:block; background:#e6f3ec; color:#1a7a4f; padding:12px 14px; }

/* ---------- phone bar ---------- */
.bep-mbar { display:none; }

@media (max-width:760px) {
  .bep-tierwrap { grid-template-columns:1fr; }
  .bep { padding-bottom:84px; }
  .bep-panel { max-width:none; }
  .bep-mbar { display:flex; position:fixed; left:0; right:0; bottom:0; z-index:9990; align-items:center; gap:12px;
    background:#fff; border-top:1px solid #de2027; padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px)); }
  .bep-mbar__t { flex:1; min-width:0; }
  .bep-mbar__t b { display:block; font-family:"PT Sans Caption",sans-serif; font-size:19px; color:#de2027;
    font-variant-numeric:tabular-nums; }
  .bep-mbar__t small { display:block; font-size:11px; color:#8b8d94; white-space:nowrap; overflow:hidden;
    text-overflow:ellipsis; }
  .bep-mbar .bep-btn { margin-top:0; padding:14px 16px; letter-spacing:.2em; text-indent:.2em; }
}
@media (max-width:620px) {
  .bep-occ { grid-template-columns:repeat(2,1fr); }
}

/* Quote code box, above the custom seat request form. */
.bep-q { display:flex; gap:6px; }
.bep-q input { flex:1; min-width:0; text-transform:uppercase; letter-spacing:.06em; font-weight:700; }
.bep-q__go { border:0; background:#2b2d31; color:#fff; font:inherit; font-weight:700; padding:0 14px; cursor:pointer; }
.bep-q__go[disabled] { opacity:.5; }
.bep-req p.bep-q__or { margin:8px 0 0; padding-top:10px; border-top:1px solid #e2e2e4; }

/* ---------- hotel strip and the hotel details window ---------- */
.bep-hbar { display:flex; align-items:center; gap:16px; margin:0 0 28px; padding:12px; border:1px solid #e2e2e4; background:#fff; }
.bep-hbar__img { flex:0 0 112px; height:72px; padding:0; border:0; background:#f1f1f1; cursor:pointer; overflow:hidden; }
.bep-hbar__img img { width:100%; height:100%; object-fit:cover; display:block; }
.bep-hbar__txt { flex:1; min-width:0; }
.bep-hbar__txt p { margin:0; }
.bep-hbar__txt .bep-about__stay { margin:0 0 4px; }
.bep-hbar__btn { flex:none; border:1px solid #2b2d31; background:#fff; color:#2b2d31; font:inherit; font-weight:700; font-size:13px;
  padding:10px 16px; cursor:pointer; text-align:center; line-height:1.2; border-radius:0; }
.bep-hbar__btn:hover { background:#2b2d31; color:#fff; }
.bep-hbar__btn small { display:block; font-weight:400; font-size:11px; opacity:.7; margin-top:2px; }
@container (max-width:520px) {
  .bep-hbar { flex-wrap:wrap; }
  .bep-hbar__btn { flex:1 1 100%; }
}
dialog.bep-hd { width:min(880px, calc(100vw - 24px)); max-width:none; max-height:calc(100vh - 24px); padding:0; border:0;
  background:#fff; color:#2b2d31; box-shadow:0 20px 60px rgba(0,0,0,.35); overflow:hidden; }
dialog.bep-hd::backdrop { background:rgba(20,21,24,.6); }
.bep-hd__in { display:flex; flex-direction:column; max-height:calc(100vh - 24px); position:relative; }
.bep-hd__top { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; border-bottom:1px solid #e2e2e4; }
.bep-hd__top h3 { margin:0; font-size:18px; line-height:1.2; }
.bep-hd__x { border:0; background:none; font-size:28px; line-height:1; width:36px; height:36px; cursor:pointer; color:#2b2d31; padding:0; }
.bep-hd__x:hover { color:#de2027; }
.bep-hd__body { padding:18px 18px 48px; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
/* Scroll cue: a fade over the bottom edge and a small pill, both gone once the buyer reaches the end. */
.bep-hd__cue { position:absolute; left:0; right:0; bottom:0; height:84px; pointer-events:none; display:flex; align-items:flex-end; justify-content:center; padding-bottom:12px;
  background:linear-gradient(to bottom, rgba(255,255,255,0), #fff 70%); transition:opacity .2s; }
.bep-hd__cue span { font-family:"PT Sans Caption",Helvetica,Arial,sans-serif; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:#fff; background:#2b2d31; padding:7px 14px 7px 12px; border-radius:999px; box-shadow:0 4px 14px rgba(0,0,0,.18); display:inline-flex; align-items:center; gap:6px; }
.bep-hd__cue span::after { content:""; width:7px; height:7px; border-right:2px solid #fff; border-bottom:2px solid #fff; transform:translateY(-2px) rotate(45deg); animation:bep-nudge 1.4s ease-in-out infinite; }
@keyframes bep-nudge { 0%,100% { transform:translateY(-3px) rotate(45deg); } 50% { transform:translateY(0) rotate(45deg); } }
.bep-hd__in.is-end .bep-hd__cue { opacity:0; }
.bep-hd__incl { border-top:1px solid #e2e2e4; padding-top:14px; }
.bep-hd__incl h4 { margin:0 0 10px; font-family:"PT Sans Caption",Helvetica,Arial,sans-serif; font-weight:700; font-size:13px; letter-spacing:.12em; text-transform:uppercase; color:#2b2d31; }
.bep-hd__body .bep-slider { margin:0 0 18px; }
.bep-hd__body .bep-about { margin:0 0 16px; }
.bep-hd__more { margin:14px 0 0; font-size:13px; }
.bep-hd__more a { color:#de2027; font-weight:700; }
.bep-hd__body .bep-slider__stage { max-height:42vh; width:100%; }

/* Accordion rows in the hotel details window. */
.bep-acc { border-top:1px solid #e2e2e4; }
.bep-acc:last-of-type { border-bottom:1px solid #e2e2e4; }
.bep-acc > summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:14px 2px; font-family:"PT Sans Caption",Helvetica,Arial,sans-serif; font-weight:700; font-size:13px; letter-spacing:.12em;
  text-transform:uppercase; color:#2b2d31; }
.bep-acc > summary::-webkit-details-marker { display:none; }
.bep-acc > summary::after { content:"+"; font-size:22px; font-weight:400; line-height:1; color:#de2027; letter-spacing:0; }
.bep-acc[open] > summary::after { content:"\2212"; }
.bep-acc > summary:hover { color:#de2027; }
.bep-acc__in { padding:0 2px 16px; font-size:14px; line-height:1.5; }
.bep-acc__rich ul { margin:0 !important; padding:0 0 0 20px !important; list-style:disc outside !important; }
.bep-acc__rich ul ul { margin:6px 0 0 !important; list-style:circle outside !important; }
.bep-acc__rich li { margin:0 0 8px !important; padding:0 !important; list-style:inherit !important; }
.bep-acc__rich li::before { content:none !important; }
.bep-acc__rich p { margin:0 0 8px; }
.bep-hd__body .bep-slider { margin-bottom:14px; }

/* ---------- checkout: processing screen ---------- */
.bep-processing { position:fixed; inset:0; z-index:100000; background:rgba(20,21,24,.78); display:flex; align-items:center; justify-content:center; padding:24px; }
.bep-processing__box { background:#fff; color:#2b2d31; max-width:420px; width:100%; padding:36px 32px; text-align:center; box-shadow:0 20px 60px rgba(0,0,0,.4); }
.bep-processing__box h2 { margin:18px 0 8px; font-size:22px; line-height:1.2; color:#2b2d31; }
.bep-processing__box p { margin:0; font-size:15px; line-height:1.5; color:#51545b; }
.bep-processing__spin { width:44px; height:44px; margin:0 auto; border-radius:50%; border:4px solid #e2e2e4; border-top-color:#de2027; animation:bep-spin .9s linear infinite; }
@keyframes bep-spin { to { transform:rotate(360deg); } }
body.bep-processing-on { overflow:hidden; }

/* ---------- order confirmation page ---------- */
.bep-ty__conf { display:block; font-size:.6em; font-weight:400; margin-top:6px; color:#51545b; }
.bep-ty { border:2px solid #de2027; padding:24px 28px; margin:24px 0 36px; background:#fff; }
.bep-ty__h { margin:0 0 16px !important; font-size:22px !important; }
.bep-ty__steps { margin:0 !important; padding:0 0 0 26px !important; }
.bep-ty__steps > li { margin:0 0 18px !important; padding:0 !important; font-size:15px; line-height:1.5; }
.bep-ty__steps > li > b { display:block; font-size:17px; color:#2b2d31; margin-bottom:4px; }
.bep-ty__steps p { margin:0 0 8px !important; color:#51545b; }
.bep-ty__bank { background:#f4f4f5; padding:16px 18px; margin:8px 0 4px; max-width:520px; }
.bep-ty__bank table { margin:0 !important; border:0 !important; width:100%; }
.bep-ty__bank th, .bep-ty__bank td { padding:4px 0 !important; border:0 !important; background:none !important; font-size:14px; text-align:left; vertical-align:top; }
.bep-ty__bank th { width:42%; font-weight:400; color:#6b6e75; padding-right:12px !important; }
.bep-ty__bank td { font-weight:700; color:#2b2d31; font-variant-numeric:tabular-nums; }
.bep-ty__bank-note { font-size:13px; color:#51545b; margin-top:10px; border-top:1px solid #e2e2e4; padding-top:10px; }
.bep-ty__bank-note p { margin:0 0 6px !important; }
.bep-ty__sched { margin:4px 0 0 !important; border:0 !important; max-width:520px; }
.bep-ty__sched td { padding:5px 12px 5px 0 !important; border:0 !important; border-bottom:1px solid #e2e2e4 !important; font-size:14px; background:none !important; }
.bep-ty__sched td:last-child { text-align:right; font-weight:700; }
.bep-ty__help { margin:10px 0 0 !important; font-size:14px; color:#51545b; }

/* The floating side cart basket (Side Cart for WooCommerce) stays off the
   booking page. The buyer builds one package and presses Book Now; a
   second cart control over the panel only confuses that. */
body.bep-package .xoo-wsc-container, body.bep-package .xoo-wsc-basket, body.bep-package .xoo-wsc-markup { display:none !important; }

/* The live theme turns every button black on hover. The choices on this
   page are buttons, so each gets a hover of its own: a red edge on white.
   Only a chosen item carries the pale red fill, so hover and selected
   never look alike. */
body.bep-package .bep .bep-mode:hover,
body.bep-package .bep .bep-occ button:hover,
body.bep-package .bep .bep-tier:hover,
body.bep-package .bep .bep-opt:hover { background-color:#fff; border-color:#de2027; color:inherit; }
body.bep-package .bep .bep-tier:hover { box-shadow:inset 0 0 0 1px #de2027; }
body.bep-package .bep .bep-mode[aria-pressed="true"]:hover,
body.bep-package .bep .bep-occ button[aria-pressed="true"]:hover,
body.bep-package .bep .bep-tier[aria-pressed="true"]:hover,
body.bep-package .bep .bep-opt[aria-pressed="true"]:hover { background-color:#fdeced; }
body.bep-package .bep .bep-tier[aria-pressed="true"]:hover { box-shadow:inset 3px 0 0 #de2027; }
body.bep-package .bep .bep-tier--custom:hover { border-color:#2b2d31; box-shadow:inset 0 0 0 1px #2b2d31; }
body.bep-package .bep .bep-tier.is-sold:hover, body.bep-package .bep button[disabled]:hover { background-color:#fff; border-color:#e2e2e4; box-shadow:none; }
body.bep-package .bep .bep-q__go:hover { background-color:#000; color:#fff; }
body.bep-package .bep-hd button:not(.bep-slider__nav):not(.bep-hd__x):hover { background-color:#f4f4f5; }
body.bep-package .bep button[data-wait]:hover, body.bep-package .bep button[data-wl-send]:hover,
body.bep-package .bep .bep-slider__thumbs button:hover, body.bep-package .bep [data-slide]:hover { color:inherit; }

/* ---------- cart and checkout, Bullseye colors ---------- */
body.bep-cart .woocommerce .cart-collaterals, body.bep-cart .woocommerce .cart_totals { width:100%; float:none; }
body.bep-cart .woocommerce .cart_totals h2 { font-size:22px; margin:0 0 10px; }
body.bep-cart .woocommerce .cart_totals table { width:100%; }
body.bep-cart .woocommerce a.checkout-button, body.bep-cart .woocommerce button.checkout-button,
body.bep-cart .woocommerce #place_order, body.bep-cart .woocommerce button.alt {
  display:block; width:100%; background:#de2027 !important; color:#fff !important; border:0; border-radius:0;
  font-family:"PT Sans Caption",Helvetica,Arial,sans-serif; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  text-decoration:none; padding:16px 20px; text-align:center; }
body.bep-cart .woocommerce a.checkout-button:hover, body.bep-cart .woocommerce button.checkout-button:hover,
body.bep-cart .woocommerce #place_order:hover, body.bep-cart .woocommerce button.alt:hover { background:#b9161c !important; color:#fff !important; }
body.bep-cart .woocommerce .coupon, body.bep-cart .woocommerce-form-coupon-toggle, body.bep-cart .woocommerce-form-coupon { display:none !important; }
body.bep-cart .woocommerce table.shop_table { border-radius:0; border-color:#e2e2e4; }
body.bep-cart .woocommerce table.shop_table td, body.bep-cart .woocommerce table.shop_table th { border-color:#e2e2e4; }
body.bep-cart .woocommerce .product-remove a.remove { color:#8b8d94 !important; }
body.bep-cart .woocommerce .product-remove a.remove:hover { background:#de2027; color:#fff !important; }
body.bep-cart .woocommerce-cart-form button[name="update_cart"] { display:none; }
body.bep-cart .xoo-wsc-container, body.bep-cart .xoo-wsc-basket, body.bep-cart .xoo-wsc-markup { display:none !important; }

/* Payment plan authorisation under the card fields at checkout. */
.bep-consent { margin:14px 0 4px; padding:14px 16px; background:#fff; border:1px solid #de2027; font-size:14px; line-height:1.5; }
.bep-consent p { margin:0 0 8px; }
.bep-consent__rows { margin:0 0 10px; padding:0; }
.bep-consent__row { margin:0; padding:3px 0 3px 14px; line-height:1.4; border-left:3px solid #de2027; }
.bep-consent__row b { font-family:"PT Sans Caption",Helvetica,Arial,sans-serif; }
.bep-consent__fine { font-size:12.5px; color:#51545b; }
.bep-consent__tick { display:flex; gap:10px; align-items:flex-start; font-weight:700; margin:0; cursor:pointer; }
.bep-consent__tick input { margin:4px 0 0; flex:none; width:18px; height:18px; }

/* The schedule sits inside the chosen plan option. */
.bep-sched--in { padding:0 12px 10px 35px; background:#fdeced; border:1px solid #de2027; border-top:0; margin:-1px 0 0; }
.bep-sched--in table { font-size:12px; }
.bep-sched--in td { border-bottom-color:#f3c7c9; }
.bep-sched--in .hd td { color:#b9161c; }

/* Several packages in one order. */
.bep-cartbar { display:flex; flex-wrap:wrap; gap:6px 14px; align-items:center; background:#2b2d31; color:#fff; padding:12px 16px; margin:0 0 18px; font-size:14px; }
.bep-cartbar a { color:#fff; font-weight:700; text-decoration:underline; }
.bep-cartbar__cart { font-weight:400 !important; opacity:.8; }
body.bep-cart .bep-add-another { display:block; width:100%; margin-top:10px; background:#fff !important; color:#2b2d31 !important; border:1px solid #2b2d31 !important; text-align:center; font-weight:700; padding:14px; text-decoration:none; }
body.bep-cart .bep-add-another:hover { background:#f4f4f5 !important; }
body.bep-cart .bep-other-hotel { display:block; text-align:center; margin-top:10px; font-size:13px; color:#51545b; }

/* Custom seat selection: the panel is where the form is, so say so. */
.bep-panel.is-seat { box-shadow:0 0 0 3px #fdeced, 0 0 0 5px #de2027; }
.bep-panel.is-flash { animation:bep-flash 1.2s ease-out 2; }
@keyframes bep-flash { 0%,100% { box-shadow:0 0 0 3px #fdeced, 0 0 0 5px #de2027; } 50% { box-shadow:0 0 0 6px #fdeced, 0 0 0 9px #de2027; } }
.bep-req__h { margin:0 0 6px; font-family:"PT Sans Caption",Helvetica,Arial,sans-serif; font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#de2027; }

/* A way to reach a person, right where the buying happens. */
.bep-panel__head { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.bep-panel__help { color:#fff !important; font-size:11px; font-weight:400; letter-spacing:.04em; text-transform:none; text-decoration:underline; white-space:nowrap; }
.bep-mbar__call { display:flex; align-items:center; justify-content:center; width:40px; height:40px; flex:none; color:#de2027 !important; border:1px solid #de2027; border-radius:50%; }
