/* =====================================================================
   Luminate website - our own changes (loaded after style.css)
   Keep new styling here rather than editing style.css.
   ===================================================================== */

/* --- No curved edges (homepage hero + wide image slider) ------------------ */
.hero-panel.no-curve,
.full-image-slider-panel.no-curve,
.full-image-slider-panel.no-curve .slider {
    -webkit-mask: none !important;
    mask: none !important;
}
.full-image-slider-panel.no-curve { padding-bottom: 50px; }

/* Hero video: poster shows instantly, video fades in when it can play */
.hero-panel .video-bg { background: #000 url('../assets/hero-video-poster.jpg') center / cover no-repeat; }
.hero-panel .video-bg video { object-fit: cover; height: 100%; min-width: 100%; top: 0; }

/* --- Venues: homepage cards ---------------------------------------------- */
.venues-grid-panel { padding: 60px 0 70px; }
.venues-grid-panel .container { max-width: 1320px; }
.venue-cards { display: flex; flex-wrap: wrap; justify-content: center; gap: 26px; }
.vcard {
    flex: 0 1 calc((100% - 52px) / 3);
    display: flex; flex-direction: column;
    background: #0e1230; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 26px;
    overflow: hidden; box-shadow: 0 14px 40px rgba(0, 0, 0, 0.35);
    transition: transform 0.25s ease, border-color 0.25s ease;
}
.vcard:hover { transform: translateY(-4px); border-color: rgba(249, 192, 84, 0.45); }
.vcard-photo { position: relative; display: block; aspect-ratio: 4 / 3; background: #000 center / cover no-repeat; }
.vcard-place {
    position: absolute; top: 18px; left: 18px; padding: 7px 16px; border-radius: 999px;
    background: rgba(8, 10, 24, 0.82); color: #fff; font-size: 15px; font-weight: 600; font-family: var(--font-body);
}
.vcard-body { display: flex; flex-direction: column; flex: 1; padding: 28px 30px 30px; }
.vcard h3 { font-family: var(--font-display) !important; font-weight: 500; font-size: 32px; line-height: 38px; margin: 0 0 8px; text-transform: none; letter-spacing: 0; }
.vcard h3 a { color: #fff; text-decoration: none; }
.vcard-dates { color: var(--lm-amber, #F9C054) !important; font-size: 18px; font-weight: 600; margin: 0 0 14px; }
.vcard-blurb { font-size: 17px; line-height: 27px; color: var(--lm-text-soft, #c9cdd6); margin: 0 0 10px; }
.vcard-trail { font-size: 14px; color: var(--lm-text-soft, #c9cdd6); opacity: 0.9; margin: 0 0 6px; }
.vcard-buttons { display: flex; gap: 12px; margin-top: auto; padding-top: 22px; flex-wrap: wrap; }
.vbtn {
    display: inline-flex; align-items: center; justify-content: center; height: 54px; padding: 0 28px;
    border-radius: 999px; font-family: var(--font-body); font-weight: 700; font-size: 17px; text-decoration: none;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.vbtn-gold { background: var(--lm-amber, #F9C054); color: #0e1230 !important; }
.vbtn-gold:hover { background: var(--lm-amber-hot, #fbd07c); }
.vbtn-outline { border: 1px solid rgba(255, 255, 255, 0.22); color: #fff !important; }
.vbtn-outline:hover { border-color: var(--lm-amber, #F9C054); color: var(--lm-amber, #F9C054) !important; }
@media (max-width: 1199px) { .vcard { flex-basis: calc((100% - 26px) / 2); } }
@media (max-width: 767px) {
    .venues-grid-panel { padding: 36px 0 50px; }
    .venue-cards { gap: 18px; }
    .vcard { flex-basis: 100%; border-radius: 22px; }
    .vcard-photo { aspect-ratio: 16 / 10; }
    .vcard-body { padding: 22px 22px 24px; }
    .vcard h3 { font-size: 28px; line-height: 34px; }
    .vcard-blurb { font-size: 16px; line-height: 25px; }
    .vbtn { flex: 1; height: 50px; padding: 0 18px; font-size: 16px; }
}

/* --- POV videos from social media ---------------------------------------- */
.pov-panel { padding: 30px 0 80px; }
.pov-panel .text-content { margin-bottom: 35px; }
.pov-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    max-width: 1100px;
    margin: 0 auto;
}
.pov-tile {
    position: relative;
    aspect-ratio: 9 / 16;
    border-radius: 18px;
    overflow: hidden;
    background: linear-gradient(160deg, #1b2547 0%, #131c33 55%, #3a0f2c 100%);
    border: 1px solid rgba(255, 255, 255, 0.08);
    display: flex; align-items: center; justify-content: center; flex-direction: column;
    text-align: center;
    color: #fff;
}
.pov-tile video, .pov-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pov-tile .pov-play {
    width: 62px; height: 62px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: rgba(204, 0, 102, 0.9); font-size: 22px; color: #fff;
    box-shadow: 0 0 0 8px rgba(204, 0, 102, 0.2);
}
.pov-tile .pov-label { margin-top: 16px; font-size: 13px; color: var(--lm-text-soft, #c9cdd6); padding: 0 12px; }
.pov-tile .pov-caption {
    position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 14px 14px;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.8) 100%);
    font-size: 13px; text-align: left; color: #fff;
}
.pov-tile .pov-caption i { margin-right: 6px; }
a.pov-tile:hover { border-color: rgba(204, 0, 102, 0.6); }
@media (max-width: 767px) {
    .pov-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}

/* =====================================================================
   Venue pages (content/venue-page.php)
   ===================================================================== */
.venue-hero { padding: 200px 20px 170px; }
.venue-hero .video-bg { background-size: cover; background-position: center; }

/* Key fact cards, overlapping the bottom of the hero */
.venue-facts-panel { position: relative; z-index: 2; margin-top: -70px; padding-bottom: 20px; }
.venue-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; max-width: 1150px; margin: 0 auto; }
.venue-fact {
    display: flex; flex-direction: column; align-items: center; text-align: center;
    background: rgba(19, 28, 51, 0.92); backdrop-filter: blur(6px);
    border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 18px;
    padding: 22px 16px; box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
    color: var(--lm-text, #f7f5f0); text-decoration: none;
}
a.venue-fact:hover { border-color: rgba(204, 0, 102, 0.6); color: var(--lm-text, #f7f5f0); }
.venue-fact i { font-size: 26px; color: var(--lm-pink-hot, #e40c78); margin-bottom: 10px; }
.venue-fact-label { font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--lm-gold, #ffcc33); margin-bottom: 6px; }
.venue-fact-value { font-size: 16px; line-height: 22px; font-weight: 600; }
.venue-fact-sub { font-size: 13px; margin-top: 4px; color: var(--lm-text-soft, #c9cdd6); }
@media (max-width: 991px) { .venue-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) {
    .venue-hero { padding: 150px 16px 120px; }
    .venue-facts-panel { margin-top: -50px; }
    .venue-facts { gap: 10px; }
    .venue-fact { padding: 16px 10px; border-radius: 14px; }
    .venue-fact i { font-size: 22px; margin-bottom: 6px; }
    .venue-fact-value { font-size: 14px; line-height: 19px; }
}

.venue-intro { padding-top: 20px !important; padding-bottom: 30px !important; }
.venue-facts-panel + .venue-intro { margin-top: 0 !important; }
.venue-logo { max-width: 170px !important; margin-bottom: 22px; }
@media (max-width: 575px) { .venue-logo { max-width: 130px !important; } }

/* Dates & Times */
.venue-dates-panel { padding: 50px 0 40px; }
.venue-dates-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 18px; max-width: 1000px; margin: 0 auto; }
.venue-dates-card {
    background: var(--lm-bg-raised, #131c33); border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 20px; padding: 30px 28px;
}
.venue-dates-card.season { background: radial-gradient(ellipse at 0% 0%, rgba(204, 0, 102, 0.28) 0%, rgba(204, 0, 102, 0) 60%), var(--lm-bg-raised, #131c33); }
.venue-dates-kicker { display: block; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--lm-gold, #ffcc33); margin-bottom: 18px; }
.season-range { display: flex; align-items: center; gap: 18px; margin-bottom: 24px; }
.season-range > i { font-size: 28px; color: var(--lm-pink-hot, #e40c78); }
.season-day { display: flex; flex-direction: column; align-items: center; min-width: 92px; padding: 12px 10px; border-radius: 14px; background: rgba(255, 255, 255, 0.06); }
.season-day span { font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--lm-text-soft, #c9cdd6); }
.season-day strong { font-size: 40px; line-height: 44px; color: #fff; }
.season-text { font-size: 20px; color: #fff; }
.venue-dates-list { list-style: none; padding: 0; margin: 0; }
.venue-dates-list li { display: flex; gap: 12px; align-items: flex-start; padding: 8px 0; border-top: 1px solid rgba(255, 255, 255, 0.07); color: var(--lm-text-soft, #c9cdd6); font-size: 15px; }
.venue-dates-list li i { color: var(--lm-pink-hot, #e40c78); font-size: 18px; width: 22px; margin-top: 2px; }
.venue-dates-card.special h5 { font-size: 16px; margin: 4px 0 12px; color: #fff; }
.venue-dates-card.special h5 i { color: var(--lm-gold, #ffcc33); margin-right: 6px; }
.date-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.date-chip { font-size: 13px; padding: 6px 12px; border-radius: 999px; background: rgba(255, 204, 51, 0.12); border: 1px solid rgba(255, 204, 51, 0.35); color: #fff; }
@media (max-width: 767px) {
    .venue-dates-grid { grid-template-columns: 1fr; }
    .venue-dates-card { padding: 24px 18px; }
    .season-range { justify-content: center; gap: 10px; }
    .season-day { min-width: 80px; }
    .season-day strong { font-size: 32px; line-height: 36px; }
}

.venue-ready { padding-top: 40px !important; padding-bottom: 40px !important; }
.venue-ready h4 { font-size: 34px; }

/* Map */
.venue-map-panel { padding: 30px 0 70px; }
.venue-map { max-width: 620px; margin: 0 auto; border-radius: 20px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.1); background: var(--lm-bg-raised, #131c33); }
.venue-map iframe { display: block; width: 100%; height: 280px; border: 0; filter: grayscale(0.2) contrast(1.05); }
.venue-map img { display: block; width: 100%; max-height: 360px; object-fit: contain; }
@media (max-width: 575px) { .venue-map iframe { height: 220px; } }

/* =====================================================================
   Gold accent #F9C054 - mixed in with the pink across the site.
   Rule of thumb: PINK = ticket buying (Buy Tickets, banner)
                  GOLD = everything else (info buttons, arrows, alternate icons)
   ===================================================================== */
:root { --lm-amber: #F9C054; --lm-amber-hot: #fbd07c; }

.btn-gold { background: var(--lm-amber); border-color: var(--lm-amber); color: #0a0f1e !important; }
.btn-gold:hover, .btn-gold:focus, .btn-gold:active { background: var(--lm-amber-hot) !important; border-color: var(--lm-amber-hot) !important; color: #0a0f1e !important; }

/* Slider arrows + progress bars */
.gallery-arrow.pink { color: var(--lm-amber) !important; border-color: var(--lm-amber) !important; }
.gallery-arrow.pink:hover { background: var(--lm-amber) !important; color: #0a0f1e !important; }
.swiper-pagination-progressbar .swiper-pagination-progressbar-fill { background: var(--lm-amber) !important; }

/* Alternate pink / gold */
.venue-fact:nth-child(even) i,
.venue-dates-list li:nth-child(even) i { color: var(--lm-amber); }
.pov-tile:nth-child(even) .pov-play { background: rgba(249, 192, 84, 0.95); color: #0a0f1e; box-shadow: 0 0 0 8px rgba(249, 192, 84, 0.2); }
.venue-fact-label, .venue-dates-kicker { color: var(--lm-amber); }
.season-range > i { color: var(--lm-amber); }
.date-chip { background: rgba(249, 192, 84, 0.12); border-color: rgba(249, 192, 84, 0.4); }
.btn-white-keyline:hover { border-color: var(--lm-amber) !important; color: var(--lm-amber) !important; background: none !important; }

/* =====================================================================
   Help Centre - venue dropdown (public/help-centre.php)
   ===================================================================== */
.help-venue-picker { max-width: 560px; margin: 10px auto 18px; text-align: center; }
.help-venue-picker label { display: block; font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--lm-amber, #F9C054); margin-bottom: 10px; }
.help-venue-row { display: flex; gap: 10px; }
.help-venue-picker select.form-select {
    flex: 1; height: 58px; border-radius: 14px; padding: 0 48px 0 20px; font-size: 17px; font-weight: 600;
    background-color: var(--lm-bg-raised, #131c33); color: #fff; border: 2px solid var(--lm-amber, #F9C054);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23F9C054' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 18px center; background-size: 16px 12px;
    -webkit-appearance: none; appearance: none; cursor: pointer;
}
.help-venue-picker select.form-select:focus { outline: none; box-shadow: 0 0 0 4px rgba(249, 192, 84, 0.25); }
.help-venue-picker select option { color: #111; background: #fff; }
.help-venue-hint { font-size: 14px; margin: 10px 0 0; }
.help-change-btn { margin: 6px auto 10px; }
.help-change-btn i { margin-right: 6px; }
@media (max-width: 575px) {
    .row.features > .col.col-xl-3.col-sm-6 { flex: 0 0 50%; max-width: 50%; padding-left: 6px; padding-right: 6px; }
    .keyline-cta-box { padding: 16px 8px !important; margin-bottom: 12px !important; min-height: 0 !important; }
    .keyline-cta-box .icon-circle { width: 56px !important; height: 56px !important; line-height: 56px !important; font-size: 24px !important; margin-bottom: 8px !important; }
    .keyline-cta-box h5 { font-size: 15px !important; line-height: 19px !important; margin: 0 !important; }
}

/* =====================================================================
   Footer (includes/footer.php)
   ===================================================================== */
.site-footer { background: #05070f; padding: 40px 0 30px; text-align: left; border-top: 1px solid rgba(255, 255, 255, 0.06); }
.site-footer .container { max-width: 1320px; }
.site-footer a { color: var(--lm-text, #f7f5f0); text-decoration: none; }
.site-footer a:hover { color: var(--lm-amber, #F9C054); }

/* Newsletter card */
.lf-newsletter {
    display: flex; align-items: center; justify-content: space-between; gap: 30px;
    background: radial-gradient(ellipse at 0% 0%, rgba(204, 0, 102, 0.22) 0%, rgba(204, 0, 102, 0) 55%), var(--lm-bg-raised, #131c33);
    border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 22px; padding: 36px 44px; margin-bottom: 55px;
}
.lf-newsletter h4 { font-size: 30px; line-height: 36px; margin: 0 0 6px; color: var(--lm-amber, #F9C054) !important; }
.lf-newsletter p { margin: 0; font-size: 16px; color: var(--lm-text-soft, #c9cdd6); }
.lf-newsletter-form { position: relative; display: flex; gap: 12px; flex: 0 0 auto; width: 100%; max-width: 560px; flex-wrap: wrap; }
.lf-newsletter-form .form-control {
    flex: 1; min-width: 0; height: 60px; border-radius: 14px; padding: 0 22px; font-size: 16px;
    background: #070a14 !important; color: #fff !important; border: 1px solid rgba(255, 255, 255, 0.18) !important;
}
.lf-newsletter-form .form-control::placeholder { color: #8a90a0; }
.lf-newsletter-form .form-control:focus { border-color: var(--lm-amber, #F9C054) !important; box-shadow: 0 0 0 3px rgba(249, 192, 84, 0.2); }
.lf-newsletter-form .btn { height: 60px; padding: 0 34px; border-radius: 14px; font-size: 17px; }
.lf-newsletter-form .error-message { flex-basis: 100%; color: #ff8a8a; font-size: 14px; }
.lf-newsletter .success-message { margin: 0; font-size: 18px; color: var(--lm-amber, #F9C054); }

/* Brand + link columns */
.lf-main { display: grid; grid-template-columns: 1.6fr repeat(4, 1fr); gap: 30px; padding-bottom: 45px; border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
.lf-logo { width: 190px; height: auto; margin-bottom: 20px; }
.lf-brand p { font-size: 15px; line-height: 24px; max-width: 340px; color: var(--lm-text-soft, #c9cdd6); margin-bottom: 22px; }
.lf-social { list-style: none; padding: 0; margin: 0; display: flex; gap: 12px; }
.lf-social a {
    display: flex; align-items: center; justify-content: center; width: 48px; height: 48px;
    border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.25); font-size: 18px;
}
.lf-social a:hover { border-color: var(--lm-amber, #F9C054); background: var(--lm-amber, #F9C054); color: #05070f; }
.lf-col h5 { font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase; margin: 8px 0 18px; color: var(--lm-text, #f7f5f0); }
.lf-col:nth-child(even) h5 { color: var(--lm-amber, #F9C054); }
.lf-col ul { list-style: none; padding: 0; margin: 0; }
.lf-col li { margin-bottom: 12px; }
.lf-col a { font-size: 15px; font-weight: 500; }

/* Safety text + copyright */
.lf-legal { padding-top: 30px; }
.lf-legal p { font-size: 13px; line-height: 22px; color: #8a90a0; margin-bottom: 26px; }
.lf-legal p a { text-decoration: underline; }
.lf-bottom { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; font-size: 13px; color: #8a90a0; }
.lf-bottom-links a { color: var(--lm-text-soft, #c9cdd6); }

@media (max-width: 1199px) {
    .lf-main { grid-template-columns: repeat(4, 1fr); }
    .lf-brand { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr; gap: 0 30px; align-items: start; }
    .lf-brand .lf-logo { grid-row: span 2; }
}
@media (max-width: 767px) {
    .site-footer { padding-top: 24px; }
    .lf-newsletter { flex-direction: column; align-items: stretch; text-align: center; padding: 28px 20px; gap: 20px; margin-bottom: 40px; }
    .lf-newsletter h4 { font-size: 24px; line-height: 30px; }
    .lf-newsletter-form { max-width: none; flex-direction: column; }
    .lf-newsletter-form .btn { width: 100%; }
    .lf-main { grid-template-columns: 1fr 1fr; gap: 28px 20px; }
    .lf-brand { display: block; text-align: center; }
    .lf-brand p { margin-left: auto; margin-right: auto; }
    .lf-social { justify-content: center; }
    .lf-bottom { flex-direction: column; text-align: center; }
}

/* =====================================================================
   Solid header - no see-through bar over videos/photos, any page, any size
   ===================================================================== */
.header,
.header.scrolled,
.header.active,
.header.scrolled.active,
.header.internal { background: #060b16 !important; box-shadow: 0 2px 14px rgba(0, 0, 0, 0.45); }
.navigation-dropdown, .navigation-dropdown.scrolled { background: #060b16 !important; }

/* =====================================================================
   Heroes on ALL pages: full-brightness video/photo, shade only behind
   the text, and no curved bottom edge.
   ===================================================================== */
.hero-panel,
.internal-header-panel,
.full-image-slider-panel,
.full-image-slider-panel .slider { -webkit-mask: none !important; mask: none !important; }

/* Video heroes (homepage + venues) */
.hero-panel .video-bg video { opacity: 1 !important; }
.hero-panel .video-bg::after,
.internal-header-panel::before {
    content: '';
    position: absolute; inset: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 60% 55% at 50% 50%, rgba(6, 11, 22, 0.62) 0%, rgba(6, 11, 22, 0.25) 60%, rgba(6, 11, 22, 0) 100%),
        linear-gradient(180deg, rgba(6, 11, 22, 0) 70%, rgba(10, 15, 30, 0.85) 100%);
}
.hero-panel .video-bg { overflow: hidden; }

/* Photo heroes (all other pages) */
.internal-header-panel { background-size: cover !important; background-position: center center !important; }
.internal-header-panel::before { z-index: 0; }
.internal-header-panel .container { z-index: 1; }

/* Text a touch stronger so it reads over brighter footage */
.hero-panel h2, .internal-header-panel h2 { text-shadow: 0 2px 18px rgba(0, 0, 0, 0.55); }
.hero-panel h5, .internal-header-panel h4 { text-shadow: 0 1px 10px rgba(0, 0, 0, 0.7); }
/* Photo heroes need room below the solid header */
.internal-header-panel { padding: 210px 20px 110px !important; }
@media (max-width: 991px) { .internal-header-panel { padding: 190px 20px 90px !important; } }
@media (max-width: 575px) { .internal-header-panel { padding: 170px 16px 70px !important; } }

/* =====================================================================
   Fonts: Fraunces (headings, big numbers, quotes) + Manrope (everything else)
   ===================================================================== */
:root {
    --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
    --font-body: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
body, p, li, a, span, label, input, select, textarea, button, .btn, td, th,
.header .nav, .menu-modal, footer { font-family: var(--font-body); }
h1, h2, h3, h4, h5, h6,
.season-day strong, .venue-fact-value,
.lf-newsletter h4 { font-family: var(--font-display); font-optical-sizing: auto; }
h1, h2, h3, h4 { font-weight: 600; letter-spacing: 0.01em; }
h5, h6 { font-weight: 500; }
/* Small label-style headings stay in the sans */
.venue-fact-label, .venue-dates-kicker, .lf-col h5, .help-venue-picker label,
.btn, .header .nav li a, .accordion-button, .keyline-cta-box h5 { font-family: var(--font-body) !important; }
.btn { font-weight: 700; letter-spacing: 0.03em; }
/* Outlined "keyline" hero titles read better a little heavier in the serif */
.keyline { font-weight: 700; -webkit-text-stroke-width: 1.5px; letter-spacing: 0.02em; }
/* Quotes */
.text-swiper .swiper-slide p:first-of-type { font-family: var(--font-display); font-style: italic; font-size: 22px; line-height: 32px; }
/* Big numbers */
.season-day strong { font-weight: 700; }

/* Homepage help centre: matching buttons side by side */
.help-buttons { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.help-buttons .btn { min-width: 260px; height: 56px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin: 0 !important; }
@media (max-width: 575px) { .help-buttons .btn { width: 100%; min-width: 0; } }
/* Small uppercase lines read better in the sans */
.info-banner h5, .hero-panel h5.orange, .venue-hero h5, .venue-card h4, .venue-card h5,
.full-image-slider-panel h4.yellow, .internal-header-panel h4.yellow { font-family: var(--font-body) !important; font-weight: 700; letter-spacing: 0.12em; }
.venue-card h5 { font-weight: 500; letter-spacing: 0; }

/* Outlined (white keyline) titles: back to the original Poppins */
.keyline { font-family: 'Poppins', sans-serif !important; font-weight: 600; -webkit-text-stroke-width: 2px; letter-spacing: normal; }

/* Keep the Luminate logo in the bar when scrolling (phones/tablets) */
@media screen and (max-width: 1200px) {
    .header.scrolled .logo { opacity: 1 !important; visibility: visible !important; width: 170px; padding-top: 16px; }
    .header.scrolled .mobile-nav.center { opacity: 0 !important; visibility: hidden !important; }
}
@media screen and (max-width: 575px) {
    .header.scrolled .logo { width: 150px; padding-top: 18px; }
}

/* =====================================================================
   Less shouting: no forced capitals. Only the tiny gold labels stay in caps.
   ===================================================================== */
.uppercase, .btn, .header .nav li a, .menu-modal a, .menu-modal .accordion-button,
h1, h2, h3, h4, h5, h6 { text-transform: none !important; }
.venue-fact-label, .venue-dates-kicker, .lf-col h5, .help-venue-picker label, .season-day span { text-transform: uppercase !important; }
/* Sentence-case lines don't need the wide letter spacing */
.info-banner h5, .hero-panel h5.orange, .venue-hero h5, .venue-card h4,
.full-image-slider-panel h4.yellow, .internal-header-panel h4.yellow { letter-spacing: 0.01em !important; }
.btn { letter-spacing: 0.01em; }
.header .nav li a { letter-spacing: 0.01em; font-weight: 600; }
/* Card titles keep the serif (links default to the sans) */
.vcard h3 a { font-family: inherit !important; }

/* Venue key facts: slim strip, no boxes (overrides the earlier card style) */
.venue-facts-panel { margin-top: 0 !important; padding: 34px 0 30px !important; background: #0b0f24; border-top: 1px solid rgba(255,255,255,0.06); border-bottom: 1px solid rgba(255,255,255,0.06); }
.venue-facts { max-width: 1320px !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 24px 30px !important; }
.venue-fact { display: block !important; text-align: left !important; background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; backdrop-filter: none !important; border-radius: 0 !important; }
.venue-fact i { display: none !important; }
.venue-fact-label { display: block; font-size: 13px !important; letter-spacing: 0.2em !important; font-weight: 700; color: var(--lm-amber, #F9C054) !important; margin-bottom: 8px !important; }
.venue-fact-value { display: block; font-family: var(--font-body) !important; font-size: 17px !important; line-height: 25px !important; font-weight: 400 !important; color: #fff !important; text-decoration: none; }
a.venue-fact-value:hover { color: var(--lm-amber, #F9C054) !important; }
@media (max-width: 991px) { .venue-facts { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 575px) { .venue-facts-panel { padding: 24px 0 !important; } .venue-facts { gap: 18px 16px !important; } .venue-fact-value { font-size: 15px !important; line-height: 22px !important; } }

/* =====================================================================
   Ombré: gradients instead of flat blocks of colour
   ===================================================================== */
/* One gradient behind the whole page, with soft pink + gold glows */
body { background: #070a18 !important; }
body::before {
    content: ''; position: fixed; inset: 0; z-index: -1; pointer-events: none;
    background:
        radial-gradient(ellipse 70% 50% at 10% 15%, rgba(204, 0, 102, 0.20) 0%, rgba(204, 0, 102, 0) 70%),
        radial-gradient(ellipse 60% 45% at 92% 55%, rgba(249, 192, 84, 0.12) 0%, rgba(249, 192, 84, 0) 70%),
        radial-gradient(ellipse 80% 60% at 30% 100%, rgba(90, 40, 170, 0.25) 0%, rgba(90, 40, 170, 0) 70%),
        linear-gradient(180deg, #080b1c 0%, #110d2e 40%, #0b1330 70%, #140b29 100%);
}
.hero-panel.dark-theme, .internal-header-panel { background-color: transparent; }

/* Top banner + menu bar */
.info-banner, .info-banner.dark-theme { background: linear-gradient(90deg, #b0005a 0%, #cc0066 40%, #8a1f9e 100%) !important; }
.header, .header.scrolled, .header.active, .header.scrolled.active, .header.internal,
.navigation-dropdown, .navigation-dropdown.scrolled, .menu-modal {
    background: linear-gradient(90deg, #060a18 0%, #130d33 50%, #060a18 100%) !important;
}

/* Venue facts strip */
.venue-facts-panel {
    background: linear-gradient(90deg, rgba(204, 0, 102, 0.10) 0%, rgba(19, 13, 51, 0.65) 45%, rgba(249, 192, 84, 0.08) 100%) !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
}

/* Cards and panels */
.vcard, .venue-dates-card, .lf-newsletter, .pov-tile,
.content-panel .accordion:not(.colours) .accordion-item {
    background: linear-gradient(160deg, rgba(38, 28, 84, 0.78) 0%, rgba(15, 19, 50, 0.85) 55%, rgba(30, 12, 44, 0.85) 100%) !important;
}
.venue-dates-card.season {
    background: radial-gradient(ellipse at 0% 0%, rgba(204, 0, 102, 0.32) 0%, rgba(204, 0, 102, 0) 60%),
                linear-gradient(160deg, rgba(38, 28, 84, 0.78) 0%, rgba(15, 19, 50, 0.85) 100%) !important;
}
.lf-newsletter {
    background: radial-gradient(ellipse at 0% 0%, rgba(204, 0, 102, 0.30) 0%, rgba(204, 0, 102, 0) 55%),
                radial-gradient(ellipse at 100% 100%, rgba(249, 192, 84, 0.14) 0%, rgba(249, 192, 84, 0) 55%),
                linear-gradient(120deg, rgba(38, 28, 84, 0.85) 0%, rgba(15, 19, 50, 0.9) 100%) !important;
}
.help-venue-picker select.form-select { background-color: rgba(19, 13, 51, 0.9); }

/* Footer fades in from the page */
.site-footer { background: linear-gradient(180deg, rgba(5, 7, 15, 0) 0%, rgba(5, 7, 15, 0.75) 35%, #04050c 100%) !important; border-top: 0 !important; }

/* =====================================================================
   Fraunces everywhere it counts, no capitals
   ===================================================================== */
/* Hero titles: solid Fraunces instead of the outlined Poppins */
.keyline {
    font-family: var(--font-display) !important;
    -webkit-text-stroke-width: 0 !important;
    -webkit-text-fill-color: #fff !important;
    color: #fff !important;
    font-weight: 600 !important;
    letter-spacing: -0.01em !important;
    text-transform: none !important;
}
.hero-panel h2.keyline, .internal-header-panel h2.keyline { font-size: clamp(40px, 6vw, 76px); line-height: 1.05; }
.full-image-slider-panel h3.keyline { font-size: clamp(32px, 4.5vw, 60px); line-height: 1.1; }

/* Small labels: gold Fraunces italic, normal case */
.venue-fact-label, .venue-dates-kicker, .lf-col h5, .help-venue-picker label, .season-day span,
.full-image-slider-panel h4.yellow, .hero-panel h5.orange, .venue-hero h5, .internal-header-panel h4.yellow, .vcard-place {
    font-family: var(--font-display) !important;
    font-style: italic;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
.venue-fact-label, .venue-dates-kicker, .lf-col h5, .help-venue-picker label { font-size: 17px !important; color: var(--lm-amber, #F9C054) !important; }
.lf-col h5 { margin-top: 4px; }
.season-day span { font-size: 14px !important; }
.hero-panel h5.orange, .venue-hero h5, .internal-header-panel h4.yellow { font-size: clamp(18px, 2vw, 24px) !important; }
.full-image-slider-panel h4.yellow { font-size: clamp(20px, 2.2vw, 28px) !important; }
.vcard-place { font-size: 15px !important; }
/* Headings no longer in capitals don't need wide letter spacing */
h3.red, h4.red, h5.red, h3.uppercase, h4.uppercase, h5.uppercase, .text-content h4, .text-content h5 { letter-spacing: 0 !important; }
.text-content h4.red, .text-content h3.red { font-size: clamp(26px, 2.6vw, 36px); line-height: 1.2; font-weight: 600; }

/* Venue page: prices card */
.price-list { list-style: none; padding: 0; margin: 0 0 6px; }
.price-list li { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 11px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.price-list li:last-child { border-bottom: 0; }
.price-name { color: #fff; font-size: 16px; font-weight: 500; }
.price-amount { font-family: var(--font-display); font-size: 26px; font-weight: 600; color: var(--lm-amber, #F9C054); white-space: nowrap; }
.price-amount small { font-family: var(--font-display); font-style: italic; font-size: 15px; font-weight: 400; color: var(--lm-text-soft, #c9cdd6); }
.price-note { font-size: 13px; color: var(--lm-text-soft, #c9cdd6); margin: 8px 0 0; }

/* =====================================================================
   Help Centre (public/help-centre.php) - questions first
   ===================================================================== */
.help-hero { padding-bottom: 70px !important; }
.help-hero-sub { color: #fff; opacity: 0.85; margin: 10px 0 0; font-size: 17px; }
.help-page { padding: 40px 0 70px; }
.help-page .container { max-width: 960px; }
.help-toolbar {
    display: grid; grid-template-columns: 1fr 1.2fr; gap: 18px; align-items: end;
    padding: 22px; border-radius: 22px; border: 1px solid rgba(255, 255, 255, 0.1);
    background: linear-gradient(160deg, rgba(38, 28, 84, 0.78) 0%, rgba(15, 19, 50, 0.85) 100%);
}
.help-toolbar .help-venue-picker { max-width: none; margin: 0; text-align: left; }
.help-toolbar label { margin-bottom: 8px !important; }
.help-toolbar select.form-select { width: 100%; height: 54px !important; }
.help-search { margin: 0 !important; padding: 0 !important; background: none !important; box-shadow: none !important; max-width: none !important; }
.help-search-row { display: flex; gap: 8px; }
.help-search-row .form-control {
    flex: 1; height: 54px; border-radius: 14px; padding: 0 18px; font-size: 16px;
    background: rgba(7, 10, 20, 0.7) !important; color: #fff !important; border: 1px solid rgba(255, 255, 255, 0.2) !important;
}
.help-search-row .form-control::placeholder { color: #8a90a0; }
.help-search-row .btn { width: 54px; height: 54px; padding: 0; border-radius: 14px; font-size: 18px; }
#accordion-search { color: #fff !important; }
.help-empty { margin: 14px 0 0; background: rgba(204, 0, 102, 0.15); border: 1px solid rgba(204, 0, 102, 0.4); color: #fff; border-radius: 14px; }
.help-venue-hint { text-align: center; margin: 14px 0 0; }
.help-chips { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 26px 0 6px; }
.help-chips a {
    padding: 9px 18px; border-radius: 999px; font-size: 15px; font-weight: 600; text-decoration: none;
    color: #fff; border: 1px solid rgba(249, 192, 84, 0.45); background: rgba(249, 192, 84, 0.08);
}
.help-chips a:hover { background: var(--lm-amber, #F9C054); color: #0e1230; }
.help-section { padding: 34px 0 0 !important; overflow: visible !important; background: none !important; }
.help-section h3 { font-family: var(--font-display) !important; font-size: 28px; font-weight: 600; margin: 0 0 16px; color: #fff; }
.help-section h3 i { color: var(--lm-amber, #F9C054); font-size: 22px; margin-right: 8px; }
.help-none { text-align: center; margin: 40px 0; }
.help-more { margin-top: 60px; text-align: center; }
.help-more h3, .help-contact h3 { font-family: var(--font-display) !important; font-size: 30px; font-weight: 600; color: #fff; margin-bottom: 20px; }
.help-more-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.help-more-card {
    display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 24px 16px; border-radius: 20px;
    text-decoration: none; color: #fff; cursor: pointer; border: 1px solid rgba(255, 255, 255, 0.1);
    background: linear-gradient(160deg, rgba(38, 28, 84, 0.78) 0%, rgba(15, 19, 50, 0.85) 100%);
}
.help-more-card:hover { border-color: var(--lm-amber, #F9C054); color: #fff; }
.help-more-card i { font-size: 28px; color: var(--lm-pink-hot, #e40c78); margin-bottom: 6px; }
.help-more-card:nth-child(2) i { color: var(--lm-amber, #F9C054); }
.help-more-card strong { font-size: 17px; }
.help-more-card span { font-size: 14px; color: var(--lm-text-soft, #c9cdd6); }
.help-contact { margin-top: 50px; padding: 30px; border-radius: 22px; border: 1px solid rgba(255, 255, 255, 0.1); background: rgba(15, 19, 50, 0.6); }
.help-contact .form-control { background: rgba(7, 10, 20, 0.7) !important; color: #fff !important; border: 1px solid rgba(255, 255, 255, 0.2) !important; border-radius: 12px; }
.help-contact label { color: var(--lm-text-soft, #c9cdd6); }
@media (max-width: 767px) {
    .help-page { padding-top: 24px; }
    .help-toolbar { grid-template-columns: 1fr; padding: 18px; }
    .help-chips { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 6px; }
    .help-chips a { white-space: nowrap; }
    .help-section h3 { font-size: 24px; }
    .help-more-grid { grid-template-columns: 1fr; }
    .help-contact { padding: 20px; }
}
.help-search label { display: block; font-family: var(--font-display) !important; font-style: italic; font-weight: 500; font-size: 17px; color: var(--lm-amber, #F9C054); margin-bottom: 8px; text-align: left; }

/* =====================================================================
   Menu dropdowns: venues panel on white (logos need it), readable text
   ===================================================================== */
header .navigation-dropdown .row.list-items.justify-content-center {
    background: #ffffff; border-radius: 20px; padding: 26px 20px 10px; margin: 0 auto; max-width: 1100px;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
}
header .navigation-dropdown .row.list-items.justify-content-center .nav-text-feature h5 { color: #14163a !important; font-weight: 600; }
header .navigation-dropdown .row.list-items.justify-content-center .nav-text-feature:hover h5 { color: #cc0066 !important; }
header .navigation-dropdown .row.list-items.justify-content-center .logo-holder { background: #fff; }
/* "About" dropdown stays dark: light text */
header .navigation-dropdown .nav-text-feature h5 { color: #ffffff; }
header .navigation-dropdown .nav-text-feature p { color: var(--lm-text-soft, #c9cdd6) !important; }
header .navigation-dropdown .nav-text-feature:hover h5 { color: var(--lm-amber, #F9C054); }

/* =====================================================================
   Readable text on the dark background (legal pages + inline links)
   ===================================================================== */
.content-panel p, .content-panel li, .content-panel span:not([class]), .content-panel td { color: var(--lm-text-soft, #c9cdd6); }
.content-panel strong, .content-panel b { color: #fff; }
.content-panel h4.article-title, .content-panel .article-title,
.content-panel h5, .content-panel h6 { color: #fff; }
/* Links inside text: light pink instead of dark pink / blue */
.content-panel p a:not(.btn), .content-panel li a:not(.btn), .content-panel td a:not(.btn),
.help-contact label a, .lf-legal p a, .accordion-body a:not(.btn) { color: #ff7ab8 !important; text-decoration: underline; }
.content-panel p a:not(.btn):hover, .content-panel li a:not(.btn):hover, .accordion-body a:not(.btn):hover, .help-contact label a:hover { color: var(--lm-amber, #F9C054) !important; }
/* Legal pages (Privacy, Terms, Cancellation) */
.internal-page-panel p, .internal-page-panel li, .internal-page-panel span, .internal-page-panel td,
.article-content p, .article-content li, .article-content span { color: var(--lm-text-soft, #c9cdd6) !important; }
.internal-page-panel strong, .internal-page-panel b, .internal-page-panel h4, .internal-page-panel h5, .internal-page-panel h6,
.article-content strong, .article-content h4, .article-content h5, .article-content h6, .article-title { color: #fff !important; }
.internal-page-panel a:not(.btn), .article-content a:not(.btn) { color: #ff7ab8 !important; }
/* Light boxes (charity partners etc.) keep dark text */
.text-info-feature-box:not(.logo-box) p, .text-info-feature-box:not(.logo-box) span, .text-info-feature-box:not(.logo-box) strong { color: #2d2d3a !important; }
.text-info-feature-box:not(.logo-box) h5, .text-info-feature-box:not(.logo-box) h4 { color: #14163a !important; }
.food-subhead { font-family: var(--font-display); font-style: italic; font-size: 22px; color: #fff; margin: 0 0 18px; }
/* Help Centre search: no white outline box, match the venue picker */
.help-toolbar .accordion-search-box, .help-search { border: 0 !important; outline: 0 !important; box-shadow: none !important; background: none !important; padding: 0 !important; border-radius: 0 !important; }
.help-search-row .form-control { height: 54px !important; border: 2px solid var(--lm-amber, #F9C054) !important; background: rgba(19, 13, 51, 0.9) !important; }
.help-search-row .form-control:focus { box-shadow: 0 0 0 4px rgba(249, 192, 84, 0.25) !important; }
.help-search-row .btn { height: 54px !important; box-shadow: none !important; }
.help-search-row .form-control { border-radius: 14px !important; }

/* Help Centre v2: Ask / Search first, contact last */
.help-venue-top { max-width: 420px !important; margin: 0 auto 20px !important; text-align: center !important; }
.help-venue-top select.form-select { height: 50px !important; }
.help-options { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.help-option {
    position: relative; padding: 26px 26px 24px; border-radius: 22px; border: 1px solid rgba(255, 255, 255, 0.1);
    background: linear-gradient(160deg, rgba(38, 28, 84, 0.78) 0%, rgba(15, 19, 50, 0.85) 100%);
}
.help-option.ask { background: radial-gradient(ellipse at 0% 0%, rgba(204, 0, 102, 0.35) 0%, rgba(204, 0, 102, 0) 60%), linear-gradient(160deg, rgba(38, 28, 84, 0.8) 0%, rgba(15, 19, 50, 0.88) 100%); border-color: rgba(204, 0, 102, 0.45); }
.help-option-step { font-family: var(--font-display); font-style: italic; color: var(--lm-amber, #F9C054); font-size: 16px; }
.help-option h3 { font-family: var(--font-display) !important; font-size: 28px; font-weight: 600; color: #fff; margin: 2px 0 8px; }
.help-option p { font-size: 15px; margin-bottom: 16px; }
.help-option .btn { display: inline-flex; align-items: center; gap: 8px; }
.help-option .help-search-row .form-control { border-color: rgba(249, 192, 84, 0.6) !important; }
.help-option-note { font-size: 13px !important; margin: 10px 0 0 !important; opacity: 0.8; }
.help-empty { margin: 18px 0 0; padding: 18px 20px; text-align: center; border-radius: 18px; background: rgba(204, 0, 102, 0.14); border: 1px solid rgba(204, 0, 102, 0.45); }
.help-empty p { color: #fff; margin-bottom: 12px; }
.help-more-grid.two { grid-template-columns: 1fr 1fr; max-width: 700px; margin: 0 auto; }
details.help-contact { margin-top: 40px; padding: 0; overflow: hidden; }
details.help-contact > summary {
    list-style: none; cursor: pointer; padding: 20px 26px; font-size: 16px; color: var(--lm-text-soft, #c9cdd6); text-align: center;
}
details.help-contact > summary::-webkit-details-marker { display: none; }
details.help-contact > summary span { color: #fff; text-decoration: underline; margin-left: 4px; }
details.help-contact[open] > summary { border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
details.help-contact[open] { padding-bottom: 26px; }
details.help-contact > *:not(summary) { margin-left: 26px; margin-right: 26px; }
.help-contact-intro { margin-top: 18px; font-size: 14px; }
@media (max-width: 767px) {
    .help-options, .help-more-grid.two { grid-template-columns: 1fr; }
    .help-option { padding: 22px 20px; }
    details.help-contact > *:not(summary) { margin-left: 18px; margin-right: 18px; }
}
.contact-faster { padding: 26px; margin-bottom: 30px; border-radius: 22px; border: 1px solid rgba(204, 0, 102, 0.45);
    background: radial-gradient(ellipse at 0% 0%, rgba(204, 0, 102, 0.3) 0%, rgba(204, 0, 102, 0) 60%), linear-gradient(160deg, rgba(38, 28, 84, 0.8) 0%, rgba(15, 19, 50, 0.88) 100%); }
.contact-faster h3 { font-family: var(--font-display) !important; font-size: 28px; color: #fff; margin: 0 0 6px; }
.contact-faster .help-buttons { justify-content: flex-start; }
.contact-still { font-size: 17px !important; font-weight: 500 !important; }
.about-links { padding: 34px 0 0; } .about-links .help-buttons .btn { min-width: 220px; }

/* Help journey: 1 FAQs, 2 email Lumie, 3 chat, 4 person */
.help-search-panel { padding: 26px; border-radius: 22px; border: 1px solid rgba(204, 0, 102, 0.45); text-align: center;
    background: radial-gradient(ellipse at 0% 0%, rgba(204, 0, 102, 0.32) 0%, rgba(204, 0, 102, 0) 60%), linear-gradient(160deg, rgba(38, 28, 84, 0.8) 0%, rgba(15, 19, 50, 0.88) 100%); }
.help-search-panel h3 { font-family: var(--font-display) !important; font-size: 30px; font-weight: 600; color: #fff; margin: 0 0 14px; }
.help-search-panel .help-search-row { max-width: 640px; margin: 0 auto; }
.help-more-grid.steps { grid-template-columns: 1.2fr 1fr 1fr; align-items: stretch; }
.help-step { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; padding: 24px 18px; border-radius: 20px;
    border: 1px solid rgba(255, 255, 255, 0.1); background: linear-gradient(160deg, rgba(38, 28, 84, 0.6) 0%, rgba(15, 19, 50, 0.8) 100%); }
.help-step.main { border-color: rgba(204, 0, 102, 0.5); background: radial-gradient(ellipse at 50% 0%, rgba(204, 0, 102, 0.3) 0%, rgba(204, 0, 102, 0) 65%), linear-gradient(160deg, rgba(38, 28, 84, 0.85) 0%, rgba(15, 19, 50, 0.9) 100%); }
.help-step-no { font-family: var(--font-display); font-style: italic; color: var(--lm-amber, #F9C054); font-size: 15px; }
.help-step i { font-size: 28px; color: var(--lm-pink-hot, #e40c78); margin: 4px 0; }
.help-step strong { font-size: 18px; color: #fff; }
.help-step > span:not(.help-step-no) { font-size: 14px; color: var(--lm-text-soft, #c9cdd6); flex: 1; }
.help-step .btn { margin-top: 10px; display: inline-flex; align-items: center; gap: 8px; }
.help-step:not(.main) .btn { padding: 10px 22px; font-size: 15px; }
.contact-chat-note { margin: 14px 0 0; font-size: 14px; }
.contact-chat-note a { color: #ff7ab8 !important; text-decoration: underline; }
@media (max-width: 991px) { .help-more-grid.steps { grid-template-columns: 1fr; } }

/* Help Centre: manage your booking (self-service) */
.help-manage {
    display: grid; grid-template-columns: 1fr 1.3fr; gap: 10px 30px; align-items: center; margin-top: 18px;
    padding: 24px 28px; border-radius: 22px; border: 1px solid rgba(249, 192, 84, 0.45);
    background: radial-gradient(ellipse at 100% 0%, rgba(249, 192, 84, 0.18) 0%, rgba(249, 192, 84, 0) 60%), linear-gradient(160deg, rgba(38, 28, 84, 0.75) 0%, rgba(15, 19, 50, 0.85) 100%);
}
.help-manage h3 { font-family: var(--font-display) !important; font-size: 26px; font-weight: 600; color: #fff; margin: 2px 0 8px; }
.help-manage-text p { font-size: 14px; margin: 0; }
.help-manage-list { list-style: none; padding: 0; margin: 0; }
.help-manage-list li { display: flex; gap: 10px; align-items: baseline; padding: 5px 0; color: #fff; font-size: 15px; }
.help-manage-list li i { color: var(--lm-amber, #F9C054); width: 18px; }
.help-manage-list small { color: var(--lm-text-soft, #c9cdd6); margin-left: 4px; }
.help-manage-btn { grid-column: 1 / -1; justify-self: center; display: inline-flex; align-items: center; gap: 8px; margin-top: 8px; }
.help-more-grid.steps.two-steps { grid-template-columns: 1.2fr 1fr; max-width: 760px; margin: 0 auto; }
@media (max-width: 767px) {
    .help-manage { grid-template-columns: 1fr; padding: 22px 20px; }
    .help-manage-btn { width: 100%; justify-content: center; }
    .help-more-grid.steps.two-steps { grid-template-columns: 1fr; }
}
.help-manage-list li { display: block !important; position: relative; padding-left: 28px !important; }
.help-manage-list li i { position: absolute; left: 0; top: 8px; }

/* =====================================================================
   Homepage journey: desire -> find -> value -> reassurance -> book
   ===================================================================== */
.hero-panel .hero-sub { font-size: 20px; line-height: 30px; color: #ece8f1; max-width: 620px; margin: 6px auto 26px; }
.hero-panel .hero-places { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; margin: 28px 0 0; font-size: 15px; color: #ddd8e4; }
.hero-panel .hero-places span { display: inline-flex; align-items: center; gap: 7px; }
.hero-panel .hero-places i { color: var(--lm-amber, #F9C054); }
.hero-panel .btn i { margin-left: 8px; }

.hp-head { max-width: 720px; margin: 0 auto 44px; }
.hp-head p { color: var(--lm-text-soft, #c9cdd6); font-size: 18px; }
.venues-grid-panel .hp-head { margin-bottom: 40px; }

.vcard-price {
    position: absolute; right: 18px; bottom: 18px; padding: 8px 14px; border-radius: 14px; line-height: 1.1; text-align: right;
    background: var(--lm-amber, #F9C054); color: #0e1230; font-weight: 800; font-size: 17px; font-family: var(--font-body);
}
.vcard-price small { display: block; font-size: 11px; font-weight: 600; opacity: 0.75; }

.hp-value { padding: 80px 0 60px; }
.hp-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; max-width: 1100px; margin: 0 auto;
    border-top: 1px solid rgba(255, 255, 255, 0.1); border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding: 32px 0; text-align: center; }
.hp-stats strong { display: block; font-family: var(--font-display); font-weight: 500; font-size: clamp(32px, 3.4vw, 46px); line-height: 1; color: var(--lm-amber, #F9C054); margin-bottom: 8px; }
.hp-stats span { color: var(--lm-text-soft, #c9cdd6); font-size: 15px; }

.hp-reassure-panel { padding: 70px 0 30px; }
.hp-reassure { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; max-width: 1240px; margin: 0 auto; }
.hp-reassure-item { background: #0e1230; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 22px; padding: 28px 26px; display: flex; flex-direction: column; }
.hp-reassure-item > i { font-size: 30px; color: var(--lm-amber, #F9C054); margin-bottom: 16px; }
.hp-reassure-item h5 { font-family: var(--font-display) !important; font-weight: 500; font-size: 23px; text-transform: none; letter-spacing: 0; color: #fff; margin: 0 0 10px; }
.hp-reassure-item p { color: var(--lm-text-soft, #c9cdd6); font-size: 15px; line-height: 24px; flex: 1; }
.hp-reassure-item a { color: var(--lm-amber, #F9C054) !important; font-weight: 700; font-size: 15px; text-decoration: none; }
.hp-reassure-item a i { font-size: 12px; margin-left: 4px; }

.hp-final { position: relative; padding: 120px 0; background: #000 center / cover no-repeat; text-align: center; }
.hp-final::before { content: ''; position: absolute; inset: 0; background: rgba(8, 10, 24, 0.72); }
.hp-final .container { position: relative; }
.hp-final h4 { font-family: var(--font-display) !important; color: #fff !important; font-size: clamp(36px, 4.6vw, 58px) !important; line-height: 1.1 !important; text-transform: none; }
.hp-final p { color: #ddd8e4; font-size: 18px; margin-bottom: 30px; }
.hp-pills { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.hp-pills a { padding: 13px 22px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.35); color: #fff !important; text-decoration: none; font-weight: 600; font-size: 16px; }
.hp-pills a small { font-weight: 500; opacity: 0.75; margin-left: 4px; }
.hp-pills a:hover { background: var(--lm-amber, #F9C054); border-color: var(--lm-amber, #F9C054); color: #0e1230 !important; }

@media (max-width: 991px) {
    .hp-reassure { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    .hero-panel .hero-sub { font-size: 17px; line-height: 26px; }
    .hero-panel .hero-places { font-size: 13px; gap: 4px 14px; }
    .hp-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
    .hp-reassure { grid-template-columns: minmax(0, 1fr); }
    .hp-value { padding: 56px 0 40px; }
    .hp-final { padding: 80px 0; }
}

/* =====================================================================
   Venue page: Dates & Prices (price per night + season calendar)
   ===================================================================== */
.venue-dates-panel .vp-intro { color: var(--lm-text-soft, #c9cdd6); font-size: 17px; margin: 0 0 34px; }
.vp-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; max-width: 1100px; margin: 0 auto; align-items: start; }
.vp-card { background: var(--lm-bg-raised, #131c33); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 24px; padding: 18px 28px 22px; }
.vp-row { display: grid; grid-template-columns: minmax(0, 1fr) 84px 76px; gap: 10px; align-items: center; padding: 15px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.vp-row.head { padding: 8px 0 10px; font-size: 13px; font-weight: 700; color: var(--lm-text-soft, #c9cdd6); }
.vp-row.head span:not(:first-child), .vp-amt { text-align: right; }
.vp-band { display: flex; align-items: center; gap: 14px; }
.vp-band strong { display: block; color: #fff; font-size: 16px; }
.vp-band small { display: block; color: var(--lm-text-soft, #c9cdd6); font-size: 13px; line-height: 1.35; }
.vp-amt { font-family: var(--font-display); font-size: 26px; color: #fff; }
.vp-amt.child { font-size: 20px; color: var(--lm-text-soft, #c9cdd6); }
.vp-foot { margin: 14px 0 0; font-size: 14px; color: var(--lm-text-soft, #c9cdd6); }
.vp-sw { display: inline-block; width: 16px; height: 16px; border-radius: 5px; flex: 0 0 16px; }
/* tier colours: cheapest (t1) to dearest (t5) */
.b-t1 { background: #f5e6c4; } .b-t2 { background: #e8c878; } .b-t3 { background: #c9a24d; } .b-t4 { background: #8fa6c7; } .b-t5 { background: #cc0066; }
.vp-cal .cx-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.vp-cal .cx-cal-grid span { aspect-ratio: 1.35; display: flex; align-items: center; justify-content: center; border-radius: 7px; font-size: 13px; font-weight: 700; color: #1a1530; }
.vp-cal .cx-cal-grid .dow { aspect-ratio: auto; font-size: 12px; color: var(--lm-text-soft, #c9cdd6); padding: 6px 0; }
.vp-cal .cx-cal-grid .dow.wknd { color: var(--lm-amber, #F9C054); }
.vp-cal .cx-cal-grid .month { font-weight: 800; font-size: 11.5px; white-space: nowrap; }
.vp-cal .cx-cal-grid .b-t5 { color: #fff; }
.vp-cal .cx-cal-grid .b-closed, .vp-sw.b-closed { background: rgba(255, 255, 255, 0.08); color: rgba(255, 255, 255, 0.35); text-decoration: line-through; }
.vp-cal .cx-cal-grid .b-none { color: rgba(255, 255, 255, 0.2); font-weight: 500; }
.vp-key { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, 0.08); font-size: 13px; color: var(--lm-text-soft, #c9cdd6); }
.vp-key span { display: inline-flex; align-items: center; gap: 7px; }
.vp-urgency { text-align: center; margin: 44px auto 10px; }
.vp-urgency h4 { font-family: var(--font-display) !important; color: #fff !important; font-size: 34px !important; text-transform: none !important; margin-bottom: 8px; }
.vp-urgency p { color: var(--lm-amber, #F9C054); font-size: 18px; font-weight: 600; margin: 0 0 22px; }
@media (max-width: 991px) { .vp-grid { grid-template-columns: minmax(0, 1fr); max-width: 620px; } }
@media (max-width: 767px) {
    .vp-card { padding: 12px 16px 18px; border-radius: 20px; }
    .vp-row { grid-template-columns: minmax(0, 1fr) 62px 54px; gap: 8px; }
    .vp-amt { font-size: 21px; } .vp-amt.child { font-size: 17px; }
    .vp-band { gap: 10px; }
    .vp-cal .cx-cal-grid span { aspect-ratio: 1.1; font-size: 12px; }
    .vp-cal .cx-cal-grid .month { font-size: 10px; }
    .vp-urgency h4 { font-size: 28px !important; }
}

/* =====================================================================
   Help centre top: one "How can we help?" box + slim "Already booked?" bar
   ===================================================================== */
.help-finder { max-width: 900px; margin: 10px auto 16px; padding: 28px 30px 24px; border-radius: 22px; text-align: left;
    background: rgba(19, 13, 51, 0.75); border: 1px solid rgba(255, 255, 255, 0.12); }
.help-finder h3 { font-family: var(--font-display) !important; font-size: 30px; font-weight: 600; line-height: 1.2; color: #fff; margin: 0 0 18px; text-align: center; }
.help-finder-row { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 14px; align-items: end; }
.help-finder label { display: block; font-family: var(--font-body) !important; font-style: normal !important; font-size: 14px !important; font-weight: 600;
    letter-spacing: 0 !important; text-transform: none !important; color: var(--lm-text-soft, #c9cdd6) !important; margin: 0 0 6px; text-align: left; }
.help-finder select.form-select { height: 54px; border-radius: 14px; border: 2px solid rgba(249, 192, 84, 0.6); background-color: rgba(19, 13, 51, 0.9); color: #fff; font-weight: 600; }
.help-finder select option { color: #111; background: #fff; }
.help-finder-note { margin: 12px 0 0; font-size: 14px; color: var(--lm-text-soft, #c9cdd6); text-align: center; }
.help-booked { display: flex; align-items: center; gap: 18px; max-width: 900px; margin: 0 auto 10px; padding: 18px 22px; border-radius: 18px;
    border: 1px solid rgba(249, 192, 84, 0.35); background: rgba(249, 192, 84, 0.06); text-decoration: none !important; color: #fff !important; }
.help-booked:hover { border-color: var(--lm-amber, #F9C054); background: rgba(249, 192, 84, 0.1); }
.help-booked-icon { font-size: 28px; color: var(--lm-amber, #F9C054); flex: 0 0 auto; }
.help-booked-text { flex: 1; font-size: 15px; line-height: 1.5; color: var(--lm-text-soft, #c9cdd6); }
.help-booked-text strong { display: block; color: #fff; font-size: 17px; margin-bottom: 2px; }
.help-booked-btn { flex: 0 0 auto; white-space: nowrap; }
@media (max-width: 767px) {
    .help-finder { padding: 22px 18px 18px; }
    .help-finder h3 { font-size: 26px; }
    .help-finder-row { grid-template-columns: minmax(0, 1fr); }
    .help-booked { flex-wrap: wrap; padding: 16px 18px; }
    .help-booked-icon { display: none; }
    .help-booked-btn { width: 100%; justify-content: center; }
}
.hero-panel .hero-sub, .hero-panel h5, .hero-panel .hero-places { text-shadow: 0 1px 12px rgba(0, 0, 0, 0.85), 0 0 3px rgba(0, 0, 0, 0.6); }
.venues-grid-panel .hp-head { margin-bottom: 30px; } .hp-value .hp-head, .hp-reassure-panel .hp-head { margin-bottom: 30px; }
.hp-help-link { text-align: center; margin: 26px 0 0; color: var(--lm-text-soft, #c9cdd6); font-size: 16px; } .hp-help-link a { color: var(--lm-amber, #F9C054) !important; font-weight: 700; }
/* Final "Ready for a night of light?" band - colourful, not flat */
.hp-final { background-position: center 40%; }
.hp-final::before { background: linear-gradient(120deg, rgba(204, 0, 102, 0.55) 0%, rgba(90, 20, 140, 0.45) 45%, rgba(10, 14, 40, 0.75) 100%); }
.hp-final h4 { text-shadow: 0 2px 20px rgba(0, 0, 0, 0.5); }
.hp-final p { color: #fff; font-weight: 600; text-shadow: 0 1px 10px rgba(0, 0, 0, 0.6); }
.hp-pills a { background: var(--lm-amber, #F9C054); border-color: var(--lm-amber, #F9C054); color: #0e1230 !important; font-weight: 700; box-shadow: 0 8px 22px rgba(0, 0, 0, 0.3); }
.hp-pills a small { opacity: 0.7; }
.hp-pills a:hover { background: #fff; border-color: #fff; color: #0e1230 !important; transform: translateY(-2px); }

/* Venue page: illustrated trail map */
.venue-trail-map { position: relative; display: block; max-width: 760px; margin: 0 auto; border-radius: 24px; overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.12); box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45); background: var(--lm-bg-raised, #131c33); }
.venue-trail-map img { display: block; width: 100%; height: auto; transition: transform 0.4s ease; }
a.venue-trail-map:hover img { transform: scale(1.02); }
.venue-trail-zoom { position: absolute; right: 14px; bottom: 14px; padding: 8px 14px; border-radius: 999px; background: rgba(8, 10, 24, 0.82); color: #fff; font-size: 14px; font-weight: 600; }
.venue-trail-map.placeholder { aspect-ratio: 976 / 1073; max-width: 560px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 30px; text-align: center;
    border: 2px dashed rgba(249, 192, 84, 0.35); background: radial-gradient(ellipse at 50% 40%, rgba(204, 0, 102, 0.18) 0%, rgba(204, 0, 102, 0) 65%), var(--lm-bg-raised, #131c33); box-shadow: none; }
.venue-trail-map.placeholder i { font-size: 46px; color: var(--lm-amber, #F9C054); margin-bottom: 8px; }
.venue-trail-map.placeholder strong { font-family: var(--font-display); font-size: 26px; color: #fff; font-weight: 500; }
.venue-trail-map.placeholder span { color: var(--lm-text-soft, #c9cdd6); font-size: 15px; max-width: 320px; }
.venue-find-us { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 22px; margin-top: 26px; color: var(--lm-text-soft, #c9cdd6); font-size: 16px; text-align: center; }
.venue-find-us i { color: var(--lm-amber, #F9C054); margin-right: 4px; }
@media (max-width: 575px) { .venue-trail-map.placeholder { aspect-ratio: auto; min-height: 320px; } }

/* Venue intro description + smaller price calendar */
.venue-description { max-width: 720px; margin: 0 auto 28px; }
.venue-description p { font-size: 18px; line-height: 30px; color: var(--lm-text, #f7f5f0); margin: 0 0 16px; }
.venue-description p:first-child { font-family: var(--font-display); font-size: 22px; line-height: 32px; color: #fff; }
.venue-description a { color: var(--lm-amber, #F9C054) !important; text-decoration: underline; }
.vp-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); }
.vp-cal .cx-cal-grid { gap: 3px; }
.vp-cal .cx-cal-grid span { aspect-ratio: 1.25; font-size: 11.5px; border-radius: 5px; }
.vp-cal .cx-cal-grid .month { font-size: 10px; }
@media (max-width: 767px) { .venue-description p { font-size: 16px; line-height: 26px; } .venue-description p:first-child { font-size: 19px; line-height: 28px; } }
@media (max-width: 991px) { .vp-grid { grid-template-columns: minmax(0, 1fr); } }
/* Smaller trail map */
.venue-trail-map { max-width: 460px; border-radius: 18px; }
.venue-trail-map.placeholder { max-width: 380px; }
.venue-trail-map.placeholder strong { font-size: 22px; }
.venue-trail-zoom { font-size: 13px; padding: 6px 12px; }
/* Price level colours (7 steps, cheapest -> dearest) - no dark/black swatches */
.b-t1 { background: #f7ead0; } .b-t2 { background: #f1d48c; } .b-t3 { background: #e5b24e; } .b-t4 { background: #9fc2ea; }
.b-t5 { background: #6c95e0; } .b-t6 { background: #f06ba8; } .b-t7 { background: #e0157a; }
.vp-cal .cx-cal-grid .b-t5, .vp-cal .cx-cal-grid .b-t6, .vp-cal .cx-cal-grid .b-t7 { color: #fff; }
/* Reels */
.pov-tile { cursor: pointer; }
.pov-sound { position: absolute; top: 12px; right: 12px; z-index: 2; width: 38px; height: 38px; border-radius: 50%; border: 0; background: rgba(8, 10, 24, 0.7); color: #fff; font-size: 15px; display: flex; align-items: center; justify-content: center; }
.pov-tile .pov-caption { z-index: 2; }

/* Venue intro: text left, trail map right */
.venue-intro-split { padding-top: 60px !important; padding-bottom: 50px !important; }
.venue-intro-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: 60px; align-items: start; max-width: 1180px; margin: 0 auto; }
.venue-intro-text { text-align: left; }
.venue-intro-text .venue-logo { margin: 0 0 22px !important; display: block; }
.venue-intro-text h5 { text-align: left; }
.venue-intro-text .venue-description { margin: 0 0 26px; max-width: none; }
.venue-intro-buttons { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-start !important; margin: 0; }
.venue-intro-address { margin: 18px 0 0; font-size: 15px; color: var(--lm-text-soft, #c9cdd6); }
.venue-intro-address i { color: var(--lm-amber, #F9C054); margin-right: 4px; }
.venue-intro-map { position: sticky; top: 110px; }
.venue-intro-map-label { display: block; font-family: var(--font-display); font-style: italic; color: var(--lm-amber, #F9C054); font-size: 18px; margin-bottom: 10px; }
.venue-intro-map .venue-trail-map { max-width: none; margin: 0; }
.venue-intro-map .venue-trail-map.placeholder { max-width: none; }
@media (max-width: 991px) {
    .venue-intro-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; max-width: 640px; }
    .venue-intro-map { position: static; }
    .venue-intro-map .venue-trail-map { max-width: 460px; }
}
.venue-description p:first-child:last-child { font-family: var(--font-body); font-size: 18px; line-height: 30px; color: var(--lm-text, #f7f5f0); }
@media (max-width: 767px) { .venue-description p:first-child:last-child { font-size: 16px; line-height: 26px; } .vp-row.head span { white-space: nowrap; } }

/* Help centre: email first, chat as a small line */
.help-more-grid.one-step { grid-template-columns: minmax(0, 1fr) !important; max-width: 560px; margin-left: auto; margin-right: auto; }
.help-chat-line { text-align: center; margin: 18px 0 0; font-size: 14px; color: var(--lm-text-soft, #c9cdd6); }
.help-chat-line a { color: var(--lm-amber, #F9C054) !important; font-weight: 700; text-decoration: underline; }

/* Homepage: three feature photos (from the concept) */
.hp-feature-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); grid-auto-rows: 300px; gap: 20px; max-width: 1240px; margin: 50px auto 0; }
.hp-feature { position: relative; border-radius: 24px; overflow: hidden; background: #000 center / cover no-repeat; display: flex; align-items: flex-end; }
.hp-feature.big { grid-row: span 2; }
.hp-feature::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8, 10, 24, 0) 35%, rgba(8, 10, 24, 0.88) 100%); }
.hp-feature-text { position: relative; z-index: 1; padding: 28px 30px; max-width: 480px; text-align: left; }
.hp-feature h3 { font-family: var(--font-display) !important; font-weight: 500; font-size: clamp(24px, 2.3vw, 32px); line-height: 1.15; color: #fff; text-transform: none; margin: 0 0 8px; }
.hp-feature p { color: #ddd8e4; font-size: 16px; line-height: 1.5; margin: 0; }
@media (max-width: 767px) {
    .hp-feature-grid { grid-template-columns: minmax(0, 1fr); grid-auto-rows: 280px; gap: 14px; margin-top: 34px; }
    .hp-feature.big { grid-row: auto; }
    .hp-feature-text { padding: 22px; }
}
