
* { margin: 0; padding: 0; box-sizing: border-box; }
:root {
  --gold: #c9a961;
  --gold-text: #8a6d1f;   /* darker gold — AA-contrast (~4.9:1) for small text on white */
  --gold-light: #e5c158;
  --dark: #0f0f0f;
  --dark-2: #1a1a1a;
  --gray: #666;
  --light-gray: #f5f5f5;
  --border: #e5e5e5;
  --success: #28a745;
  --danger: #dc3545;
  --warning: #ffc107;
  /* Typography stacks — per design-system/MASTER.md §4 */
  --font-display: 'Playfair Display', Georgia, serif;
  --font-body:    'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
}
html, body {
  font-family: var(--font-body);
  background: #faf8f5;
  color: #2c2c2c;
  line-height: 1.6;
}
.serif { font-family: var(--font-display); }
button { font-family: inherit; cursor: pointer; border: none; }
input, select, textarea { font-family: inherit; outline: none; }

/* Eyebrow utility — small uppercase gold label, signature editorial move.
   Used above section H2s and as a category eyebrow on cards. Consolidates
   ~27 inlined occurrences. Variants:
     .eyebrow            — default size (12px)
     .eyebrow.eyebrow-sm — compact (10px, for inside cards)
     .eyebrow.eyebrow-lg — section-level (14px, with bottom rule) */
.eyebrow {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold);
  line-height: 1.4;
}
.eyebrow.eyebrow-sm { font-size: 10px; letter-spacing: 0.15em; }
.eyebrow.eyebrow-lg {
  font-size: 14px;
  letter-spacing: 0.18em;
  padding-bottom: 0.4rem;
  margin-bottom: 0.5rem;
  border-bottom: 1px solid rgba(201,169,97,0.25);
}

/* Functional UI icons — Lucide-derived hairline SVGs in the sprite at <body>.
   Use via <svg class="kc-icon"><use href="#kci-clock"/></svg>
   Or via the JS helper kcIcon('clock') for template-literal contexts. */
.kc-icon {
  display: inline-block;
  width: 1em; height: 1em;
  vertical-align: -0.15em;
  fill: none;
  stroke: currentColor;
  flex-shrink: 0;
}
.kc-icon-lg { width: 2.5rem; height: 2.5rem; vertical-align: middle; color: var(--gold); }
.kc-icon-md { width: 1.75rem; height: 1.75rem; vertical-align: middle; color: var(--gold); }
.kc-icon-sm { width: 1.1rem; height: 1.1rem; vertical-align: -0.2em; color: var(--gold); }
.kc-icon-xl { width: 5rem; height: 5rem; vertical-align: middle; color: var(--gold); }
a { color: inherit; text-decoration: none; }

/* ============ NAVIGATION — Elegant Black & Gold ============ */
.navbar {
  position: sticky; top: 0; z-index: 1000;
  display: flex; justify-content: space-between; align-items: center;
  padding: 1rem 2rem;
  background: linear-gradient(180deg, #0a0a0a 0%, #141414 100%);
  border-bottom: 1px solid rgba(201,169,97,0.25);
  backdrop-filter: blur(10px);
  box-shadow: 0 2px 20px rgba(0,0,0,0.4);
}
/* Persistent hotel-booking journey bar (Back to Hotels + breadcrumb) — sticks just under the navbar on hotel-detail & book steps */
:root { --kc-nav-h: 72px; }
.hjb { position: sticky; top: var(--kc-nav-h); z-index: 900; display: none; background: #fff; border-bottom: 1px solid var(--border); box-shadow: 0 6px 14px -10px rgba(0,0,0,.25); }
.hjb.show { display: block; }
.hjb-inner { max-width: 1300px; margin: 0 auto; display: flex; align-items: center; gap: 1rem; padding: .55rem 2rem; }
.hjb-back { display: inline-flex; align-items: center; gap: .45rem; background: var(--gold); color: #1a1a1a; font-weight: 700; font-size: 14px; padding: .5rem 1.1rem; border-radius: 8px; border: none; cursor: pointer; white-space: nowrap; transition: background .15s, transform .15s; }
.hjb-back:hover { background: #f0b73a; transform: translateX(-2px); }
.hjb-back-sm { font-size: 12.5px; padding: .4rem .85rem; }
@media (max-width: 560px) { #ticketCheckoutModal .modal-header h3 { display: none; } .hjb-back-sm { font-size: 12px; padding: .35rem .7rem; } }
.hjb-crumbs { display: flex; align-items: center; gap: .45rem; font-size: 13px; color: var(--gray); flex-wrap: wrap; min-width: 0; }
.hjb-crumb { background: none; border: none; padding: 0; margin: 0; font-family: inherit; font-size: 13px; cursor: pointer; color: var(--gold-text, #8a6d1f); white-space: nowrap; }
.hjb-crumb.done:hover { text-decoration: underline; }
.hjb-crumb.on { color: var(--dark); font-weight: 700; cursor: default; }
.hjb-crumb.future { color: #bbb; cursor: default; }
.hjb-sep { color: #ccc; font-size: 13px; }
@media (max-width: 768px) {
  .hjb-inner { padding: .5rem 1rem; gap: .6rem; }
  .hjb-back { font-size: 12.5px; padding: .45rem .85rem; }
  .hjb-crumbs, .hjb-crumb, .hjb-sep { font-size: 11.5px; }
  .hjb-crumbs { gap: .3rem; }
}
.logo {
  display: flex; align-items: center;
}
.logo img {
  height: 44px;
  border-radius: 4px;
  filter: brightness(1.05);
  transition: all 0.25s;
  box-shadow: 0 2px 10px rgba(0,0,0,0.3);
}
.logo:hover img {
  transform: scale(1.03);
  box-shadow: 0 4px 14px rgba(201,169,97,0.25);
}
.nav-links {
  display: flex; gap: 1.5rem; list-style: none; align-items: center;
  flex-wrap: nowrap; margin: 0 1.5rem;
}
.nav-links a {
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.6px;
  color: #e6e6e6;
  cursor: pointer;
  transition: color 0.25s, padding 0.25s;
  position: relative;
  padding: 0.4rem 0;
  text-transform: uppercase;
  white-space: nowrap;
}
.nav-links a::after {
  content: '';
  position: absolute; bottom: -2px; left: 0;
  width: 0; height: 1.5px;
  background: var(--gold);
  transition: width 0.3s ease;
}
.nav-links a:hover {
  color: var(--gold);
}
.nav-links a:hover::after { width: 100%; }

.nav-actions { display: flex; gap: 0.7rem; align-items: center; }

.btn {
  padding: 0.7rem 1.4rem;
  border-radius: 4px;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.5px;
  transition: all 0.25s;
  text-transform: uppercase;
}
.btn-primary {
  background: var(--gold);
  color: var(--dark);
  border: 1px solid var(--gold);
}
.btn-primary:hover {
  background: var(--gold-light, #d4b677);
  border-color: var(--gold-light, #d4b677);
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(201,169,97,0.4);
}
.btn-gold {
  background: var(--gold);
  color: var(--dark);
  border: 1px solid var(--gold);
}
.btn-gold:hover {
  background: var(--gold-light, #d4b677);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(201,169,97,0.45);
}

/* Outline button on navbar — elegant gold-on-black */
.navbar .btn-outline {
  background: transparent;
  border: 1px solid rgba(201,169,97,0.5);
  color: var(--gold);
}
.navbar .btn-outline:hover {
  background: var(--gold);
  color: var(--dark);
  border-color: var(--gold);
}

/* Standalone btn-outline (for body content) keeps the original styling */
.btn-outline {
  background: transparent;
  border: 1.5px solid var(--dark);
  color: var(--dark);
}
.btn-outline:hover { background: var(--dark); color: #fff; }

.btn-ghost {
  background: transparent;
  color: var(--dark);
}
.btn-ghost:hover { background: var(--light-gray); }
.navbar .btn-ghost {
  color: #e6e6e6;
}
.navbar .btn-ghost:hover {
  background: rgba(201,169,97,0.12);
  color: var(--gold);
}

.btn-sm { padding: 0.5rem 1rem; font-size: 13px; }
.btn-block { width: 100%; }
.btn-danger { background: var(--danger); color: #fff; }
.btn-success { background: var(--success); color: #fff; }

.user-menu { position: relative; }
.user-avatar {
  width: 38px; height: 38px; border-radius: 50%;
  background: linear-gradient(135deg, var(--gold), var(--gold-light, #d4b677));
  color: var(--dark);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; cursor: pointer; font-size: 14px;
  border: 1.5px solid var(--gold);
  box-shadow: 0 0 0 0 rgba(201,169,97,0.5);
  transition: all 0.25s;
}
.user-avatar:hover {
  box-shadow: 0 0 0 3px rgba(201,169,97,0.25);
  transform: scale(1.05);
}

.dropdown {
  position: absolute; top: 110%; right: 0;
  background: linear-gradient(180deg, #1a1a1a 0%, #0f0f0f 100%);
  border-radius: 8px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.5);
  min-width: 220px; padding: 0.5rem;
  display: none;
  border: 1px solid rgba(201,169,97,0.3);
}
.dropdown.show { display: block; }
.dropdown-item {
  padding: 0.75rem 1rem; border-radius: 4px; cursor: pointer;
  font-size: 14px; display: flex; align-items: center; gap: 0.5rem;
  color: #e6e6e6;
  transition: all 0.2s;
}
.dropdown-item:hover {
  background: rgba(201,169,97,0.12);
  color: var(--gold);
  padding-left: 1.2rem;
}
.dropdown-divider {
  height: 1px;
  background: rgba(201,169,97,0.2);
  margin: 0.5rem 0;
}

/* ============ VIEWS ============ */
.view { display: none; }
.view.active { display: block; }

/* ============ HERO ============ */
.hero {
  position: relative; min-height: 88vh;
  /* Layered, self-contained atmosphere — a refined nighttime arrival.
     Deep blacks with warm gold light pools, evoking the glow of a grand
     hotel forecourt after dark. No fragile external image dependency. */
  background:
    /* top vignette for nav legibility */
    linear-gradient(to bottom, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0) 22%, rgba(0,0,0,0) 58%, rgba(8,8,10,0.88) 100%),
    /* warm gold light pool, lower-right (the "portico light") */
    radial-gradient(130% 95% at 80% 72%, rgba(201,169,97,0.34) 0%, rgba(201,169,97,0.12) 30%, rgba(201,169,97,0) 58%),
    /* secondary warm glow rising from bottom-centre-right for depth */
    radial-gradient(80% 60% at 65% 100%, rgba(229,193,88,0.16) 0%, rgba(229,193,88,0) 55%),
    /* cool deep highlight upper-left for contrast */
    radial-gradient(90% 70% at 12% 8%, rgba(60,72,96,0.30) 0%, rgba(20,24,34,0) 60%),
    /* faint gold accent, mid-left, for asymmetry */
    radial-gradient(60% 60% at 28% 60%, rgba(201,169,97,0.09) 0%, rgba(201,169,97,0) 60%),
    /* base near-black gradient with a subtle warm diagonal */
    linear-gradient(135deg, #050507 0%, #0e0f13 38%, #15120b 70%, #211a0d 100%);
  background-color: #08080a;
  display: flex; align-items: center; padding: 4rem 2rem; color: #fff;
  overflow: hidden;
}
/* Fine grain + a sweeping light edge, layered above the gradients */
.hero::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  opacity: 0.5; mix-blend-mode: overlay;
}
/* A single diagonal "light streak" sweeping across — subtle prestige cue */
.hero::after {
  content: ''; position: absolute; top: -40%; right: -10%;
  width: 60%; height: 180%;
  background: linear-gradient(105deg, rgba(229,193,88,0) 0%, rgba(229,193,88,0.06) 45%, rgba(229,193,88,0.14) 50%, rgba(229,193,88,0.06) 55%, rgba(229,193,88,0) 100%);
  transform: rotate(8deg); pointer-events: none;
  filter: blur(6px);
}
/* "Refined Arrival" — code-driven cinematic motion (no footage needed) */
.hero-motion {
  position: absolute; inset: -12%; z-index: 0; pointer-events: none;
  background:
    /* warm portico light pool, lower-right */
    radial-gradient(42% 42% at 78% 70%, rgba(229,193,88,0.34) 0%, rgba(229,193,88,0) 60%),
    /* secondary gold glow rising from bottom-centre */
    radial-gradient(34% 38% at 58% 102%, rgba(229,193,88,0.20) 0%, rgba(229,193,88,0) 60%),
    /* cool highlight upper-left for depth/contrast */
    radial-gradient(38% 46% at 18% 26%, rgba(86,104,146,0.26) 0%, rgba(86,104,146,0) 62%);
  will-change: transform;
  animation: heroDrift 28s ease-in-out infinite alternate;
}
@keyframes heroDrift {
  0%   { transform: translate3d(0, 0, 0) scale(1.02); }
  100% { transform: translate3d(-2.6%, -2%, 0) scale(1.09); }
}
/* periodic light sweep — like headlights passing on Park Lane */
.hero::after { will-change: transform, opacity; animation: heroSweep 13s ease-in-out infinite; }
@keyframes heroSweep {
  0%   { transform: translateX(-35%) rotate(8deg); opacity: 0; }
  12%  { opacity: 1; }
  50%  { transform: translateX(12%) rotate(8deg); opacity: 0.9; }
  80%  { opacity: 0.6; }
  100% { transform: translateX(55%) rotate(8deg); opacity: 0; }
}
/* faint living grain */
.hero::before { animation: heroGrain 7s steps(8) infinite; }
@keyframes heroGrain { 0%,100% { opacity: 0.5; } 50% { opacity: 0.4; } }
@media (prefers-reduced-motion: reduce) {
  .hero-motion, .hero::before, .hero::after { animation: none !important; }
}

/* "Refined Arrival" hero video layer + legibility scrim */
.hero-video {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; z-index: 0; pointer-events: none;
  opacity: 0; transition: opacity 1.4s ease;
}
.hero-video.is-loaded { opacity: 1; }
.hero-video-overlay {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  opacity: 0; transition: opacity 1.4s ease;
  background:
    /* top-to-bottom vignette for nav + base legibility */
    linear-gradient(to bottom, rgba(0,0,0,0.62) 0%, rgba(0,0,0,0.12) 28%, rgba(0,0,0,0.22) 60%, rgba(8,8,10,0.86) 100%),
    /* darken the left (hero text) while keeping the right lighter for the white widget */
    linear-gradient(105deg, rgba(5,5,7,0.80) 0%, rgba(5,5,7,0.36) 42%, rgba(5,5,7,0.05) 70%);
}
/* scrim only appears once the video is actually playing — otherwise the gold gradient shows untouched */
.hero-video.is-loaded ~ .hero-video-overlay { opacity: 1; }
/* keep the grain + light-streak detail above the video */
.hero::before, .hero::after { z-index: 1; }
.hero-container { position: relative; z-index: 2; }
.hero-container { max-width: 1300px; margin: 0 auto; width: 100%; display: grid; grid-template-columns: 1.2fr 1fr; gap: 3rem; align-items: center; }
.hero-text h1 { font-family: 'Playfair Display'; font-size: 4rem; line-height: 1.05; margin-bottom: 1rem; letter-spacing: -1px; }
.hero-text .subtitle { color: var(--gold); text-transform: uppercase; letter-spacing: 2px; font-size: 14px; margin-bottom: 1rem; font-weight: 500; }
.hero-text p { color: #ddd; font-size: 1.05rem; line-height: 1.7; max-width: 500px; }
.hero-stats { display: flex; gap: 2rem; margin-top: 2rem; padding-top: 2rem; border-top: 1px solid rgba(201,169,97,0.3); }
.hero-stat-number { font-family: 'Playfair Display'; font-size: 2rem; color: var(--gold); font-weight: 700; }
.hero-stat-label { font-size: 11px; color: #aaa; text-transform: uppercase; letter-spacing: 1px; }

/* ============ BOOKING WIDGET ============ */
.booking-widget {
  background: #fff; border-radius: 8px; padding: 1.2rem 1.35rem;
  box-shadow: 0 20px 60px rgba(0,0,0,0.3); color: #2c2c2c;
  transform: translateY(-24px) scale(0.9); transform-origin: top center;
}
.booking-widget h2 { font-family: 'Playfair Display'; font-size: 1.1rem; margin-bottom: 0.8rem; }
/* Compact, scoped sizing so the hero widget fits the viewport (desktop right column + mobile) */
.booking-widget .form-group { margin-bottom: 0.5rem; }
.booking-widget .form-label { font-size: 10px; margin-bottom: 0.2rem; }
.booking-widget .form-input, .booking-widget .form-select {
  padding: 0.46rem 0.75rem; font-size: 12.5px;
}
.booking-widget .btn { padding: 0.62rem 1rem; font-size: 13px; }
.tabs { display: flex; gap: 0; margin-bottom: 0.8rem; border-bottom: 1px solid var(--border); }
.tab {
  flex: 1; padding: 0.45rem; background: transparent; font-weight: 600;
  font-size: 11.5px; color: var(--gray); border-bottom: 2px solid transparent;
  transition: all 0.2s; cursor: pointer;
}
.tab.active { color: var(--dark); border-bottom-color: var(--gold); }
.form-group { margin-bottom: 1rem; }
.form-label { display: block; font-size: 12px; color: var(--gray); margin-bottom: 0.4rem; text-transform: uppercase; letter-spacing: 0.5px; font-weight: 500; }
.form-input, .form-select, .form-textarea {
  width: 100%; padding: 0.75rem 1rem; border: 1.5px solid var(--border);
  border-radius: 4px; font-size: 14px; transition: border 0.2s; background: #fff;
}
.form-input:focus, .form-select:focus, .form-textarea:focus { border-color: var(--gold); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }
@media (max-width: 768px) { .contact-grid { grid-template-columns: 1fr; gap: 1.5rem; } }

/* ============ SECTIONS ============ */
.section { padding: 4rem 2rem; max-width: 1300px; margin: 0 auto; }
.section-title { font-family: 'Playfair Display'; font-size: 2.5rem; margin-bottom: 0.5rem; }
.section-subtitle { color: var(--gray); margin-bottom: 2.5rem; }
.section-light { background: #fff; }
.section-dark-bg { background: var(--dark); color: #fff; }
.section-gray { background: var(--light-gray); }

/* ============ FLEET CARDS ============ */
.fleet-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; }
.fleet-card {
  background: #fff; border: 1px solid var(--border); border-radius: 6px;
  overflow: hidden; transition: all 0.3s; cursor: pointer;
}
.fleet-card:hover { transform: translateY(-5px); box-shadow: 0 15px 40px rgba(0,0,0,0.12); border-color: var(--gold); }
.fleet-img { height: 180px; background: #fff; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.fleet-img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.fleet-body { padding: 1.2rem; }
.fleet-name { font-family: 'Playfair Display'; font-size: 1.15rem; margin-bottom: 0.4rem; }
.fleet-price { color: var(--gold); font-weight: 700; font-size: 1.3rem; margin-bottom: 0.4rem; }
.fleet-info { font-size: 13px; color: var(--gray); display: flex; gap: 1rem; margin-bottom: 1rem; }
.fleet-info span { display: flex; align-items: center; gap: 0.3rem; }

/* ============ HOTEL CARDS ============ */
.hotel-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.5rem; }
.hotel-card {
  background: #fff; border: 1px solid var(--border); border-radius: 6px;
  overflow: hidden; transition: all 0.3s; cursor: pointer;
}
.hotel-card:hover { transform: translateY(-4px); box-shadow: 0 10px 30px rgba(0,0,0,0.1); border-color: var(--gold); }
.hotel-img { height: 160px; overflow: hidden; position: relative; background: #ddd; }
.hotel-img img { width: 100%; height: 100%; object-fit: cover; }
.hotel-free-badge {
  position: absolute; top: 10px; right: 10px; z-index: 2;
  background: var(--gold); color: var(--dark);
  padding: 0.35rem 0.7rem; border-radius: 4px;
  font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.5px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.25);
  display: flex; align-items: center; gap: 0.3rem;
}
.hotel-body { padding: 1rem; }
.hotel-name { font-family: 'Playfair Display'; font-size: 1rem; font-weight: 600; margin-bottom: 0.3rem; line-height: 1.3; }
.hotel-area { font-size: 12px; color: var(--gold-text); margin-bottom: 0.5rem; font-weight: 500; }
.hotel-stars { color: var(--gold-text); font-size: 13px; margin-bottom: 0.8rem; }
.skip-link { position:absolute; left:-9999px; top:0; z-index:99999; background:var(--dark); color:#fff; padding:.7rem 1.1rem; border-radius:0 0 8px 0; font-weight:700; text-decoration:none; }
.skip-link:focus { left:0; }
[tabindex="-1"]:focus, [tabindex="-1"]:focus-visible { outline: none; }   /* programmatic route-change focus targets shouldn't show a ring */

/* ============ MODAL ============ */
.modal-overlay {
  position: fixed; top: 0; left: 0; width: 100%; height: 100%;
  background: rgba(0,0,0,0.6); display: none; z-index: 2000;
  align-items: center; justify-content: center; padding: 2rem;
}
.modal-overlay.show { display: flex; }
.modal {
  background: #fff; border-radius: 8px; width: 100%; max-width: 480px;
  max-height: 90vh; overflow-y: auto;
}
.modal-lg { max-width: 700px; }
.modal-header { padding: 1.5rem 2rem; border-bottom: 1px solid var(--border); display: flex; justify-content: space-between; align-items: center; }
.modal-title { font-family: 'Playfair Display'; font-size: 1.5rem; }
.modal-close { background: transparent; font-size: 1.5rem; color: var(--gray); cursor: pointer; padding: 0; width: 32px; height: 32px; border-radius: 50%; }
.modal-close:hover { background: var(--light-gray); }
.modal-body { padding: 2rem; }
.modal-footer { padding: 1.5rem 2rem; border-top: 1px solid var(--border); display: flex; gap: 0.8rem; justify-content: flex-end; }

/* ============ BOOKING INTRO & 24HR NOTICE ============ */
.booking-intro-hero {
  background: linear-gradient(135deg, var(--dark) 0%, #1a1a1a 100%);
  color: #fff; padding: 3rem 2rem; text-align: center; position: relative; overflow: hidden;
}
.booking-intro-hero::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 0%, rgba(201,169,97,0.15) 0%, transparent 60%);
}
.booking-intro-hero h1 {
  font-family: 'Playfair Display'; font-size: 2.5rem; margin-bottom: 0.5rem; position: relative;
}
.booking-intro-hero p { color: #ccc; font-size: 1rem; max-width: 600px; margin: 0 auto; position: relative; }

.three-steps {
  display: flex; gap: 0; max-width: 700px; margin: 2rem auto 0; position: relative;
}
.three-steps::before {
  content: ''; position: absolute; top: 24px; left: calc(16.67% + 24px); right: calc(16.67% + 24px);
  height: 2px; background: linear-gradient(90deg, var(--gold), var(--gold-light), var(--gold));
}
.three-step {
  flex: 1; text-align: center; position: relative; z-index: 1;
}
.three-step-num {
  width: 48px; height: 48px; border-radius: 50%; margin: 0 auto 0.7rem;
  background: var(--gold); color: var(--dark); display: flex; align-items: center;
  justify-content: center; font-family: 'Playfair Display'; font-weight: 700; font-size: 1.1rem;
  box-shadow: 0 0 0 4px rgba(201,169,97,0.3);
}
.three-step-label { font-size: 12px; color: #ccc; font-weight: 500; line-height: 1.3; }
.three-step-label strong { display: block; color: #fff; font-size: 13px; margin-bottom: 0.2rem; }

.notice-24hr {
  background: linear-gradient(135deg, #fff3cd 0%, #ffeeba 100%);
  border-left: 5px solid var(--warning); padding: 1.25rem 1.5rem;
  display: flex; gap: 1rem; align-items: flex-start;
  border-radius: 0 6px 6px 0; margin-bottom: 1.5rem;
}
.notice-24hr-icon { font-size: 1.5rem; flex-shrink: 0; }
.notice-24hr-content strong { display: block; color: #856404; font-size: 14px; margin-bottom: 0.3rem; }
.notice-24hr-content p { font-size: 13px; color: #856404; line-height: 1.5; margin: 0; }
.notice-24hr-call {
  margin-top: 0.7rem; display: inline-flex; align-items: center; gap: 0.5rem;
  background: var(--dark); color: #fff; padding: 0.5rem 1rem; border-radius: 4px;
  font-size: 13px; font-weight: 600; cursor: pointer; border: none;
  text-decoration: none; transition: background 0.2s;
}
.notice-24hr-call:hover { background: var(--gold); color: var(--dark); }

.urgent-banner {
  background: var(--dark); color: #fff; padding: 1rem 1.5rem;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  border-radius: 6px; margin-bottom: 1.5rem; flex-wrap: wrap;
}
.urgent-banner p { font-size: 14px; color: #ccc; margin: 0; }
.urgent-banner strong { color: #fff; }
.urgent-call-btn {
  background: var(--gold); color: var(--dark); border: none; border-radius: 4px;
  padding: 0.6rem 1.2rem; font-weight: 700; font-size: 13px; cursor: pointer;
  white-space: nowrap; display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0;
}
.urgent-call-btn:hover { background: var(--gold-light); }

.security-badges {
  display: flex; align-items: center; gap: 0.6rem; margin: 1.5rem 0;
  padding: 1rem; background: var(--light-gray); border-radius: 6px; flex-wrap: wrap;
}
.security-badge {
  display: flex; align-items: center; gap: 0.4rem; font-size: 11px;
  color: var(--gray); font-weight: 500; padding: 0.3rem 0.6rem;
  background: #fff; border-radius: 4px; border: 1px solid var(--border);
}
.security-badge .badge-icon { font-size: 1rem; }
.card-brand-row {
  display: flex; gap: 0.5rem; margin-bottom: 1rem; align-items: center;
}
.card-brand {
  padding: 0.3rem 0.6rem; background: var(--light-gray); border-radius: 4px;
  font-size: 11px; font-weight: 600; color: var(--gray); border: 1px solid var(--border);
}
.three-d-secure-badge {
  display: inline-flex; align-items: center; gap: 0.5rem;
  background: linear-gradient(135deg, #00875a, #00a86b); color: #fff;
  padding: 0.4rem 0.9rem; border-radius: 20px; font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 1rem;
}
.pay-btn {
  width: 100%; padding: 1.1rem; background: linear-gradient(135deg, #635bff, #7c74ff);
  color: #fff; border: none; border-radius: 6px; font-size: 1.05rem; font-weight: 700;
  cursor: pointer; transition: all 0.3s; margin-top: 1rem; display: flex;
  align-items: center; justify-content: center; gap: 0.7rem;
}
.pay-btn:hover { background: linear-gradient(135deg, #5248e0, #6d65f0); transform: translateY(-2px); box-shadow: 0 8px 25px rgba(99,91,255,0.4); }
.pay-btn:active { transform: translateY(0); }

/* Booking summary sidebar */
.booking-layout {
  display: grid; grid-template-columns: 1fr 360px; gap: 2rem; align-items: start;
}
.booking-summary-sidebar {
  background: #fff; border: 1px solid var(--border); border-radius: 8px;
  padding: 1.5rem; position: sticky; top: 100px;
}
.booking-summary-sidebar h4 {
  font-family: 'Playfair Display'; font-size: 1.15rem; margin-bottom: 1.2rem;
  padding-bottom: 0.8rem; border-bottom: 1px solid var(--border);
}
.booking-sidebar-row {
  display: flex; justify-content: space-between; font-size: 13px;
  padding: 0.4rem 0; color: var(--gray);
}
.booking-sidebar-row .val { color: var(--dark); font-weight: 500; text-align: right; max-width: 180px; }
.booking-sidebar-total {
  display: flex; justify-content: space-between; font-weight: 700;
  font-size: 1.2rem; padding: 0.8rem 0; margin-top: 0.5rem;
  border-top: 2px solid var(--dark); color: var(--dark);
}
.booking-sidebar-total .amount { color: var(--gold); font-family: 'Playfair Display'; }

@media (max-width: 900px) {
  .booking-layout { grid-template-columns: 1fr; }
  .booking-summary-sidebar { position: static; order: -1; }
  .three-steps::before { display: none; }
}

/* ============ BOOKING FLOW ============ */
.booking-flow { max-width: 900px; margin: 2rem auto; padding: 0 2rem; }
.steps { display: flex; gap: 0; margin-bottom: 2rem; }
.step { flex: 1; padding: 1rem; text-align: center; border-bottom: 3px solid var(--border); position: relative; }
.step.active { border-bottom-color: var(--gold); }
.step.complete { border-bottom-color: var(--success); }
.step-num { display: inline-block; width: 32px; height: 32px; border-radius: 50%; background: var(--border); color: var(--gray); line-height: 32px; font-weight: 700; font-size: 13px; margin-bottom: 0.5rem; }
.step.active .step-num { background: var(--gold); color: var(--dark); }
.step.complete .step-num { background: var(--success); color: #fff; }
.step-label { font-size: 13px; color: var(--gray); font-weight: 500; }
.step.active .step-label, .step.complete .step-label { color: var(--dark); font-weight: 600; }

.booking-card {
  background: #fff; border-radius: 8px; padding: 2.5rem;
  box-shadow: 0 4px 20px rgba(0,0,0,0.06);
}
.booking-step { display: none; }
.booking-step.active { display: block; }
.booking-step h3 { font-family: 'Playfair Display'; font-size: 1.6rem; margin-bottom: 1.5rem; }

.vehicle-option {
  display: flex; gap: 1.2rem; padding: 1rem; border: 2px solid var(--border);
  border-radius: 6px; margin-bottom: 0.8rem; cursor: pointer; transition: all 0.2s;
  align-items: center;
}
.vehicle-option:hover { border-color: var(--gold); }
.vehicle-option.selected { border-color: var(--gold); background: #fff9eb; }
.vehicle-option-img { width: 100px; height: 70px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: var(--light-gray); border-radius: 4px; padding: 0.4rem; }
.vehicle-option-img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.vehicle-option-info { flex: 1; }
.vehicle-option-name { font-family: 'Playfair Display'; font-weight: 600; font-size: 1.05rem; margin-bottom: 0.2rem; }
.vehicle-option-details { font-size: 12px; color: var(--gray); }
.vehicle-option-price { font-size: 1.3rem; font-weight: 700; color: var(--gold); font-family: 'Playfair Display'; }

.summary-row { display: flex; justify-content: space-between; padding: 0.6rem 0; border-bottom: 1px dashed var(--border); font-size: 14px; }
.summary-row.total { font-weight: 700; font-size: 1.2rem; border-bottom: none; padding-top: 1rem; margin-top: 0.5rem; border-top: 2px solid var(--dark); color: var(--dark); }
.summary-row .label { color: var(--gray); }

/* ============ DASHBOARD ============ */
.dashboard-grid { display: grid; grid-template-columns: 240px 1fr; gap: 2rem; padding: 2rem; max-width: 1300px; margin: 0 auto; }
.dashboard-sidebar { background: #fff; border-radius: 8px; padding: 1.5rem; height: fit-content; border: 1px solid var(--border); min-width: 0; }
.dashboard-sidebar-item { padding: 0.75rem 1rem; border-radius: 4px; cursor: pointer; margin-bottom: 0.3rem; font-size: 14px; font-weight: 500; }
.dashboard-sidebar-item:hover { background: var(--light-gray); }
.dashboard-sidebar-item.active { background: var(--dark); color: #fff; }
.dashboard-main { background: #fff; border-radius: 8px; padding: 2rem; border: 1px solid var(--border); min-width: 0; }

.stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; margin-bottom: 2rem; }
.stat-card { background: linear-gradient(135deg, var(--dark) 0%, var(--dark-2) 100%); color: #fff; padding: 1.5rem; border-radius: 8px; }
.stat-card.gold { background: linear-gradient(135deg, var(--gold) 0%, var(--gold-light) 100%); color: var(--dark); }
.stat-label { font-size: 12px; text-transform: uppercase; letter-spacing: 1px; opacity: 0.8; margin-bottom: 0.5rem; }
.stat-value { font-family: 'Playfair Display'; font-size: 2rem; font-weight: 700; }
.stat-change { font-size: 12px; margin-top: 0.3rem; opacity: 0.8; }

table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { padding: 0.8rem; text-align: left; border-bottom: 1px solid var(--border); }
th { background: var(--light-gray); font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--gray); }
.badge { display: inline-block; padding: 0.25rem 0.6rem; border-radius: 12px; font-size: 11px; font-weight: 600; text-transform: uppercase; }
.badge-success { background: #d4edda; color: #155724; }
.badge-warning { background: #fff3cd; color: #856404; }
.badge-info { background: #d1ecf1; color: #0c5460; }
.badge-danger { background: #f8d7da; color: #721c24; }

/* ============ TOAST ============ */
.toast {
  position: fixed; top: 2rem; right: 2rem; background: var(--dark); color: #fff;
  padding: 1rem 1.5rem; border-radius: 6px; box-shadow: 0 10px 40px rgba(0,0,0,0.2);
  z-index: 3000; transform: translateX(120%); transition: transform 0.3s; max-width: 360px;
}
.toast.show { transform: translateX(0); }
.toast.success { background: var(--success); }
.toast.error { background: var(--danger); }
.toast.warning { background: var(--warning); color: var(--dark); }

/* ============ EMPTY STATE ============ */
.empty-state { text-align: center; padding: 3rem 1rem; color: var(--gray); }
.empty-state-icon { font-size: 3rem; margin-bottom: 1rem; opacity: 0.4; }

/* ============ FOOTER — Matches Header Style ============ */
.footer {
  background: linear-gradient(180deg, #0a0a0a 0%, #141414 100%);
  color: #e6e6e6;
  padding: 3rem 2rem 1.5rem;
  border-top: 1px solid rgba(201,169,97,0.25);
}
.footer-grid { max-width: 1300px; margin: 0 auto; display: grid; grid-template-columns: 1.5fr 2.4fr auto; gap: 2.4rem; margin-bottom: 2rem; align-items: start; }
.footer-nav-cols { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.3rem 1.8rem; }
.footer-app-side { display: flex; justify-content: flex-end; }
.footer-app-side .footer-app-col { margin-top: 0; min-width: 190px; }
@media (max-width: 768px) { .footer-nav-cols { grid-template-columns: repeat(2, 1fr); } .footer-app-side { justify-content: flex-start; margin-top: .5rem; } }

/* Request-a-Call-Back card (sits in the footer brand column, under the contact details) */
.footer-callback-card {
  margin-top: 1.5rem;
  max-width: 360px;
  padding: 1rem 1.1rem 1.1rem;
  background: rgba(201,169,97,0.07);
  border: 1px solid rgba(201,169,97,0.30);
  border-radius: 12px;
}
.footer-callback-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.02rem;
  color: var(--gold);
  letter-spacing: 0.4px;
  margin-bottom: 0.2rem;
}
.footer-callback-sub {
  font-size: 12px;
  color: #bbb;
  line-height: 1.5;
  margin-bottom: 0.85rem;
}
.footer-callback-sub a {
  color: var(--gold);
  cursor: pointer;
  text-decoration: underline;
}
.footer-callback-fields {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.footer-callback-input {
  width: 100%;
  box-sizing: border-box;
  padding: 0.6rem 0.8rem;
  background: rgba(255,255,255,0.95);
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 7px;
  font-size: 13px;
  font-family: inherit;
  color: #1a1a1a;
  outline: none;
}
.footer-callback-input:focus { border-color: var(--gold); box-shadow: 0 0 0 2px rgba(201,169,97,0.25); }
.footer-callback-input::placeholder { color: #888; }
.footer-callback-select { cursor: pointer; }
.footer-callback-btn {
  width: 100%;
  margin-top: 0.15rem;
  padding: 0.65rem 1rem !important;
  font-size: 13px !important;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .footer-callback-card { max-width: none; }
}
.footer h4 {
  color: var(--gold);
  font-family: 'Playfair Display', serif;
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 1.3rem;
  letter-spacing: 0.3px;
  position: relative;
  padding-bottom: 0.85rem;
  text-shadow: 0 1px 2px rgba(0,0,0,0.45);
}
.footer h4::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 44px; height: 2px;
  background: linear-gradient(90deg, var(--gold) 0%, rgba(201,169,97,0) 100%);
  border-radius: 2px;
}
.footer a {
  display: block;
  padding: 0.3rem 0;
  font-size: 14px;
  cursor: pointer;
  color: #e6e6e6;
  transition: all 0.2s;
  letter-spacing: 0.3px;
}
.footer a:hover { color: var(--gold); padding-left: 4px; }
/* ===== Download Our App (inside Help & Support column) ===== */
.footer-app-col { margin-top: 1.6rem; }
.footer-app-col-title {
  font-family: 'Playfair Display', serif; color: var(--gold);
  font-size: 0.98rem; font-weight: 700; letter-spacing: 0.3px;
  margin-bottom: 0.85rem;
}
.footer-app-col-badges { display: flex; flex-direction: column; gap: 0.6rem; }
.footer-app-col .app-badge {
  display: inline-flex; align-items: center; gap: 0.6rem;
  background: #050505; border: 1px solid rgba(255,255,255,0.28);
  border-radius: 10px; padding: 0.5rem 0.9rem; cursor: pointer;
  max-width: 210px;
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
.footer-app-col .app-badge:hover {
  transform: translateY(-2px); padding-left: 0.9rem;
  border-color: var(--gold); box-shadow: 0 8px 20px rgba(0,0,0,0.45);
}
.footer-app-col .app-badge-logo { width: 24px; height: 24px; flex: 0 0 auto; color: #fff; }
.footer-app-col .app-badge-text { display: flex; flex-direction: column; line-height: 1.12; color: #fff; }
.footer-app-col .app-badge-text small {
  font-size: 9px; text-transform: uppercase; letter-spacing: 0.6px; opacity: 0.82; font-weight: 500;
}
.footer-app-col .app-badge-text strong { font-size: 14px; font-weight: 600; letter-spacing: 0.2px; }
.footer p { color: #e6e6e6; }

/* ============ SLIM PROMO STRIP (in-page, not top of header) ============ */
.promo-strip {
  background: linear-gradient(135deg, var(--gold) 0%, var(--gold-light, #d4b677) 100%);
  color: var(--dark);
  padding: 0.85rem 1.5rem;
  position: relative;
  overflow: hidden;
}
.promo-strip::before {
  content: '';
  position: absolute;
  top: 0; left: -50%; width: 200%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.15) 50%, transparent 100%);
  animation: shimmer 8s ease-in-out infinite;
  pointer-events: none;
}
@keyframes shimmer {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(50%); }
}
.promo-strip-inner {
  max-width: 1300px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  font-size: 14px;
  position: relative;
  z-index: 1;
  flex-wrap: wrap;
}
.promo-strip-icon {
  font-size: 1.4rem;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,0.15));
}
.promo-strip-marker {
  font-family: 'Playfair Display', serif;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1;
  color: var(--dark);
  opacity: 0.7;
}
.promo-strip-cta {
  margin-left: auto;
  background: var(--dark);
  color: var(--gold);
  padding: 0.45rem 1rem;
  border-radius: 4px;
  font-weight: 700;
  font-size: 13px;
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s;
  letter-spacing: 0.5px;
}
.promo-strip-cta:hover {
  background: #000;
  transform: translateX(2px);
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
@media (max-width: 768px) {
  .promo-strip { padding: 0.7rem 1rem; }
  .promo-strip-inner { font-size: 13px; gap: 0.5rem; }
  .promo-strip-cta { margin-left: 0; width: 100%; text-align: center; margin-top: 0.4rem; }
}

.footer-brand {
  margin-bottom: 1.2rem;
  display: flex;
  align-items: center;
}
.footer-logo {
  height: 44px;
  border-radius: 4px;
  filter: brightness(1.05);
  transition: all 0.25s;
  box-shadow: 0 2px 10px rgba(0,0,0,0.3);
}
.footer-brand:hover .footer-logo {
  transform: scale(1.03);
  box-shadow: 0 4px 14px rgba(201,169,97,0.25);
}
.footer-bottom {
  max-width: 1300px;
  margin: 0 auto;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(201,169,97,0.2);
  text-align: center;
  font-size: 13px;
  color: #e6e6e6;
}

/* Footer Legal Strip */
.footer-legal {
  max-width: 1300px;
  margin: 2rem auto 0;
  padding: 1.2rem 0 1rem;
  border-top: 1px solid rgba(255,255,255,0.06);
  text-align: center;
}

/* Footer Social Strip */
.footer-social {
  max-width: 1300px;
  margin: 2.5rem auto 0;
  padding-top: 2rem;
  position: relative;
  text-align: center;
}
.footer-social-divider {
  width: 60px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  margin: 0 auto 1.2rem;
}
.footer-social-label {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  color: var(--gold);
  font-size: 12px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  margin-bottom: 1.2rem;
}
.footer-social-icons {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.social-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(201,169,97,0.3);
  background: rgba(255,255,255,0.02);
  color: #d4d4d4;
  text-decoration: none;
  transition: all 0.3s ease;
  cursor: pointer;
}
.social-icon:hover {
  border-color: var(--gold);
  background: var(--gold);
  color: #0a0a0a;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(201,169,97,0.25);
}
.social-icon svg {
  display: block;
  transition: transform 0.3s ease;
}
.social-icon:hover svg {
  transform: scale(1.08);
}

@media (max-width: 768px) {
  .footer-social { margin-top: 1.5rem; padding-top: 1.5rem; }
  .footer-social-icons { gap: 0.7rem; }
  .social-icon { width: 38px; height: 38px; }
  .social-icon svg { width: 17px; height: 17px; }
}
.footer-legal-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.7rem;
}
.footer-legal-links a {
  color: #b5b5b5;
  font-size: 11px;
  text-decoration: none;
  cursor: pointer;
  letter-spacing: 0.5px;
  transition: color 0.2s;
}
.footer-legal-links a:hover { color: var(--gold); }
.footer-legal-sep {
  color: rgba(201,169,97,0.4);
  font-size: 11px;
}
.footer-legal-meta {
  font-size: 10.5px;
  color: #888;
  letter-spacing: 0.3px;
  line-height: 1.5;
}

/* ============ LEGAL PAGES ============ */
.legal-content {
  max-width: 880px;
  margin: 0 auto;
  padding: 3rem 2rem 5rem;
  color: #333;
  line-height: 1.7;
  font-size: 15px;
}
.legal-content h2 {
  font-family: 'Playfair Display', serif;
  font-size: 1.5rem;
  color: var(--dark);
  margin: 2.5rem 0 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--border);
}
.legal-content h3 {
  font-family: 'Playfair Display', serif;
  font-size: 1.15rem;
  color: var(--dark);
  margin: 1.5rem 0 0.7rem;
}
.legal-content p { margin-bottom: 1rem; }
.legal-content ul {
  margin: 0.5rem 0 1.2rem;
  padding-left: 1.5rem;
}
.legal-content li { margin-bottom: 0.4rem; }
.legal-content strong { color: var(--dark); font-weight: 600; }
.legal-meta {
  background: #faf8f5;
  padding: 0.8rem 1.2rem;
  border-left: 3px solid var(--gold);
  border-radius: 4px;
  font-size: 13px;
  color: var(--gray);
  margin-bottom: 2rem !important;
}

/* ============ HERO SECONDARY (used by legal/blog/testimonials) ============ */
.hero-secondary {
  background: linear-gradient(135deg, #0a0a0a 0%, var(--dark) 100%);
  color: #fff;
  padding: 4rem 2rem 3rem;
  text-align: center;
  position: relative;
}
.hero-secondary::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(201,169,97,0.08) 0%, transparent 70%);
  pointer-events: none;
}
.hero-secondary-content {
  max-width: 700px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
.hero-secondary .eyebrow {
  color: var(--gold);
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin-bottom: 1rem;
  font-weight: 600;
}
.hero-secondary h1 {
  font-family: 'Playfair Display', serif;
  font-size: 2.6rem;
  margin-bottom: 0.7rem;
  font-weight: 700;
}
.hero-secondary p {
  font-size: 1.05rem;
  color: #ccc;
  max-width: 540px;
  margin: 0 auto;
  line-height: 1.6;
}

/* ============ BLOG ============ */
.blog-featured {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.3s;
  margin-bottom: 3rem;
}
.blog-featured:hover {
  border-color: var(--gold);
  box-shadow: 0 12px 32px rgba(0,0,0,0.08);
  transform: translateY(-2px);
}
.blog-featured-image {
  min-height: 320px;
  background-size: cover;
  background-position: center;
}
.blog-featured-content {
  padding: 2.5rem 2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.blog-featured-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.75rem;
  line-height: 1.3;
  margin-bottom: 0.9rem;
  color: var(--dark);
}
.blog-featured-excerpt {
  color: #555;
  margin-bottom: 1rem;
  font-size: 0.95rem;
  line-height: 1.6;
}
.blog-category {
  color: var(--gold);
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 0.8rem;
}
.blog-meta {
  font-size: 12px;
  color: var(--gray);
  letter-spacing: 0.3px;
}
.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
}
.blog-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  flex-direction: column;
}
.blog-card:hover {
  border-color: var(--gold);
  box-shadow: 0 8px 24px rgba(0,0,0,0.06);
  transform: translateY(-2px);
}
.blog-card-image {
  height: 180px;
  background-size: cover;
  background-position: center;
}
.blog-card-body {
  padding: 1.3rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.blog-card-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.1rem;
  line-height: 1.35;
  margin-bottom: 0.7rem;
  color: var(--dark);
}
.blog-card-excerpt {
  font-size: 13px;
  color: #666;
  line-height: 1.55;
  margin-bottom: 1rem;
  flex: 1;
}

/* ============ TESTIMONIALS PAGE ============ */
.testimonial-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  background: linear-gradient(135deg, #faf8f5, #fff5e6);
  border: 1px solid rgba(201,169,97,0.3);
  border-radius: 8px;
  padding: 2rem;
  margin-bottom: 3rem;
}
.testimonial-stat {
  text-align: center;
  border-right: 1px solid rgba(201,169,97,0.2);
}
.testimonial-stat:last-child { border-right: none; }
.testimonial-stat-value {
  font-family: 'Playfair Display', serif;
  font-size: 2.2rem;
  color: var(--gold);
  font-weight: 700;
  margin-bottom: 0.3rem;
}
.testimonial-stat-label {
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gray);
}
.testimonials-page-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  gap: 1.5rem;
}
.testimonial-page-card {
  background: #fff;
  border: 1px solid var(--border);
  border-left: 3px solid var(--gold);
  border-radius: 6px;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
}
.testimonial-page-quote {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 1rem;
  color: var(--dark);
  line-height: 1.6;
  margin-bottom: 1.2rem;
  flex: 1;
}
.testimonial-page-quote::before {
  content: '"';
  color: var(--gold);
  font-size: 2rem;
  display: block;
  line-height: 0.5;
  margin-bottom: 0.5rem;
  margin-top: 0.5rem;
}
.testimonial-page-rating {
  color: var(--gold);
  letter-spacing: 2px;
  font-size: 0.9rem;
  margin-bottom: 0.6rem;
}
.testimonial-page-author {
  font-weight: 600;
  font-size: 14px;
  color: var(--dark);
}
.testimonial-page-meta {
  font-size: 12px;
  color: var(--gray);
  margin-top: 0.2rem;
}
.testimonial-page-tag {
  display: inline-block;
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--gold);
  background: rgba(201,169,97,0.1);
  padding: 0.2rem 0.6rem;
  border-radius: 3px;
  margin-top: 0.8rem;
  width: fit-content;
}

@media (max-width: 768px) {
  .hero-secondary h1 { font-size: 1.8rem; }
  .hero-secondary p { font-size: 0.9rem; }
  .legal-content { padding: 2rem 1.2rem 3rem; font-size: 14px; }
  .legal-content h2 { font-size: 1.25rem; margin-top: 2rem; }
  .blog-featured { grid-template-columns: 1fr; }
  .blog-featured-image { min-height: 220px; }
  .blog-featured-content { padding: 1.5rem; }
  .blog-featured-title { font-size: 1.3rem; }
  .testimonial-stats { grid-template-columns: 1fr 1fr; gap: 0.5rem; padding: 1.2rem; }
  .testimonial-stat { border-right: none; border-bottom: 1px solid rgba(201,169,97,0.2); padding-bottom: 0.8rem; }
  .testimonial-stat-value { font-size: 1.6rem; }
}

/* ============ JOIN THE CLUB — Luxury Newsletter ============ */
.join-club {
  background: linear-gradient(135deg, #0a0a0a 0%, #141414 50%, #0a0a0a 100%);
  position: relative;
  padding: 5rem 2rem;
  overflow: hidden;
}
.join-club::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at top, rgba(201,169,97,0.12) 0%, transparent 60%);
  pointer-events: none;
}
.join-club::after {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.join-club-inner {
  max-width: 760px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
  text-align: center;
}
.join-club-eyebrow {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  color: var(--gold);
  font-size: 14px;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin-bottom: 1.2rem;
  display: inline-block;
  padding: 0 1rem;
  position: relative;
}
.join-club-eyebrow::before,
.join-club-eyebrow::after {
  content: '';
  display: inline-block;
  width: 30px;
  height: 1px;
  background: var(--gold);
  vertical-align: middle;
  margin: 0 0.8rem;
  opacity: 0.6;
}
.join-club-title {
  font-family: 'Playfair Display', serif;
  font-size: 3rem;
  color: #fff;
  font-weight: 700;
  margin-bottom: 1rem;
  letter-spacing: -0.5px;
}
.join-club-subtitle {
  color: #ccc;
  font-size: 1.05rem;
  line-height: 1.7;
  max-width: 540px;
  margin: 0 auto 2.5rem;
}
.join-club-pillars {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1rem;
  margin-bottom: 3rem;
  padding: 0 1rem;
}
.join-club-pillar { text-align: center; color: #e6e6e6; }
.join-club-pillar-numeral {
  font-family: 'Playfair Display', serif;
  color: var(--gold);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 1px;
  margin-bottom: 0.4rem;
  padding-bottom: 0.3rem;
  border-bottom: 1px solid rgba(201,169,97,0.3);
  display: inline-block;
  min-width: 2rem;
}
.join-club-pillar span {
  display: block;
  font-size: 11px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: #b5b5b5;
}
.join-club-form {
  text-align: left;
  max-width: 520px;
  margin: 0 auto;
}
.join-club-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem;
}
.join-club-form input[type="text"],
.join-club-form input[type="email"] {
  width: 100%;
  padding: 0.85rem 1rem;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 4px;
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  transition: all 0.2s;
  margin-bottom: 0.6rem;
}
.join-club-form input::placeholder { color: rgba(255,255,255,0.4); }
.join-club-form input:focus {
  outline: none;
  border-color: var(--gold);
  background: rgba(255,255,255,0.1);
}
.join-club-interests { margin: 1rem 0; }
.join-club-interests-label {
  display: block;
  color: #b5b5b5;
  font-size: 12px;
  letter-spacing: 0.5px;
  margin-bottom: 0.7rem;
}
.join-club-interest-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.join-club-chip { display: inline-flex; align-items: center; cursor: pointer; }
.join-club-chip input { display: none; }
.join-club-chip span {
  display: inline-block;
  padding: 0.4rem 0.9rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(201,169,97,0.25);
  border-radius: 20px;
  color: #ccc;
  font-size: 12px;
  letter-spacing: 0.3px;
  transition: all 0.2s;
}
.join-club-chip:hover span {
  border-color: var(--gold);
  color: #fff;
}
.join-club-chip input:checked + span {
  background: var(--gold);
  border-color: var(--gold);
  color: #0a0a0a;
  font-weight: 600;
}
.join-club-consent {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  margin: 1.2rem 0;
  font-size: 12px;
  color: #ccc;
  line-height: 1.5;
  cursor: pointer;
}
.join-club-consent input[type="checkbox"] {
  margin-top: 2px;
  width: 16px;
  height: 16px;
  accent-color: var(--gold);
  cursor: pointer;
  flex-shrink: 0;
}
.join-club-submit {
  width: 100%;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-size: 13px;
  margin-top: 0.5rem;
}
.join-club-footnote {
  text-align: center;
  font-size: 11px;
  color: #888;
  margin-top: 1rem;
  letter-spacing: 0.5px;
}
@media (max-width: 768px) {
  .join-club { padding: 3.5rem 1rem; }
  .join-club-title { font-size: 2rem; }
  .join-club-subtitle { font-size: 0.95rem; margin-bottom: 2rem; }
  .join-club-pillars { grid-template-columns: repeat(3, 1fr); gap: 0.8rem; margin-bottom: 2rem; }
  .join-club-pillar-numeral { font-size: 1.2rem; }
  .join-club-pillar span { font-size: 9.5px; }
  .join-club-form-row { grid-template-columns: 1fr; gap: 0; }
  .join-club-eyebrow { font-size: 11px; letter-spacing: 2px; }
  .join-club-eyebrow::before,
  .join-club-eyebrow::after { width: 20px; margin: 0 0.4rem; }
}
@media (max-width: 480px) {
  .join-club-pillars { grid-template-columns: repeat(2, 1fr); }
  .join-club-title { font-size: 1.7rem; }
}

/* ============ PACKAGE PILLARS — What every package includes ============ */
.package-pillars {
  background: linear-gradient(135deg, #faf8f5 0%, #fff 100%);
  padding: 4rem 2rem 3.5rem;
  position: relative;
}
.package-pillars::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.package-pillars-inner { max-width: 1200px; margin: 0 auto; }
.package-pillars-header { text-align: center; max-width: 720px; margin: 0 auto 3rem; }
.package-pillars-eyebrow {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  color: var(--gold);
  font-size: 13px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  margin-bottom: 0.8rem;
}
.package-pillars-title {
  font-family: 'Playfair Display', serif;
  font-size: 2.2rem;
  color: var(--dark);
  font-weight: 700;
  margin-bottom: 1rem;
  letter-spacing: -0.3px;
}
.package-pillars-intro {
  color: #444;
  font-size: 15px;
  line-height: 1.75;
}
.package-pillars-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}
.package-pillar {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 2rem 1.5rem;
  text-align: center;
  transition: all 0.3s;
  position: relative;
}
.package-pillar::before {
  content: '';
  position: absolute;
  top: 0;
  left: 1.5rem;
  right: 1.5rem;
  height: 2px;
  background: var(--gold);
  opacity: 0;
  transition: opacity 0.3s;
}
.package-pillar:hover {
  border-color: var(--gold);
  box-shadow: 0 10px 24px rgba(0,0,0,0.06);
  transform: translateY(-3px);
}
.package-pillar:hover::before { opacity: 1; }
.package-pillar-numeral {
  font-family: 'Playfair Display', serif;
  color: var(--gold);
  font-size: 2.2rem;
  font-weight: 700;
  letter-spacing: 1px;
  margin-bottom: 0.6rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(201,169,97,0.3);
  display: inline-block;
  min-width: 3rem;
}
.package-pillar-name {
  font-family: 'Playfair Display', serif;
  font-size: 1.2rem;
  color: var(--dark);
  font-weight: 600;
  margin-bottom: 0.6rem;
  letter-spacing: 0.2px;
}
.package-pillar-detail {
  font-size: 13px;
  color: #555;
  line-height: 1.65;
}
.package-pillars-footnote {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 13.5px;
  color: var(--gold);
  letter-spacing: 0.5px;
}
.package-pillars-footnote-rule {
  width: 60px;
  height: 1px;
  background: var(--gold);
  opacity: 0.5;
}
@media (max-width: 968px) {
  .package-pillars-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
  .package-pillars-title { font-size: 1.8rem; }
}
@media (max-width: 600px) {
  .package-pillars { padding: 2.8rem 1rem 2rem; }
  .package-pillars-title { font-size: 1.5rem; }
  .package-pillars-intro { font-size: 14px; }
  .package-pillars-grid { grid-template-columns: 1fr; gap: 0.8rem; }
  .package-pillar { padding: 1.4rem 1.2rem; }
  .package-pillar-numeral { font-size: 1.8rem; }
  .package-pillar-name { font-size: 1.05rem; }
  .package-pillars-footnote { font-size: 12px; gap: 0.7rem; }
  .package-pillars-footnote-rule { width: 30px; }
}

/* ============ AIRPORT SERVICE COMMITMENT ============ */
.airport-commitment {
  background: linear-gradient(135deg, #faf8f5 0%, #fff 100%);
  padding: 4rem 2rem;
  position: relative;
}
.airport-commitment::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.airport-commitment-inner { max-width: 1200px; margin: 0 auto; }
.airport-commitment-header { text-align: center; max-width: 760px; margin: 0 auto 3rem; }
.airport-commitment-eyebrow {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  color: var(--gold);
  font-size: 13px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  margin-bottom: 0.8rem;
}
.airport-commitment-title {
  font-family: 'Playfair Display', serif;
  font-size: 2.2rem;
  color: var(--dark);
  margin-bottom: 1rem;
  font-weight: 700;
}
.airport-commitment-intro { color: #444; font-size: 15px; line-height: 1.75; }
.airport-commitment-intro strong { color: var(--dark); }
.airport-anatomy {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
  gap: 0.5rem;
  align-items: stretch;
  margin-bottom: 3.5rem;
}
.airport-anatomy-stage {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1.4rem 1.2rem;
  text-align: center;
  display: flex;
  flex-direction: column;
}
.airport-anatomy-numeral {
  font-family: 'Playfair Display', serif;
  color: var(--gold);
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 0.4rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid rgba(201,169,97,0.3);
  align-self: center;
  min-width: 2.5rem;
}
.airport-anatomy-stage-title {
  font-family: 'Playfair Display', serif;
  font-size: 1rem;
  color: var(--dark);
  margin-bottom: 0.5rem;
  font-weight: 600;
}
.airport-anatomy-stage-desc { font-size: 12px; color: #555; line-height: 1.55; flex: 1; margin-bottom: 0.7rem; }
.airport-anatomy-stage-time {
  font-size: 11px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 700;
  padding-top: 0.5rem;
  border-top: 1px dashed rgba(201,169,97,0.3);
}
.airport-anatomy-connector { color: var(--gold); font-size: 1.4rem; opacity: 0.5; align-self: center; }
.airport-commitment-times { margin-bottom: 3rem; }
.airport-commitment-times-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.5rem;
  color: var(--dark);
  text-align: center;
  margin-bottom: 0.5rem;
  font-weight: 700;
}
.airport-commitment-times-subtitle {
  text-align: center; color: var(--gray); font-size: 14px; margin-bottom: 2rem;
  max-width: 640px; margin-left: auto; margin-right: auto; line-height: 1.6;
}
.airport-time-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.airport-time-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1.5rem 1.3rem;
  position: relative;
  transition: all 0.3s;
}
.airport-time-card:hover {
  border-color: var(--gold);
  box-shadow: 0 6px 18px rgba(0,0,0,0.06);
  transform: translateY(-2px);
}
.airport-time-card.featured {
  border: 2px solid var(--gold);
  background: linear-gradient(135deg, #fff, #fff8e9);
}
.airport-time-badge {
  position: absolute; top: -10px; right: 1rem;
  background: var(--gold); color: #0a0a0a;
  font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; font-weight: 700;
  padding: 0.25rem 0.6rem; border-radius: 3px;
}
.airport-time-code {
  font-family: 'Playfair Display', serif;
  font-size: 1.8rem;
  color: var(--gold);
  font-weight: 700;
  letter-spacing: 1.5px;
  display: inline-block;
  padding: 0.2rem 0.7rem;
  border: 1.5px solid var(--gold);
  border-radius: 4px;
  margin-bottom: 0.7rem;
}
.airport-time-name {
  font-family: 'Playfair Display', serif;
  font-size: 1.1rem;
  color: var(--dark);
  margin-bottom: 0.3rem;
  font-weight: 600;
}
.airport-time-detail { font-size: 12px; color: var(--gray); margin-bottom: 1rem; line-height: 1.4; }
.airport-time-commit {
  font-family: 'Playfair Display', serif;
  font-size: 1.4rem;
  color: var(--dark);
  font-weight: 700;
  padding-top: 0.8rem;
  border-top: 1px solid rgba(201,169,97,0.25);
  margin-bottom: 0.4rem;
}
.airport-time-note { font-size: 11px; color: #777; line-height: 1.5; }
.airport-commitment-includes {
  background: #0f0f0f; color: #fff; border-radius: 10px;
  padding: 2.5rem 2rem; margin-bottom: 2.5rem;
}
.airport-commitment-includes-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.5rem;
  text-align: center;
  margin-bottom: 1.8rem;
  color: var(--gold);
  font-weight: 700;
}
.airport-commitment-includes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.5rem;
}
.airport-include-item { padding: 0.5rem 0; }
.airport-include-rule { width: 30px; height: 1.5px; background: var(--gold); opacity: 0.7; margin-bottom: 0.7rem; }
.airport-include-name {
  font-family: 'Playfair Display', serif;
  font-size: 1rem;
  color: #fff;
  margin-bottom: 0.4rem;
  font-weight: 600;
}
.airport-include-desc { font-size: 12.5px; color: #c5c5c5; line-height: 1.55; }
.airport-commitment-principle {
  background: #fff;
  border-left: 4px solid var(--gold);
  border-radius: 6px;
  padding: 2rem 2.2rem;
  position: relative;
  max-width: 820px;
  margin: 0 auto;
}
.airport-commitment-principle-mark {
  position: absolute; top: -10px; left: 1.5rem;
  font-family: 'Playfair Display', serif;
  color: var(--gold); font-size: 3.5rem; line-height: 1; font-style: italic;
}
.airport-commitment-principle-text {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 1.05rem;
  color: var(--dark);
  line-height: 1.7;
  margin-bottom: 1rem;
  padding-top: 0.5rem;
}
.airport-commitment-principle-attribution {
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
}
@media (max-width: 968px) {
  .airport-anatomy { grid-template-columns: 1fr; gap: 0.8rem; }
  .airport-anatomy-connector { transform: rotate(90deg); margin: 0 auto; }
}
@media (max-width: 768px) {
  .airport-commitment { padding: 2.5rem 1rem; }
  .airport-commitment-title { font-size: 1.6rem; }
  .airport-commitment-intro { font-size: 14px; }
  .airport-commitment-times-title { font-size: 1.3rem; }
  .airport-time-grid { grid-template-columns: 1fr; gap: 0.8rem; }
  .airport-commitment-includes { padding: 1.8rem 1.2rem; }
  .airport-commitment-principle { padding: 1.5rem 1.5rem; }
  .airport-commitment-principle-text { font-size: 0.95rem; }
}

.events-hero {
  background: linear-gradient(135deg, #0a0a0a 0%, var(--dark) 100%);
  color: #fff; padding: 5rem 2rem 3rem; text-align: center; position: relative; overflow: hidden;
}
.events-hero::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at 70% 0%, rgba(201,169,97,0.18) 0%, transparent 55%);
}
.events-hero h1 { font-family: 'Playfair Display'; font-size: 3.5rem; margin-bottom: 0.5rem; position: relative; }
.events-hero p { color: #ccc; font-size: 1.1rem; max-width: 700px; margin: 0 auto 1.5rem; position: relative; }

.events-cat-chips { display: flex; gap: 0.4rem; flex-wrap: wrap; justify-content: center; margin: 1.5rem 0; padding: 0 2rem; }
.events-cat-chip {
  padding: 0.4rem 0.9rem; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.15);
  border-radius: 20px; font-size: 11px; font-weight: 500; color: #ccc;
  cursor: pointer; transition: all 0.2s;
}
.events-cat-chip:hover { background: rgba(201,169,97,0.2); border-color: var(--gold); color: var(--gold); }
.events-cat-chip.active { background: var(--gold); color: var(--dark); border-color: var(--gold); font-weight: 700; }

.events-layout { max-width: 1300px; margin: 0 auto; padding: 3rem 2rem; }
.events-month-group { margin-bottom: 3rem; }
.events-month-label {
  font-family: 'Playfair Display'; font-size: 2rem; font-weight: 700;
  color: var(--dark); margin-bottom: 1.5rem; padding-bottom: 0.75rem;
  border-bottom: 3px solid var(--gold); display: flex; align-items: center; gap: 1rem;
}
.events-month-label .month-count {
  font-size: 0.9rem; font-family: 'DM Sans'; color: var(--gray); font-weight: 400;
}
.events-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1rem; }
.event-card {
  background: #fff; border: 1px solid var(--border); border-radius: 8px;
  padding: 1.5rem; transition: all 0.3s; position: relative; overflow: hidden; cursor: pointer;
}
.event-card::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: var(--gold); transform: scaleY(0); transition: transform 0.3s;
}
.event-card:hover { box-shadow: 0 10px 30px rgba(0,0,0,0.1); border-color: var(--gold); transform: translateY(-3px); }
.event-card:hover::before { transform: scaleY(1); }
.event-card.featured { border-color: var(--gold); background: linear-gradient(135deg, #fff9eb 0%, #fff 100%); }
.event-card.featured::before { transform: scaleY(1); }
.event-card-header { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 0.8rem; }
.event-icon { font-size: 2rem; flex-shrink: 0; line-height: 1; }
.event-date { font-size: 12px; color: var(--gold); font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 0.2rem; }
.event-name { font-family: 'Playfair Display'; font-size: 1rem; font-weight: 600; color: var(--dark); line-height: 1.3; }
.event-name-link { cursor: pointer; transition: color 0.2s; }
.event-name-link:hover, .event-card:hover .event-name-link { color: var(--gold); text-decoration: underline; text-underline-offset: 3px; }
.event-venue { font-size: 12px; color: var(--gray); margin-top: 0.5rem; display: flex; align-items: center; gap: 0.3rem; }
.event-cat-badge {
  display: inline-block; padding: 0.2rem 0.6rem; border-radius: 10px;
  font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px;
  background: var(--light-gray); color: var(--gray); margin-top: 0.5rem;
}
.event-featured-badge {
  display: inline-block; padding: 0.2rem 0.6rem; border-radius: 10px;
  font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px;
  background: var(--gold); color: var(--dark); margin-left: 0.4rem;
}
.event-cta {
  margin-top: 1rem; padding: 0.6rem 1rem; background: var(--dark); color: #fff;
  border: none; border-radius: 4px; font-size: 12px; font-weight: 600;
  cursor: pointer; transition: all 0.2s; width: 100%;
}
.event-cta:hover { background: var(--gold); color: var(--dark); }
.event-fare { font-size: 12.5px; color: var(--gray); margin: 0.85rem 0 0; }
.event-fare b { color: var(--dark); font-weight: 700; }
.event-fare span { opacity: 0.7; font-size: 11px; }
.event-cta-row { display: flex; gap: 0.5rem; margin-top: 0.5rem; }
.event-cta-row .event-cta { margin-top: 0; flex: 1 1 auto; }
.event-cta-ghost { background: transparent; color: var(--dark); border: 1px solid var(--border); flex: 0 0 auto; }
.event-cta-ghost:hover { background: transparent; color: var(--dark); border-color: var(--gold); }
/* Touch-device tap targets: bump small icon buttons to the 44px guideline (desktop stays compact) */
@media (pointer: coarse){ .event-ical { width: 44px; height: 44px; } .kc-hotel-tile .kc-tile-fav { width: 44px; height: 44px; } }

/* ===== Premium ticket cards (Tickets page) — brand-matched ===== */
.tkt-card {
  background: #fff; border: 1px solid var(--border); border-radius: 14px;
  overflow: hidden; display: flex; flex-direction: column;
  transition: transform .3s, box-shadow .3s, border-color .3s;
}
.tkt-card:hover { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(15,15,15,.15); border-color: var(--gold); }
.tkt-card.featured { border-color: rgba(201,169,97,.55); box-shadow: 0 6px 22px rgba(201,169,97,.14); }
.tkt-media { position: relative; height: 168px; overflow: hidden; background: linear-gradient(135deg,#0a0a0a 0%, #1a1a1a 100%); cursor: pointer; }
.tkt-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.tkt-card:hover .tkt-media img { transform: scale(1.07); }
.tkt-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,.5)); pointer-events: none; }
.tkt-crest { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  color: var(--gold-light);
  background: radial-gradient(circle at 68% 28%, rgba(201,169,97,.30) 0%, transparent 62%); }
.tkt-crest > span {
  width: 90px; height: 90px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: radial-gradient(circle at 50% 34%, rgba(255,248,232,.14), rgba(201,169,97,.05));
  border: 1px solid rgba(201,169,97,.45);
  box-shadow: 0 10px 28px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.08);
}
.tkt-crest svg { width: 44px; height: 44px; }
.tkt-crest .kc-ico { font-size: 44px; line-height: 0; }
.tkt-cat {
  position: absolute; top: 11px; left: 11px; z-index: 3;
  background: rgba(15,15,15,.62); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  color: #f1e4c4; border: 1px solid rgba(201,169,97,.5);
  padding: .3rem .65rem; border-radius: 20px; font-size: 9.5px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .07em;
}
.tkt-pop {
  position: absolute; top: 11px; right: 11px; z-index: 3;
  background: linear-gradient(135deg, var(--gold), var(--gold-light)); color: var(--dark);
  padding: .3rem .6rem; border-radius: 20px; font-size: 9.5px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .04em; box-shadow: 0 4px 12px rgba(0,0,0,.32);
}
.tkt-body { padding: 1.1rem 1.15rem 1.2rem; display: flex; flex-direction: column; flex: 1; }
.tkt-media[data-action] { cursor: pointer; }
.tkt-name { font-family: var(--font-display); font-size: 1.2rem; font-weight: 700; color: var(--dark); line-height: 1.25; margin: 0 0 .35rem; cursor: pointer; transition: color .2s; }
.tkt-name:hover { color: var(--gold); }
.tkt-loc { font-size: 12px; color: var(--gold); font-weight: 600; display: flex; align-items: center; gap: .32rem; margin-bottom: .6rem; }
.tkt-loc svg { flex-shrink: 0; opacity: .9; }
.tkt-desc { font-size: 12.5px; color: var(--gray); line-height: 1.55; margin: 0 0 1rem; flex: 1; }
.tkt-foot { display: flex; justify-content: space-between; align-items: flex-end; padding-top: .85rem; border-top: 1px solid var(--border); margin-bottom: 1rem; }
.tkt-from { display: block; font-size: 9px; text-transform: uppercase; letter-spacing: .09em; color: var(--gray); margin-bottom: .1rem; }
.tkt-price b { font-family: var(--font-display); font-size: 1.6rem; font-weight: 700; color: var(--gold); line-height: 1; }
.tkt-pp { display: block; font-size: 9.5px; color: var(--gray); margin-top: .18rem; }
/* Bokun live-booking widget modal */
.bokun-modal { position: fixed; inset: 0; z-index: 4000; display: none; align-items: flex-start; justify-content: center; background: rgba(20,20,28,.62); backdrop-filter: blur(3px); overflow-y: auto; padding: 4vh 1rem; }
.bokun-modal.show { display: flex; }
.bokun-modal-inner { position: relative; background: #fff; width: 100%; max-width: 760px; border-radius: 16px; box-shadow: 0 24px 70px rgba(0,0,0,.4); overflow: hidden; animation: bokunIn .25s ease; }
@keyframes bokunIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.bokun-modal-head { display: flex; align-items: center; gap: .85rem; padding: 1.05rem 3rem 1.05rem 1.35rem; background: linear-gradient(180deg,#fffdf7,#fbf6ea); border-bottom: 1px solid rgba(201,169,97,.35); }
.bokun-modal-head #bokunIcon { font-size: 1.9rem; line-height: 1; }
.bokun-modal-head h3 { font-family: var(--font-display); font-size: 1.25rem; margin: 0; color: var(--ink, #1a1a2e); }
.bokun-modal-head #bokunLoc { font-size: 12px; color: var(--gray); margin-top: .15rem; }
.bokun-close { position: absolute; top: .8rem; right: .9rem; width: 32px; height: 32px; border: none; border-radius: 50%; background: rgba(0,0,0,.06); color: #333; font-size: 1.4rem; line-height: 1; cursor: pointer; transition: background .15s; }
.bokun-close:hover { background: rgba(0,0,0,.13); }
#bokunBody { padding: 1.1rem 1.35rem 1.6rem; min-height: 360px; }
.bokun-loading { text-align: center; color: var(--gray); font-size: 13px; padding: 3.5rem 1rem; }
.bokun-loading::before { content: ''; display: block; width: 30px; height: 30px; margin: 0 auto 1rem; border: 3px solid rgba(201,169,97,.3); border-top-color: var(--gold); border-radius: 50%; animation: bokunSpin .8s linear infinite; }
@keyframes bokunSpin { to { transform: rotate(360deg); } }
.bokun-powered { text-align: center; font-size: 10.5px; color: var(--gray); padding: .2rem 0 .9rem; }
#bokunContent { padding: 0 1.35rem; }
.bk-hero { width: 100%; height: 190px; object-fit: cover; border-radius: 12px; margin-top: 1rem; }
.bk-intro { font-size: 13px; line-height: 1.65; color: #3a3a44; margin: .9rem 0 .2rem; }
.bk-hl { list-style: none; padding: 0; margin: .7rem 0; display: grid; gap: .35rem; }
.bk-hl li { position: relative; padding-left: 1.3rem; font-size: 12.5px; color: #333; line-height: 1.5; }
.bk-hl li::before { content: '★'; position: absolute; left: 0; color: var(--gold); font-size: 11px; }
.bk-ie { display: flex; flex-wrap: wrap; gap: .4rem; margin: .6rem 0; }
.bk-inc, .bk-exc { font-size: 11px; padding: .25rem .55rem; border-radius: 20px; }
.bk-inc { background: #eef7ee; color: #1f6b32; }
.bk-exc { background: #f6eeee; color: #9a3b3b; }
.bk-meta { font-size: 11.5px; color: var(--gray); line-height: 1.7; margin: .5rem 0 .2rem; border-top: 1px solid var(--border, #eee); padding-top: .6rem; }
.bokun-book-label { font-family: var(--font-display); font-size: 1.02rem; color: var(--ink, #1a1a2e); padding: 1rem 1.35rem .2rem; border-top: 1px solid rgba(201,169,97,.25); margin-top: 1rem; }
/* Auto-linked Heathrow mentions across the site */
.hx-link { color: var(--gold); cursor: pointer; border-bottom: 1px dotted rgba(201,169,97,0.65); transition: color 0.15s, border-color 0.15s; }
.hx-link:hover { color: #a8853b; border-bottom-style: solid; }

/* Oxford destination article */
.oxa { max-width: 860px; margin: 0 auto; font-size: 14.5px; line-height: 1.75; color: #3a3a44; }
.oxa h2 { font-family: var(--font-display); font-size: 1.65rem; color: var(--dark); margin: 2.4rem 0 0.8rem; }
.oxa h3 { font-family: var(--font-display); font-size: 1.18rem; color: var(--dark); margin: 1.6rem 0 0.5rem; }
.oxa p { margin: 0 0 1rem; }
.oxa ul { margin: 0 0 1.1rem; padding-left: 1.3rem; }
.oxa li { margin-bottom: 0.45rem; }
.oxa img.oxa-inline { width: 100%; height: 320px; object-fit: cover; border-radius: 14px; margin: 1.2rem 0; box-shadow: 0 10px 26px rgba(0,0,0,0.1); }
.oxa-kw { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.9rem 0 0.4rem; }
.oxa-kw span { background: #fbf6ea; border: 1px solid rgba(201,169,97,0.4); color: #8a6d2f; border-radius: 16px; padding: 0.25rem 0.7rem; font-size: 11px; font-weight: 600; }
.oxa-kw::before { content: 'Related searches'; flex-basis: 100%; font-size: 10.5px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--gray); }
.oxa .hx-table { min-width: 640px; }
@media (max-width: 768px) { .oxa img.oxa-inline { height: 200px; } }
/* Oxford — immaculate editorial treatment */
.oxa-hero { grid-template-columns: 2fr 1fr 1fr !important; grid-auto-rows: 150px; }
.oxa-hero img { height: 100% !important; }
.oxa-hero img:first-child { grid-row: span 2; }
.oxa-hero img:nth-child(4) { grid-column: 2 / 4; }
.oxa-lede::first-letter { font-family: var(--font-display); font-size: 3.6em; font-weight: 700; float: left; line-height: 0.82; padding: 0.04em 0.12em 0 0; color: var(--gold); }
.oxa h2 { position: relative; padding-bottom: 0.55rem; margin-top: 3rem; scroll-margin-top: 96px; }
.oxa h2::after { content: ''; position: absolute; left: 0; bottom: 0; width: 64px; height: 2px; background: linear-gradient(90deg, var(--gold), transparent); }
.oxa h3 { color: #6b5a2e; }
.oxa-toc { display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 1.6rem 0 0.4rem; padding: 1rem 1.1rem; background: #faf8f5; border: 1px solid var(--border); border-radius: 14px; }
.oxa-toc strong { flex-basis: 100%; font-size: 10.5px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--gray); font-weight: 700; }
.oxa-toc a { background: #fff; border: 1px solid var(--border); border-radius: 18px; padding: 0.35rem 0.85rem; font-size: 12px; color: var(--dark); text-decoration: none; font-weight: 600; transition: all 0.15s; }
.oxa-toc a:hover { border-color: var(--gold); color: var(--gold); }
.oxa-pull { font-family: var(--font-display); font-size: 1.45rem; font-style: italic; line-height: 1.5; color: var(--dark); border-left: 3px solid var(--gold); margin: 2.2rem 0; padding: 0.4rem 0 0.4rem 1.5rem; }
.oxa-pull small { display: block; margin-top: 0.5rem; font-family: var(--font-body, sans-serif); font-style: normal; font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gold); }
.oxa-cta { background: linear-gradient(180deg, #0f0f0f, #1c1c1c); border: 1px solid rgba(201,169,97,0.4); border-radius: 18px; padding: 2.4rem 2rem; text-align: center; margin-top: 2.4rem; }
.oxa-cta h3 { font-family: var(--font-display); color: #fff; font-size: 1.5rem; margin: 0 0 0.4rem; }
.oxa-cta p { color: #c5c5c5; font-size: 13.5px; max-width: 540px; margin: 0 auto 1.3rem; }
.oxa-div { text-align: center; color: var(--gold); letter-spacing: 0.9em; margin: 2.6rem 0 0.2rem; font-size: 13px; }
@media (max-width: 700px) { .oxa-hero { grid-template-columns: 1fr 1fr !important; grid-auto-rows: 110px; } .oxa-hero img:first-child { grid-column: 1 / 3; } .oxa-hero img:nth-child(4) { grid-column: auto; } .oxa-pull { font-size: 1.15rem; } }

/* Heathrow destination guide page */
.hx-gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.8rem; margin: 1.6rem 0 0.4rem; }
.hx-gallery img { width: 100%; height: 175px; object-fit: cover; border-radius: 12px; box-shadow: 0 6px 18px rgba(0,0,0,0.08); }
.hx-stats { display: flex; flex-wrap: wrap; gap: 0.6rem; justify-content: center; margin: 1.4rem 0 0; }
.hx-stat { background: #faf8f5; border: 1px solid var(--border); border-radius: 20px; padding: 0.45rem 1rem; font-size: 12.5px; color: #444; font-weight: 600; }
.hx-info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; margin-top: 1.6rem; }
.hx-info-card { background: #fff; border: 1px solid var(--border); border-radius: 14px; padding: 1.4rem 1.3rem; }
.hx-info-card h3 { font-family: var(--font-display); font-size: 1.08rem; margin: 0 0 0.55rem; color: var(--dark); }
.hx-info-card p { font-size: 13px; line-height: 1.65; color: #555; margin: 0; }
.hx-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--border); border-radius: 12px; background: #fff; }
.hx-table { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 880px; }
.hx-table th { background: var(--dark); color: #fff; text-align: left; padding: 0.7rem 0.8rem; font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.8px; white-space: nowrap; }
.hx-table td { padding: 0.62rem 0.8rem; border-top: 1px solid #f0ece4; white-space: nowrap; vertical-align: middle; color: #333; }
.hx-table tbody tr:hover td { background: #fbf9f4; }
.hx-table .hx-p { color: var(--gold); font-weight: 700; }
.hx-rank { display: inline-flex; width: 24px; height: 24px; border-radius: 50%; background: var(--gold); color: var(--dark); font-weight: 700; font-size: 11.5px; align-items: center; justify-content: center; }
.hx-code { color: var(--gold); font-weight: 700; font-size: 11px; margin-left: 0.3rem; }
.hx-sub { color: var(--gray); font-size: 11px; margin-top: 2px; }
.hx-note { font-size: 11.5px; color: var(--gray); margin-top: 0.7rem; line-height: 1.6; }
.hx-fleet { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; margin-top: 1.6rem; }
.hx-fleet-card { background: linear-gradient(180deg, #fffdf9 0%, #faf6ee 100%); border: 1px solid var(--border); border-radius: 14px; padding: 1.2rem 1.2rem 1.35rem; text-align: center; cursor: pointer; transition: transform 0.2s, box-shadow 0.2s; }
.hx-fleet-card:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(0,0,0,0.1); }
.hx-fleet-card img { width: 100%; height: 110px; object-fit: contain; margin-bottom: 0.7rem; filter: drop-shadow(0 10px 14px rgba(0,0,0,0.18)); }
/* Each fleet PNG frames its car differently, so under object-fit:contain the cars paint at different sizes.
   Normalise the WHOLE fleet to one visual footprint — area-equalised to the S-Class (the reference). */
.hx-fleet-card img[src*="E450-SEDAN"]       { transform: scale(0.77); }   /* Mercedes E-Class */
.hx-fleet-card img[src*="cc_2023BMC"]       { transform: scale(1.29); }   /* BMW 7 Series (car small in frame) */
.hx-fleet-card img[src*="mercedes-v-class"] { transform: scale(0.96); }   /* Mercedes V-Class */
.hx-fleet-card img[src*="autoB-"]           { transform: scale(0.87); }   /* Range Rover Autobiography */
.hx-fleet-card img[src*="sprinter55"]       { transform: scale(0.87); }   /* Luxury 16-Seater Sprinter */
/* Mercedes S-Class (S-class-…png) stays at scale 1 — it is the reference size. */
.hx-fleet-name { font-family: var(--font-display); font-size: 1.02rem; color: var(--dark); margin-bottom: 0.15rem; }
.hx-fleet-meta { font-size: 11.5px; color: var(--gray); margin-bottom: 0.5rem; }
.hx-fleet-price { font-size: 13px; color: var(--gray); }
.hx-fleet-price b { color: var(--gold); font-family: var(--font-display); font-size: 1.25rem; margin-left: 0.25rem; }
@media (max-width: 900px) { .hx-fleet { grid-template-columns: repeat(2, 1fr); } }
/* Trust band */
.hx-band { background: linear-gradient(180deg, #0f0f0f 0%, #1a1a1a 100%); border-radius: 16px; padding: 2rem 1.8rem; margin: 0 auto; color: #e6e6e6; }
.hx-band-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1.4rem; margin-bottom: 1.4rem; text-align: center; }
.hx-band-rating { font-family: var(--font-display); font-size: 2rem; color: var(--gold); }
.hx-band-rating small { display: block; font-family: var(--font-body, sans-serif); font-size: 11px; color: #bbb; letter-spacing: 1px; text-transform: uppercase; margin-top: 0.2rem; }
.hx-band-partner { font-size: 13px; color: #d5d5d5; max-width: 330px; line-height: 1.6; border-left: 1px solid rgba(201,169,97,0.4); padding-left: 1.4rem; text-align: left; }
.hx-band-quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.hx-quote { background: rgba(255,255,255,0.05); border: 1px solid rgba(201,169,97,0.25); border-radius: 12px; padding: 1rem 1.1rem; font-size: 12.5px; line-height: 1.65; color: #ddd; }
.hx-quote b { display: block; margin-top: 0.55rem; color: var(--gold); font-size: 12px; }
@media (max-width: 820px) { .hx-band-quotes { grid-template-columns: 1fr; } .hx-band-partner { border-left: none; padding-left: 0; text-align: center; } }
/* Risk-reversal assurance row */
.hx-assure { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem 1.4rem; font-size: 12px; color: var(--gray); margin: 0.7rem 0 1rem; }
.hx-assure span { white-space: nowrap; }
/* The cancellation line is a full sentence, so it must be allowed to break on a
   narrow screen rather than forcing the row wider than the viewport. */
@media (max-width: 760px) { .hx-assure span { white-space: normal; } }
.hx-assure b { color: #2e7d32; margin-right: 0.25rem; }
/* Central London block */
.hx-cl { background: linear-gradient(180deg, #fffdf7, #fbf6ea); border: 1px solid rgba(201,169,97,0.4); border-radius: 16px; padding: 2rem 1.8rem; text-align: center; }
.hx-cl-price { font-family: var(--font-display); font-size: 2.6rem; color: var(--gold); margin: 0.3rem 0 0.1rem; }
.hx-cl-vehicles { font-size: 12.5px; color: var(--gray); margin-bottom: 1rem; }
.hx-cl-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.45rem; margin: 0.9rem 0 1.2rem; }
.hx-cl-chips span { background: #fff; border: 1px solid var(--border); border-radius: 18px; padding: 0.35rem 0.85rem; font-size: 12px; color: #444; }
/* Comparison table */
.hx-compare th:first-child, .hx-compare td:first-child { white-space: normal; min-width: 150px; }
.hx-compare td.win { color: #2e7d32; font-weight: 700; }
.hx-compare th.hero-col { background: var(--gold); color: var(--dark); }
.vip-tiers th { text-align: center; }
.vip-tiers td { text-align: center; }
.vip-tiers td:first-child, .vip-tiers th:first-child { text-align: left; white-space: normal; min-width: 200px; }
.vip-tiers th.hero-col { background: linear-gradient(180deg, #c9a961, #b08d3f); color: #141414; }
.vip-tier-price { font-family: var(--font-display); font-size: 1.05rem; margin-top: 0.2rem; font-weight: 700; }
/* FAQ accordion */
.hxq { border: 1px solid var(--border); border-radius: 12px; background: #fff; margin-bottom: 0.7rem; overflow: hidden; }
.hxq-q { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 1.2rem; cursor: pointer; font-weight: 600; font-size: 14px; color: var(--dark); }
.hxq-q::after { content: '+'; font-size: 1.3rem; color: var(--gold); flex: 0 0 auto; transition: transform 0.2s; }
.hxq.open .hxq-q::after { transform: rotate(45deg); }
.hxq-a { display: none; padding: 0 1.2rem 1.1rem; font-size: 13px; line-height: 1.7; color: #555; }
.hxq.open .hxq-a { display: block; }
@media (max-width: 560px) { .hx-fleet { grid-template-columns: 1fr 1fr; gap: 0.8rem; } .hx-fleet-card img { height: 80px; } .hx-fleet-name { font-size: 0.9rem; } }
@media (max-width: 768px) {
  .hx-gallery { grid-template-columns: repeat(2, 1fr) !important; }
  .hx-gallery img { height: 120px; }
  .hx-info-grid { grid-template-columns: 1fr; }
}
.tkt-perks { text-align: right; font-size: 10.5px; color: var(--gray); line-height: 1.55; }
.tkt-btn {
  width: 100%; padding: .82rem; border: none; border-radius: 9px; cursor: pointer;
  background: var(--dark); color: #fff; font-family: var(--font-body); font-size: 13px; font-weight: 700; letter-spacing: .02em;
  transition: background .25s, color .25s, box-shadow .25s;
}
.tkt-btn::before { content: '＋ '; }
.tkt-btn:hover { background: linear-gradient(135deg, var(--gold), var(--gold-light)); color: var(--dark); box-shadow: 0 6px 18px rgba(201,169,97,.4); }
.tkt-sub { display: flex; gap: .5rem; justify-content: center; align-items: center; margin-top: .7rem; font-size: 11px; color: var(--gray); }
.tkt-sub a { color: var(--gold); font-weight: 600; cursor: pointer; text-decoration: none; }
.tkt-sub a:hover { text-decoration: underline; }
/* Two-tab CTA: primary "Add to Basket" (dark) + premium "Add chauffeur" (gold), side by side */
.tkt-cta-row { display: flex; gap: .55rem; align-items: stretch; margin-top: .15rem; }
.tkt-cta-row .tkt-btn { flex: 1 1 0; width: auto; min-width: 0; margin: 0; }
.tkt-chauf {
  flex: 1 1 0; min-width: 0; padding: .82rem .5rem; border-radius: 9px; cursor: pointer;
  border: 1px solid var(--gold);
  background: linear-gradient(135deg, var(--gold), var(--gold-light)); color: var(--dark);
  font-family: var(--font-body); font-size: 12.5px; font-weight: 700; letter-spacing: .02em;
  display: inline-flex; align-items: center; justify-content: center; gap: .38rem; white-space: nowrap;
  transition: filter .25s, box-shadow .25s, transform .12s;
}
.tkt-chauf svg { width: 16px; height: 16px; flex: 0 0 auto; }
.tkt-chauf:hover { filter: brightness(1.05); box-shadow: 0 6px 18px rgba(201,169,97,.45); }
.tkt-chauf:active { transform: translateY(1px); }
@media (max-width:400px){ .tkt-cta-row { flex-wrap: wrap; } .tkt-cta-row .tkt-btn, .tkt-chauf { flex: 1 1 100%; } }
@media (max-width:560px){ .tkt-media { height: 150px; } .tkt-name { font-size: 1.1rem; } }
/* Availability states */
.tkt-soldout-badge { position:absolute; top:11px; right:11px; z-index:3; background:rgba(15,15,15,.78); color:#fff; border:1px solid rgba(255,255,255,.25); padding:.3rem .6rem; border-radius:20px; font-size:9.5px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.tkt-limited-badge { position:absolute; top:11px; right:11px; z-index:3; background:linear-gradient(135deg,#e08a2b,#f0a93a); color:#fff; padding:.3rem .6rem; border-radius:20px; font-size:9.5px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; box-shadow:0 4px 12px rgba(0,0,0,.3); }
.tkt-card.soldout .tkt-media img, .tkt-card.soldout .tkt-crest { filter:grayscale(1) brightness(.7); }
.tkt-card.soldout .tkt-price b { color:var(--gray); }
.tkt-card.soldout .tkt-btn { background:#555; }
.tkt-card.soldout .tkt-btn:hover { background:var(--gold); color:var(--dark); box-shadow:none; }
/* Tour cards reuse the premium ticket-card look */
.tour-card { cursor: pointer; }
.tour-card .tkt-desc { flex: 0 0 auto; margin-bottom: .15rem; }
.tour-card .tkt-foot { margin-top: auto; }
.tour-card .tour-fare-list { margin: .95rem 0 0; }
.tour-btn::before { content: ''; }

/* Pricing terms banner */
.pricing-terms-banner {
  background: var(--dark); color: #fff; padding: 2.5rem 2rem;
}
.pricing-terms-inner { max-width: 1300px; margin: 0 auto; }
.pricing-terms-title {
  font-family: 'Playfair Display'; font-size: 1.3rem; color: var(--gold);
  margin-bottom: 1.5rem; font-weight: 600;
}
.pricing-terms-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 0.8rem;
}
.pricing-term-item {
  display: flex; align-items: flex-start; gap: 0.7rem; font-size: 13px;
  color: #ccc; line-height: 1.5; padding: 0.5rem;
  border-radius: 4px; background: rgba(255,255,255,0.03);
}
.pricing-term-icon { font-size: 1.1rem; flex-shrink: 0; margin-top: 0.1rem; }

/* City-to-city */
.city-transfer-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
}
.city-transfer-card {
  background: #fff; padding: 1.5rem; border-radius: 8px;
  border: 1px solid var(--border); text-align: center; transition: all 0.3s;
}
.city-transfer-card:hover {
  border-color: var(--gold); transform: translateY(-4px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.08);
}
.city-transfer-icon { font-size: 2rem; margin-bottom: 0.5rem; }
.city-transfer-route {
  font-family: 'Playfair Display'; font-size: 1rem; font-weight: 600;
  color: var(--dark); margin-bottom: 0.3rem;
}
.city-transfer-duration { color: var(--gray); font-size: 12px; margin-bottom: 0.8rem; }
.city-transfer-price { color: var(--gold); font-weight: 700; font-family: 'Playfair Display'; font-size: 1.5rem; }
.city-transfer-desc { font-size: 11px; color: #999; margin-top: 0.3rem; }

@media (max-width: 768px) {
  .events-hero h1 { font-size: 2.2rem; }
  .events-grid { grid-template-columns: 1fr; }
}

/* ============ PRICING PAGE ============ */
.pricing-hero {
  background: linear-gradient(135deg, var(--dark) 0%, #1a1a1a 50%, #0a0a0a 100%);
  color: #fff; padding: 5rem 2rem 4rem; text-align: center;
  position: relative; overflow: hidden;
}
.pricing-hero::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 0%, rgba(201,169,97,0.2) 0%, transparent 50%);
}
.pricing-hero h1 {
  font-family: 'Playfair Display'; font-size: 3.5rem; margin-bottom: 1rem;
  position: relative;
}
.pricing-hero .eyebrow {
  color: var(--gold); text-transform: uppercase; letter-spacing: 3px;
  font-size: 13px; font-weight: 500; margin-bottom: 0.8rem; position: relative;
}
.pricing-hero p {
  color: #ccc; font-size: 1.1rem; max-width: 700px; margin: 0 auto;
  position: relative;
}
.pricing-trust-row {
  display: flex; gap: 2rem; justify-content: center; margin-top: 2rem;
  flex-wrap: wrap; position: relative;
}
.pricing-trust-item {
  display: flex; align-items: center; gap: 0.5rem; color: #ccc;
  font-size: 14px;
}
.pricing-trust-item::before {
  content: '✓'; color: var(--gold); font-weight: 700; font-size: 1.2rem;
}

.pricing-section { padding: 4rem 2rem; max-width: 1300px; margin: 0 auto; }
.pricing-tier-header {
  text-align: center; margin-bottom: 3rem;
}
.pricing-tier-eyebrow {
  display: inline-block; padding: 0.4rem 1rem; background: var(--gold);
  color: var(--dark); border-radius: 20px; font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1.5px; margin-bottom: 1rem;
}
.pricing-tier-title {
  font-family: 'Playfair Display'; font-size: 2.5rem; margin-bottom: 0.5rem;
  color: var(--dark);
}
.pricing-tier-subtitle { color: var(--gray); font-size: 1rem; }

/* Pricing table - hourly rates */
.pricing-table {
  width: 100%; border-collapse: collapse;
  background: #fff; border-radius: 8px; overflow: hidden;
  box-shadow: 0 4px 24px rgba(0,0,0,0.06);
}
.pricing-table thead {
  background: linear-gradient(135deg, var(--dark) 0%, #1a1a1a 100%);
  color: #fff;
}
.pricing-table th {
  padding: 1.2rem 1.5rem; text-align: left; font-weight: 600;
  font-size: 12px; text-transform: uppercase; letter-spacing: 1px;
  color: var(--gold); border-bottom: none;
}
.pricing-table th.center { text-align: center; }
.pricing-table th.right { text-align: right; }
.pricing-table td {
  padding: 1.25rem 1.5rem; border-bottom: 1px solid var(--border);
  font-size: 14px; vertical-align: middle;
}
.pricing-table tbody tr:hover { background: #fafafa; }
.pricing-table .vehicle-cell { display: flex; align-items: center; gap: 1rem; }
.pricing-table .vehicle-img {
  width: 80px; height: 50px; background: #f5f5f5; border-radius: 4px;
  display: flex; align-items: center; justify-content: center; padding: 4px;
  flex-shrink: 0;
}
.pricing-table .vehicle-img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.pricing-table .vehicle-info strong {
  display: block; font-family: 'Playfair Display'; font-size: 1.05rem;
  font-weight: 600; color: var(--dark);
}
.pricing-table .vehicle-info small { color: var(--gray); font-size: 12px; }
.pricing-table .price-cell {
  color: var(--gold); font-weight: 700; font-family: 'Playfair Display';
  font-size: 1.3rem; text-align: right;
}
.pricing-table .price-from { color: var(--gray); font-size: 11px; font-weight: 400; text-transform: uppercase; }
.pricing-table .badge-popular {
  display: inline-block; background: var(--gold); color: var(--dark);
  padding: 0.2rem 0.5rem; border-radius: 3px; font-size: 10px;
  font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px;
  margin-left: 0.5rem;
}

/* Fixed-price cards (airports etc.) */
.fixed-pricing-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
}
.fixed-pricing-card {
  background: #fff; padding: 1.5rem; border: 1px solid var(--border);
  border-radius: 8px; transition: all 0.3s;
}
.fixed-pricing-card:hover {
  border-color: var(--gold); transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.08);
}
.fixed-pricing-card-name {
  font-family: 'Playfair Display'; font-weight: 600; font-size: 1.1rem;
  margin-bottom: 0.3rem;
}
.fixed-pricing-card-code {
  display: inline-block;
  font-family: 'Playfair Display', serif;
  font-size: 0.85rem;
  letter-spacing: 1.5px;
  color: var(--gold);
  background: rgba(201,169,97,0.08);
  border: 1px solid rgba(201,169,97,0.3);
  padding: 0.1rem 0.5rem;
  border-radius: 3px;
  margin-right: 0.3rem;
  vertical-align: middle;
}
.fixed-pricing-card-meta { color: var(--gray); font-size: 12px; margin-bottom: 1rem; }
.fixed-pricing-card-prices {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.5rem;
  padding-top: 0.8rem; border-top: 1px solid var(--border);
}
.fixed-pricing-card-row { display: flex; justify-content: space-between; font-size: 13px; }
.fixed-pricing-card-row strong { color: var(--gold); font-weight: 700; }

/* NEW: Per-vehicle pricing list — used on Airport, Cruise, and UK Coverage cards */
.fixed-pricing-card-vehicle-list {
  padding-top: 0.8rem;
  margin-top: 0.4rem;
  border-top: 1px solid var(--border);
}
.fixed-pricing-card-list-header {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 10.5px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gold);
  text-align: center;
  margin-bottom: 0.6rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px dashed rgba(201,169,97,0.25);
}
.fixed-pricing-card-vrow {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0.35rem 0;
  font-size: 12.5px;
  border-bottom: 1px dotted #eee;
}
.fixed-pricing-card-vrow:last-child { border-bottom: none; }
.fixed-pricing-card-vname { color: #333; padding-right: 0.5rem; }
.fixed-pricing-card-vprice {
  color: var(--gold);
  font-family: 'Playfair Display', serif;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
}
.fixed-pricing-card-footnote {
  font-size: 10.5px;
  color: var(--gray);
  text-align: center;
  margin-top: 0.8rem;
  padding-top: 0.6rem;
  border-top: 1px dashed rgba(201,169,97,0.2);
  letter-spacing: 0.3px;
  font-style: italic;
}

/* NEW: Per-vehicle pricing list — used on UK Destination cards */
.uk-dest-vehicle-list {
  margin-top: 0.7rem;
  padding-top: 0.8rem;
  border-top: 1px solid var(--border);
}
.uk-dest-list-header {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 10.5px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.5rem;
  padding-bottom: 0.3rem;
  border-bottom: 1px dashed rgba(201,169,97,0.25);
  text-align: center;
}

/* ════════════════════════════════════════════════════════════════════════ */
/* CURATED LONDON                                                            */
/* ════════════════════════════════════════════════════════════════════════ */

/* ── Hero ─────────────────────────────────────────────────────────────── */
.curated-hero {
  position: relative;
  min-height: 78vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(135deg, rgba(15,15,15,0.92) 0%, rgba(25,18,8,0.88) 50%, rgba(35,25,10,0.92) 100%),
    radial-gradient(circle at 30% 20%, rgba(201,169,97,0.18), transparent 50%),
    radial-gradient(circle at 70% 80%, rgba(201,169,97,0.10), transparent 50%),
    #0a0a0a;
  color: #fff;
  padding: 5rem 1.5rem;
  text-align: center;
  overflow: hidden;
}
.curated-hero::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 120px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.curated-hero-inner { max-width: 880px; }
.curated-hero-eyebrow {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  color: var(--gold);
  letter-spacing: 4px;
  text-transform: uppercase;
  font-size: 12px;
  margin-bottom: 1.6rem;
}
.curated-hero-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2.2rem, 5.5vw, 4rem);
  line-height: 1.12;
  font-weight: 500;
  letter-spacing: -0.5px;
  margin-bottom: 1.6rem;
  color: #fff;
}
.curated-hero-subtitle {
  font-size: clamp(15px, 1.6vw, 17px);
  line-height: 1.75;
  color: #ddd;
  max-width: 720px;
  margin: 0 auto 2.4rem;
}
.curated-hero-ctas {
  display: flex;
  gap: 0.9rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 2.4rem;
}
.btn-outline-light {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.5);
  color: #fff;
  padding: 0.85rem 1.6rem;
  border-radius: 4px;
  font-family: inherit;
  font-size: 14px;
  letter-spacing: 0.5px;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
  transition: all 0.25s;
}
.btn-outline-light:hover {
  background: rgba(255,255,255,0.08);
  border-color: var(--gold);
  color: var(--gold);
}
.curated-hero-meta {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.6rem;
  font-size: 12px;
  color: #aaa;
  letter-spacing: 0.5px;
}
.curated-dot { color: rgba(201,169,97,0.5); }

/* ── Section shells ──────────────────────────────────────────────────── */
.curated-section {
  padding: 5rem 1.5rem;
  max-width: 1280px;
  margin: 0 auto;
}
.curated-section-dark {
  background: #0f0f0f;
  color: #fff;
  max-width: none;
  margin: 0;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.curated-section-cream {
  background: linear-gradient(180deg, #fbf8f3 0%, #f6efe2 100%);
  max-width: none;
  margin: 0;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.curated-section-header {
  max-width: 760px;
  margin: 0 auto 3rem;
  text-align: center;
}
.curated-section-eyebrow {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  color: var(--gold);
  letter-spacing: 3px;
  text-transform: uppercase;
  font-size: 12px;
  margin-bottom: 1rem;
}
.curated-section-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  line-height: 1.2;
  font-weight: 500;
  margin-bottom: 1rem;
}
.curated-section-subtitle {
  font-size: 15.5px;
  line-height: 1.7;
  color: var(--gray);
}
.curated-section-dark .curated-section-subtitle { color: #c5c5c5; }

/* ── Package cards ───────────────────────────────────────────────────── */
.curated-packages-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 310px), 1fr));
  gap: 1.5rem;
  max-width: 1280px;
  margin: 0 auto;
}
.curated-pkg-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  transition: all 0.3s;
  display: flex;
  flex-direction: column;
}
.curated-pkg-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 50px rgba(0,0,0,0.12);
  border-color: rgba(201,169,97,0.4);
}
.curated-pkg-card-featured {
  border-color: rgba(201,169,97,0.45);
  box-shadow: 0 6px 24px rgba(201,169,97,0.10);
}
.curated-pkg-card-featured:hover {
  border-color: var(--gold);
  box-shadow: 0 20px 50px rgba(201,169,97,0.22);
}
.curated-pkg-hero {
  height: 220px;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  color: #fff;
}
.curated-pkg-placeholder {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(201,169,97,0.25);
  border: 1px dashed var(--gold);
  color: var(--gold);
  font-size: 11px;
  font-style: italic;
  letter-spacing: 0.5px;
  padding: 0.4rem 0.9rem;
  border-radius: 4px;
  white-space: nowrap;
}
.curated-pkg-tag {
  position: absolute;
  top: 1rem;
  left: 1rem;
  background: rgba(0,0,0,0.55);
  color: #fff;
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 0.25rem 0.6rem;
  border-radius: 3px;
  backdrop-filter: blur(6px);
}
.curated-pkg-featured-badge {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: var(--gold);
  color: #0a0a0a;
  font-size: 10px;
  letter-spacing: 1.5px;
  font-weight: 700;
  text-transform: uppercase;
  padding: 0.25rem 0.6rem;
  border-radius: 3px;
}
.curated-pkg-hero-overlay {
  padding: 1.2rem;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.7));
  width: 100%;
}
.curated-pkg-hotel-name {
  font-family: 'Playfair Display', serif;
  font-size: 1.4rem;
  font-weight: 500;
  margin-bottom: 0.2rem;
  text-shadow: 0 2px 8px rgba(0,0,0,0.4);
}
.curated-pkg-hotel-area {
  font-size: 11.5px;
  color: rgba(255,255,255,0.85);
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
.curated-pkg-body {
  padding: 1.4rem 1.3rem 1.3rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.curated-pkg-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.5rem;
  font-weight: 500;
  margin-bottom: 0.4rem;
  letter-spacing: 0.2px;
}
.curated-pkg-tagline {
  font-size: 13.5px;
  font-style: italic;
  color: var(--gray);
  line-height: 1.55;
  margin-bottom: 1.1rem;
}
.curated-pkg-meta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  padding: 0.9rem 0;
  margin-bottom: 1rem;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.curated-pkg-meta-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.curated-pkg-meta-label {
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gray);
  margin-bottom: 0.2rem;
}
.curated-pkg-meta-value {
  font-family: 'Playfair Display', serif;
  font-size: 14px;
  color: #1a1a1a;
  font-weight: 500;
}
.curated-pkg-inclusions {
  list-style: none;
  padding: 0;
  margin: 0 0 1.2rem;
}
.curated-pkg-inclusions li {
  padding: 0.4rem 0 0.4rem 1.4rem;
  font-size: 13px;
  color: #444;
  position: relative;
  line-height: 1.5;
  border-bottom: 1px dotted #eee;
}
.curated-pkg-inclusions li:last-child { border-bottom: none; }
.curated-pkg-inclusions li::before {
  content: '✓';
  color: var(--gold);
  position: absolute;
  left: 0;
  top: 0.4rem;
  font-weight: 700;
}
.curated-pkg-price-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding-top: 0.6rem;
  border-top: 1px solid var(--border);
  margin-bottom: 1rem;
}
.curated-pkg-price-label {
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gray);
  margin-bottom: 0.2rem;
}
.curated-pkg-price {
  font-family: 'Playfair Display', serif;
  font-size: 1.8rem;
  font-weight: 600;
  color: var(--gold);
  line-height: 1;
}
.curated-pkg-price-note {
  font-size: 10.5px;
  color: var(--gray);
  margin-top: 0.25rem;
  font-style: italic;
}
.curated-pkg-quote {
  font-size: 13px;
  font-style: italic;
  color: #555;
  padding: 0.7rem 0.9rem;
  background: rgba(201,169,97,0.06);
  border-left: 2px solid var(--gold);
  border-radius: 2px;
  margin-bottom: 0.8rem;
  line-height: 1.55;
}
.curated-pkg-quote-placeholder {
  background: rgba(201,169,97,0.10);
  color: var(--gold);
  font-size: 11.5px;
  border-style: dashed;
  border-width: 1px;
  border-color: rgba(201,169,97,0.4);
  border-left-width: 2px;
}
.curated-pkg-leadtime {
  font-size: 11px;
  color: var(--gray);
  text-align: center;
  font-style: italic;
  letter-spacing: 0.3px;
}

/* ── How It Works steps ──────────────────────────────────────────────── */
.curated-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  gap: 2rem;
  max-width: 1080px;
  margin: 0 auto;
}
.curated-step {
  text-align: center;
  padding: 0 1rem;
}
.curated-step-roman {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 2.4rem;
  color: var(--gold);
  margin-bottom: 1rem;
}
.curated-step-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.3rem;
  font-weight: 500;
  color: #fff;
  margin-bottom: 0.8rem;
}
.curated-step-body {
  color: #c5c5c5;
  font-size: 14px;
  line-height: 1.7;
}

/* ── Attractions credit tiers ─────────────────────────────────────── */
.curated-credit-tiers {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.2rem;
  max-width: 980px;
  margin: 0 auto 2rem;
}
.curated-credit-tier {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 1.6rem 1.4rem;
  text-align: center;
  transition: all 0.25s;
}
.curated-credit-tier:hover {
  border-color: rgba(201,169,97,0.4);
  transform: translateY(-3px);
}
.curated-credit-tier-featured {
  border-color: var(--gold);
  box-shadow: 0 8px 24px rgba(201,169,97,0.12);
  position: relative;
}
.curated-credit-tier-featured::before {
  content: 'MOST COMMON';
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--gold);
  color: #0a0a0a;
  font-size: 9px;
  letter-spacing: 1.5px;
  padding: 0.22rem 0.7rem;
  border-radius: 3px;
  font-weight: 700;
}
.curated-credit-amount {
  font-family: 'Playfair Display', serif;
  font-size: 2.6rem;
  color: var(--gold);
  font-weight: 600;
  line-height: 1;
  margin-bottom: 0.5rem;
}
.curated-credit-stay {
  font-size: 13px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #1a1a1a;
  margin-bottom: 0.8rem;
}
.curated-credit-example {
  font-size: 12.5px;
  color: var(--gray);
  font-style: italic;
  line-height: 1.55;
}

.curated-attractions-menu {
  max-width: 980px;
  margin: 1.5rem auto 0;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1rem 1.4rem;
}
.curated-attractions-menu summary {
  cursor: pointer;
  font-family: 'Playfair Display', serif;
  font-size: 1rem;
  color: var(--gold);
  padding: 0.5rem 0;
  outline: none;
  user-select: none;
}
.curated-attractions-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 0.5rem;
  margin-top: 1rem;
}
.curated-attraction-item {
  padding: 0.7rem 0.8rem;
  background: #faf8f3;
  border: 1px solid #eee;
  border-radius: 5px;
  font-size: 13px;
}
.curated-attraction-premium {
  background: rgba(201,169,97,0.08);
  border-color: rgba(201,169,97,0.3);
}
.curated-attraction-name {
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 0.3rem;
}
.curated-attraction-meta {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: var(--gray);
}
.curated-attraction-cat { letter-spacing: 0.5px; }
.curated-attraction-val { color: var(--gold); font-weight: 600; }
.curated-attraction-note {
  font-size: 10.5px;
  color: var(--gray);
  font-style: italic;
  margin-top: 0.3rem;
}
.curated-attractions-footnote {
  font-size: 12px;
  color: var(--gray);
  font-style: italic;
  margin-top: 1rem;
  text-align: center;
}

/* ── Channels + Form ─────────────────────────────────────────────── */
.curated-channels {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  max-width: 1100px;
  margin: 0 auto 3rem;
}
.curated-channel {
  display: block;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 1.4rem 1.2rem;
  text-align: center;
  transition: all 0.25s;
  cursor: pointer;
}
.curated-channel:hover {
  border-color: var(--gold);
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(201,169,97,0.12);
}
.curated-channel-icon {
  font-size: 1.8rem;
  margin-bottom: 0.6rem;
}
.curated-channel-name {
  font-family: 'Playfair Display', serif;
  font-size: 1.1rem;
  color: #1a1a1a;
  margin-bottom: 0.3rem;
}
.curated-channel-sla {
  font-size: 11.5px;
  color: var(--gray);
  font-style: italic;
  margin-bottom: 0.7rem;
  line-height: 1.4;
  min-height: 30px;
}
.curated-channel-cta {
  font-size: 12px;
  color: var(--gold);
  letter-spacing: 0.5px;
  font-weight: 600;
}

.curated-form-wrap {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 2.2rem 2rem;
  max-width: 880px;
  margin: 0 auto;
  transition: box-shadow 0.5s;
}
.curated-form-eyebrow {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  color: var(--gold);
  letter-spacing: 2px;
  text-transform: uppercase;
  font-size: 11px;
  margin-bottom: 0.5rem;
  text-align: center;
}
.curated-form-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.5rem;
  text-align: center;
  margin-bottom: 1.6rem;
  font-weight: 500;
}
.curated-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}
@media (max-width: 600px) { .curated-form-row { grid-template-columns: 1fr; } }
.curated-form-field {
  display: flex;
  flex-direction: column;
}
.curated-form-field label {
  font-size: 12px;
  color: #555;
  margin-bottom: 0.4rem;
  letter-spacing: 0.3px;
}
.curated-form-field input,
.curated-form-field select,
.curated-form-field textarea {
  width: 100%; box-sizing: border-box;
  padding: 0.7rem 0.9rem;
  border: 1px solid #ddd;
  border-radius: 5px;
  font-family: inherit;
  font-size: 14px;
  outline: none;
  transition: border-color 0.2s;
  background: #fff;
}
.curated-form-field input:focus,
.curated-form-field select:focus,
.curated-form-field textarea:focus {
  border-color: var(--gold);
}
.curated-form-consent {
  margin: 1rem 0 1.5rem;
  font-size: 13px;
  color: #555;
  line-height: 1.55;
}
.curated-form-submit {
  width: 100%;
  padding: 0.95rem;
  font-size: 14.5px;
  letter-spacing: 0.5px;
}

/* ── Trust grid ─────────────────────────────────────────────────── */
.curated-trust-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.2rem;
  max-width: 1100px;
  margin: 0 auto;
}
.curated-trust-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 8px;
  padding: 1.6rem 1.4rem;
  transition: all 0.25s;
}
.curated-trust-card:hover {
  background: rgba(255,255,255,0.06);
  border-color: rgba(201,169,97,0.3);
}
.curated-trust-icon {
  font-size: 1.6rem;
  margin-bottom: 0.7rem;
  color: var(--gold);
}
.curated-trust-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.15rem;
  color: #fff;
  margin-bottom: 0.7rem;
}
.curated-trust-body {
  font-size: 13.5px;
  color: #c5c5c5;
  line-height: 1.7;
  margin-bottom: 0.5rem;
}
.curated-trust-link {
  display: inline-block;
  margin-top: 0.5rem;
  color: var(--gold);
  font-size: 12.5px;
  letter-spacing: 0.5px;
  cursor: pointer;
  text-decoration: none;
}
.curated-trust-link:hover { text-decoration: underline; }

/* ── FAQ accordion ───────────────────────────────────────────────── */
.curated-faq {
  max-width: 880px;
  margin: 0 auto;
}
.curated-faq-item {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  margin-bottom: 0.6rem;
  overflow: hidden;
  transition: all 0.25s;
}
.curated-faq-item:hover {
  border-color: rgba(201,169,97,0.3);
}
.curated-faq-item[open] {
  border-color: var(--gold);
  box-shadow: 0 4px 12px rgba(201,169,97,0.08);
}
.curated-faq-item summary {
  list-style: none;
  cursor: pointer;
  padding: 1.1rem 1.3rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  outline: none;
  user-select: none;
}
.curated-faq-item summary::-webkit-details-marker { display: none; }
.curated-faq-q {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  color: #1a1a1a;
  font-weight: 500;
}
.curated-faq-toggle {
  color: var(--gold);
  font-family: 'Playfair Display', serif;
  font-size: 1.5rem;
  font-weight: 300;
  margin-left: 1rem;
  transition: transform 0.25s;
}
.curated-faq-item[open] .curated-faq-toggle {
  transform: rotate(45deg);
}
.curated-faq-a {
  padding: 0 1.3rem 1.3rem;
  font-size: 14.5px;
  color: #444;
  line-height: 1.75;
}

/* ── Bottom CTA ─────────────────────────────────────────────────── */
.curated-bottom-cta {
  background:
    linear-gradient(135deg, rgba(15,15,15,0.95) 0%, rgba(35,25,10,0.88) 100%),
    radial-gradient(circle at 70% 30%, rgba(201,169,97,0.2), transparent 60%),
    #0a0a0a;
  color: #fff;
  padding: 5rem 1.5rem;
  text-align: center;
}
.curated-bottom-cta-inner { max-width: 720px; margin: 0 auto; }
.curated-bottom-cta-eyebrow {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  color: var(--gold);
  letter-spacing: 2.5px;
  text-transform: uppercase;
  font-size: 11.5px;
  margin-bottom: 1rem;
}
.curated-bottom-cta-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.8rem, 4vw, 2.4rem);
  font-weight: 500;
  margin-bottom: 1rem;
}
.curated-bottom-cta-subtitle {
  font-size: 15px;
  line-height: 1.7;
  color: #c5c5c5;
  margin-bottom: 2rem;
}
.curated-bottom-cta-buttons {
  display: flex;
  gap: 0.9rem;
  justify-content: center;
  flex-wrap: wrap;
}

/* ── Mobile ──────────────────────────────────────────────────────── */
@media (max-width: 600px) {
  .curated-hero { min-height: 60vh; padding: 3rem 1rem; }
  .curated-hero-meta { font-size: 11px; gap: 0.4rem; }
  .curated-section { padding: 3rem 1rem; }
  .curated-form-row { grid-template-columns: 1fr; gap: 0.6rem; }
  .curated-form-wrap { padding: 1.5rem 1.2rem; }
  .curated-pkg-meta { grid-template-columns: 1fr; gap: 0.4rem; }
  .curated-pkg-meta-item { flex-direction: row; gap: 0.6rem; }
  .curated-credit-tiers { gap: 0.8rem; }
  .curated-bottom-cta { padding: 3rem 1rem; }
}

/* ── Sporting Calendar (dark section) ───────────────────────────── */
.curated-sport-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 310px), 1fr));
  gap: 1.4rem;
  max-width: 1280px;
  margin: 0 auto 3rem;
}
.curated-sport-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 10px;
  padding: 1.5rem 1.4rem 1.4rem;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  flex-direction: column;
  position: relative;
}
.curated-sport-card:hover {
  background: rgba(255,255,255,0.07);
  border-color: rgba(201,169,97,0.5);
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(0,0,0,0.35);
}
.curated-sport-card-header {
  display: flex;
  gap: 0.9rem;
  align-items: flex-start;
  margin-bottom: 0.8rem;
}
.curated-sport-icon {
  font-size: 2rem;
  line-height: 1;
  flex-shrink: 0;
}
.curated-sport-meta { flex: 1; min-width: 0; }
.curated-sport-eyebrow {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  color: var(--gold);
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 0.25rem;
}
.curated-sport-name {
  font-family: 'Playfair Display', serif;
  font-size: 1.3rem;
  font-weight: 500;
  color: #fff;
  line-height: 1.2;
  margin: 0;
}
.curated-sport-desc {
  color: #c5c5c5;
  font-size: 13.5px;
  line-height: 1.6;
  margin-bottom: 0.9rem;
}
.curated-sport-examples {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
}
.curated-sport-examples li {
  padding: 0.3rem 0 0.3rem 1.1rem;
  font-size: 12.5px;
  color: #ddd;
  position: relative;
  line-height: 1.5;
}
.curated-sport-examples li::before {
  content: '·';
  color: var(--gold);
  position: absolute;
  left: 0;
  top: 0.2rem;
  font-size: 16px;
  font-weight: 700;
}
.curated-sport-footer {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 0.8rem;
  padding-top: 0.9rem;
  border-top: 1px solid rgba(255,255,255,0.08);
  margin-bottom: 0.9rem;
}
.curated-sport-price-label,
.curated-sport-time-row span {
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
}
.curated-sport-price {
  font-family: 'Playfair Display', serif;
  font-size: 1.5rem;
  color: var(--gold);
  font-weight: 600;
  line-height: 1.1;
  margin: 0.2rem 0;
}
.curated-sport-price-note {
  font-size: 10.5px;
  color: #aaa;
  font-style: italic;
  line-height: 1.4;
}
.curated-sport-time-row {
  font-size: 11.5px;
  color: #d5d5d5;
  margin-bottom: 0.25rem;
  line-height: 1.4;
}
.curated-sport-time-row:last-child { margin-bottom: 0; }
.curated-sport-time-row span {
  display: inline-block;
  margin-right: 0.4rem;
  min-width: 70px;
}
.curated-sport-cta-link {
  font-size: 12px;
  color: var(--gold);
  letter-spacing: 0.5px;
  font-weight: 600;
  text-align: center;
  padding-top: 0.6rem;
  border-top: 1px dashed rgba(201,169,97,0.25);
  transition: color 0.2s;
}
.curated-sport-card:hover .curated-sport-cta-link { color: #fff; }

.curated-sport-cta {
  max-width: 800px;
  margin: 0 auto;
  text-align: center;
  padding: 2rem 1.5rem 0;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.curated-sport-cta-eyebrow {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  color: var(--gold);
  letter-spacing: 2.5px;
  text-transform: uppercase;
  font-size: 11.5px;
  margin-bottom: 1rem;
}
.curated-sport-cta-body {
  color: #c5c5c5;
  font-size: 14.5px;
  line-height: 1.75;
  margin-bottom: 1.8rem;
}
.curated-sport-cta-buttons {
  display: flex;
  gap: 0.9rem;
  justify-content: center;
  flex-wrap: wrap;
}
@media (max-width: 600px) {
  .curated-sport-footer { grid-template-columns: 1fr; gap: 0.6rem; }
  .curated-sport-card { padding: 1.2rem 1.1rem; }
}

/* Wimbledon indicative-by-round strip (Layer 2) */
.wimb-strip {
  margin: 0 0 1rem;
  border: 1px solid rgba(201,169,97,0.25);
  border-radius: 8px;
  background: rgba(201,169,97,0.05);
  overflow: hidden;
}
.wimb-strip summary {
  cursor: pointer;
  padding: 0.6rem 0.9rem;
  font-size: 12px;
  letter-spacing: 0.5px;
  color: var(--gold);
  font-weight: 600;
  list-style: none;
  outline: none;
  user-select: none;
}
.wimb-strip summary::-webkit-details-marker { display: none; }
.wimb-strip[open] summary { border-bottom: 1px solid rgba(201,169,97,0.2); }
.wimb-strip-inner { padding: 0.5rem 0.9rem 0.8rem; }
.wimb-strip-row {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 0.4rem;
  padding: 0.35rem 0;
  font-size: 12px;
  border-bottom: 1px dotted rgba(255,255,255,0.08);
}
.wimb-strip-row:last-of-type { border-bottom: none; }
.wimb-strip-head {
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  border-bottom: 1px solid rgba(255,255,255,0.12);
}
.wimb-strip-round { color: #ddd; }
.wimb-strip-price { color: var(--gold); text-align: right; font-weight: 500; }
.wimb-strip-head .wimb-strip-price { color: rgba(255,255,255,0.5); font-weight: 400; }
.wimb-strip-row-final .wimb-strip-round { color: var(--gold); font-weight: 600; }

/* Cheltenham — Privilege Suite inclusions block */
.chelt-incl {
  margin-top: 0.8rem;
  padding-top: 0.8rem;
  border-top: 1px solid rgba(201,169,97,0.2);
}
.chelt-incl-title {
  font-family: 'Playfair Display', serif;
  font-size: 13px;
  color: var(--gold);
  letter-spacing: 0.5px;
  margin-bottom: 0.35rem;
}
.chelt-incl-host {
  font-size: 11.5px;
  color: #d5d5d5;
  font-style: italic;
  line-height: 1.5;
  margin-bottom: 0.6rem;
}
.chelt-incl-list {
  list-style: none;
  padding: 0;
  margin: 0 0 0.6rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.2rem 1rem;
}
.chelt-incl-list li {
  font-size: 11.5px;
  color: #ccc;
  line-height: 1.45;
  padding-left: 0.9rem;
  position: relative;
}
.chelt-incl-list li::before {
  content: '✓';
  color: var(--gold);
  position: absolute;
  left: 0;
  top: 0;
  font-size: 10px;
}
.chelt-incl-seating {
  font-size: 11px;
  color: #aaa;
  font-style: italic;
  padding-top: 0.5rem;
  border-top: 1px dotted rgba(255,255,255,0.1);
}
@media (max-width: 600px) {
  .chelt-incl-list { grid-template-columns: 1fr; }
}

/* Monaco GP — distinctive styling for the marquee strip */
.monaco-section-head {
  font-size: 10px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--gold);
  margin: 1rem 0 0.5rem;
  padding-bottom: 0.3rem;
  border-bottom: 1px solid rgba(201,169,97,0.25);
}
.monaco-pkg-row {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 0.5rem;
  padding: 0.5rem 0;
  border-bottom: 1px dotted rgba(255,255,255,0.08);
  align-items: center;
}
.monaco-pkg-row:last-of-type { border-bottom: none; }
.monaco-pkg-name {
  font-size: 12.5px;
  color: #e6e6e6;
  font-weight: 500;
}
.monaco-pkg-tag {
  display: inline-block;
  font-size: 9px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--gold);
  background: rgba(201,169,97,0.12);
  border: 1px solid rgba(201,169,97,0.35);
  padding: 1px 6px;
  border-radius: 3px;
  margin-left: 0.4rem;
  vertical-align: middle;
}
.monaco-pkg-days {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  justify-content: flex-end;
}
.monaco-day {
  display: inline-flex;
  align-items: baseline;
  gap: 0.3rem;
  padding: 0.15rem 0.5rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 4px;
  font-size: 11px;
}
.monaco-day-label {
  color: #aaa;
  font-size: 10px;
  letter-spacing: 0.3px;
}
.monaco-day-price {
  color: var(--gold);
  font-weight: 500;
}
.monaco-hosp-heading {
  font-family: 'Playfair Display', serif;
  font-size: 14px;
  color: var(--gold);
  margin: 1.5rem 0 0.3rem;
  letter-spacing: 0.5px;
  padding-top: 0.8rem;
  border-top: 1px solid rgba(201,169,97,0.2);
}
@media (max-width: 600px) {
  .monaco-pkg-row { grid-template-columns: 1fr; }
  .monaco-pkg-days { justify-content: flex-start; }
}
.wimb-strip-note {
  font-size: 10.5px;
  color: #999;
  font-style: italic;
  line-height: 1.5;
  margin: 0.6rem 0 0;
}

/* ============ HEATHROW UK CITY TRANSFERS ============ */
.heathrow-transfers-section { position: relative; }
.heathrow-transfers-section::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 60px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
#heathrowTransferSearch::placeholder,
#airportTransferSearch::placeholder { color: rgba(255,255,255,0.45); }
#heathrowTransferSearch:focus,
#airportTransferSearch:focus {
  background: rgba(255,255,255,0.12);
  border-color: var(--gold);
}

/* Airport tab switcher (LHR / LGW / ...) — sits between header and search */
.airport-tabs {
  display: flex;
  justify-content: center;
  gap: 0.4rem;
  margin: 0 auto 1.8rem;
  max-width: 760px;
  padding: 0.4rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
  flex-wrap: wrap;
}
.airport-tab {
  flex: 1 1 110px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  padding: 0.7rem 0.6rem;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 7px;
  cursor: pointer;
  color: #bbb;
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.3px;
  transition: all 0.25s;
  outline: none;
}
.airport-tab:hover { color: var(--gold); background: rgba(201,169,97,0.06); }
.airport-tab.active {
  background: var(--gold);
  color: #0a0a0a;
  border-color: var(--gold);
  font-weight: 600;
  box-shadow: 0 4px 16px rgba(201,169,97,0.25);
}
.airport-tab-name {
  font-family: 'Playfair Display', serif;
  font-size: 0.95rem;
  line-height: 1.1;
}
.airport-tab-code {
  font-size: 10px;
  letter-spacing: 2px;
  font-weight: 700;
  opacity: 0.7;
}
.airport-tab.active .airport-tab-code { opacity: 0.85; }

/* LCY Sprinter footnote */
.airport-transfer-notice {
  max-width: 760px;
  margin: 0 auto 1.5rem;
  padding: 0.9rem 1.2rem;
  background: rgba(201,169,97,0.10);
  border: 1px solid rgba(201,169,97,0.3);
  border-left: 3px solid var(--gold);
  border-radius: 6px;
  font-size: 13px;
  line-height: 1.6;
  color: #ddd;
}
.airport-transfer-notice strong { color: var(--gold); }

@media (max-width: 700px) {
  .airport-tabs { max-width: 100%; gap: 0.3rem; padding: 0.3rem; }
  .airport-tab { flex: 1 1 30%; padding: 0.5rem 0.4rem; }
  .airport-tab-name { font-size: 0.85rem; }
  .airport-tab-code { font-size: 9px; letter-spacing: 1.5px; }
}

.heathrow-transfer-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
  margin-bottom: 2rem;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
.heathrow-transfer-chip {
  background: rgba(255,255,255,0.07);
  color: #ddd;
  padding: 0.45rem 0.95rem;
  border-radius: 999px;
  font-size: 12.5px;
  cursor: pointer;
  border: 1px solid rgba(255,255,255,0.1);
  transition: all 0.25s;
  letter-spacing: 0.3px;
}
.heathrow-transfer-chip:hover {
  background: rgba(201,169,97,0.15);
  border-color: rgba(201,169,97,0.4);
  color: var(--gold);
}
.heathrow-transfer-chip.active {
  background: var(--gold);
  color: #0a0a0a;
  border-color: var(--gold);
  font-weight: 600;
}
.heathrow-transfer-chip-count { opacity: 0.65; font-size: 11px; }

.heathrow-transfer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 1rem;
}
.heathrow-transfer-card {
  background: #1a1a1a;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 8px;
  padding: 1.4rem 1.3rem 1.2rem;
  position: relative;
  cursor: pointer;
  transition: all 0.3s;
}
.heathrow-transfer-card:hover {
  border-color: var(--gold);
  background: #1f1f1f;
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(0,0,0,0.4);
}
.heathrow-transfer-card.popular {
  border-color: rgba(201,169,97,0.5);
  background: linear-gradient(135deg, #1a1a1a 0%, #221a0c 100%);
}
.heathrow-transfer-popular {
  position: absolute;
  top: -10px;
  right: 1rem;
  background: var(--gold);
  color: #0a0a0a;
  font-size: 9.5px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-weight: 700;
  padding: 0.25rem 0.6rem;
  border-radius: 3px;
}
.heathrow-transfer-card-name {
  font-family: 'Playfair Display', serif;
  font-weight: 600;
  font-size: 1.25rem;
  color: #fff;
  margin-bottom: 0.3rem;
  letter-spacing: 0.2px;
}
.heathrow-transfer-card-meta {
  color: #999;
  font-size: 11.5px;
  margin-bottom: 1rem;
  letter-spacing: 0.3px;
}
.heathrow-transfer-card-vehicles {
  padding-top: 0.7rem;
  margin-top: 0.4rem;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.heathrow-transfer-card-list-header {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gold);
  text-align: center;
  margin-bottom: 0.5rem;
  padding-bottom: 0.3rem;
  border-bottom: 1px dashed rgba(201,169,97,0.25);
}
/* The .fixed-pricing-card-vrow rows from buildVehiclePriceRows render INSIDE this list.
   Override colours for the dark theme. */
.heathrow-transfer-card-vehicles .fixed-pricing-card-vrow {
  padding: 0.32rem 0;
  font-size: 12px;
  border-bottom-color: rgba(255,255,255,0.06);
}
.heathrow-transfer-card-vehicles .fixed-pricing-card-vname { color: #ccc; }
.heathrow-transfer-card-vehicles .fixed-pricing-card-vprice {
  font-size: 13px;
  color: var(--gold);
}

.heathrow-transfer-book-btn {
  display: block;
  width: 100%;
  margin-top: 0.9rem;
  padding: 0.6rem;
  background: transparent;
  border: 1px solid var(--gold);
  color: var(--gold);
  border-radius: 6px;
  font-family: inherit;
  font-size: 12px;
  letter-spacing: 0.5px;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.25s;
}
.heathrow-transfer-book-btn:hover {
  background: var(--gold);
  color: #0a0a0a;
}

/* Quote-only variant (ferry or flight required) */
.heathrow-transfer-card-quote { cursor: default; }
.heathrow-transfer-card-quote:hover { transform: none; }
.heathrow-transfer-quote-text {
  padding: 1rem;
  margin-top: 0.8rem;
  background: rgba(201,169,97,0.08);
  border: 1px dashed rgba(201,169,97,0.3);
  border-radius: 6px;
  color: #ddd;
  font-size: 13px;
  font-style: italic;
  text-align: center;
}

/* Mobile */
@media (max-width: 600px) {
  .heathrow-transfer-grid { grid-template-columns: 1fr; }
  .heathrow-transfer-card { padding: 1.2rem 1.1rem; }
  .heathrow-transfer-card-name { font-size: 1.15rem; }
}

/* Calculator */
.fare-calculator {
  background: linear-gradient(135deg, var(--gold) 0%, var(--gold-light) 100%);
  padding: 3rem 2rem; border-radius: 12px; color: var(--dark);
  margin: 3rem auto; max-width: 900px;
}
.fare-calculator h3 {
  font-family: 'Playfair Display'; font-size: 1.8rem; margin-bottom: 0.5rem;
}
.fare-calculator p { margin-bottom: 1.5rem; }
.fare-calculator-row {
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1rem;
  margin-bottom: 1.5rem;
}
.fare-calculator label {
  display: block; font-size: 12px; font-weight: 600; margin-bottom: 0.3rem;
  text-transform: uppercase; letter-spacing: 0.5px;
}
.fare-calculator input, .fare-calculator select {
  width: 100%; padding: 0.7rem; border: 2px solid var(--dark);
  border-radius: 4px; font-size: 14px; background: #fff;
}
.fare-calculator-result {
  background: var(--dark); color: #fff; padding: 1.5rem; border-radius: 8px;
  display: flex; justify-content: space-between; align-items: center; margin-top: 1rem;
}
.fare-calculator-result-label {
  text-transform: uppercase; font-size: 12px; letter-spacing: 1px; color: #aaa;
}
.fare-calculator-result-value {
  font-family: 'Playfair Display'; font-size: 2.5rem; font-weight: 700; color: var(--gold);
}

/* Includes/Excludes */
.includes-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 2rem;
  margin: 3rem 0;
}
.includes-card {
  background: #fff; padding: 2rem; border-radius: 8px;
  border: 1px solid var(--border);
}
.includes-card.included { border-left: 4px solid var(--success); }
.includes-card.notincluded { border-left: 4px solid var(--gray); }
.includes-card h4 {
  font-family: 'Playfair Display'; font-size: 1.2rem; margin-bottom: 1rem;
  display: flex; align-items: center; gap: 0.5rem;
}
.includes-card ul { list-style: none; padding: 0; }
.includes-card li {
  padding: 0.5rem 0; font-size: 14px; display: flex;
  align-items: flex-start; gap: 0.5rem;
}
.includes-card.included li::before { content: '✓'; color: var(--success); font-weight: 700; flex-shrink: 0; }
.includes-card.notincluded li::before { content: '○'; color: var(--gray); flex-shrink: 0; }

/* Add-ons */
.addons-list {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem; margin-top: 1.5rem;
}
.addon-item {
  background: #fff; padding: 1.2rem; border-radius: 6px;
  border: 1px solid var(--border); text-align: center;
}
.addon-icon { font-size: 1.8rem; margin-bottom: 0.5rem; }
.addon-rule {
  width: 24px;
  height: 1.5px;
  background: var(--gold);
  margin: 0 0 0.7rem;
  opacity: 0.7;
}
.addon-name {
  font-family: 'Playfair Display'; font-weight: 600; font-size: 0.95rem;
  margin-bottom: 0.3rem;
}
.addon-price { color: var(--gold); font-weight: 700; font-size: 0.95rem; }

@media (max-width: 768px) {
  .pricing-table { font-size: 13px; }
  .pricing-table th, .pricing-table td { padding: 0.8rem 0.5rem; }
  .pricing-table .vehicle-img { width: 50px; height: 35px; }
  .pricing-table .vehicle-cell { gap: 0.5rem; }
  .includes-grid { grid-template-columns: 1fr; }
  .fare-calculator-row { grid-template-columns: 1fr; }
  .pricing-hero h1 { font-size: 2.2rem; }
}

/* ============================================================ */
/* ============ V11 UX IMPROVEMENTS ============================ */
/* ============================================================ */

/* Page loading bar at top */
.page-loader {
  position: fixed; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--gold), var(--gold-light), var(--gold));
  z-index: 99999; transform-origin: left; transform: scaleX(0);
  transition: transform 0.4s ease;
}
.page-loader.loading { transform: scaleX(0.7); }
.page-loader.done { transform: scaleX(1); transition: transform 0.2s ease; }

/* Cookie consent banner */
.cookie-banner {
  position: fixed; bottom: 1.5rem; left: 1.5rem;
  max-width: 420px; background: var(--dark); color: #fff;
  border-radius: 12px; box-shadow: 0 12px 40px rgba(0,0,0,0.35);
  padding: 1.5rem; z-index: 998; border: 1px solid rgba(201,169,97,0.3);
  transform: translateY(150%); opacity: 0;
  transition: transform 0.5s cubic-bezier(0.34,1.56,0.64,1), opacity 0.3s;
}
.cookie-banner.show { transform: translateY(0); opacity: 1; }
.cookie-banner h4 {
  font-family: 'Playfair Display'; font-size: 1.1rem; color: var(--gold);
  margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.5rem;
}
.cookie-banner p { font-size: 13px; line-height: 1.6; color: #ccc; margin-bottom: 1rem; }
.cookie-banner-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.cookie-btn {
  padding: 0.55rem 1rem; border-radius: 4px; font-size: 12px;
  font-weight: 600; cursor: pointer; border: none; transition: all 0.2s;
}
.cookie-btn.accept { background: var(--gold); color: var(--dark); flex: 1; }
.cookie-btn.accept:hover { background: var(--gold-light); }
.cookie-btn.decline { background: transparent; color: #ccc; border: 1px solid #555; }
.cookie-btn.decline:hover { background: rgba(255,255,255,0.05); color: #fff; }
@media (max-width: 500px) {
  .cookie-banner { left: 1rem; right: 1rem; max-width: none; bottom: 1rem; }
}

/* Mobile hamburger menu */
.mobile-menu-toggle {
  display: none; width: 40px; height: 40px;
  background: transparent; border: none; cursor: pointer;
  flex-direction: column; justify-content: center; align-items: center; gap: 5px;
}
.mobile-menu-toggle span {
  width: 24px; height: 2px;
  background: var(--gold);
  transition: all 0.3s; border-radius: 2px;
}
.mobile-menu-toggle.open span:nth-child(1) { transform: rotate(45deg) translate(5px,5px); }
.mobile-menu-toggle.open span:nth-child(2) { opacity: 0; }
.mobile-menu-toggle.open span:nth-child(3) { transform: rotate(-45deg) translate(7px,-7px); }

.mobile-menu-overlay {
  position: fixed; top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.65); z-index: 99; opacity: 0;
  pointer-events: none; transition: opacity 0.3s;
  backdrop-filter: blur(4px);
}
.mobile-menu-overlay.open { opacity: 1; pointer-events: all; }
.mobile-menu {
  position: fixed; top: 0; right: -100%; bottom: 0;
  width: 320px; max-width: 85vw;
  background: linear-gradient(180deg, #0a0a0a 0%, #141414 100%);
  z-index: 100;
  padding: 5rem 2rem 2rem;
  transition: right 0.4s cubic-bezier(0.4,0,0.2,1);
  overflow-y: auto;
  box-shadow: -10px 0 40px rgba(0,0,0,0.6);
  border-left: 1px solid rgba(201,169,97,0.3);
}
.mobile-menu.open { right: 0; }
.mobile-menu a {
  display: block; padding: 1rem 0;
  color: #e6e6e6; font-weight: 500;
  border-bottom: 1px solid rgba(201,169,97,0.15);
  font-size: 1rem; cursor: pointer;
  letter-spacing: 0.5px;
  transition: all 0.25s;
}
.mobile-menu a:hover {
  color: var(--gold);
  padding-left: 0.5rem;
}
.mobile-menu-close {
  position: absolute; top: 1.5rem; right: 1.5rem;
  background: transparent; border: none;
  font-size: 1.5rem; cursor: pointer;
  color: var(--gold);
  width: 32px; height: 32px;
  transition: transform 0.2s;
}
.mobile-menu-close:hover { transform: rotate(90deg); }

@media (max-width: 1560px) {
  .nav-links { display: none; }
  .currency-switcher { display: none; }
  .mobile-menu-toggle { display: flex; }
  .navbar .btn:not(.btn-primary) { display: none; }
  .navbar { padding: 0.85rem 1.2rem; }
}

/* Back-to-top button */
/* Back-to-top is the TOP button of the FAB stack — always sits above the contact icons. */
.fab.back-to-top { background: var(--dark); border: 1px solid rgba(201,169,97,0.3); font-size: 1.25rem; }
.back-to-top:not(.show) { display: none; }
.fab.back-to-top:hover { background: var(--gold); color: var(--dark); }

/* Image lightbox */
.lightbox-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.92); z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none; transition: opacity 0.3s;
}
.lightbox-overlay.open { opacity: 1; pointer-events: all; }
.lightbox-content {
  max-width: 90vw; max-height: 85vh; position: relative;
}
.lightbox-content img {
  max-width: 90vw; max-height: 80vh; object-fit: contain;
  border-radius: 4px; box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}
.lightbox-close, .lightbox-nav {
  position: absolute; color: #fff; background: rgba(0,0,0,0.5);
  border: 1px solid rgba(255,255,255,0.2); width: 50px; height: 50px;
  border-radius: 50%; cursor: pointer; font-size: 1.3rem;
  display: flex; align-items: center; justify-content: center;
  transition: all 0.2s; z-index: 2;
}
.lightbox-close { top: -60px; right: 0; }
.lightbox-close:hover { background: var(--gold); color: var(--dark); }
.lightbox-prev { left: -75px; top: 50%; transform: translateY(-50%); }
.lightbox-next { right: -75px; top: 50%; transform: translateY(-50%); }
.lightbox-nav:hover { background: var(--gold); color: var(--dark); }
.lightbox-counter {
  position: absolute; bottom: -45px; left: 50%; transform: translateX(-50%);
  color: #fff; font-size: 13px; background: rgba(255,255,255,0.1);
  padding: 0.3rem 0.8rem; border-radius: 20px;
}
@media (max-width: 768px) {
  .lightbox-prev { left: 10px; }
  .lightbox-next { right: 10px; }
  .lightbox-close { top: 10px; right: 10px; }
}

/* Search live suggestions */
.search-wrapper { position: relative; max-width: 500px; }
.search-suggestions {
  position: absolute; top: 100%; left: 0; right: 0; background: #fff;
  border: 1px solid var(--border); border-radius: 8px; margin-top: 0.5rem;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1); max-height: 400px; overflow-y: auto;
  z-index: 50; display: none;
}
.search-suggestions.show { display: block; }
.search-suggestion {
  padding: 0.8rem 1rem; display: flex; align-items: center; gap: 0.8rem;
  cursor: pointer; transition: background 0.15s; border-bottom: 1px solid #f5f5f5;
}
.search-suggestion:hover { background: #faf8f5; }
.search-suggestion img {
  width: 50px; height: 35px; object-fit: cover; border-radius: 4px; flex-shrink: 0;
}
.search-suggestion-info { flex: 1; min-width: 0; }
.search-suggestion-name {
  font-weight: 600; color: var(--dark); font-size: 14px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.search-suggestion-meta { font-size: 12px; color: var(--gray); }

/* Recently viewed hotels */
.recently-viewed-section {
  background: linear-gradient(135deg, #fff 0%, #faf8f5 100%);
  padding: 3rem 2rem; border-radius: 12px; margin: 2rem 0;
}
.recently-viewed-title {
  display: flex; align-items: center; gap: 0.7rem;
  margin-bottom: 1.5rem; font-family: 'Playfair Display';
  font-size: 1.5rem; font-weight: 600;
}
.recently-viewed-scroll {
  display: flex; gap: 1rem; overflow-x: auto; padding-bottom: 0.5rem;
  scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
}
.recently-viewed-card {
  flex: 0 0 200px; scroll-snap-align: start; cursor: pointer;
  background: #fff; border: 1px solid var(--border); border-radius: 8px;
  overflow: hidden; transition: all 0.3s;
}
.recently-viewed-card:hover {
  transform: translateY(-3px); border-color: var(--gold);
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
}
.recently-viewed-card img { width: 100%; height: 110px; object-fit: cover; }
.recently-viewed-card-body { padding: 0.8rem; }
.recently-viewed-card-name {
  font-size: 13px; font-weight: 600; color: var(--dark);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  margin-bottom: 0.2rem;
}
.recently-viewed-card-area { font-size: 11px; color: var(--gray); }

/* Press / Awards */
.press-section {
  background: #fff; padding: 4rem 2rem;
  border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
}
.press-inner { max-width: 1300px; margin: 0 auto; text-align: center; }
.press-eyebrow {
  color: var(--gray); text-transform: uppercase; letter-spacing: 3px;
  font-size: 11px; font-weight: 600; margin-bottom: 0.8rem;
}
.press-title {
  font-family: 'Playfair Display'; font-size: 1.8rem; font-weight: 600;
  margin-bottom: 2.5rem; color: var(--dark);
}
.press-logos {
  display: flex; justify-content: center; align-items: center; gap: 3rem;
  flex-wrap: wrap;
}
.press-logo {
  font-family: 'Playfair Display'; font-size: 1.3rem; font-weight: 700;
  color: var(--dark); letter-spacing: 1px; opacity: 0.55;
  transition: all 0.3s; white-space: nowrap; cursor: default;
}
.press-logo:hover { opacity: 1; color: var(--gold); }
.press-logo small { font-family: 'DM Sans'; font-size: 10px; letter-spacing: 2px; display: block; margin-top: 2px; }

/* Trust badges */
.trust-row {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 1rem; margin: 2rem 0;
}
.trust-badge-card {
  background: #fff; padding: 1.3rem 1rem; border-radius: 8px;
  text-align: center; border: 1px solid var(--border); transition: all 0.3s;
}
.trust-badge-card:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,0.06); border-color: var(--gold); }
.trust-badge-icon { font-size: 2rem; margin-bottom: 0.5rem; }
.trust-badge-rule {
  width: 30px;
  height: 2px;
  background: var(--gold);
  margin: 0 auto 0.7rem;
  opacity: 0.8;
}
.trust-badge-title {
  font-family: 'Playfair Display'; font-size: 0.95rem; font-weight: 600;
  color: var(--dark); margin-bottom: 0.2rem;
}
.trust-badge-desc { font-size: 11px; color: var(--gray); line-height: 1.4; }

/* Form validation visual feedback */
.form-input.invalid, .form-select.invalid, .form-textarea.invalid {
  border-color: var(--danger); background: #fff5f5;
}
.form-error-text {
  color: var(--danger); font-size: 12px; margin-top: 0.3rem;
  display: flex; align-items: center; gap: 0.3rem;
}

/* Smooth scroll for the whole site */
html { scroll-behavior: smooth; }

/* Focus ring for keyboard nav */
*:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
  border-radius: 4px;
}

/* Tap-friendly mobile buttons */
@media (max-width: 600px) {
  .btn { min-height: 44px; }
  .btn-sm { min-height: 36px; }
}

/* Hotel gallery hover indicator */
.hotel-gallery-item { position: relative; cursor: pointer; }
.hotel-gallery-item::after {
  content: '🔍'; position: absolute; top: 50%; left: 50%;
  transform: translate(-50%,-50%) scale(0.5); opacity: 0;
  font-size: 2rem; background: rgba(0,0,0,0.6); width: 50px; height: 50px;
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  transition: all 0.3s; pointer-events: none;
}
.hotel-gallery-item:hover::after { opacity: 1; transform: translate(-50%,-50%) scale(1); }

/* "Continue booking" prompt */
.resume-booking-banner {
  position: fixed; bottom: 1.5rem; left: 50%; transform: translateX(-50%) translateY(150%);
  background: var(--dark); color: #fff; padding: 1rem 1.5rem; border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.3); display: flex; align-items: center;
  gap: 1rem; z-index: 90; max-width: 90vw; opacity: 0;
  transition: transform 0.5s, opacity 0.3s; border: 1px solid rgba(201,169,97,0.3);
}
.resume-booking-banner.show { transform: translateX(-50%) translateY(0); opacity: 1; }
.resume-booking-banner button {
  background: var(--gold); color: var(--dark); border: none; padding: 0.5rem 1rem;
  border-radius: 4px; font-weight: 700; cursor: pointer; font-size: 13px;
}
.resume-booking-banner .dismiss { background: transparent; color: #999; font-size: 1.2rem; padding: 0 0.5rem; }

/* ============================================================ */
/* ============ END V11 UX ===================================== */
/* ============================================================ */

/* ============ FLOATING ACTION BUTTONS ============ */
.fab-container {
  position: fixed; bottom: 1.5rem; right: 1.5rem;
  display: flex; flex-direction: column; gap: 0.7rem;
  z-index: 999;
}
.fab {
  width: 56px; height: 56px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 1.5rem; cursor: pointer;
  box-shadow: 0 8px 24px rgba(0,0,0,0.25);
  transition: all 0.3s; border: none; position: relative;
}
.fab:hover { transform: scale(1.1) translateY(-2px); box-shadow: 0 12px 32px rgba(0,0,0,0.35); }
.fab-whatsapp { background: #25D366; }
.fab-call { background: var(--dark); }
.fab-email { background: var(--gold); }
.fab-tooltip {
  position: absolute; right: 70px; top: 50%; transform: translateY(-50%);
  background: var(--dark); color: #fff; padding: 0.5rem 0.9rem;
  border-radius: 6px; font-size: 13px; white-space: nowrap;
  opacity: 0; pointer-events: none; transition: opacity 0.2s; font-weight: 600;
}
.fab:hover .fab-tooltip { opacity: 1; }
.fab-pulse::after {
  content: ''; position: absolute; inset: 0; border-radius: 50%;
  background: inherit; opacity: 0.5; animation: pulse 2s infinite;
}
@keyframes pulse {
  0% { transform: scale(1); opacity: 0.5; }
  100% { transform: scale(1.6); opacity: 0; }
}

/* ============ CURRENCY SWITCHER ============ */
.currency-switcher {
  display: flex; gap: 0.2rem; background: var(--light-gray);
  border-radius: 6px; padding: 0.25rem;
}
.currency-btn {
  padding: 0.4rem 0.8rem; background: transparent; border: none;
  border-radius: 4px; font-size: 12px; font-weight: 600;
  color: var(--gray); cursor: pointer; transition: all 0.2s;
}
.currency-btn.active { background: var(--dark); color: #fff; }

/* ============ HOTEL FILTERS ============ */
.hotels-layout {
  display: grid; grid-template-columns: 260px 1fr; gap: 2rem;
  align-items: start;
}
.filter-sidebar {
  background: #fff; border: 1px solid var(--border); border-radius: 8px;
  padding: 1.5rem; position: sticky; top: 88px;
  max-height: calc(100vh - 104px); overflow-y: auto; overscroll-behavior: contain;
  scrollbar-width: thin; scrollbar-color: rgba(201,169,97,.5) transparent;
}
.filter-sidebar::-webkit-scrollbar { width: 7px; }
.filter-sidebar::-webkit-scrollbar-track { background: transparent; }
.filter-sidebar::-webkit-scrollbar-thumb { background: rgba(201,169,97,.45); border-radius: 10px; border: none; }
.filter-group { margin-bottom: 1.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--border); }
.filter-group:last-child { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }
.filter-title {
  font-family: 'Playfair Display'; font-weight: 600; font-size: 0.95rem;
  margin-bottom: 0.8rem; color: var(--dark);
}
.filter-option {
  display: flex; align-items: center; gap: 0.5rem; padding: 0.4rem 0;
  cursor: pointer; font-size: 13px; color: #555;
}
.filter-option input { cursor: pointer; accent-color: var(--gold); }
.filter-option:hover { color: var(--dark); }
.filter-option-count { margin-left: auto; color: #999; font-size: 11px; }
.filter-reset {
  display: block; width: 100%; padding: 0.6rem; background: var(--light-gray);
  border: none; border-radius: 4px; color: var(--gray); font-size: 12px;
  font-weight: 600; cursor: pointer; margin-top: 1rem;
}
.filter-reset:hover { background: var(--border); color: var(--dark); }

/* ============ TESTIMONIALS ============ */
.testimonials {
  background: linear-gradient(135deg, var(--dark) 0%, #1a1a1a 100%);
  color: #fff; padding: 5rem 2rem; position: relative; overflow: hidden;
}
.testimonials::before {
  content: '"'; position: absolute; font-size: 25rem;
  font-family: 'Playfair Display'; color: rgba(201,169,97,0.05);
  top: -3rem; left: 3rem; line-height: 1;
}
.testimonials-inner { max-width: 1300px; margin: 0 auto; position: relative; }
.testimonials-title {
  font-family: 'Playfair Display'; font-size: 2.5rem; text-align: center;
  margin-bottom: 0.5rem;
}
.testimonials-subtitle {
  text-align: center; color: var(--gold); margin-bottom: 3rem;
  text-transform: uppercase; letter-spacing: 2px; font-size: 12px;
}
.testimonials-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
}
.testimonial-card {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(201,169,97,0.15);
  border-radius: 8px; padding: 2rem; backdrop-filter: blur(10px);
}
.testimonial-stars { color: var(--gold); font-size: 1.1rem; margin-bottom: 1rem; }
.testimonial-text { color: #ddd; line-height: 1.7; font-size: 0.95rem; margin-bottom: 1.5rem; font-style: italic; }
.testimonial-author { display: flex; align-items: center; gap: 0.8rem; }
.testimonial-avatar {
  width: 44px; height: 44px; border-radius: 50%;
  background: linear-gradient(135deg, var(--gold), var(--gold-light));
  display: flex; align-items: center; justify-content: center;
  color: var(--dark); font-weight: 700; font-size: 14px;
}
.testimonial-name { font-weight: 600; color: #fff; font-size: 14px; }
.testimonial-role { color: #999; font-size: 12px; }

/* ============ FAQ ACCORDION ============ */
.faq-tabs {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin: 0 auto 2.5rem;
  border-bottom: 2px solid var(--border);
  max-width: 900px;
  flex-wrap: wrap;
}
.faq-tab {
  background: transparent; border: 0;
  border-bottom: 3px solid transparent;
  padding: 0.85rem 1.4rem;
  font-size: 12px;
  font-weight: 600;
  color: var(--gray);
  cursor: pointer;
  transition: all 0.25s;
  font-family: inherit;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: -2px;
  white-space: nowrap;
}
.faq-tab:hover { color: var(--dark); }
.faq-tab.active {
  color: var(--dark);
  border-bottom-color: var(--gold);
}
.faq-list { max-width: 800px; margin: 0 auto; }
.faq-item { border-bottom: 1px solid var(--border); cursor: pointer; }
.faq-question {
  padding: 1.25rem 0; display: flex; justify-content: space-between;
  align-items: center; font-weight: 600; color: var(--dark); font-size: 1rem; gap: 1rem;
}
.faq-question-left { display: flex; align-items: center; gap: 0.8rem; }
.faq-question-icon { font-size: 1.2rem; flex-shrink: 0; }
.faq-question:hover .faq-question-text { color: var(--gold); }
.faq-toggle { color: var(--gold); transition: transform 0.3s; font-size: 1.2rem; flex-shrink: 0; }
.faq-item.open .faq-toggle { transform: rotate(45deg); }
.faq-answer {
  max-height: 0; overflow: hidden; transition: max-height 0.4s ease;
  color: #555; line-height: 1.8; font-size: 0.95rem; padding-left: 2.5rem;
}
.faq-item.open .faq-answer { max-height: 500px; padding-bottom: 1.25rem; }
.faq-cat-section { display: none; }
.faq-cat-section.active { display: block; }

/* ============ TOURS & AIRPORTS ============ */
.service-card-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
}
.service-card {
  background: #fff; border: 1px solid var(--border); border-radius: 8px;
  overflow: hidden; transition: all 0.3s; cursor: pointer;
}
.service-card:hover { transform: translateY(-6px); box-shadow: 0 15px 40px rgba(0,0,0,0.1); border-color: var(--gold); }
.service-card-image {
  height: 200px; background: linear-gradient(135deg, var(--dark), var(--dark-2));
  display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
}
.service-card-image::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at center, rgba(201,169,97,0.2) 0%, transparent 70%);
}
.service-card-icon {
  font-size: 4rem; color: var(--gold); position: relative; z-index: 1;
}
.service-card-code {
  font-family: 'Playfair Display', serif;
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--gold);
  letter-spacing: 4px;
  position: relative;
  z-index: 1;
  padding: 0.5rem 1.2rem;
  border: 1px solid rgba(201,169,97,0.4);
  background: rgba(255,255,255,0.04);
  border-radius: 4px;
}
.service-card-body { padding: 1.5rem; }
.service-card-title {
  font-family: 'Playfair Display'; font-size: 1.25rem; font-weight: 600;
  margin-bottom: 0.5rem; color: var(--dark);
}
.service-card-desc { color: #666; font-size: 0.9rem; line-height: 1.5; margin-bottom: 1rem; }
.service-card-meta {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 1rem; border-top: 1px solid var(--border); font-size: 13px;
}
.service-card-price { color: var(--gold); font-weight: 700; font-family: 'Playfair Display'; font-size: 1.2rem; }
.service-card-duration { color: var(--gray); }
/* Per-vehicle fare list on tour cards */
.tour-fare-list { margin: 0.9rem 0 0.2rem; display: flex; flex-direction: column; gap: 0.35rem; }
.tour-fare-row {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 13px; color: #555;
  padding: 0.3rem 0; border-bottom: 1px dashed var(--border);
}
.tour-fare-row:last-child { border-bottom: none; }
.tour-fare-row span { letter-spacing: 0.2px; }
.tour-fare-row strong { color: var(--dark); font-weight: 600; font-variant-numeric: tabular-nums; }

/* Tour/airport hero */
.service-hero {
  padding: 6rem 2rem 4rem; background: linear-gradient(135deg, var(--dark) 0%, #2a2a2a 100%);
  color: #fff; text-align: center; position: relative; overflow: hidden;
}
.service-hero::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 0%, rgba(201,169,97,0.15) 0%, transparent 60%);
}
.service-hero h1 {
  font-family: 'Playfair Display'; font-size: 3.5rem; margin-bottom: 1rem;
  position: relative;
}
.service-hero p {
  color: #ccc; font-size: 1.1rem; max-width: 700px; margin: 0 auto;
  position: relative;
}

/* Newsletter */
.newsletter {
  background: var(--gold); color: var(--dark); padding: 4rem 2rem; text-align: center;
}
.newsletter-inner { max-width: 700px; margin: 0 auto; }
.newsletter h2 {
  font-family: 'Playfair Display'; font-size: 2.2rem; margin-bottom: 0.5rem;
}
.newsletter p { margin-bottom: 1.5rem; font-size: 0.95rem; }
.newsletter-form {
  display: flex; gap: 0.5rem; max-width: 500px; margin: 0 auto;
}
.newsletter-form input {
  flex: 1; padding: 0.85rem 1.2rem; border: 2px solid var(--dark);
  border-radius: 4px; background: #fff; font-size: 14px;
}
.newsletter-form button {
  padding: 0.85rem 1.5rem; background: var(--dark); color: #fff;
  border: none; border-radius: 4px; font-weight: 600; font-size: 14px; cursor: pointer;
}
.newsletter-form button:hover { background: #000; }

/* Areas chip filter */
.area-chips { display: flex; gap: 0.5rem; flex-wrap: wrap; margin: 1rem 0; }
.area-chip {
  padding: 0.5rem 1rem; background: #fff; border: 1.5px solid var(--border);
  border-radius: 20px; font-size: 12px; font-weight: 500; color: var(--gray);
  cursor: pointer; transition: all 0.2s;
}
.area-chip:hover { border-color: var(--gold); color: var(--dark); }
.area-chip.active { background: var(--dark); color: #fff; border-color: var(--dark); }

@media (max-width: 968px) {
  .hotels-layout { grid-template-columns: 1fr; }
  .filter-sidebar { position: static; }
  .testimonials-grid { grid-template-columns: 1fr; }
  .newsletter-form { flex-direction: column; }
  .fab-container { bottom: 1rem; right: 1rem; }
  .fab { width: 50px; height: 50px; font-size: 1.3rem; }
}

/* ============ PROMOTION BANNERS ============ */
.promo-banner {
  background: linear-gradient(135deg, var(--gold) 0%, var(--gold-light) 50%, var(--gold) 100%);
  background-size: 200% 200%;
  animation: shimmer 8s ease infinite;
  color: var(--dark); padding: 0.8rem 2rem; text-align: center;
  font-weight: 600; font-size: 14px; position: relative; overflow: hidden;
}
.promo-banner-icon { font-size: 1.2rem; margin-right: 0.5rem; }
.promo-banner strong { font-weight: 700; }
@keyframes shimmer {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}
.promo-hero-card {
  background: linear-gradient(135deg, var(--dark) 0%, var(--dark-2) 100%);
  border: 2px solid var(--gold);
  border-radius: 12px; padding: 2.5rem; margin: 3rem auto; max-width: 1100px;
  text-align: center; position: relative; overflow: hidden;
}
.promo-hero-card::before {
  content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%;
  background: radial-gradient(circle, rgba(201,169,97,0.15) 0%, transparent 50%);
  animation: rotate 20s linear infinite;
}
@keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.promo-hero-card > * { position: relative; z-index: 1; }
.promo-badge {
  display: inline-block; background: var(--gold); color: var(--dark);
  padding: 0.4rem 1rem; border-radius: 20px; font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 2px; margin-bottom: 1rem;
}
.promo-hero-card h2 {
  font-family: 'Playfair Display', serif; font-size: 2.5rem;
  color: #fff; margin-bottom: 0.8rem; line-height: 1.1;
}
.promo-hero-card .gold-text { color: var(--gold); }
.promo-hero-card p { color: #ddd; font-size: 1.05rem; margin-bottom: 1.5rem; max-width: 700px; margin-left: auto; margin-right: auto; }
.promo-features {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1.5rem; margin-top: 2rem; padding-top: 2rem;
  border-top: 1px solid rgba(201,169,97,0.3);
}
.promo-feature { color: #fff; font-size: 14px; }
.promo-feature-icon { color: var(--gold); font-size: 1.5rem; margin-bottom: 0.5rem; }
.promo-feature-numeral {
  font-family: 'Playfair Display', serif;
  color: var(--gold);
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
  letter-spacing: 2px;
  border-bottom: 1px solid rgba(201,169,97,0.3);
  padding-bottom: 0.3rem;
  display: inline-block;
  min-width: 2.5rem;
}
.promo-feature strong { display: block; color: var(--gold); font-family: 'Playfair Display'; font-size: 1rem; margin-bottom: 0.3rem; }

.hotel-promo-banner {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, #0d0e12 0%, #15120b 58%, #221a0c 100%);
  background-color: #0e0f13;
  border: 1px solid rgba(201,169,97,0.4);
  padding: 1.7rem 2.1rem; margin: 0 auto; max-width: 1200px;
  border-radius: 14px; display: flex; align-items: center; gap: 1.6rem;
  box-shadow: 0 20px 52px rgba(0,0,0,0.34);
}
.hotel-promo-banner::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(130% 150% at 88% 50%, rgba(201,169,97,0.20) 0%, rgba(201,169,97,0) 55%);
}
.hotel-promo-banner-icon {
  position: relative; z-index: 1; flex-shrink: 0;
  width: 60px; height: 60px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: rgba(201,169,97,0.12); border: 1px solid rgba(201,169,97,0.5);
  color: var(--gold);
}
.hotel-promo-banner-icon .kc-icon { width: 1.7rem; height: 1.7rem; }
.hotel-promo-banner-content { flex: 1; position: relative; z-index: 1; }
.hotel-promo-banner-eyebrow {
  font-size: 11px; letter-spacing: 2.2px; text-transform: uppercase;
  color: var(--gold); font-weight: 700; margin-bottom: 0.4rem;
}
.hotel-promo-banner-title {
  font-family: 'Playfair Display', serif; font-weight: 700;
  font-size: 1.4rem; color: #fff; margin-bottom: 0.4rem; line-height: 1.2;
}
.hotel-promo-banner-text { color: #cccccc; font-size: 0.95rem; line-height: 1.6; }
.hotel-promo-banner strong { color: var(--gold); font-weight: 700; }
.hotel-promo-banner .btn { position: relative; z-index: 1; flex-shrink: 0; white-space: nowrap; }
@media (max-width: 600px) {
  .hotel-promo-banner { flex-direction: column; text-align: center; }
  .hotel-promo-banner-content { text-align: center; }
}

/* ============ HOTEL DETAIL PAGE ============ */
.hotel-hero {
  position: relative; height: 70vh; min-height: 500px;
  background-size: cover; background-position: center;
  display: flex; align-items: flex-end; padding: 3rem 2rem;
  color: #fff;
}
.hotel-hero::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.85) 100%);
}
.hotel-hero-content { position: relative; max-width: 1300px; margin: 0 auto; width: 100%; }
.hotel-hero-eyebrow { color: var(--gold); text-transform: uppercase; letter-spacing: 3px; font-size: 13px; margin-bottom: 0.8rem; font-weight: 500; }
.hotel-hero-title { font-family: 'Playfair Display'; font-size: 4.5rem; line-height: 1; margin-bottom: 0.8rem; letter-spacing: -1px; }
.hotel-hero-meta { display: flex; flex-wrap: wrap; gap: 1rem 1.6rem; align-items: center; margin-top: 1rem; font-size: 14px; }
.hotel-hero-meta span { display: flex; align-items: center; gap: 0.5rem; }
.hotel-hero-meta .btn { flex: 0 0 auto; white-space: nowrap; }
.hotel-section { padding: 4rem 2rem; max-width: 1200px; margin: 0 auto; }
.hotel-section-eyebrow { color: var(--gold); text-transform: uppercase; letter-spacing: 2px; font-size: 12px; font-weight: 600; margin-bottom: 0.8rem; }
.hotel-section-title { font-family: 'Playfair Display'; font-size: 2.5rem; margin-bottom: 1rem; line-height: 1.1; }
.hotel-section-subtitle { font-size: 1.1rem; color: var(--gray); margin-bottom: 1.5rem; font-style: italic; }
.hotel-section-text { font-size: 1.05rem; line-height: 1.8; color: #444; max-width: 700px; }
.hotel-section-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.hotel-section-grid.reverse > div:first-child { order: 2; }
.hotel-section-img { height: 400px; border-radius: 8px; overflow: hidden; }
.hotel-section-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s; }
.hotel-section-img:hover img { transform: scale(1.05); }
.hotel-section-imgs { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; height: 400px; }
.hotel-section-imgs > div { border-radius: 6px; overflow: hidden; }
.hotel-section-imgs img { width: 100%; height: 100%; object-fit: cover; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.gallery-item {
  position: relative; aspect-ratio: 4/3; border-radius: 6px; overflow: hidden;
  cursor: pointer; transition: all 0.3s;
}
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s; }
.gallery-item:hover img { transform: scale(1.08); }
.gallery-item::after {
  content: '🔍'; position: absolute; inset: 0; background: rgba(0,0,0,0.4);
  display: flex; align-items: center; justify-content: center; font-size: 2rem;
  opacity: 0; transition: opacity 0.3s;
}
.gallery-item:hover::after { opacity: 1; }
.chauffeur-section {
  background: var(--dark); color: #fff; padding: 4rem 2rem;
}
.chauffeur-inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.chauffeur-section h2 { font-family: 'Playfair Display'; font-size: 2.5rem; margin-bottom: 1rem; color: #fff; }
.chauffeur-section .hotel-section-eyebrow { color: var(--gold); }
.chauffeur-section p { color: #ccc; line-height: 1.8; font-size: 1rem; margin-bottom: 1rem; }
@media (max-width: 768px) {
  .chauffeur-inner { grid-template-columns: 1fr; gap: 2rem; }
  .chauffeur-section { padding: 3rem 1.25rem; }
  .chauffeur-section h2 { font-size: 1.8rem; }
}
.pricing-cards { display: grid; grid-template-columns: 1fr; gap: 0.8rem; }
.pricing-card {
  display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.3rem 0.6rem;
  padding: 1rem 1.2rem; background: rgba(255,255,255,0.05);
  border: 1px solid rgba(201,169,97,0.2); border-radius: 6px;
}
.pricing-card-vehicle { font-family: 'Playfair Display'; font-weight: 600; }
.pricing-card-price { color: var(--gold); font-weight: 700; font-family: 'Playfair Display'; font-size: 1.2rem; }
.related-hotels { background: var(--light-gray); }

/* Lightbox */
.lightbox {
  position: fixed; inset: 0; background: rgba(0,0,0,0.95); z-index: 3000;
  display: none; align-items: center; justify-content: center; padding: 2rem;
}
.lightbox.show { display: flex; }
.lightbox-content { max-width: 90%; max-height: 90vh; position: relative; }
.lightbox-content img { max-width: 100%; max-height: 90vh; object-fit: contain; border-radius: 4px; }
.lightbox-close {
  position: absolute; top: -3rem; right: 0; background: transparent; color: #fff;
  font-size: 2rem; cursor: pointer; border: none;
}
.lightbox-nav {
  position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,0.1);
  color: #fff; border: none; width: 50px; height: 50px; border-radius: 50%; font-size: 1.5rem; cursor: pointer;
}
.lightbox-nav:hover { background: rgba(255,255,255,0.2); }
.lightbox-prev { left: -4rem; }
.lightbox-next { right: -4rem; }

/* ============ PAYMENT ============ */
.payment-methods { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.8rem; margin-bottom: 1.5rem; }
.payment-method { padding: 1rem; border: 2px solid var(--border); border-radius: 6px; text-align: center; cursor: pointer; font-size: 13px; font-weight: 600; }
.payment-method.selected { border-color: var(--gold); background: #fff9eb; }
.card-input { letter-spacing: 2px; font-family: monospace; }

/* ============ RESPONSIVE ============ */
@media (max-width: 968px) {
  .hero-container { grid-template-columns: 1fr; }
  .hero-text h1 { font-size: 2.5rem; }
  .nav-links { display: none; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .form-row { grid-template-columns: 1fr; }
}
/* =================================================================== */
/* ============ V12: COMPREHENSIVE RESPONSIVE OVERHAUL ================ */
/* =================================================================== */

/* ============ PASSENGERS BY AGE ============ */
.passenger-group {
  display: flex; flex-direction: column; gap: 0.6rem;
  padding: 1rem; background: #faf8f5; border-radius: 8px;
  border: 1px solid var(--border);
}
.passenger-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0.5rem 0;
}
.passenger-row:not(:last-child) {
  border-bottom: 1px solid rgba(0,0,0,0.05);
}
.passenger-info {
  display: flex; align-items: center; gap: 0.8rem;
}
.passenger-icon {
  font-size: 1.6rem; line-height: 1;
}
.passenger-label {
  font-weight: 600; color: var(--dark); font-size: 14px;
}
.passenger-age {
  font-size: 11px; color: var(--gray);
}
.passenger-counter {
  display: flex; align-items: center; gap: 0.5rem;
}
.passenger-btn {
  width: 32px; height: 32px; border-radius: 50%;
  border: 1.5px solid var(--border); background: #fff;
  color: var(--dark); font-size: 18px; font-weight: 600;
  cursor: pointer; transition: all 0.15s;
  display: flex; align-items: center; justify-content: center;
  padding: 0; line-height: 1;
}
.passenger-btn:hover:not(:disabled) {
  border-color: var(--gold); color: var(--gold);
}
.passenger-btn:disabled {
  opacity: 0.3; cursor: not-allowed;
}
.passenger-count {
  min-width: 28px; text-align: center;
  font-weight: 600; color: var(--dark); font-size: 15px;
}
.family-quickfill-btn {
  margin-top: 0.5rem; padding: 0.7rem 1rem;
  background: linear-gradient(135deg, var(--gold), #b89855);
  color: var(--dark); border: 0; border-radius: 6px;
  font-weight: 600; font-size: 13px; cursor: pointer;
  transition: all 0.2s; width: 100%;
}
.family-quickfill-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(201,169,97,0.3);
}
.passenger-summary {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 13px; color: var(--gray);
  padding-top: 0.6rem; margin-top: 0.3rem;
  border-top: 1px dashed rgba(0,0,0,0.1);
}
.passenger-summary strong { color: var(--dark); }

/* ============ UK COVERAGE GRID ============ */
.uk-coverage-section { background: #fff; padding: 3rem 1.5rem; }
/* Collapsible "central London postcodes & rate basis" note */
.cl-note { max-width: 700px; margin: 1.25rem auto 0; text-align: left;
  background: #faf8f5; border: 1px solid var(--border); border-radius: 10px;
  overflow: hidden; transition: box-shadow .2s; }
.cl-note[open] { box-shadow: 0 4px 18px rgba(0,0,0,0.06); }
.cl-note > summary { cursor: pointer; list-style: none; text-align: center;
  color: var(--gold); font-weight: 600; font-size: 13px; letter-spacing: 0.3px;
  padding: 0.85rem 1.2rem; user-select: none; }
.cl-note > summary::-webkit-details-marker { display: none; }
.cl-note > summary::after { content: " ▾"; opacity: 0.7; }
.cl-note[open] > summary::after { content: " ▴"; }
.cl-note .cl-note-body { display: none; color: var(--gray); font-size: 12.5px; line-height: 1.7;
  padding: 0 1.3rem 1.1rem; }
.cl-note[open] .cl-note-body { display: block; }
.cl-note .cl-note-body strong { color: var(--dark); }
.uk-region-chips {
  display: flex; gap: 0.5rem; flex-wrap: wrap; justify-content: center;
  margin-bottom: 2rem; padding: 0 1rem;
}
.uk-region-chip {
  padding: 0.5rem 1rem; border: 1.5px solid var(--border);
  border-radius: 20px; font-size: 13px; font-weight: 500;
  color: #555; cursor: pointer; transition: all 0.2s;
  background: #fff; user-select: none;
}
.uk-region-chip:hover { border-color: var(--gold); color: var(--gold); }
.uk-region-chip.active {
  background: var(--dark); color: var(--gold);
  border-color: var(--dark); font-weight: 600;
}
.uk-coverage-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1rem; max-width: 1300px; margin: 0 auto;
}
.uk-dest-card {
  background: #fff; border: 1px solid var(--border); border-radius: 10px;
  padding: 1.2rem; cursor: pointer; transition: all 0.25s;
  position: relative; display: flex; flex-direction: column;
}
.uk-dest-card:hover {
  border-color: var(--gold); transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.uk-dest-card.popular {
  border-top: 3px solid var(--gold);
  background: linear-gradient(180deg, #faf8f5 0%, #fff 50px);
}
.uk-dest-card .popular-tag {
  position: absolute; top: -10px; right: 14px;
  background: var(--gold); color: #fff; font-size: 10px;
  font-weight: 700; padding: 2px 10px; border-radius: 10px;
  text-transform: uppercase; letter-spacing: 0.5px;
}
.uk-dest-header {
  display: flex; align-items: flex-start; gap: 0.7rem; margin-bottom: 0.6rem;
}
.uk-dest-icon { font-size: 2rem; flex-shrink: 0; }
.uk-dest-name {
  font-family: 'Playfair Display', serif; font-size: 1.15rem;
  font-weight: 700; color: var(--dark); line-height: 1.2;
  margin-bottom: 0.2rem;
}
.uk-dest-region {
  color: var(--gold); font-size: 11px; text-transform: uppercase;
  letter-spacing: 1px; font-weight: 600;
}
.uk-dest-desc {
  font-size: 12px; color: #555; line-height: 1.5;
  margin-bottom: 0.8rem; flex: 1;
}
.uk-dest-meta {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 0.7rem; border-top: 1px dashed var(--border);
}
.uk-dest-distance {
  font-size: 11px; color: var(--gray);
  display: flex; flex-direction: column; gap: 2px;
}
.uk-dest-price {
  font-family: 'Playfair Display', serif; font-weight: 700;
  font-size: 1.3rem; color: var(--gold); line-height: 1;
}
.uk-dest-price-label {
  font-size: 10px; color: var(--gray); display: block; margin-top: 2px;
}
.uk-coverage-count {
  text-align: center; margin-bottom: 1.5rem; color: var(--gray); font-size: 14px;
}
.uk-coverage-count strong { color: var(--dark); }

@media (max-width: 768px) {
  .uk-coverage-grid { grid-template-columns: 1fr; }
  .uk-coverage-section { padding: 2rem 1rem; }
}

/* ============ BOOKING ENHANCEMENTS: stops, toggles, child seats, quick-time ============ */
.add-stop-btn {
  width: 100%; padding: 0.7rem 1rem; margin-bottom: 1rem;
  background: #faf8f5; border: 1.5px dashed var(--gold);
  color: var(--gold); font-weight: 600; font-size: 13px;
  border-radius: 8px; cursor: pointer; transition: all 0.2s;
}
.add-stop-btn:hover {
  background: var(--gold); color: #fff; border-style: solid;
}
.stop-row {
  display: flex; gap: 0.5rem; align-items: center; margin-bottom: 0.8rem;
  background: #faf8f5; padding: 0.7rem; border-radius: 8px;
  border-left: 3px solid var(--gold);
}
.stop-row .stop-num {
  background: var(--gold); color: #fff; width: 24px; height: 24px;
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; flex-shrink: 0;
}
.stop-row input {
  flex: 1; padding: 0.5rem; border: 1px solid var(--border);
  border-radius: 6px; font-size: 13px;
}
.stop-row .remove-stop {
  background: transparent; border: 0; color: var(--gray); cursor: pointer;
  font-size: 18px; padding: 0 0.4rem; transition: color 0.2s;
}
.stop-row .remove-stop:hover { color: #c44; }

.quick-time-row {
  display: flex; gap: 0.3rem; flex-wrap: wrap; margin-top: 0.4rem;
}
.quick-time-btn {
  padding: 0.25rem 0.65rem; background: #faf8f5;
  border: 1px solid var(--border); border-radius: 12px;
  font-size: 11px; color: var(--gray); cursor: pointer;
  transition: all 0.15s; font-family: inherit;
}
.quick-time-btn:hover {
  background: var(--dark); color: var(--gold); border-color: var(--dark);
}

.return-trip-group, .enhance-toggle {
  /* Container styling */
}
.enhance-toggle {
  display: flex; align-items: flex-start; gap: 0.7rem; cursor: pointer;
  padding: 0.7rem 1rem; background: #faf8f5;
  border: 1px solid var(--border); border-radius: 8px;
  transition: all 0.2s; user-select: none;
}
.enhance-toggle:hover { border-color: var(--gold); }
.enhance-toggle input[type="checkbox"] {
  width: 18px; height: 18px; accent-color: var(--gold);
  cursor: pointer; margin-top: 2px;
}
.enhance-toggle-text {
  display: flex; flex-direction: column; gap: 0.2rem;
  font-size: 14px; color: var(--dark);
}
.enhance-toggle-hint {
  font-size: 11px; color: var(--gray); font-weight: 400;
}
.enhance-conditional {
  padding: 1rem; margin-top: 0.8rem;
  background: #faf8f5; border-radius: 8px;
  border-left: 3px solid var(--gold);
}

.return-default-card {
  background: linear-gradient(135deg, #faf8f5 0%, #fff5e6 100%);
  border: 1px solid rgba(201, 169, 97, 0.3);
  border-radius: 8px;
  padding: 1rem;
  margin-top: 0.8rem;
  position: relative;
}
.return-default-card::before {
  content: 'RECOMMENDED';
  position: absolute;
  top: -8px; right: 10px;
  background: var(--gold);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 8px;
  letter-spacing: 0.5px;
}

/* Booking Summary - Journey Blocks (outbound vs return) */
.journey-block {
  background: #fff;
  border: 1px solid var(--border);
  border-left: 3px solid var(--dark);
  border-radius: 6px;
  padding: 0.9rem 1rem;
  margin-bottom: 1rem;
}
.journey-block.return-journey {
  border-left-color: var(--gold);
  background: #faf8f5;
}
.journey-header {
  font-family: 'Playfair Display', serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--dark);
  margin-bottom: 0.6rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px dashed var(--border);
}
.return-journey .journey-header { color: var(--gold); }

.child-seat-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0.6rem 0.8rem; background: #faf8f5;
  border-radius: 6px; margin-bottom: 0.4rem;
}
.seat-info {
  display: flex; align-items: center; gap: 0.6rem;
  font-size: 13px; color: var(--dark);
}
.seat-icon { font-size: 1.2rem; }

/* ============ COMPACT PACKAGE FILTER PANEL ============ */
.pkg-filters-panel {
  background: #fff; border-bottom: 1px solid var(--border);
  padding: 0.7rem 1rem; position: sticky; top: 0; z-index: 50;
  box-shadow: 0 1px 4px rgba(0,0,0,0.04);
}

/* Hotel mobile filter toggle — hidden on desktop, shown on tablet/mobile */
.hotel-filter-mobile-toggle {
  display: none;  /* Hidden by default (desktop) */
  margin-bottom: 1rem; width: 100%; justify-content: center;
}
@media (max-width: 968px) {
  .hotel-filter-mobile-toggle { display: flex; position: sticky; top: 76px; z-index: 30; }
  /* On mobile, sidebar is hidden by default and shown when expanded */
  .filter-sidebar:not(.expanded) {
    display: none;
  }
  .filter-sidebar.expanded {
    display: block; margin-bottom: 1.5rem;
    background: #faf8f5; padding: 1rem; border-radius: 8px;
    border: 1px solid var(--border);
    position: static; max-height: none; overflow: visible;
  }
}
.pkg-filters-inner {
  max-width: 1300px; margin: 0 auto;
  display: flex; flex-direction: column; gap: 0.6rem;
}
.pkg-filter-toprow {
  display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap;
}
.pkg-search-wrap {
  flex: 1; min-width: 200px; position: relative;
  display: flex; align-items: center;
}
.pkg-search-icon {
  position: absolute; left: 11px; color: var(--gray);
  font-size: 13px; pointer-events: none;
}
.pkg-search-input {
  width: 100%; padding: 0.5rem 2rem 0.5rem 2.2rem;
  border: 1.5px solid var(--border); border-radius: 6px;
  font-size: 13px; font-family: inherit; color: var(--dark);
  background: #fff; transition: all 0.2s;
}
.pkg-search-input:focus {
  outline: none; border-color: var(--gold);
  box-shadow: 0 0 0 2px rgba(201,169,97,0.15);
}
.pkg-search-clear {
  position: absolute; right: 8px; background: var(--border);
  color: var(--gray); border: 0; width: 18px; height: 18px;
  border-radius: 50%; cursor: pointer; font-size: 10px;
  display: none; align-items: center; justify-content: center;
  transition: all 0.2s;
}
.pkg-search-clear.visible { display: flex; }
.pkg-search-clear:hover { background: var(--dark); color: #fff; }

.pkg-sort-select {
  padding: 0.5rem 0.7rem; border: 1.5px solid var(--border);
  border-radius: 6px; font-size: 13px; font-family: inherit;
  color: var(--dark); background: #fff; cursor: pointer;
  min-width: 140px; max-width: 180px;
}
.pkg-sort-select:focus { outline: none; border-color: var(--gold); }

.pkg-filter-toggle-btn {
  padding: 0.5rem 0.85rem; border: 1.5px solid var(--border);
  border-radius: 6px; background: #fff; color: var(--dark);
  font-size: 13px; font-weight: 500; cursor: pointer;
  display: flex; align-items: center; gap: 0.4rem;
  transition: all 0.2s; white-space: nowrap;
}
.pkg-filter-toggle-btn:hover { border-color: var(--gold); color: var(--gold); }
.pkg-filter-toggle-btn[aria-expanded="true"] {
  background: var(--dark); color: var(--gold); border-color: var(--dark);
}
.pkg-filter-badge {
  background: var(--gold); color: var(--dark);
  font-size: 11px; font-weight: 700; padding: 1px 6px;
  border-radius: 10px; min-width: 18px; text-align: center;
}

.pkg-reset-btn {
  padding: 0.5rem 0.75rem; border: 1.5px solid var(--border);
  border-radius: 6px; background: transparent; color: var(--gray);
  font-size: 14px; cursor: pointer; transition: all 0.2s;
}
.pkg-reset-btn:hover { color: var(--dark); border-color: var(--gold); }

/* Expandable filter section */
.pkg-filter-expand {
  display: flex; flex-direction: column; gap: 0.45rem;
  padding-top: 0.5rem; border-top: 1px dashed var(--border);
}
.pkg-filter-group {
  display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap;
}
.pkg-filter-label {
  font-size: 10px; color: var(--gray); text-transform: uppercase;
  letter-spacing: 0.8px; font-weight: 600; min-width: 56px;
  flex-shrink: 0;
}
.pkg-chips {
  display: flex; gap: 0.3rem; flex-wrap: wrap;
}
.pkg-chip {
  padding: 0.25rem 0.65rem; border: 1px solid var(--border);
  border-radius: 14px; font-size: 11px; font-weight: 500;
  color: #555; cursor: pointer; transition: all 0.15s;
  background: #fff; user-select: none; white-space: nowrap;
}
.pkg-chip:hover { border-color: var(--gold); color: var(--gold); }
.pkg-chip.active {
  background: var(--dark); color: var(--gold);
  border-color: var(--dark); font-weight: 600;
}

.pkg-toggle {
  display: flex; align-items: center; gap: 0.4rem; cursor: pointer;
  font-size: 12px; color: var(--dark); user-select: none;
}
.pkg-toggle input[type="checkbox"] {
  width: 14px; height: 14px; accent-color: var(--gold); cursor: pointer;
}

.pkg-active-filters {
  display: flex; gap: 0.3rem; flex-wrap: wrap;
  font-size: 11px; color: var(--gray);
  padding-top: 0.4rem; border-top: 1px dashed var(--border);
}
.pkg-active-filter-pill {
  background: #faf8f5; border: 1px solid var(--gold);
  padding: 0.2rem 0.55rem; border-radius: 10px; color: var(--dark);
  font-size: 10.5px;
}

@media (max-width: 768px) {
  .pkg-filters-panel { padding: 0.6rem; position: static; }
  .pkg-filter-toprow { gap: 0.4rem; }
  .pkg-search-wrap { min-width: 100%; }
  .pkg-sort-select { flex: 1; min-width: 0; }
  .pkg-filter-label { min-width: 50px; font-size: 9px; }
}

/* ============ TICKET FILTERS PANEL ============ */
.ticket-filters-panel {
  background: #fff; border-bottom: 1px solid var(--border);
  padding: 1.5rem 1.5rem 1.2rem; position: sticky; top: 0; z-index: 50;
  box-shadow: 0 2px 8px rgba(0,0,0,0.03);
}
.ticket-filters-inner {
  max-width: 1300px; margin: 0 auto;
  display: flex; flex-direction: column; gap: 1rem;
}
.ticket-filter-row {
  display: flex; gap: 1rem; align-items: stretch; flex-wrap: wrap;
}
.ticket-search-wrap {
  flex: 1; min-width: 240px; position: relative;
  display: flex; align-items: center;
}
.ticket-search-icon {
  position: absolute; left: 14px; color: var(--gray);
  font-size: 14px; pointer-events: none;
}
.ticket-search-input {
  width: 100%; padding: 0.75rem 2.5rem 0.75rem 2.6rem;
  border: 1.5px solid var(--border); border-radius: 8px;
  font-size: 14px; font-family: inherit; color: var(--dark);
  background: #fff; transition: all 0.2s;
}
.ticket-search-input:focus {
  outline: none; border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(201,169,97,0.15);
}
.ticket-search-clear {
  position: absolute; right: 10px; background: var(--border);
  color: var(--gray); border: 0; width: 22px; height: 22px;
  border-radius: 50%; cursor: pointer; font-size: 11px;
  display: none; align-items: center; justify-content: center;
  transition: all 0.2s;
}
.ticket-search-clear.visible { display: flex; }
.ticket-search-clear:hover { background: var(--dark); color: #fff; }

.ticket-sort-wrap {
  display: flex; align-items: center; gap: 0.6rem;
}
.ticket-sort-select {
  padding: 0.7rem 0.9rem; border: 1.5px solid var(--border);
  border-radius: 8px; font-size: 14px; font-family: inherit;
  color: var(--dark); background: #fff; cursor: pointer;
  min-width: 180px;
}
.ticket-sort-select:focus {
  outline: none; border-color: var(--gold);
}

.ticket-filter-section {
  display: flex; align-items: center; gap: 0.8rem; flex-wrap: wrap;
}
.ticket-filter-label {
  font-size: 11px; color: var(--gray); text-transform: uppercase;
  letter-spacing: 1px; font-weight: 600; flex-shrink: 0;
}
.ticket-filter-chips {
  display: flex; gap: 0.5rem; flex-wrap: wrap;
}
.ticket-filter-chip {
  padding: 0.45rem 0.9rem; border: 1.5px solid var(--border);
  border-radius: 20px; font-size: 12px; font-weight: 500;
  color: #555; cursor: pointer; transition: all 0.2s;
  background: #fff; user-select: none;
}
.ticket-filter-chip:hover { border-color: var(--gold); color: var(--gold); }
.ticket-filter-chip.active {
  background: var(--dark); color: var(--gold);
  border-color: var(--dark); font-weight: 600;
}

.ticket-filter-toggle-row {
  justify-content: space-between;
  border-top: 1px dashed var(--border); padding-top: 0.8rem;
}
.ticket-filter-toggle {
  display: flex; align-items: center; gap: 0.5rem; cursor: pointer;
  font-size: 13px; color: var(--dark); user-select: none;
}
.ticket-filter-toggle input[type="checkbox"] {
  width: 18px; height: 18px; accent-color: var(--gold); cursor: pointer;
}
.ticket-filter-toggle-text { font-weight: 500; }

.ticket-reset-btn {
  background: transparent; border: 1px solid var(--border);
  color: var(--gray); padding: 0.45rem 1rem; border-radius: 6px;
  font-size: 12px; cursor: pointer; transition: all 0.2s;
}
.ticket-reset-btn:hover { color: var(--dark); border-color: var(--gold); }

.ticket-active-filters {
  display: flex; gap: 0.4rem; flex-wrap: wrap; padding-top: 0.5rem;
  font-size: 12px; color: var(--gray);
}
.ticket-active-filter-pill {
  background: #faf8f5; border: 1px solid var(--gold);
  padding: 0.25rem 0.7rem; border-radius: 12px; color: var(--dark);
  font-size: 11px; display: inline-flex; align-items: center; gap: 0.3rem;
}

@media (max-width: 768px) {
  .ticket-filters-panel { padding: 1rem; position: static; }
  .ticket-filter-row { flex-direction: column; gap: 0.6rem; }
  .ticket-sort-wrap { width: 100%; }
  .ticket-sort-select { flex: 1; }
  .ticket-filter-section { flex-direction: column; align-items: stretch; gap: 0.5rem; }
  .ticket-filter-label { margin-bottom: 0; }
  .ticket-filter-toggle-row { flex-direction: row; align-items: center; }
}

/* ============ PACKAGE CARDS ============ */
.package-card {
  background: #fff; border: 1px solid var(--border); border-radius: 12px;
  overflow: hidden; transition: all 0.3s; display: flex; flex-direction: column;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.package-card:hover {
  transform: translateY(-4px); box-shadow: 0 12px 30px rgba(0,0,0,0.1);
  border-color: var(--gold);
}
.package-card.featured { border: 2px solid var(--gold); }
.package-image {
  position: relative; height: 200px; overflow: hidden; background: #222;
}
.package-image img {
  width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s;
}
.package-card:hover .package-image img { transform: scale(1.05); }
.package-featured-badge {
  position: absolute; top: 1rem; left: 1rem;
  background: var(--dark); color: var(--gold); padding: 0.35rem 0.8rem;
  border-radius: 20px; font-size: 11px; font-weight: 700;
  letter-spacing: 0.5px; box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.package-savings-badge {
  position: absolute; top: 1rem; right: 1rem;
  background: var(--gold); color: var(--dark); padding: 0.4rem 0.9rem;
  border-radius: 20px; font-size: 12px; font-weight: 700;
  box-shadow: 0 4px 12px rgba(201,169,97,0.4);
}
.package-body {
  padding: 1.3rem; flex: 1; display: flex; flex-direction: column;
}

@media (max-width: 768px) {
  .package-image { height: 170px; }
  .package-body { padding: 1rem; }
}

/* All images responsive by default */
img { max-width: 100%; height: auto; }

/* ============ TABLET (≤ 1024px) ============ */
@media (max-width: 1024px) {
  /* Containers */
  .section { padding: 3rem 1.5rem; }
  .nav-container { padding: 0 1.5rem; }

  /* Hero typography */
  .hero h1 { font-size: 2.8rem; line-height: 1.15; }
  .hero p { font-size: 1.05rem; }
  .hero-stats { gap: 1.5rem; }

  /* Hotels filter sidebar collapses */
  .hotels-layout { grid-template-columns: 220px 1fr; gap: 1.5rem; }
  .filter-sidebar { padding: 1rem; top: 80px; max-height: calc(100vh - 92px); }

  /* Booking layout stacks */
  .booking-layout { grid-template-columns: 1fr; gap: 1.5rem; }
  .booking-summary-sidebar { position: static; order: -1; }

  /* Hotel detail */
  .hotel-detail-hero { height: 50vh; min-height: 350px; }
  .hotel-detail-title { font-size: 2.5rem; }

  /* Dashboard side-by-side becomes stacked */
  .dashboard-grid { grid-template-columns: 1fr; }
  .dashboard-sidebar {
    display: flex; flex-direction: row; flex-wrap: wrap; gap: 0.5rem;
    position: static; padding: 0.5rem; overflow-x: auto;
  }
  .dashboard-sidebar-item { flex: 0 0 auto; white-space: nowrap; }
}

/* ============ MOBILE (≤ 768px) ============ */
@media (max-width: 768px) {
  /* Typography scaling */
  h1 { font-size: 2rem !important; line-height: 1.15; }
  h2, .section-title { font-size: 1.75rem !important; line-height: 1.2; }
  h3 { font-size: 1.35rem !important; }
  .hero h1 { font-size: 2.2rem !important; }
  .hero p { font-size: 1rem; }

  /* Containers */
  .section { padding: 2.5rem 1rem; }
  body { font-size: 15px; }

  /* Navigation */
  .navbar { padding: 0.7rem 1rem; }
  .nav-container { padding: 0; }
  .logo { font-size: 1.1rem; }
  .logo small { display: none; }

  /* Top promo banner */
  .promo-banner { padding: 0.6rem 1rem; font-size: 12px; line-height: 1.4; }
  .promo-banner br { display: none; }

  /* Hero section */
  .hero { padding: 4rem 1rem 3rem !important; min-height: 500px !important; }
  .hero-content { padding: 0 !important; }
  .hero-stats { gap: 1rem !important; flex-wrap: wrap; justify-content: center; }
  .hero-stat-number { font-size: 1.4rem !important; }
  .hero-stat-label { font-size: 10px !important; }
  .hero-cta-row { flex-direction: column; gap: 0.7rem; }
  .hero-cta-row .btn { width: 100%; }

  /* Home booking widget */
  .hero-booking-widget { padding: 1.5rem !important; margin-top: 2rem; }

  /* Promo cards */
  .promo-hero-card { padding: 1.5rem 1rem; margin: 2rem 1rem; }
  .promo-hero-card h2 { font-size: 1.5rem !important; }
  .promo-hero-card p { font-size: 0.95rem; }
  .promo-features { grid-template-columns: 1fr 1fr; gap: 1rem; padding-top: 1.5rem; }
  .promo-feature { font-size: 12px; }
  .promo-feature-icon { font-size: 1.2rem; }
  .promo-badge { font-size: 10px; padding: 0.3rem 0.8rem; }

  /* Hotel promo banner */
  .hotel-promo-banner { padding: 1.2rem 1rem; flex-direction: column; text-align: center; gap: 1rem; }
  .hotel-promo-banner-icon { font-size: 2rem; }
  .hotel-promo-banner-title { font-size: 1.05rem; }
  .hotel-promo-banner-text { font-size: 0.85rem; }

  /* Fleet & hotel grids */
  .fleet-grid { grid-template-columns: 1fr 1fr !important; gap: 0.8rem; }
  .fleet-card { padding: 0; }
  .fleet-body { padding: 0.8rem; }
  .fleet-name { font-size: 0.85rem !important; }
  .fleet-price { font-size: 1rem !important; }
  .hotel-grid { grid-template-columns: 1fr 1fr !important; gap: 0.8rem; }
  .hotel-card { font-size: 13px; }
  .hotel-name { font-size: 0.9rem !important; }
  .hotel-area { font-size: 11px !important; }
  .hotel-img { height: 110px !important; }
  .hotel-free-badge { font-size: 8px !important; padding: 0.2rem 0.4rem !important; top: 6px; right: 6px; }
  .hotel-stars { font-size: 0.85rem; }

  /* Hotel detail */
  .hotel-detail-hero { height: 40vh; min-height: 280px; }
  .hotel-detail-title { font-size: 1.8rem !important; padding: 0 1rem; }
  .hotel-detail-tagline { font-size: 0.95rem; padding: 0 1rem; }
  .hotel-section { padding: 2rem 1rem !important; }
  .hotel-section-title { font-size: 1.6rem !important; }
  .hotel-detail-info-bar { flex-direction: column; gap: 0.5rem; padding: 1rem; }
  .gallery-grid { grid-template-columns: 1fr 1fr !important; gap: 0.5rem; }
  .gallery-item { height: 130px !important; }

  /* Filter sidebar fully collapsible */
  .hotels-layout { grid-template-columns: 1fr; }
  .filter-sidebar {
    border-radius: 8px; padding: 1rem; margin-bottom: 1rem;
  }
  .filter-group { padding-bottom: 1rem; margin-bottom: 1rem; }
  .filter-group:last-child { padding-bottom: 0; margin-bottom: 0; }
  .area-chips { gap: 0.3rem; }
  .area-chip { padding: 0.4rem 0.7rem; font-size: 11px; }

  /* Forms - full width inputs, stacked rows */
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .form-input, .form-select, .form-textarea {
    font-size: 16px !important; /* prevents iOS zoom */
    padding: 0.85rem 1rem;
  }

  /* Booking page */
  .booking-intro-hero { padding: 2rem 1rem 1.5rem !important; }
  .booking-intro-hero h1 { font-size: 1.8rem !important; }
  .booking-intro-hero p { font-size: 0.9rem !important; padding: 0 0.5rem; }

  /* 3-step booking overview stacks */
  .three-steps {
    flex-direction: row; gap: 0.5rem; max-width: 100%;
    margin: 1.5rem auto 0; padding: 0 0.5rem;
  }
  .three-steps::before { display: none; }
  .three-step { padding: 0; }
  .three-step-num { width: 36px; height: 36px; font-size: 0.95rem; margin-bottom: 0.4rem; }
  .three-step-label { font-size: 10px; line-height: 1.2; }
  .three-step-label strong { font-size: 11px; }

  /* Step indicators */
  .steps { padding: 1rem; gap: 0; flex-wrap: nowrap; overflow-x: auto; }
  .step { flex: 0 0 auto; min-width: 90px; padding: 0 0.5rem; }
  .step-num { width: 32px; height: 32px; font-size: 0.85rem; }
  .step-label { font-size: 10px; margin-top: 0.4rem; }

  /* Booking card */
  .booking-card { padding: 1.2rem; }
  .booking-step h3 { font-size: 1.2rem; }

  /* 24-hour notice */
  .notice-24hr { padding: 1rem; flex-direction: column; gap: 0.5rem; text-align: left; }
  .notice-24hr-icon { font-size: 1.3rem; }
  .urgent-banner { flex-direction: column; padding: 0.8rem 1rem; gap: 0.6rem; text-align: center; }
  .urgent-banner p { font-size: 13px; }
  .urgent-call-btn { width: 100%; justify-content: center; padding: 0.7rem; }

  .three-d-secure-badge { font-size: 10px; padding: 0.3rem 0.7rem; }
  .pay-btn { padding: 1rem; font-size: 0.95rem; }
  .security-badges { gap: 0.4rem; padding: 0.6rem; }
  .security-badge { font-size: 10px; padding: 0.25rem 0.5rem; }

  /* Pricing page */
  .pricing-hero { padding: 3rem 1rem 2rem !important; }
  .pricing-hero h1 { font-size: 2rem !important; }
  .pricing-hero p { font-size: 0.95rem; }
  .pricing-trust-row { gap: 0.6rem; }
  .pricing-trust-item { font-size: 12px; }
  .pricing-section { padding: 2.5rem 1rem; }
  .pricing-tier-title { font-size: 1.6rem !important; }
  .pricing-terms-banner { padding: 1.5rem 1rem; }
  .pricing-terms-grid { grid-template-columns: 1fr; }

  /* Pricing TABLE → CARD layout on mobile (critical!) */
  .pricing-table { display: block; box-shadow: none; background: transparent; }
  .pricing-table thead { display: none; }
  .pricing-table tbody { display: block; }
  .pricing-table tr {
    display: block; margin-bottom: 1rem; background: #fff;
    border: 1px solid var(--border); border-radius: 8px; padding: 1rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  }
  .pricing-table td {
    display: flex; justify-content: space-between; align-items: center;
    border-bottom: 1px solid #f0f0f0; padding: 0.6rem 0; text-align: right;
  }
  .pricing-table td:last-child { border-bottom: none; }
  .pricing-table td::before {
    content: attr(data-label); font-weight: 600; color: var(--gray);
    font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px;
    text-align: left; min-width: 100px;
  }
  .pricing-table td:first-child { display: block; text-align: left; padding: 0 0 0.8rem; }
  .pricing-table td:first-child::before { display: none; }
  .pricing-table .vehicle-cell { gap: 0.7rem; }
  .pricing-table .vehicle-img { width: 60px; height: 40px; }
  .pricing-table .vehicle-info strong { font-size: 0.95rem; }
  .pricing-table .price-cell { font-size: 1.05rem !important; }

  /* Fare calculator */
  .fare-calculator { padding: 1.5rem 1rem; }
  .fare-calculator h3 { font-size: 1.4rem; }
  .fare-calculator-row { grid-template-columns: 1fr; gap: 0.8rem; }
  .fare-calculator-result-value { font-size: 1.8rem; }
  .fare-calculator-result { padding: 1rem; flex-direction: column; gap: 0.5rem; text-align: center; }

  /* Includes/excludes */
  .includes-grid { grid-template-columns: 1fr; gap: 1rem; }
  .includes-card { padding: 1.2rem; }

  /* Add-ons */
  .addons-list { grid-template-columns: 1fr 1fr; gap: 0.6rem; }
  .addon-item { padding: 0.8rem 0.5rem; }
  .addon-icon { font-size: 1.5rem; }
  .addon-name { font-size: 0.8rem; }
  .addon-price { font-size: 0.85rem; }

  /* City-to-city grid */
  .city-transfer-grid { grid-template-columns: 1fr 1fr; }
  .city-transfer-card { padding: 1rem; }
  .city-transfer-route { font-size: 0.95rem; }
  .city-transfer-price { font-size: 1.3rem; }

  /* Service cards (tours/airports) */
  .service-card-grid { grid-template-columns: 1fr; gap: 1rem; }
  .service-hero { padding: 3rem 1rem 2rem; }
  .service-hero h1 { font-size: 2.2rem !important; }
  .service-hero p { font-size: 0.95rem; }

  /* Events */
  .events-hero { padding: 3rem 1rem 2rem; }
  .events-hero h1 { font-size: 1.9rem !important; }
  .events-hero p { font-size: 0.95rem; }
  .events-cat-chips { gap: 0.3rem; padding: 0 1rem; }
  .events-cat-chip { font-size: 10px; padding: 0.3rem 0.7rem; }
  .events-layout { padding: 2rem 1rem; }
  .events-month-label { font-size: 1.4rem; }
  .events-grid { grid-template-columns: 1fr; }
  .event-card { padding: 1rem; }
  .event-name { font-size: 0.95rem; }

  /* Testimonials */
  .testimonials { padding: 3rem 1rem; }
  .testimonials-title { font-size: 1.7rem; }
  .testimonials-grid { grid-template-columns: 1fr; gap: 1rem; }
  .testimonial-card { padding: 1.2rem; }
  .testimonial-text { font-size: 0.9rem; }

  /* FAQ */
  .faq-tabs { overflow-x: auto; flex-wrap: nowrap; }
  .faq-tab { flex: 0 0 auto; padding: 0.7rem 1rem; font-size: 13px; white-space: nowrap; }
  .faq-question { gap: 0.5rem; font-size: 0.9rem; padding: 1rem 0; }
  .faq-question-text { font-size: 14px; }
  .faq-answer { padding-left: 2rem; font-size: 0.85rem; }
  .faq-question-icon { font-size: 1rem; }

  /* Newsletter */
  .newsletter { padding: 2.5rem 1rem; }
  .newsletter h2 { font-size: 1.6rem; }
  .newsletter-form { flex-direction: column; gap: 0.5rem; }

  /* Press section */
  .press-section { padding: 2.5rem 1rem; }
  .press-title { font-size: 1.3rem; margin-bottom: 1.5rem; }
  .press-logos { gap: 1.2rem; row-gap: 1rem; }
  .press-logo { font-size: 1rem; }
  .press-logo small { font-size: 9px; }
  .trust-row { grid-template-columns: 1fr 1fr; gap: 0.6rem; margin-top: 2rem; }
  .trust-badge-card { padding: 0.9rem 0.5rem; }
  .trust-badge-icon { font-size: 1.4rem; }
  .trust-badge-title { font-size: 0.8rem; }
  .trust-badge-desc { font-size: 10px; }

  /* Footer */
  .footer { padding: 2.5rem 1rem 1.5rem; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-bottom: 1.5rem; }
  .footer h4 { font-size: 0.95rem; }
  .footer a, .footer p { font-size: 12px; }
  .footer-bottom { font-size: 11px; padding-top: 1rem; }

  /* Floating action buttons */
  .fab-container { bottom: 1rem; right: 1rem; gap: 0.5rem; }
  .fab { width: 48px; height: 48px; font-size: 1.2rem; }
  .fab-tooltip { display: none; }

  /* Recently viewed */
  .recently-viewed-section { padding: 1.5rem 1rem; }
  .recently-viewed-card { flex: 0 0 160px; }
  .recently-viewed-card img { height: 90px; }

  /* Modals & cards */
  .booking-card, .auth-card { padding: 1.2rem; border-radius: 8px; }
  .modal { width: calc(100% - 2rem); max-width: none; margin: 1rem; }
  .modal-content { padding: 1.2rem; }

  /* Search */
  .search-wrapper { max-width: 100%; }
  .search-suggestion { padding: 0.7rem 0.8rem; }
  .search-suggestion img { width: 45px; height: 32px; }
  .search-suggestion-name { font-size: 13px; }
  .search-suggestion-meta { font-size: 11px; }

  /* Auth form */
  .auth-page { padding: 2rem 1rem; }
  .auth-card { max-width: 100%; }

  /* Hotel info bar tabs */
  .hotel-detail-tabs { overflow-x: auto; }
  .hotel-detail-tab { flex: 0 0 auto; white-space: nowrap; padding: 0.7rem 1rem; font-size: 13px; }

  /* Quote form */
  .quote-form { padding: 1.5rem 1rem !important; }
}

/* ============ SMALL MOBILE (≤ 480px) ============ */
@media (max-width: 480px) {
  /* Even tighter on the smallest screens */
  h1 { font-size: 1.7rem !important; }
  h2, .section-title { font-size: 1.5rem !important; }
  .hero h1 { font-size: 1.85rem !important; }
  .section { padding: 2rem 0.8rem; }

  /* Single column grids */
  .fleet-grid, .hotel-grid { grid-template-columns: 1fr !important; gap: 0.8rem; }
  .hotel-img { height: 180px !important; }
  .fleet-img { height: 130px; }

  /* Stack everything in trust badges */
  .trust-row { grid-template-columns: 1fr; }
  .addons-list { grid-template-columns: 1fr 1fr; }
  .city-transfer-grid { grid-template-columns: 1fr; }

  /* Footer single column */
  .footer-grid { grid-template-columns: 1fr; }

  /* Promo features stack */
  .promo-features { grid-template-columns: 1fr; }

  /* Hero stats grid */
  .hero-stats { gap: 0.7rem; }
  .hero-stats > div { min-width: 70px; }

  /* Cookie banner full width */
  .cookie-banner { left: 0.5rem; right: 0.5rem; bottom: 0.5rem; padding: 1.2rem; }

  /* Mobile menu wider */
  .mobile-menu { width: 100%; max-width: 100%; }

  /* FABs slightly smaller */
  .fab { width: 44px; height: 44px; font-size: 1.1rem; }

  /* Hotel cards taller image */
  .hotel-card { font-size: 14px; }

  /* Booking buttons full width */
  .booking-step .btn { width: 100%; }
  .booking-step > div[style*="display:flex"] { flex-direction: column; gap: 0.5rem !important; }

  /* Dashboard sidebar items single line */
  .dashboard-sidebar-item { font-size: 12px; padding: 0.6rem 0.8rem; }

  /* Currency switcher inside mobile menu */
  .mobile-menu .currency-btn { padding: 0.5rem; font-size: 11px; }

  /* Lightbox */
  .lightbox img { max-height: 70vh; }
  .lightbox-close, .lightbox-nav { width: 40px; height: 40px; font-size: 1.1rem; }

  /* Resume booking banner */
  .resume-booking-banner { left: 0.5rem; right: 0.5rem; transform: translateY(150%); width: auto; max-width: none; }
  .resume-booking-banner.show { transform: translateY(0); }
}

/* ============ TOUCH-SPECIFIC IMPROVEMENTS ============ */
@media (pointer: coarse) {
  /* Larger tap targets everywhere */
  .nav-links a, .mobile-menu a { padding-top: 0.8rem; padding-bottom: 0.8rem; }
  .filter-option { padding: 0.55rem 0; }
  .faq-question { padding-top: 1.3rem; padding-bottom: 1.3rem; }
  .event-cta, .service-card { min-height: 44px; }

  /* Remove hover-only effects on touch devices */
  .hotel-card:hover { transform: none; }
  .fleet-card:hover { transform: none; }
}

/* ============ LANDSCAPE PHONE FIXES ============ */
@media (max-width: 900px) and (orientation: landscape) and (max-height: 500px) {
  .hero { min-height: 100vh !important; padding: 2rem 1rem !important; }
  .hero h1 { font-size: 1.8rem !important; }
  .hero p { font-size: 0.9rem; margin-bottom: 1rem !important; }
  .hero-stats { display: none; }
  .mobile-menu { padding: 3rem 1.5rem 1.5rem; }
  .mobile-menu a { padding: 0.6rem 0; font-size: 14px; }
}

/* ============ PRINT STYLES (bonus) ============ */
@media print {
  .navbar, .footer, .fab-container, .back-to-top, .cookie-banner,
  .mobile-menu, .resume-booking-banner, .promo-banner { display: none !important; }
  body { background: #fff; color: #000; }
  .section { padding: 1rem 0; page-break-inside: avoid; }
  a { color: #000; text-decoration: underline; }
}

/* =================================================================== */
/* ============ END V12 RESPONSIVE OVERHAUL =========================== */
/* =================================================================== */


/* Royal Ascot / event landing page */
.al-hero { position: relative; min-height: 80vh; display: flex; align-items: center; justify-content: center; text-align: center; background-size: cover; background-position: center; color: #fff; }
.al-hero::after { content:''; position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,10,12,0.55) 0%, rgba(10,10,12,0.35) 40%, rgba(10,10,12,0.75) 100%); }
.al-hero-inner { position: relative; z-index: 1; max-width: 880px; padding: 3rem 1.5rem; }
.al-back { position: absolute; top: 1.4rem; left: 1.6rem; z-index: 2; color: #fff; opacity: 0.85; font-size: 13px; font-weight: 600; cursor: pointer; text-decoration: none; }
.al-back:hover { opacity: 1; }
.al-eyebrow { letter-spacing: 3.5px; text-transform: uppercase; font-size: 12.5px; color: var(--gold); font-weight: 700; margin-bottom: 1.1rem; }
.al-h1 { font-family: var(--font-display, 'Playfair Display', serif); font-weight: 700; font-size: clamp(2.6rem, 6.5vw, 4.6rem); line-height: 1.02; margin: 0 0 1.1rem; color: #fff; }
.al-h1 .al-yr { color: var(--gold); }
.al-meta { font-size: 1.05rem; color: rgba(255,255,255,0.92); margin-bottom: 2rem; letter-spacing: 0.4px; }
.al-meta .al-dot { color: var(--gold); margin: 0 0.5rem; }
.al-hero-cta { display: flex; gap: 0.8rem; justify-content: center; flex-wrap: wrap; }
.btn-outline-light { background: transparent; border: 1px solid rgba(255,255,255,0.55); color: #fff; }
.btn-outline-light:hover { background: rgba(255,255,255,0.12); }
.al-intro { max-width: 800px; margin: 0 auto; padding: 4.5rem 1.5rem 2rem; text-align: center; }
.al-intro p { font-family: var(--font-display, serif); font-size: clamp(1.2rem, 2.4vw, 1.55rem); line-height: 1.6; color: var(--dark); font-style: italic; margin: 0; }
.al-intro::after { content:'✦'; display:block; color: var(--gold); margin-top: 1.4rem; letter-spacing: 0.6em; }
.al-stats { display: flex; flex-wrap: wrap; justify-content: center; gap: 2rem 3.2rem; background: linear-gradient(180deg, #141414, #1f1f1f); padding: 3.2rem 1.5rem; }
.al-stat { text-align: center; }
.al-stat-num { font-family: var(--font-display, serif); font-size: clamp(2.2rem, 4vw, 3rem); color: var(--gold); font-weight: 700; line-height: 1; }
.al-stat-label { font-size: 12px; letter-spacing: 1.2px; text-transform: uppercase; color: #b8b8b8; margin-top: 0.55rem; }
.al-feature { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.al-feature.dark { background: linear-gradient(180deg, #141414, #1c1c1c); color: #fff; }
.al-feature-img { min-height: 400px; background-size: cover; background-position: center; overflow: hidden; }
.al-feature-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.al-feature.fleet .al-feature-img { background: radial-gradient(circle at 50% 45%, #f6f1e7, #e6dcc7); display: flex; align-items: center; justify-content: center; }
.al-feature.fleet .al-feature-img img { object-fit: contain; padding: 2.5rem; filter: drop-shadow(0 18px 30px rgba(0,0,0,0.22)); }
.al-feature.reverse .al-feature-img { order: 2; }
.al-feature-body { padding: clamp(2.4rem, 4vw, 4rem) clamp(1.6rem, 4vw, 3.4rem); display: flex; flex-direction: column; justify-content: center; }
.al-feature-tag { letter-spacing: 2.5px; text-transform: uppercase; font-size: 11px; color: var(--gold); font-weight: 700; margin-bottom: 0.7rem; }
.al-feature-body h2 { font-family: var(--font-display, serif); font-size: clamp(1.6rem, 3vw, 2.15rem); margin: 0 0 1.2rem; line-height: 1.15; color: var(--dark); }
.al-feature.dark .al-feature-body h2 { color: #fff; }
.al-feature-body p { line-height: 1.78; margin: 0 0 1rem; color: #444; font-size: 15px; }
.al-feature.dark .al-feature-body p { color: #cfcfcf; }
.al-feat-bullets { list-style: none; padding: 0; margin: 0.4rem 0 0; }
.al-feat-bullets li { position: relative; padding-left: 1.5rem; margin-bottom: 0.55rem; font-size: 14px; line-height: 1.5; }
.al-feat-bullets li::before { content: '✓'; position: absolute; left: 0; color: var(--gold); font-weight: 700; }
.al-cards { display: grid; gap: 0.7rem; margin-top: 1.2rem; }
.al-card { border: 1px solid rgba(201,169,97,0.45); border-radius: 10px; padding: 0.85rem 1.1rem; }
.al-card b { color: var(--gold); font-family: var(--font-display, serif); font-size: 1.02rem; display: block; margin-bottom: 0.15rem; }
.al-card span { font-size: 13px; color: #cfcfcf; }
.al-cta-band { background: linear-gradient(135deg, #0e0e0e, #20201d); text-align: center; padding: clamp(3.5rem, 7vw, 5.5rem) 1.5rem; color: #fff; }
.al-cta-band h2 { font-family: var(--font-display, serif); font-size: clamp(1.8rem, 4vw, 2.4rem); color: #fff; margin: 0 0 0.6rem; }
.al-cta-band p { color: #c8c8c8; max-width: 560px; margin: 0 auto 0.4rem; font-size: 14.5px; }
.al-cta-band .al-addr { color: var(--gold); font-size: 13.5px; letter-spacing: 0.5px; margin: 0.4rem 0 1.7rem; }
.al-cta-band .al-cta-row { display: flex; gap: 0.8rem; justify-content: center; flex-wrap: wrap; }
@media (max-width: 860px) {
  .al-feature { grid-template-columns: 1fr; }
  .al-feature .al-feature-img { min-height: 260px; order: -1 !important; }
  .al-stats { gap: 1.4rem 2.2rem; }
}



.kc-unit-switcher{ display:inline-flex; align-items:center; border:1px solid var(--border,#e5e5e5); border-radius:999px; overflow:hidden; margin-right:.55rem; background:#fff; flex:0 0 auto; }
.kc-unit-switcher .kc-u{ border:none; background:transparent; color:#888; font:inherit; font-size:12px; font-weight:700; letter-spacing:.03em; padding:.32rem .62rem; cursor:pointer; transition:background .15s,color .15s; }
.kc-unit-switcher .kc-u.on{ background:var(--gold,#c9a961); color:#1a1a1a; }
.kc-unit-switcher .kc-u:not(.on):hover{ color:#1a1a1a; }
@media (max-width:600px){ .kc-unit-switcher{ margin-right:.35rem; } .kc-unit-switcher .kc-u{ padding:.3rem .5rem; font-size:11px; } }


/* ===== Hotel detail — rich data-driven sections ===== */
.hotel-loc-grid { display:flex; flex-direction:column; gap:2.2rem; margin-top:1.6rem; }
.hotel-map-wrap { position:relative; border-radius:14px; overflow:hidden; box-shadow:0 14px 36px rgba(0,0,0,0.14); border:1px solid var(--border); height:440px; }
.hotel-map { width:100%; height:100%; border:0; display:block; background:#e8eef0; z-index:0; }
.hotel-map-wrap:fullscreen { height:100%; width:100%; border-radius:0; }
.hotel-map-wrap:fullscreen .hotel-map { height:100%; }
.hotel-map-rating, .hotel-map-link { z-index:500; }
.hotel-map-rating { position:absolute; top:14px; left:14px; background:rgba(10,10,10,0.9); border:1px solid rgba(201,169,97,0.5); border-radius:12px; padding:0.55rem 0.85rem; display:flex; flex-direction:column; line-height:1; backdrop-filter:blur(4px); }
.hotel-map-rating strong { color:var(--gold); font-size:1.45rem; font-family:'Playfair Display',serif; }
.hotel-map-rating span { font-size:10px; text-transform:uppercase; letter-spacing:0.6px; color:#ccc; margin-top:4px; }
.hotel-map-link { position:absolute; bottom:12px; right:12px; background:rgba(10,10,10,0.85); color:var(--gold); font-size:12px; padding:0.4rem 0.7rem; border-radius:7px; text-decoration:none; border:1px solid rgba(201,169,97,0.4); }
.hotel-map-link:hover { background:var(--gold); color:#0a0a0a; }
.hotel-near-cols { display:grid; grid-template-columns:repeat(4, 1fr); gap:1.6rem 2.2rem; align-items:start; }
.hotel-near-colgroup { display:grid; gap:1.6rem; align-content:start; }
@media (max-width:900px){ .hotel-near-cols { grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .hotel-near-cols { grid-template-columns:1fr; } }
.hotel-near-col-title { font-size:11px; text-transform:uppercase; letter-spacing:1.2px; color:var(--gold); font-weight:700; margin-bottom:0.5rem; padding-bottom:0.4rem; border-bottom:1px solid var(--border); }
.hotel-near-list { list-style:none; margin:0; padding:0; }
.poi-row { display:flex; align-items:flex-start; gap:0.55rem; padding:0.4rem 0; font-size:14px; line-height:1.35; cursor:default; }
.poi-row .poi-ic { width:17px; height:17px; flex:0 0 auto; margin-top:1px; color:var(--gray); }
.poi-name { color:#2563a6; }
.poi-row:hover .poi-name { text-decoration:underline; }
.poi-row:hover .poi-ic { color:var(--gold); }
.poi-dot { color:#b9bcc0; }
.poi-dist { color:var(--gray); white-space:nowrap; }

/* "View hotels nearby" button + fullscreen control over the map */
.map-nearby-btn {
  position:absolute; top:13px; right:60px; z-index:600;
  background:#f5c451; color:#2a2a2a; border:none; border-radius:9px;
  padding:0.6rem 1.1rem; font-size:13.5px; font-weight:700; cursor:pointer;
  box-shadow:0 3px 12px rgba(0,0,0,0.25); transition:background .2s, transform .2s;
}
.map-nearby-btn:hover { background:#f0b73a; transform:translateY(-1px); }
.map-fs-btn {
  position:absolute; top:13px; right:13px; z-index:600;
  width:36px; height:36px; display:flex; align-items:center; justify-content:center;
  background:#fff; color:#444; border:1px solid rgba(0,0,0,0.18); border-radius:8px;
  cursor:pointer; box-shadow:0 2px 8px rgba(0,0,0,0.2); padding:0;
}
.map-fs-btn svg { width:18px; height:18px; }
.map-fs-btn:hover { background:#f5f5f5; color:var(--dark); }
/* push Leaflet zoom controls below the fullscreen button */
.hotel-map-wrap .leaflet-top.leaflet-right { margin-top:44px; }
.hotel-map-wrap .leaflet-control-zoom a { color:#444; }

/* Map hotel info-card popup */
.map-hotel-popup .leaflet-popup-content-wrapper { padding:0; border-radius:12px; overflow:hidden; box-shadow:0 10px 30px rgba(0,0,0,0.25); }
.map-hotel-popup .leaflet-popup-content { margin:0; width:auto !important; }
.map-hotel-popup .leaflet-popup-tip { box-shadow:0 6px 14px rgba(0,0,0,0.18); }
.map-hotel-card { display:flex; align-items:stretch; gap:0; background:#fff; }
.map-hotel-thumb { width:78px; height:78px; object-fit:cover; flex:0 0 auto; }
.map-hotel-info { display:flex; flex-direction:column; justify-content:center; gap:4px; padding:0.55rem 0.7rem; flex:1 1 auto; }
.map-hotel-stars { color:var(--gold-text); font-size:12px; letter-spacing:1px; }
.map-hotel-name { font-family:'Playfair Display',serif; font-size:1.02rem; font-weight:600; color:var(--dark); line-height:1.15; }
.map-hotel-rating { align-self:flex-start; margin:0.55rem 0.6rem 0 0; background:#2e9d4f; color:#fff; font-weight:700; font-size:1rem; padding:0.3rem 0.5rem; border-radius:7px 7px 7px 0; min-width:34px; text-align:center; }

/* Description + facts sidebar (two-column) */
.hotel-desc-layout { display:grid; grid-template-columns:1.65fr 1fr; gap:2.5rem; max-width:1120px; margin:0 auto; align-items:start; }
@media (max-width:860px){ .hotel-desc-layout { grid-template-columns:1fr; gap:1.8rem; } }
.hotel-desc { display:grid; gap:1.6rem; }
.hotel-desc-h { display:flex; align-items:center; gap:0.55rem; font-family:'Playfair Display',serif; color:var(--dark); font-size:1.2rem; margin-bottom:0.55rem; }
.hotel-desc-ic { width:20px; height:20px; color:var(--gold); flex:0 0 auto; }
.hotel-desc-block p { color:#555; line-height:1.8; font-size:15px; }
.hotel-facts2 { background:#fff; border:1px solid var(--border); border-radius:14px; padding:1.5rem 1.6rem; position:sticky; top:90px; box-shadow:0 8px 24px rgba(0,0,0,0.05); }
.hotel-facts2-title { font-family:'Playfair Display',serif; font-size:1.3rem; color:var(--dark); margin-bottom:1.2rem; }
.hotel-fact2 { padding:0.7rem 0; border-bottom:1px solid var(--border); }
.hotel-fact2:last-child { border-bottom:none; }
.hotel-fact2-label { font-size:12px; color:var(--gray); margin-bottom:0.25rem; }
.hotel-fact2-val { font-size:14.5px; color:var(--dark); font-weight:500; line-height:1.4; }

/* Services & amenities — categories with icons */
.hotel-am-heading { text-align:center; font-family:'Playfair Display',serif; font-size:1.8rem; margin:3.2rem 0 1.8rem; }
.hotel-am-grid { column-count:4; column-gap:2.4rem; max-width:1160px; margin:0 auto; }
@media (max-width:980px){ .hotel-am-grid { column-count:3; } }
@media (max-width:680px){ .hotel-am-grid { column-count:2; } }
@media (max-width:460px){ .hotel-am-grid { column-count:1; } }
.hotel-am-cat { break-inside:avoid; -webkit-column-break-inside:avoid; page-break-inside:avoid; margin-bottom:1.7rem; }
.hotel-am-cat-pop { background:#f4f3f1; border-radius:14px; padding:1rem 1.2rem 1.1rem; }
.hotel-am-cat-title { display:flex; align-items:center; gap:0.5rem; font-size:15px; font-weight:700; color:var(--dark); margin-bottom:0.85rem; }
.hotel-am-cat-title .kc-cat-ic { width:20px; height:20px; flex:0 0 auto; color:#33312e; }
.hotel-am-cat-pop .hotel-am-cat-title .kc-cat-ic { color:#ef8a2b; }
.hotel-am-list { list-style:none; margin:0; padding:0; display:grid; gap:0.45rem; }
.am-item { display:flex; align-items:flex-start; gap:0.5rem; font-size:14px; color:#3a3a3a; line-height:1.45; }
.am-bullet { color:var(--gold); font-weight:700; line-height:1.4; }
.am-label { flex:1; }
.hotel-am-note { display:block; color:var(--gray); font-style:normal; font-size:12px; margin-top:1px; }

/* Policies (light) — green time bars + spot grid + additional info */
.pol2 { max-width:1060px; margin:0 auto; display:grid; gap:1.6rem; }
.pol2-block { border:1px solid var(--border); border-radius:14px; overflow:hidden; background:#fff; }
.pol2-head { background:#ecebe8; padding:1rem 1.5rem; font-family:'Playfair Display',serif; font-size:1.2rem; font-weight:700; color:var(--dark); }
.pol2-card { padding:1.6rem 1.8rem; }
.pol2-card-h { display:flex; align-items:center; gap:0.55rem; font-weight:700; font-size:1.02rem; color:var(--dark); margin-bottom:1.2rem; }
.pol2-ic { width:21px; height:21px; color:var(--gold); flex:0 0 auto; }
.pol2-times { display:grid; grid-template-columns:auto 1fr; gap:1rem 2rem; align-items:center; max-width:680px; }
.pol2-tlabel { font-size:13px; color:var(--gray); }
.pol2-tlabel strong { display:block; font-size:16px; color:var(--dark); margin-top:2px; }
.pol2-tbar { padding-bottom:1.1rem; }
.tbar { position:relative; height:7px; background:#e6e6e6; border-radius:4px; }
.tbar-fill { position:absolute; top:0; height:100%; background:#46b450; border-radius:4px; }
.tbar-mark { position:absolute; top:11px; transform:translateX(-50%); font-size:12px; color:var(--gray); white-space:nowrap; }
.pol2-note { color:var(--gray); font-size:13px; margin-top:1.2rem; }
.pol2-spot { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem 3rem; }
@media (max-width:600px){ .pol2-spot { grid-template-columns:1fr; } .pol2-times { grid-template-columns:1fr; gap:0.5rem; } }
.pol2-kv { display:flex; flex-direction:column; gap:0.2rem; }
.pol2-kv span { font-size:12px; color:var(--gray); }
.pol2-kv strong { font-size:14.5px; color:var(--dark); font-weight:600; line-height:1.4; }
.pol2-addinfo h4 { font-family:'Playfair Display',serif; font-size:1.05rem; color:var(--dark); margin:1.3rem 0 0.5rem; }
.pol2-addinfo h4:first-child { margin-top:0; }
.pol2-addinfo p { color:#555; font-size:14px; line-height:1.65; margin-bottom:0.45rem; }
.pol2-muted { color:var(--gray) !important; font-size:12.5px !important; font-style:italic; margin-top:0.7rem; }

/* Rooms & Rates */
.rooms-list { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1fr); gap:1.6rem; }
.room-card { border:1px solid var(--border); border-radius:14px; overflow:hidden; background:#fff; box-shadow:0 6px 20px rgba(0,0,0,0.05); }
.room-card-top { display:flex; gap:1.2rem; padding:1.1rem; align-items:flex-start; }
.room-photo { width:154px; height:112px; flex:0 0 auto; border-radius:10px; background-size:cover; background-position:center; background-color:#ecebe8; border:1px solid rgba(0,0,0,0.06); box-shadow:0 3px 10px rgba(0,0,0,0.10); transition:transform .35s ease, box-shadow .35s ease; }
.room-card:hover .room-photo { transform:translateY(-1px); box-shadow:0 6px 16px rgba(0,0,0,0.14); }
.room-head { flex:1; min-width:0; }
.room-name { font-family:'Playfair Display',serif; font-size:1.3rem; color:var(--dark); margin-bottom:0.15rem; }
.room-bed { color:var(--gray); font-size:13.5px; margin-bottom:0.7rem; }
.room-chips { display:flex; flex-wrap:wrap; gap:0.5rem; }
.room-chip { display:inline-flex; align-items:center; gap:0.35rem; background:#f4f3f1; border-radius:7px; padding:0.35rem 0.6rem; font-size:12.5px; color:#3a3a3a; white-space:nowrap; }
.room-chip-ic { width:15px; height:15px; flex:0 0 auto; color:#555; }
.room-rate { border-top:1px solid var(--border); overflow-x:auto; }
.room-rate-head, .room-rate-row { display:grid; grid-template-columns:minmax(230px,1.7fr) 96px 150px 150px; align-items:center; min-width:620px; }
.room-rate-head { background:#2b3340; color:#cfd6df; font-size:12.5px; font-weight:600; }
.room-rate-head span { padding:0.7rem 1rem; }
.room-rate-row { padding:0.4rem 0; }
.room-rate-row + .room-rate-row { border-top:1px solid var(--border); }
.room-rate-row > div { padding:0.7rem 1rem; font-size:13px; }
.rr-room { display:flex; gap:0.6rem; align-items:flex-start; }
.rr-bed { width:20px; height:20px; flex:0 0 auto; color:var(--gold); margin-top:1px; }
.rr-count { font-size:13px; color:var(--gray); }
.rr-config { color:var(--gray); font-size:13px; margin:0.1rem 0; }
.rr-sub { color:var(--dark); font-size:12.5px; }
.rr-meals { color:#2e9d4f; font-weight:600; }
.rr-cancel { color:var(--gray); }
.rr-price strong { display:block; font-size:15px; color:var(--dark); font-weight:600; }
.rr-from { font-size:11px; color:var(--gray); font-weight:500; }
.rr-price span { font-size:11.5px; color:var(--gray); }
.rr-pay { color:#2e9d4f; font-weight:500; }
.rr-i { display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px; border-radius:4px; background:#ececec; color:#8a8a8a; font-size:10px; font-style:italic; font-weight:700; vertical-align:middle; cursor:pointer; transition:background .15s, color .15s; }
.rr-i:hover { background:var(--gold); color:#fff; }
.kc-infopop { position:absolute; z-index:4000; max-width:250px; background:#1f2530; color:#fff; font-size:12.5px; line-height:1.45; padding:0.6rem 0.8rem; border-radius:9px; box-shadow:0 12px 30px rgba(0,0,0,0.34); }

/* Guests & Rooms occupancy selector */
.occ-trigger { display:flex; align-items:center; justify-content:space-between; width:100%; text-align:left; cursor:pointer; background:#fff; color:var(--dark); }
.occ-caret { color:var(--gray); font-size:12px; }
.occ-panel { display:none; position:absolute; z-index:2500; top:calc(100% + 6px); left:0; right:0; background:#fff; border:1px solid var(--border); border-radius:14px; box-shadow:0 18px 50px rgba(0,0,0,0.18); padding:1.3rem; }
.occ-panel.open { display:block; }
.occ-room { padding-bottom:0.4rem; }
.occ-room + .occ-room { border-top:1px solid var(--border); padding-top:1.1rem; margin-top:0.4rem; }
.occ-room-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:0.7rem; }
.occ-room-title { font-family:'Playfair Display',serif; font-size:1.15rem; font-weight:700; color:var(--dark); }
.occ-remove { background:none; border:none; color:#d6453b; font-size:14px; font-weight:600; cursor:pointer; padding:0; }
.occ-fields { display:grid; grid-template-columns:1fr 1.4fr; gap:1.1rem; align-items:start; }
.occ-flabel { font-size:13px; color:var(--gray); margin-bottom:0.4rem; }
.occ-step { display:inline-flex; align-items:center; border:1px solid #e3e3e3; border-radius:12px; overflow:hidden; }
.occ-step button { width:40px; height:42px; border:none; background:#fff; font-size:19px; line-height:1; cursor:pointer; color:#333; }
.occ-step button:disabled { color:#c8c8c8; cursor:not-allowed; }
.occ-step button:not(:disabled):hover { background:#f7f7f7; }
.occ-step span { min-width:40px; text-align:center; font-size:16px; font-weight:600; color:var(--dark); }
.occ-children { display:flex; flex-direction:column; gap:0.5rem; }
.occ-child { display:flex; align-items:center; gap:0.4rem; }
.occ-child select { flex:1; height:42px; border:1px solid #e3e3e3; border-radius:12px; padding:0 0.9rem; font-size:14px; color:var(--dark); background:#fff; cursor:pointer; }
.occ-childx { width:30px; height:30px; flex:0 0 auto; border:none; background:#f1f1f1; color:#888; border-radius:50%; font-size:16px; cursor:pointer; line-height:1; }
.occ-childx:hover { background:#e6e6e6; color:#d6453b; }
.occ-addchild { width:100%; height:46px; border:1.5px solid #e3e3e3; border-radius:12px; background:#fff; color:var(--dark); font-size:15px; cursor:pointer; text-align:left; padding:0 1rem; transition:border-color .2s; }
.occ-addchild:hover { border-color:var(--gold); }
.occ-foot { display:flex; align-items:center; justify-content:space-between; margin-top:1.2rem; padding-top:1.1rem; border-top:1px solid var(--border); }
.occ-addroom { background:none; border:none; color:#2563eb; font-size:15px; font-weight:600; cursor:pointer; padding:0.4rem 0; display:inline-flex; align-items:center; gap:0.4rem; }
.occ-addroom .occ-plus { font-size:18px; }
.occ-done { background:#f5c451; color:#2a2a2a; border:none; border-radius:12px; padding:0.7rem 2rem; font-size:15px; font-weight:700; cursor:pointer; }
.occ-done:hover { background:#f0b73a; }
@media (max-width:520px){ .occ-fields { grid-template-columns:1fr; } }

/* Tiered free airport-transfer reward banner */
.xfer-reward { display:flex; align-items:center; gap:1rem; border-radius:13px; padding:1rem 1.2rem; margin-bottom:1.1rem; border:1px solid var(--gold); }
.xfer-reward .xfer-ic { width:46px; height:46px; flex:0 0 auto; border-radius:50%; display:flex; align-items:center; justify-content:center; }
.xfer-reward .xfer-ic .kc-icon { width:22px; height:22px; }
.xfer-reward strong { display:block; font-size:15px; margin-bottom:3px; }
.xfer-reward span { display:block; font-size:13px; line-height:1.55; }
.xfer-reward b { font-weight:700; }
/* prompt + nudge = soft cream */
.xfer-prompt, .xfer-nudge { background:#fff9eb; border-color:rgba(201,169,97,0.55); }
.xfer-prompt .xfer-ic, .xfer-nudge .xfer-ic { background:rgba(201,169,97,0.16); color:var(--gold); }
.xfer-prompt strong, .xfer-nudge strong { color:var(--dark); }
.xfer-prompt span, .xfer-nudge span { color:var(--gray); }
.xfer-prompt b, .xfer-nudge b { color:var(--gold); }
/* unlocked = celebratory dark-gold */
.xfer-unlocked { background:linear-gradient(135deg,#141009 0%,#1d160b 55%,#241b0c 100%); border-color:rgba(201,169,97,0.6); box-shadow:0 12px 32px rgba(0,0,0,0.2); }
.xfer-unlocked .xfer-ic { background:rgba(201,169,97,0.18); border:1px solid rgba(201,169,97,0.5); color:var(--gold); }
.xfer-unlocked strong { color:var(--gold); }
.xfer-unlocked span { color:#d8d8d8; }
.xfer-unlocked b { color:#fff; }
/* ===== Spend-based tiered rewards ===== */
.xfer-reward.xfer-tier { align-items:flex-start; }
.tier-badge { display:inline-block; margin-left:.5rem; padding:.12rem .55rem; border-radius:999px; font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; vertical-align:middle; }
.tier-badge-bronze   { background:linear-gradient(135deg,#a9713c,#cd9b6a); color:#1c1206; }
.tier-badge-silver   { background:linear-gradient(135deg,#9aa3ad,#d8dee6); color:#1b1f24; }
.tier-badge-gold     { background:linear-gradient(135deg,#caa14a,#f3d488); color:#241b07; }
.tier-badge-platinum { background:linear-gradient(135deg,#cfd6e6,#f3f6ff); color:#141824; }
.tier-perks { list-style:none; margin:.55rem 0 .4rem; padding:0; display:grid; gap:.28rem; }
.tier-perks li { position:relative; padding-left:1.35rem; font-size:13px; line-height:1.5; color:#e6e6e6; }
.tier-perks li::before { content:'✓'; position:absolute; left:0; top:0; color:var(--gold); font-weight:800; }
.tier-next { display:block; margin-top:.5rem; padding-top:.5rem; border-top:1px solid rgba(201,169,97,0.25); font-size:12.5px; color:#cdb98a !important; }
.tier-next b { color:#fff; }
/* tier accent on the left border */
.xfer-tier.tier-bronze   { border-left:4px solid #cd9b6a; }
.xfer-tier.tier-silver   { border-left:4px solid #d8dee6; }
.xfer-tier.tier-gold     { border-left:4px solid #f3d488; }
.xfer-tier.tier-platinum { border-left:4px solid #f3f6ff; }
.tier-ladder { display:block; margin-top:.5rem; font-size:12px; color:var(--gray); }
.tier-ladder b { color:var(--gold); }
/* ===== Hotel price & rewards chart ===== */
.hpc-wrap { max-width:1400px; margin:0 auto; }
.hpc-legend { display:flex; flex-wrap:wrap; gap:1rem 1.5rem; align-items:center; justify-content:center; margin-bottom:1.4rem; font-size:12.5px; color:var(--gray); }
.hpc-legend .hpc-key { display:inline-flex; align-items:center; gap:.4rem; }
.hpc-swatch { width:16px; height:10px; border-radius:3px; display:inline-block; }
.hpc-swatch.range { background:linear-gradient(90deg,#cdb98a,#f5c451); }
.hpc-tierdot { width:11px; height:11px; border-radius:50%; display:inline-block; border:1px solid rgba(0,0,0,.15); }
.hpc-axis { position:relative; height:22px; margin:0 0 .4rem; }
.hpc-axis .hpc-tick { position:absolute; top:0; transform:translateX(-50%); font-size:10.5px; color:var(--gray); white-space:nowrap; }
.hpc-axis .hpc-tickline { position:absolute; top:16px; width:1px; height:6px; background:var(--border); transform:translateX(-50%); }
.hpc-rows { display:grid; gap:.5rem; }
.hpc-row { display:grid; grid-template-columns:210px 1fr; align-items:center; gap:.8rem; }
.hpc-name { font-size:13px; font-weight:600; color:var(--dark); text-align:right; line-height:1.25; }
.hpc-name small { display:block; font-weight:500; color:var(--gray); font-size:11px; }
.hpc-track { position:relative; height:26px; background:#f4f1ea; border-radius:13px; }
.hpc-bar { position:absolute; top:4px; height:18px; border-radius:9px; background:linear-gradient(90deg,#cdb98a,#f5c451); box-shadow:0 1px 3px rgba(0,0,0,.12); }
.hpc-bar.single { background:#cdb98a; }
.hpc-minlbl, .hpc-maxlbl, .hpc-rnglbl { position:absolute; top:5px; font-size:10.5px; font-weight:700; color:#5a4a1e; white-space:nowrap; }
.hpc-tline { position:absolute; top:-3px; width:2px; height:32px; }
.hpc-tline.bronze   { background:#cd9b6a; }
.hpc-tline.silver   { background:#aab2bd; }
.hpc-tline.gold     { background:#e6b84a; }
.hpc-tline.platinum { background:#9fb0d0; }
.hpc-onrequest { font-size:12px; color:var(--gray); font-style:italic; }
.hpc-note { max-width:1100px; margin:1.6rem auto 0; padding:1rem 1.2rem; background:#fff9eb; border:1px solid rgba(201,169,97,.4); border-radius:12px; font-size:13px; line-height:1.6; color:var(--dark); }
.hpc-note b { color:var(--gold); }
@media (max-width:680px){
  .hpc-row { grid-template-columns:120px 1fr; padding-right:18px; }
  .hpc-name { font-size:11.5px; }
  .hpc-name small { display:none; }
}
/* ===== Hotel price & rewards chart — interactive ===== */
.hpc-sticky { position:sticky; top:72px; z-index:6; background:#fff; padding:.7rem 0 .55rem; box-shadow:0 8px 14px -10px rgba(0,0,0,.18); }
@media (max-width:768px){ .hpc-sticky { top:62px; } }
.hpc-toolbar { display:flex; flex-wrap:wrap; gap:.65rem 1.2rem; align-items:center; justify-content:space-between; margin-bottom:.7rem; }
.hpc-summary { font-size:13px; color:var(--gray); } .hpc-summary b { color:var(--dark); }
.hpc-controls { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }
.hpc-search { padding:.5rem .8rem; border:1px solid var(--border); border-radius:8px; font-size:13px; min-width:175px; }
.hpc-search:focus { outline:none; border-color:var(--gold); }
.hpc-chips { display:inline-flex; gap:.3rem; }
.hpc-chip { padding:.45rem .85rem; border:1px solid var(--border); background:#fff; border-radius:999px; font-size:12.5px; font-weight:600; cursor:pointer; color:var(--dark); transition:all .15s; }
.hpc-chip:hover { border-color:var(--gold); }
.hpc-chip.on { background:var(--gold); border-color:var(--gold); color:#1c1306; }
.hpc-sort { padding:.5rem .7rem; border:1px solid var(--border); border-radius:8px; font-size:13px; background:#fff; cursor:pointer; }
.hpc-budget { display:flex; align-items:center; gap:.6rem; font-size:12.5px; color:var(--gray); width:100%; }
.hpc-budget label b { color:var(--gold); }
.hpc-range { flex:1; max-width:360px; accent-color:var(--gold); cursor:pointer; }
.hpc-clear { color:var(--gold); cursor:pointer; text-decoration:underline; font-size:12px; }
.hpc-tierkey { cursor:pointer; padding:.18rem .5rem; border-radius:999px; transition:background .15s; }
.hpc-tierkey:hover { background:rgba(201,169,97,.12); }
.hpc-tierkey.on { background:rgba(201,169,97,.22); color:var(--dark); font-weight:700; }
.hpc-axisrow { margin-top:.1rem; }
.hpc-hrow { transition:opacity .2s, background .15s; border-radius:8px; cursor:pointer; }
.hpc-hrow:hover { background:rgba(201,169,97,.08); }
.hpc-hrow.dim { opacity:.3; }
.hpc-stars-ic { color:var(--gold); font-size:10px; letter-spacing:-1px; }
.hpc-badge { display:inline-block; margin-left:.4rem; padding:.04rem .42rem; border-radius:999px; font-size:9.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; vertical-align:middle; }
.hpc-badge.bronze { background:linear-gradient(135deg,#a9713c,#cd9b6a); color:#1c1206; }
.hpc-badge.silver { background:linear-gradient(135deg,#9aa3ad,#d8dee6); color:#1b1f24; }
.hpc-badge.gold { background:linear-gradient(135deg,#caa14a,#f3d488); color:#241b07; }
.hpc-badge.platinum { background:linear-gradient(135deg,#cfd6e6,#f3f6ff); color:#141824; }
.hpc-bar.s5 { background:linear-gradient(90deg,#caa14a,#f3d488); }
.hpc-bar.s4 { background:linear-gradient(90deg,#cdb98a,#e6d2a4); }
.hpc-bar { animation:hpcGrow .55s cubic-bezier(.2,.7,.3,1) both; transform-origin:left center; }
@keyframes hpcGrow { from { transform:scaleX(0); opacity:.35; } to { transform:scaleX(1); opacity:1; } }
.hpc-budgetline { position:absolute; top:-3px; width:2px; height:32px; background:#1f9d6b; box-shadow:0 0 0 2px rgba(31,157,107,.18); }
.hpc-empty { text-align:center; color:var(--gray); padding:2.5rem 1rem; font-size:14px; } .hpc-empty a { color:var(--gold); cursor:pointer; text-decoration:underline; }
.hpc-tip { position:fixed; z-index:9999; display:none; pointer-events:none; max-width:280px; background:#141009; color:#e6e6e6; border:1px solid rgba(201,169,97,.5); border-radius:10px; padding:.7rem .85rem; font-size:12.5px; line-height:1.5; box-shadow:0 12px 30px rgba(0,0,0,.35); }
.hpc-tip-name { font-weight:700; color:#fff; font-size:13.5px; }
.hpc-tip-stars { color:var(--gold); font-size:10px; letter-spacing:-1px; }
.hpc-tip-area { color:#bdbdbd; font-size:11.5px; margin-bottom:.35rem; }
.hpc-tip-row { margin-top:.25rem; } .hpc-tip-row b { color:#fff; } .hpc-tip-muted { color:#bdbdbd; }
.hpc-tip-cta { margin-top:.45rem; color:var(--gold); font-weight:700; font-size:11.5px; }
@media (max-width:680px){ .hpc-controls { width:100%; } .hpc-search { flex:1; } }
.hpc-tline.faint { opacity:.22; }
/* ===== Price chart — extended (nights, band, drawer, compare, badges) ===== */
.hpc-row2 { display:flex; flex-wrap:wrap; gap:.55rem 1.3rem; align-items:center; margin-top:.55rem; }
.hpc-stepper, .hpc-band { display:inline-flex; align-items:center; gap:.4rem; font-size:12.5px; color:var(--gray); }
.hpc-stepper button { width:26px; height:26px; border:1px solid var(--border); background:#fff; border-radius:6px; font-size:15px; font-weight:700; cursor:pointer; color:var(--dark); line-height:1; }
.hpc-stepper button:hover { border-color:var(--gold); color:var(--gold); }
.hpc-stepper b { min-width:62px; text-align:center; color:var(--dark); }
.hpc-budget label { white-space:nowrap; }
.hpc-rewardbanner { margin-top:.6rem; font-size:12.5px; color:#5a4a1e; background:#fff7e6; border:1px solid rgba(201,169,97,.4); border-radius:8px; padding:.45rem .7rem; }
.hpc-rewardbanner:empty { display:none; }
.hpc-rewardbanner b { color:var(--gold); }
.hpc-rb-ic { margin-right:.2rem; }
.hpc-vbadge { display:inline-block; margin-left:.4rem; padding:.04rem .42rem; border-radius:999px; font-size:9px; font-weight:800; letter-spacing:.03em; text-transform:uppercase; background:#1f2a44; color:#cfe0ff; vertical-align:middle; }
.hpc-pin { width:20px; height:20px; border:1px solid var(--border); background:#fff; border-radius:6px; font-size:12px; font-weight:800; line-height:1; cursor:pointer; color:var(--gray); margin-right:.35rem; vertical-align:middle; padding:0; }
.hpc-pin:hover { border-color:var(--gold); color:var(--gold); }
.hpc-pin.on { background:var(--gold); border-color:var(--gold); color:#1c1306; }
.hpc-tip-perks { list-style:none; margin:.35rem 0 0; padding:0; }
.hpc-tip-perks li { position:relative; padding-left:1rem; font-size:11.5px; color:#d6d6d6; line-height:1.45; }
.hpc-tip-perks li::before { content:'✓'; position:absolute; left:0; color:var(--gold); }
.hpc-tip-chf { margin-top:.4rem; color:#cdb98a; font-size:11.5px; }
.hpc-drawer-backdrop { position:fixed; inset:0; background:rgba(10,8,4,.45); opacity:0; visibility:hidden; transition:opacity .25s; z-index:9998; }
.hpc-drawer-backdrop.open { opacity:1; visibility:visible; }
.hpc-drawer { position:fixed; top:0; right:0; height:100%; width:380px; max-width:92vw; background:#fff; box-shadow:-12px 0 40px rgba(0,0,0,.25); transform:translateX(100%); transition:transform .3s cubic-bezier(.3,.7,.3,1); z-index:9999; overflow-y:auto; }
.hpc-drawer.open { transform:translateX(0); }
.hpc-dr-x { position:absolute; top:.6rem; right:.7rem; width:34px; height:34px; border:none; background:rgba(0,0,0,.4); color:#fff; font-size:22px; border-radius:50%; cursor:pointer; z-index:2; }
.hpc-dr-hero { height:200px; background-size:cover; background-position:center; background-color:#eee; }
.hpc-dr-body { padding:1.2rem 1.3rem 1.6rem; }
.hpc-dr-stars { color:var(--gold); font-size:13px; letter-spacing:1px; }
.hpc-dr-name { font-family:Georgia,'Times New Roman',serif; font-size:1.4rem; margin:.2rem 0 .1rem; color:var(--dark); }
.hpc-dr-area { color:var(--gray); font-size:13px; margin-bottom:.7rem; }
.hpc-dr-price { font-size:14px; color:var(--dark); font-weight:600; margin-bottom:.6rem; } .hpc-dr-price span { color:var(--gray); font-weight:400; font-size:11.5px; }
.hpc-dr-tier { font-size:13px; margin:.5rem 0 .3rem; }
.hpc-dr-perks { list-style:none; margin:.2rem 0 .7rem; padding:0; }
.hpc-dr-perks li { position:relative; padding-left:1.2rem; font-size:12.5px; color:var(--dark); line-height:1.6; }
.hpc-dr-perks li::before { content:'✓'; position:absolute; left:0; color:var(--gold); font-weight:700; }
.hpc-dr-chf { font-size:12.5px; color:#5a4a1e; background:#fff7e6; border:1px solid rgba(201,169,97,.4); border-radius:8px; padding:.5rem .7rem; margin:.5rem 0 .8rem; }
.hpc-dr-desc { font-size:13px; color:var(--gray); line-height:1.6; margin:.4rem 0 1rem; }
.hpc-compare { position:fixed; left:0; right:0; bottom:0; background:#141009; color:#e6e6e6; box-shadow:0 -8px 30px rgba(0,0,0,.3); transform:translateY(100%); transition:transform .3s; z-index:9997; padding:.6rem 1rem .8rem; }
.hpc-compare.open { transform:translateY(0); }
.hpc-cmp-head { font-size:12.5px; margin-bottom:.5rem; color:#cdb98a; } .hpc-cmp-head b { color:#fff; } .hpc-cmp-head a { color:var(--gold); cursor:pointer; text-decoration:underline; margin-left:.5rem; }
.hpc-cmp-cards { display:flex; gap:.7rem; overflow-x:auto; }
.hpc-cmp-card { position:relative; flex:0 0 200px; background:#1f180d; border:1px solid rgba(201,169,97,.3); border-radius:10px; padding:.7rem .8rem; }
.hpc-cmp-x { position:absolute; top:.3rem; right:.4rem; border:none; background:none; color:#bdbdbd; font-size:16px; cursor:pointer; }
.hpc-cmp-name { font-weight:700; color:#fff; font-size:13px; padding-right:1rem; }
.hpc-cmp-stars { color:var(--gold); font-size:10px; margin:.15rem 0; }
.hpc-cmp-price { font-size:12.5px; color:#e7d9b6; }
.hpc-cmp-area { font-size:11px; color:#bdbdbd; margin-bottom:.35rem; }
.hpc-cmp-notier { color:#8a7f63; }
.hpc-cmp-open { margin-top:.4rem; width:100%; background:transparent; border:1px solid rgba(201,169,97,.5); color:var(--gold); border-radius:6px; font-size:11.5px; font-weight:700; padding:.3rem; cursor:pointer; }
@media (max-width:680px){ .hpc-drawer { width:100%; } .hpc-row2 { gap:.5rem .9rem; } }
.hpc-distrow { margin-top:.15rem; }
.hpc-dist-lbl { font-size:9.5px; color:var(--gray); text-align:right; align-self:center; }
.hpc-dist { position:relative; height:28px; }
.hpc-distbar { position:absolute; bottom:0; min-height:1px; background:rgba(201,169,97,.32); border-radius:2px 2px 0 0; }
.hpc-medline { position:absolute; top:0; bottom:0; width:1.5px; background:#1f9d6b; }
.hpc-medlbl { position:absolute; top:-12px; transform:translateX(-50%); font-size:9px; color:#1f9d6b; white-space:nowrap; font-weight:700; }
/* ── Hotel Price & Rewards Chart: compact desktop + mobile-adapted ─────────── */
#view-hotel-pricing .section { max-width:1480px; }   /* allow the 1400px .hpc-wrap to breathe (global .section caps at 1300) */
#view-hotel-pricing .section-title { font-size:clamp(1.55rem, 4.2vw, 2.1rem); margin-bottom:.3rem; text-align:center; }
#view-hotel-pricing .section-subtitle { margin:0 auto 1rem; font-size:13.5px; line-height:1.5; max-width:760px; text-align:center; }
.hpc-sticky { padding:.5rem 0 .45rem; }
.hpc-legend { margin-bottom:.7rem; gap:.45rem 1rem; }
.hpc-rows { gap:.4rem; }
.hpc-dist { height:22px; }
.hpc-morefilters { display:none; }
.hpc-tbtop, .hpc-tbleft { display:contents; }   /* mobile: transparent wrappers keep the existing single-column toolbar flow */
/* Desktop-only: repack the toolbar into 2 tight rows — row1: summary + reward pill + controls; row2: stay + price + budget + reset/share */
@media (min-width:769px){
  .hpc-sticky { padding:.35rem 0 .3rem; }
  .hpc-toolbar { gap:.4rem 1rem; margin-bottom:.4rem; }
  .hpc-tbtop { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.35rem .5rem; width:100%; }
  .hpc-tbleft { display:flex; align-items:center; flex-wrap:wrap; gap:.3rem .5rem; min-width:0; }
  .hpc-summary { font-size:12px; }
  .hpc-controls { gap:.4rem; }
  .hpc-search { padding:.4rem .65rem; font-size:12.5px; min-width:148px; }
  .hpc-chip { padding:.35rem .75rem; font-size:12px; }
  #view-hotel-pricing .hpc-toolbar select, #view-hotel-pricing .hpc-row2 select { padding:.38rem .6rem; font-size:12.5px; }
  .hpc-row2 { gap:.35rem .9rem; margin-top:0; }
  .hpc-stepper, .hpc-band { font-size:12px; }
  .hpc-budget { font-size:12px; gap:.5rem; width:auto; }
  .hpc-budget .hpc-range { flex:0 0 auto; width:140px; }
  .hpc-rewardbanner { display:inline-block; margin-top:0; padding:.16rem .55rem; font-size:11.5px; }
  .hpc-rb-when, .hpc-rb-gold, .hpc-rb-perks { display:none; }
  .hpc-legend { margin-bottom:.45rem; gap:.3rem .9rem; font-size:12px; }
  .hpc-axis { height:18px; margin:0 0 .25rem; }
  .hpc-axisrow { margin-top:0; }
  .hpc-dist { height:16px; }
  .hpc-distrow { margin-top:.1rem; }
  .hpc-row { padding-right:18px; }   /* right gutter so edge bar/axis labels (£25k, top-suite price) stay inside the box */
}
@media (max-width:768px){
  #view-hotel-pricing .section { padding-left:1rem; padding-right:1rem; }
  #view-hotel-pricing .section-subtitle { display:none; }                 /* long intro hidden on mobile */
  .hpc-sticky { position:static; box-shadow:none; padding:.3rem 0 .5rem; border-bottom:1px solid var(--border); margin-bottom:.7rem; }  /* don't pin a tall block */
  .hpc-toolbar { gap:.45rem .6rem; margin-bottom:.45rem; }
  .hpc-summary { width:100%; font-size:11.5px; }
  .hpc-controls { width:100%; gap:.4rem; }
  .hpc-search { flex:1 1 100%; min-width:0; }
  .hpc-row2 { gap:.45rem .8rem; }
  .hpc-legend { font-size:11px; gap:.3rem .7rem; margin-bottom:.5rem; }
  .hpc-axisrow, .hpc-distrow { display:none; }                            /* hide axis ticks + price-spread histogram on small screens */
  .hpc-row { grid-template-columns:100px 1fr; gap:.5rem; padding-right:12px; }
  .hpc-name { font-size:11px; }
  .hpc-note { font-size:12px; padding:.8rem 1rem; margin-top:1rem; }
  .hpc-morefilters { display:block; width:100%; margin:.15rem 0; padding:.55rem; border:1px solid var(--border); border-radius:8px; background:#faf7f0; font-size:12.5px; font-weight:600; color:var(--dark); cursor:pointer; }
  .hpc-sticky:not(.hpc-open) .hpc-row2,
  .hpc-sticky:not(.hpc-open) .hpc-rewardbanner,
  .hpc-sticky:not(.hpc-open) .hpc-legend { display:none; }
}
@media (max-width:440px){
  .hpc-row { grid-template-columns:1fr; gap:.15rem; }                     /* stack hotel name above its bar */
  .hpc-name { text-align:left; line-height:1.2; }
}
.tours-toolbar { max-width:1200px; margin:0 auto 1.4rem; }
.tours-tb { display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; justify-content:center; }
.tour-pricebar { height:6px; background:#efe9dc; border-radius:3px; margin:.2rem 0 .5rem; overflow:hidden; }
.tour-pricebar-fill { display:block; height:100%; background:linear-gradient(90deg,#cdb98a,#c9a961); border-radius:3px; }
.tour-actions { display:flex; gap:.5rem; margin-top:.6rem; }
.tour-actions .btn { flex:1; }
.tour-dur-badge { position:absolute; top:.6rem; right:.6rem; background:rgba(20,16,9,.78); color:#f1e6cd; font-size:11px; font-weight:700; padding:.2rem .5rem; border-radius:999px; }
.tour-img { position:relative; }
.tours-empty { text-align:center; color:var(--gray); padding:2.5rem; grid-column:1/-1; } .tours-empty a { color:var(--gold); cursor:pointer; text-decoration:underline; }
.tkt-pricebar { height:5px; background:#efe9dc; border-radius:3px; margin:.55rem 0 0; overflow:hidden; }
.tkt-pricebar span { display:block; height:100%; background:linear-gradient(90deg,#cdb98a,#c9a961); border-radius:3px; }
.tours-chips { justify-content:center; margin-top:.6rem; gap:.4rem; flex-wrap:wrap; }
.tours-chip-lbl { font-size:11px; color:var(--gray); align-self:center; margin-right:.2rem; text-transform:uppercase; letter-spacing:.04em; }
.tours-tb2 { display:flex; flex-wrap:wrap; gap:.7rem 1.4rem; align-items:center; justify-content:center; margin-top:.7rem; }
.tours-meta { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; justify-content:center; margin-top:.8rem; font-size:12.5px; color:var(--gray); }
.tours-count b { color:var(--dark); }
.tours-pill { background:#f3ede0; border:1px solid var(--border); border-radius:999px; padding:.2rem .6rem; font-size:11.5px; color:var(--dark); }
.tours-pill a { color:var(--gray); cursor:pointer; margin-left:.2rem; font-weight:700; }
.tours-pill a:hover { color:var(--gold); }
.tours-clear { color:var(--gold); cursor:pointer; text-decoration:underline; font-size:12px; }
.tour-theme-tag { position:absolute; bottom:.6rem; left:.6rem; background:rgba(201,169,97,.92); color:#1c1306; font-size:10px; font-weight:700; padding:.15rem .5rem; border-radius:999px; }
.event-ical { position:absolute; top:.6rem; right:.6rem; width:30px; height:30px; border:1px solid var(--border); background:rgba(255,255,255,.92); border-radius:8px; font-size:14px; cursor:pointer; z-index:3; line-height:1; padding:0; }
.event-ical:hover { border-color:var(--gold); background:#fff; }
.tour-pin { position:absolute; top:.6rem; right:.6rem; background:rgba(20,16,9,.82); color:#f1e6cd; border:1px solid rgba(201,169,97,.5); font-size:11px; font-weight:700; padding:.25rem .55rem; border-radius:999px; cursor:pointer; z-index:3; }
.tour-pin:hover { background:rgba(201,169,97,.92); color:#1c1306; }
.tour-pin.on { background:var(--gold); color:#1c1306; border-color:var(--gold); }
.tours-clear[role=button] { user-select:none; }
.hpc-chip:focus-visible, .tour-pin:focus-visible, .tours-pill a:focus-visible, .tours-clear:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.tkt-media { position:relative; }
.tkt-pin { position:absolute; top:.5rem; right:.5rem; background:rgba(20,16,9,.82); color:#f1e6cd; border:1px solid rgba(201,169,97,.5); font-size:10.5px; font-weight:700; padding:.22rem .5rem; border-radius:999px; cursor:pointer; z-index:3; }
.tkt-pin:hover { background:rgba(201,169,97,.92); color:#1c1306; }
.tkt-pin.on { background:var(--gold); color:#1c1306; border-color:var(--gold); }
/* Compact price-position chart inside the booking form */
.bpc-wrap { margin:0 0 1.4rem; padding:1.1rem 1.2rem 1.25rem; background:linear-gradient(180deg,#fffdf7,#fbf6ea); border:1px solid rgba(201,169,97,.35); border-radius:14px; }
.bpc-head { font-size:12.5px; font-weight:700; letter-spacing:.02em; color:var(--dark); margin-bottom:.1rem; }
.bpc-head b { color:var(--gold); }
.bpc-sub { font-size:11.5px; color:var(--gray); margin-bottom:.95rem; }
.bpc-axis { position:relative; height:14px; margin:0 4px .18rem; }
.bpc-tick { position:absolute; top:0; transform:translateX(-50%); font-size:9.5px; color:var(--gray); white-space:nowrap; }
.bpc-track { position:relative; height:30px; margin:0 4px; background:rgba(0,0,0,.05); border-radius:8px; overflow:hidden; }
.bpc-tline { position:absolute; top:0; bottom:0; width:2px; opacity:.55; }
.bpc-tline.bronze { background:#b87333; } .bpc-tline.silver { background:#9aa0a6; }
.bpc-tline.gold { background:#c9a961; } .bpc-tline.platinum { background:#6e7bd6; }
.bpc-bar { position:absolute; top:6px; height:18px; border-radius:9px; background:linear-gradient(90deg,#e7cd8f,#c9a961); box-shadow:0 1px 4px rgba(201,169,97,.5); }
.bpc-bar.single { width:8px!important; border-radius:5px; }
.bpc-lbl { position:absolute; top:8px; font-size:10px; font-weight:800; color:#5a4412; transform:translateX(-50%); white-space:nowrap; }
.bpc-foot { display:flex; justify-content:space-between; align-items:center; gap:.6rem; margin-top:.7rem; flex-wrap:wrap; }
.bpc-foot small { font-size:11px; color:var(--gray); }
.bpc-foot a { font-size:11.5px; font-weight:700; color:var(--gold); cursor:pointer; text-decoration:underline; text-underline-offset:2px; white-space:nowrap; }
/* Ticket checkout quantity stepper */
.tc-qty { display:flex; align-items:stretch; border:1px solid var(--border); border-radius:8px; overflow:hidden; height:46px; }
.tc-qty input { flex:1; min-width:0; border:none; text-align:center; font-size:15px; font-weight:700; color:var(--dark); -moz-appearance:textfield; }
.tc-qty input::-webkit-outer-spin-button, .tc-qty input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.tc-qty input:focus { outline:none; }
.tc-qty-btn { width:42px; border:none; background:#f7f3ec; color:var(--dark); font-size:20px; font-weight:700; cursor:pointer; line-height:1; transition:background .15s; }
.tc-qty-btn:hover { background:var(--gold); color:#fff; }
.tc-qty-btn:active { transform:scale(.94); }
/* Product modal tabs (Booking / Description / FAQ / Cancellation) */
.tc-tabs { display:flex; gap:.2rem; border-bottom:1px solid var(--border); margin:-.2rem 0 1.2rem; flex-wrap:wrap; }
.tc-tab { background:none; border:none; padding:.5rem .85rem; font-size:13px; font-weight:600; color:var(--gray); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; transition:color .15s; }
.tc-tab:hover { color:var(--dark); }
.tc-tab.active { color:var(--gold); border-bottom-color:var(--gold); }
.tc-gallery { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; margin-bottom:1.1rem; }
.tc-gallery .tc-pimg:first-child { grid-column:1 / -1; }
.tc-pimg { width:100%; height:150px; object-fit:cover; border-radius:8px; display:block; background:#eee; }
.tc-cols { display:flex; gap:1.5rem; flex-wrap:wrap; }
.tc-cols > div { flex:1; min-width:160px; }
.tc-h { font-size:13px; font-weight:700; color:var(--dark); margin:.4rem 0; text-transform:uppercase; letter-spacing:.03em; }
.tc-p { font-size:13px; color:#555; line-height:1.65; margin:.2rem 0 1.1rem; }
.tc-list { margin:.2rem 0 1.1rem; padding-left:0; list-style:none; }
.tc-list li { font-size:13px; color:#555; line-height:1.55; padding-left:1.3rem; position:relative; margin-bottom:.3rem; }
.tc-list li::before { content:'•'; position:absolute; left:.3rem; color:var(--gold); }
.tc-yes li::before { content:'✓'; color:#1a7f37; font-weight:700; }
.tc-no li::before { content:'✕'; color:#b00; font-weight:700; }
.tc-star li::before { content:'★'; color:var(--gold); }
/* Ticket product configurator (options + Adult/Child/Infant) */
.tc-incl { background:#f5f9f5; border:1px solid rgba(26,127,55,.2); border-radius:8px; padding:.8rem 1rem; margin-bottom:1.1rem; }
.tc-incl-h { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#1a7f37; margin-bottom:.45rem; }
.tc-incl-i { font-size:12.5px; color:#33503a; line-height:1.55; }
.tc-incl-x { font-size:12.5px; color:#9a6b6b; line-height:1.55; }
.tc-pax-row { display:flex; align-items:center; gap:.8rem; padding:.55rem 0; border-bottom:1px dashed var(--border); }
.tc-pax-row:last-child { border-bottom:none; }
.tc-pax-label { font-size:14px; font-weight:700; color:var(--dark); }
.tc-pax-price { font-size:11.5px; color:var(--gold); font-weight:600; }
.tc-notes { margin:.2rem 0 1.1rem; font-size:12px; }
.tc-notes summary { cursor:pointer; color:var(--gold); font-weight:600; font-size:12px; }
.tc-note { color:var(--gray); font-size:11.5px; line-height:1.6; margin-top:.25rem; }
/* Multi-attraction basket */
.basket-item { display:flex; gap:.9rem; align-items:flex-start; padding:1rem 0; border-bottom:1px solid var(--border); }
.basket-item:first-child { padding-top:.2rem; }
#ticketBasketPill:hover { background:#000; transform:translateY(-1px); }
#ticketBasketPill { transition:transform .15s, background .15s; }
@media (max-width:560px){ #ticketBasketPill { left:12px; bottom:12px; font-size:13px; padding:.6rem .9rem; } }
/* Bundle discount nudge inside basket */
.bundle-nudge { margin:1.1rem 0 .2rem; padding:.7rem .9rem; border-radius:10px; font-size:13px; font-weight:600; text-align:center; background:#f4efe3; color:#6b5a2a; border:1px dashed rgba(201,169,97,.6); }
.bundle-nudge.active { background:#eaf7ee; color:#1a7f37; border:1px solid rgba(26,127,55,.35); }
/* Bundle offer strip on tickets page */
.bundle-strip { max-width:1100px; margin:1.2rem auto 0; padding:.8rem 1.2rem; display:flex; align-items:center; justify-content:center; gap:.6rem 1.1rem; flex-wrap:wrap; background:linear-gradient(90deg,#fbf6ea,#fffdf7); border:1px solid rgba(201,169,97,.4); border-radius:12px; font-size:13.5px; color:var(--dark); }
.bundle-strip b { color:var(--gold); }
.bundle-strip .bs-tier { white-space:nowrap; }
.bundle-strip .bs-tier span { display:inline-block; min-width:20px; height:20px; line-height:20px; text-align:center; background:var(--gold); color:#fff; border-radius:50%; font-weight:700; font-size:11px; margin-right:.35rem; }
/* Clickable "London airports" link + popover */
.xfer-airports-link { text-decoration:underline; text-underline-offset:2px; cursor:pointer; font-weight:700; }
.xfer-prompt .xfer-airports-link, .xfer-nudge .xfer-airports-link { color:var(--gold); }
.xfer-unlocked .xfer-airports-link { color:#fff; }
.hotel-promo-banner .xfer-airports-link { color:var(--gold); }
.airports-pop { position:absolute; z-index:5000; background:#fff; border:1px solid var(--border); border-radius:12px; box-shadow:0 16px 44px rgba(0,0,0,0.22); padding:0.9rem 1.05rem; min-width:240px; }
.airports-pop-h { font-size:11px; text-transform:uppercase; letter-spacing:1px; color:var(--gold); font-weight:700; margin-bottom:0.65rem; }
.airports-pop ul { list-style:none; margin:0; padding:0; display:grid; gap:0.45rem; }
.airports-pop li { display:flex; align-items:center; gap:0.55rem; font-size:13.5px; color:var(--dark); }
.airports-pop li .kc-icon { width:15px; height:15px; color:var(--gold); flex:0 0 auto; }
/* Eligible vehicles popover + offer terms */
.vehicles-pop { min-width:300px; max-width:340px; }
.vehicles-pop li { align-items:flex-start; gap:0.6rem; }
.veh-ic { width:20px; height:20px; color:var(--gold); flex:0 0 auto; margin-top:1px; }
.veh-info strong { display:block; font-size:13.5px; color:var(--dark); }
.veh-info span { display:block; font-size:12px; color:var(--gray); margin-top:1px; }
.xfer-terms { font-size:12px; color:var(--gray); line-height:1.55; margin:-0.45rem 0 1.1rem; }
.xfer-terms b { color:var(--dark); font-weight:600; }
.xfer-terms .xfer-airports-link { color:var(--gold); }
.hotel-promo-banner-terms { font-size:12px; color:#bcbcbc; margin-top:0.55rem; line-height:1.5; }
.hotel-promo-banner-terms .xfer-airports-link { color:var(--gold); }
.hotel-promo-banner-terms strong { color:#fff; }
.rr-action { display:flex; align-items:center; gap:0.45rem; }
.rr-action-main { display:flex; flex-direction:column; align-items:center; gap:0.3rem; }
.rr-choose { background:#f5c451; color:#2a2a2a; border:none; border-radius:9px; padding:0.55rem 1.2rem; font-size:13.5px; font-weight:700; cursor:pointer; transition:background .2s, transform .2s; }
.rr-choose:hover { background:#f0b73a; transform:translateY(-1px); }
.room-plan-note { margin-top:.55rem; padding:.6rem .8rem; border-radius:9px; background:rgba(245,196,81,.1); border:1px solid rgba(245,196,81,.35); font-size:13px; line-height:1.45; color:#5a4a1e; }
.room-plan-note strong { color:#3a2f12; }
.room-plan-note .rpn-price { color:#0a7d3c; font-weight:700; }
.quote-estimate { margin:0 0 1.1rem; padding:1rem 1.15rem; border-radius:12px; background:linear-gradient(135deg,#1e1a12,#2a2418); border:1px solid rgba(245,196,81,.4); color:#e6e6e6; }
.quote-estimate .qe-top { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; }
.quote-estimate .qe-label { font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:#cdb98a; }
.quote-estimate .qe-total { font-size:26px; font-weight:800; color:#f5c451; line-height:1.1; }
.quote-estimate .qe-total .qe-from { font-size:13px; font-weight:600; color:#cdb98a; margin-right:.3rem; }
.quote-estimate .qe-break { margin-top:.5rem; font-size:12.5px; color:#bdbdbd; line-height:1.5; }
.quote-estimate .qe-foot { margin-top:.55rem; font-size:11.5px; color:#a8a8a8; }
.quote-estimate .qe-tier { display:block; margin-top:.35rem; font-size:12px; color:#f5c451; }
.quote-estimate .qe-tier b { color:#fff; }
.rr-points { display:flex; align-items:center; gap:5px; color:#2f7ed8; font-size:13px; font-weight:600; }
.rr-r { display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px; border-radius:50%; background:#2f7ed8; color:#fff; font-size:10px; font-weight:700; }
.rr-iconbtn { width:34px; height:34px; flex:0 0 auto; display:flex; align-items:center; justify-content:center; background:#eee; border:none; border-radius:8px; color:#555; cursor:pointer; padding:0; }
.rr-iconbtn:hover { background:#e2e2e2; }
.rr-iconbtn svg { width:18px; height:18px; }
.rr-more { width:24px; height:34px; flex:0 0 auto; display:flex; align-items:center; justify-content:center; background:none; border:none; color:#999; cursor:pointer; padding:0; }
.rr-more svg { width:18px; height:18px; }
@media (max-width:640px){ .room-card-top { flex-direction:column; } .room-photo { width:100%; height:170px; } }


.hotels-resultbar{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; flex-wrap:wrap; }
.hotel-view-toggle{ display:inline-flex; border:1px solid var(--border,#e2e2e2); border-radius:999px; overflow:hidden; background:#fff; flex:0 0 auto; }
.hvt-btn{ border:none; background:#fff; color:#555; font:inherit; font-size:13px; font-weight:600; padding:.45rem 1rem; cursor:pointer; }
.hvt-btn.active{ background:var(--dark,#1a1d22); color:#fff; }
.hotels-map-controls{ display:flex; align-items:center; gap:.6rem; margin-bottom:.7rem; flex-wrap:wrap; font-size:13px; color:var(--gray,#666); }
.hotels-map-controls select{ font-size:13px; padding:.4rem .6rem; max-width:240px; }
.hotels-map{ height:560px; width:100%; border-radius:14px; border:1px solid var(--border,#e2e2e2); overflow:hidden; z-index:0; background:#e7eef2; }
.hotels-map-note{ font-size:12px; color:#9a9a9a; margin-top:.6rem; }
.leaflet-div-icon{ background:transparent; border:none; }
.kc-map-pin{ display:inline-block; background:#fff; border:1.5px solid var(--dark,#1a1d22); color:var(--dark,#1a1d22); border-radius:999px; font-weight:700; font-size:12px; line-height:1; padding:5px 9px; box-shadow:0 2px 8px rgba(0,0,0,.28); white-space:nowrap; text-align:center; transition:transform .12s; }
.kc-map-pin-5{ background:var(--dark,#1a1d22); color:#fff; }
.kc-map-pin:hover{ transform:scale(1.09); }
.map-hotel-area{ font-size:11px; color:#888; }
.map-hotel-foot{ display:flex; align-items:center; justify-content:space-between; gap:.6rem; padding:.55rem .7rem .65rem; }
.map-hotel-price{ font-weight:700; font-size:12.5px; color:var(--dark,#1a1a1a); }
.map-hotel-btn{ background:var(--gold,#c9a14a); color:#1a1a1a; border:none; border-radius:7px; padding:.4rem .7rem; font-weight:700; font-size:12px; cursor:pointer; font-family:inherit; white-space:nowrap; }
@media(max-width:560px){ .hotels-map{ height:440px; } }
.hp-collections{ margin:0 0 2rem; display:flex; flex-direction:column; gap:1.7rem; }
.hp-shelf-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:.7rem; }
.hp-shelf-title{ font-family:'Playfair Display',serif; font-size:1.25rem; color:var(--dark,#1a1a1a); display:flex; align-items:center; gap:.5rem; line-height:1.2; }
.hp-shelf-title .hp-ic{ font-size:1.1rem; }
.hp-shelf-sub{ font-size:12.5px; color:var(--gray,#777); margin:.18rem 0 0; }
.hp-shelf-all{ flex:0 0 auto; font-size:12.5px; font-weight:700; color:var(--gold-text,#8a6d1f); cursor:pointer; white-space:nowrap; }
.hp-shelf-all:hover{ text-decoration:underline; }
.hp-col-scroll{ display:flex; gap:1rem; overflow-x:auto; padding-bottom:.5rem; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; }
.hp-col-card{ flex:0 0 230px; scroll-snap-align:start; background:#fff; border:1px solid var(--border,#e7e7e7); border-radius:12px; overflow:hidden; cursor:pointer; transition:transform .18s, box-shadow .18s, border-color .18s; }
.hp-col-card:hover{ transform:translateY(-3px); box-shadow:0 10px 26px rgba(0,0,0,.10); border-color:var(--gold,#c9a14a); }
.hp-col-img{ position:relative; height:130px; background:#ececec; }
.hp-col-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.hp-col-badge{ position:absolute; top:8px; left:8px; background:rgba(26,29,34,.86); color:#fff; font-size:11px; font-weight:700; padding:.22rem .5rem; border-radius:7px; }
.hp-col-tag5{ position:absolute; top:8px; right:8px; background:var(--gold,#c9a14a); color:#1a1a1a; font-size:9px; font-weight:800; letter-spacing:.04em; padding:.2rem .4rem; border-radius:6px; }
.hp-col-body{ padding:.6rem .75rem .75rem; }
.hp-col-name{ font-weight:600; font-size:13.5px; color:var(--dark,#1a1a1a); line-height:1.25; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hp-col-area{ font-size:11.5px; color:var(--gray,#888); margin-top:.12rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hp-col-foot{ display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-top:.5rem; }
.hp-col-price{ font-size:12.5px; font-weight:700; color:var(--dark,#1a1a1a); }
.hp-col-rating{ font-size:11px; font-weight:700; background:#eaf5ee; color:#1a7a42; padding:.12rem .4rem; border-radius:6px; white-space:nowrap; }
@media(max-width:560px){ .hp-col-card{ flex-basis:200px; } .hp-shelf-title{ font-size:1.08rem; } }
/* Why-book-through-us trust band */
.hp-trust{ background:#faf8f5; border:1px solid #ecdfc4; border-radius:16px; padding:1.4rem 1.5rem; margin:0 0 1.6rem; }
.hp-trust-head{ font-family:'Playfair Display',serif; font-size:1.15rem; color:var(--dark,#1a1a1a); text-align:center; margin-bottom:1.1rem; }
.hp-trust-props{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:1rem 1.4rem; }
.hp-trust-prop{ display:flex; gap:.6rem; align-items:flex-start; }
.hp-trust-ic{ font-size:1.4rem; line-height:1; flex:0 0 auto; }
.hp-trust-prop b{ display:block; font-size:13.5px; color:#1a1a1a; }
.hp-trust-prop span{ font-size:11.5px; color:#7a7264; }
.hp-trust-steps{ display:flex; align-items:center; gap:.8rem; flex-wrap:wrap; margin-top:1.3rem; padding-top:1.2rem; border-top:1px solid #ecdfc4; }
.hp-trust-step{ display:flex; gap:.6rem; align-items:center; flex:1; min-width:185px; }
.hp-trust-step>b{ flex:0 0 auto; width:28px; height:28px; border-radius:50%; background:linear-gradient(135deg,#b8924a,#e7c87a); color:#1a1a1a; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:14px; }
.hp-trust-step div b{ display:block; font-size:13px; color:#1a1a1a; }
.hp-trust-step div span{ font-size:11px; color:#8a8276; }
.hp-trust-arrow{ color:var(--gold,#c9a14a); font-size:1.2rem; flex:0 0 auto; }
.hp-trust-cred{ text-align:center; font-size:11.5px; color:#a8a8a8; margin-top:1.1rem; letter-spacing:.02em; }
@media(max-width:680px){ .hp-trust-arrow{ display:none; } .hp-trust-step{ min-width:100%; } }
/* Date-aware stay bar + per-card stay line + reward-tier chips */
.hd-bar{ display:flex; align-items:flex-end; gap:.8rem; flex-wrap:wrap; background:#faf6ee; border:1px solid #ecdfc4; border-radius:12px; padding:.7rem .9rem; margin:0 0 1rem; }
.hd-label{ font-weight:700; font-size:13px; color:#6b531d; align-self:center; }
.hd-bar label{ font-size:11px; color:#777; display:inline-flex; flex-direction:column; gap:.22rem; text-transform:uppercase; letter-spacing:.04em; }
.hd-bar input{ border:1px solid var(--border,#ddd); border-radius:8px; padding:.42rem .5rem; font:inherit; font-size:13px; background:#fff; text-transform:none; }
.hd-bar input[type=number]{ width:62px; }
.hd-summary{ font-size:12.5px; color:#6b531d; font-weight:600; align-self:center; }
.hd-clear{ background:none; border:none; color:#b3261e; font:inherit; font-size:12px; cursor:pointer; margin-left:auto; align-self:center; }
.kc-hotel-tile .kc-tile-stay{ margin-top:.5rem; font-size:12px; color:#fff; background:rgba(184,146,74,0.26); border:1px solid rgba(231,200,122,0.55); border-radius:8px; padding:.32rem .55rem; display:flex; flex-wrap:wrap; align-items:center; gap:.2rem .35rem; max-width:100%; width:fit-content; -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); }
.kc-hotel-tile .kc-tile-stay b{ color:#ffe9b8; }
.kc-tier-chip{ font-weight:800; font-size:10px; padding:.06rem .35rem; border-radius:5px; color:#1a1a1a; white-space:nowrap; }
.kc-tier-bronze{ background:#caa06a; } .kc-tier-silver{ background:#cfd6dd; } .kc-tier-gold{ background:#e7c87a; } .kc-tier-platinum{ background:#9aa4af; color:#fff; }
@media(max-width:560px){ .hd-bar{ gap:.6rem; } .hd-clear{ margin-left:0; } }
/* Save / Share / Email / PDF toolbar */
.hs-toolbar{ display:flex; gap:.5rem; flex-wrap:wrap; margin:0 0 1rem; }
.hs-btn{ background:#fff; border:1px solid var(--border,#e2e2e2); color:#444; font:inherit; font-size:12.5px; font-weight:600; padding:.45rem .8rem; border-radius:999px; cursor:pointer; transition:border-color .15s, color .15s; }
.hs-btn:hover{ border-color:var(--gold,#c9a14a); color:#1a1a1a; }
.hs-btn-gold{ background:linear-gradient(135deg,#b8924a,#e7c87a); border-color:transparent; color:#1a1a1a; }
.hs-saved{ background:#fff; border:1px solid var(--border,#eee); border-radius:12px; padding:.8rem; margin:0 0 1.4rem; box-shadow:0 8px 22px rgba(0,0,0,.05); }
.hs-saved-empty{ font-size:13px; color:var(--gray,#888); margin:.2rem; }
.hs-saved-list{ display:flex; flex-direction:column; gap:.5rem; }
.hs-saved-item{ display:flex; align-items:center; gap:.6rem; padding:.5rem .6rem; border:1px solid var(--border,#eee); border-radius:9px; }
.hs-saved-body{ flex:1; min-width:0; display:flex; flex-direction:column; }
.hs-saved-body b{ font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hs-saved-body span{ font-size:11px; color:var(--gray,#999); }
.hs-saved-open{ background:var(--dark,#1a1d22); color:#fff; border:none; border-radius:7px; padding:.35rem .7rem; font:inherit; font-size:12px; font-weight:600; cursor:pointer; flex:0 0 auto; }
.hs-saved-del{ background:none; border:none; color:#b3261e; font-size:14px; cursor:pointer; padding:.2rem .4rem; flex:0 0 auto; }
/* Grid card: guest rating + quick-view button */
.kc-hotel-tile .kc-tile-meta2{ display:flex; align-items:center; gap:.45rem; margin-top:.5rem; }
.kc-hotel-tile .kc-tile-score{ background:#2e9d4f; color:#fff; font-weight:800; font-size:12px; padding:.16rem .44rem; border-radius:6px; white-space:nowrap; }
.kc-hotel-tile .kc-tile-scorelbl{ color:#fff; font-size:11.5px; opacity:.92; }
.kc-hotel-tile .kc-tile-qv{ margin-left:auto; background:rgba(255,255,255,0.16); border:1px solid rgba(255,255,255,0.55); color:#fff; font:inherit; font-size:11px; font-weight:600; padding:.24rem .6rem; border-radius:999px; cursor:pointer; -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); white-space:nowrap; transition:background .2s; }
.kc-hotel-tile .kc-tile-qv:hover{ background:rgba(255,255,255,0.30); }
.kc-hotel-tile .kc-tile-acts{ margin-left:auto; display:inline-flex; gap:.35rem; }
.kc-hotel-tile .kc-tile-acts .kc-tile-qv{ margin-left:0; }
.kc-hotel-tile .kc-tile-cmp{ background:rgba(255,255,255,0.16); border:1px solid rgba(255,255,255,0.55); color:#fff; font:inherit; font-size:11px; font-weight:600; padding:.24rem .55rem; border-radius:999px; cursor:pointer; -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); white-space:nowrap; transition:background .2s; }
.kc-hotel-tile .kc-tile-cmp:hover{ background:rgba(255,255,255,0.30); }
.kc-hotel-tile .kc-tile-cmp.on{ background:var(--gold,#c9a14a); border-color:var(--gold,#c9a14a); color:#1a1a1a; }
/* Compare tray + modal */
.cmp-tray{ position:fixed; left:50%; transform:translateX(-50%); bottom:18px; z-index:1300; display:flex; align-items:center; gap:1rem; background:#1a1d22; color:#fff; border-radius:14px; padding:.7rem .9rem; box-shadow:0 16px 40px rgba(0,0,0,.34); max-width:calc(100vw - 24px); }
.cmp-tray-thumbs{ display:flex; gap:.4rem; }
.cmp-thumb{ position:relative; width:46px; height:38px; border-radius:8px; overflow:hidden; flex:0 0 auto; }
.cmp-thumb img{ width:100%; height:100%; object-fit:cover; }
.cmp-thumb button{ position:absolute; top:1px; right:1px; width:16px; height:16px; border-radius:50%; border:none; background:rgba(0,0,0,.65); color:#fff; font-size:10px; line-height:1; cursor:pointer; padding:0; }
.cmp-tray-actions{ display:flex; align-items:center; gap:.6rem; }
.cmp-tray-n{ font-size:12px; opacity:.8; white-space:nowrap; }
.cmp-tray-clear{ background:none; border:none; color:#cbb27a; font:inherit; font-size:12px; cursor:pointer; }
.cmp-modal{ max-width:920px; }
.cmp-tools{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.3rem; padding-top:1rem; border-top:1px solid var(--border,#eee); align-items:center; }
.cmp-btn{ background:#fff; border:1px solid var(--border,#e5e5e5); color:#1a1a1a; border-radius:9px; padding:.5rem .8rem; font:inherit; font-size:12.5px; font-weight:600; cursor:pointer; transition:border-color .15s, background .15s; }
.cmp-btn:hover{ border-color:var(--gold,#c9a961); background:#faf8f5; }
.cmp-saved{ display:none; width:100%; margin-top:.5rem; }
.cmp-saved.show{ display:block; }
.cmp-saved-row{ display:flex; gap:.5rem; align-items:center; padding:.4rem 0; border-bottom:1px solid #f2efe6; }
.cmp-saved-open{ flex:1; text-align:left; background:none; border:none; color:#1a1a1a; font:inherit; font-size:13px; font-weight:600; cursor:pointer; padding:.2rem 0; }
.cmp-saved-open:hover{ color:var(--gold-text,#8a6d1f); text-decoration:underline; }
.cmp-saved-del{ background:none; border:none; color:#b3261e; font:inherit; font-size:11.5px; cursor:pointer; }
.cmp-saved-empty{ font-size:12.5px; color:#888; padding:.3rem 0; }
.cmp-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.cmp-table{ width:100%; border-collapse:collapse; font-size:13px; min-width:520px; }
.cmp-table th, .cmp-table td{ padding:.7rem .8rem; text-align:center; border-bottom:1px solid #f0f0f0; vertical-align:middle; }
.cmp-table tbody th{ text-align:left; color:#555; font-weight:600; white-space:nowrap; background:#faf8f5; position:sticky; left:0; z-index:1; }
.cmp-h{ display:flex; flex-direction:column; align-items:center; gap:.3rem; min-width:120px; }
.cmp-h img{ width:96px; height:64px; object-fit:cover; border-radius:8px; }
.cmp-h b{ font-size:13px; line-height:1.2; }
.cmp-h span{ font-size:11px; color:#888; }
.cmp-score{ background:#2e9d4f; color:#fff; font-weight:700; padding:.05rem .35rem; border-radius:5px; }
.cmp-yes{ color:#1a8a4a; font-weight:700; }
.cmp-no{ color:#bbb; }
.cmp-best{ background:#fbf6e9; font-weight:700; color:#6b531d; }
.cmp-sub{ font-size:11px; color:#999; }
@media(max-width:560px){ .cmp-tray{ left:8px; right:8px; transform:none; max-width:none; justify-content:space-between; } .cmp-h img{ width:74px; height:52px; } }
/* Quick-view modal */
.hq-modal .modal-body{ padding:0 0 1.25rem; }
.hq-hero{ position:relative; height:200px; background:#ececec; overflow:hidden; }
.hq-hero img{ width:100%; height:100%; object-fit:cover; display:block; }
.hq-hero-tag{ position:absolute; top:12px; left:12px; background:var(--gold,#c9a14a); color:#1a1a1a; font-size:10px; font-weight:800; letter-spacing:.04em; padding:.3rem .55rem; border-radius:7px; }
.hq-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1rem 1.4rem .2rem; }
.hq-stars{ color:var(--gold,#c9a14a); font-size:15px; letter-spacing:2px; }
.hq-area{ font-size:13px; color:var(--gray,#666); margin-top:.2rem; }
.hq-rating{ flex:0 0 auto; text-align:center; background:#eaf5ee; border-radius:10px; padding:.4rem .65rem; }
.hq-rating b{ display:block; font-size:1.3rem; color:#1a7a42; line-height:1; }
.hq-rating span{ font-size:10px; color:#1a7a42; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.hq-stat-row{ display:flex; gap:.7rem; padding:.8rem 1.4rem 0; flex-wrap:wrap; }
.hq-stat{ flex:1; min-width:92px; background:#faf8f5; border:1px solid var(--border,#eee); border-radius:10px; padding:.6rem .7rem; }
.hq-stat span{ font-size:10px; color:var(--gray,#888); text-transform:uppercase; letter-spacing:.05em; display:block; }
.hq-stat b{ font-size:1.02rem; color:var(--dark,#1a1a1a); display:block; margin:.1rem 0; }
.hq-stat i{ font-style:normal; font-size:10.5px; color:var(--gray,#999); }
.hq-section{ padding:1rem 1.4rem 0; }
.hq-section-h{ font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--gray,#888); margin-bottom:.55rem; }
.hq-chips{ display:flex; flex-wrap:wrap; gap:.4rem; }
.hq-chip{ background:#f3eede; color:#6b531d; font-size:12px; font-weight:600; padding:.25rem .6rem; border-radius:999px; }
.hq-near-row{ display:flex; justify-content:space-between; gap:1rem; font-size:13px; padding:.32rem 0; border-bottom:1px solid #f2f2f2; }
.hq-near-row span{ color:#444; } .hq-near-row b{ color:#1a1a1a; white-space:nowrap; }
.hq-cta{ display:flex; gap:.6rem; padding:1.1rem 1.4rem 0; flex-wrap:wrap; }
.hq-cta .btn{ flex:1; min-width:130px; }
@media(max-width:560px){ .hq-hero{ height:160px; } .hq-cta .btn{ min-width:100%; } }
/* Find-your-stay finder */
.hp-finder{ display:flex; align-items:center; gap:.7rem; justify-content:center; flex-wrap:wrap; margin:0 0 1.4rem; padding:.85rem 1.1rem; background:linear-gradient(135deg,#1a1d22,#2c3038); border-radius:14px; }
.hp-finder-label{ color:#fff; font-weight:600; font-size:14px; }
.hp-finder select{ font-size:13.5px; padding:.5rem .7rem; border-radius:9px; min-width:230px; max-width:320px; }
.hp-finder-results{ margin:0 0 2rem; }
.hp-finder-resulthead{ font-size:13.5px; color:var(--gray,#555); margin-bottom:.7rem; }
.hp-finder-resulthead b{ color:var(--dark,#1a1a1a); }
/* Neighbourhood guides */
.hp-hoods{ margin:0 0 2rem; }
.hp-hood-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(124px,1fr)); gap:.5rem; }
.hp-hood-card{ position:relative; background:#fff; border:1px solid var(--border,#e7e7e7); border-radius:9px; padding:.5rem .7rem .55rem; cursor:pointer; text-align:left; overflow:hidden; transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.hp-hood-card::before{ content:''; position:absolute; left:0; top:0; bottom:0; width:2px; background:linear-gradient(180deg,var(--gold,#c9a14a),rgba(201,169,97,0)); transform:scaleY(0); transform-origin:top; transition:transform .2s ease; }
.hp-hood-card:hover{ transform:translateY(-2px); box-shadow:0 7px 16px rgba(0,0,0,.10); border-color:var(--gold,#c9a14a); }
.hp-hood-card:hover::before{ transform:scaleY(1); }
.hp-hood-name{ font-family:'Playfair Display',serif; font-weight:600; font-size:.96rem; line-height:1.1; color:var(--dark,#1a1a1a); transition:color .2s; }
.hp-hood-card:hover .hp-hood-name{ color:var(--gold-text,#8a6d1f); }
.hp-hood-count{ font-size:9px; letter-spacing:.9px; text-transform:uppercase; color:var(--gray,#888); margin-top:.18rem; }
.hp-hood-count b{ font-weight:700; color:var(--gold-text,#8a6d1f); font-size:10px; }
@media (prefers-reduced-motion: reduce){ .hp-hood-card, .hp-hood-card::before{ transition:none; } }
.hq-hood-blurb{ padding:1.1rem 1.4rem 0; font-size:14.5px; line-height:1.65; color:#444; }
.hq-hood-high{ padding:.9rem 1.4rem 0; }
@media(max-width:560px){ .hp-finder select{ min-width:0; width:100%; } }


/* ============ "THE VITRINE" — jewellery-box redesign of the hotel page ============
   Scoped to #view-hotels. Two canvases via a theme class on the view:
     .vit-dark  = original near-black jewellery box
     .vit-light = white gallery (default)
   SHARED rules (signature gold frame, foil badge, eyebrow layout, lit-on-hover) live on
   bare #view-hotels and work on either canvas because the cards are self-contained dark tiles. */
#view-hotels{ min-height:100vh; }
/* Masthead eyebrow (colour per theme) */
#view-hotels .vit-eyebrow{ display:block; font-family:var(--font-body); font-size:12px; font-weight:600; letter-spacing:3px; text-transform:uppercase; margin-bottom:.6rem; }
/* Light/Dark theme toggle (segmented pill; appearance per theme) */
#view-hotels .vit-theme-toggle{ display:inline-flex; align-items:center; border-radius:999px; padding:3px; cursor:pointer; font:inherit; margin:.2rem 0 1.4rem; -webkit-appearance:none; appearance:none; }
#view-hotels .vit-theme-toggle .vtt-opt{ font-size:12px; font-weight:600; letter-spacing:.03em; padding:.34rem .85rem; border-radius:999px; transition:background .2s,color .2s; }
/* THE SIGNATURE GESTURE — gold frame draws on; lit-on-hover (filter/shadow values per theme) */
#view-hotels .kc-hotel-tile{ transition:box-shadow .5s var(--kc-ease), transform .5s var(--kc-ease); }
#view-hotels .kc-hotel-tile::after{ content:''; position:absolute; inset:0; z-index:2; border-radius:10px; pointer-events:none; box-shadow:inset 0 0 0 0 rgba(201,169,97,0); transition:box-shadow .55s var(--kc-ease); }
#view-hotels .kc-hotel-tile:hover::after,#view-hotels .kc-hotel-tile:focus-visible::after{ box-shadow:inset 0 0 0 1.5px rgba(201,169,97,0.92), inset 0 0 34px rgba(201,169,97,0.12); }
#view-hotels .kc-hotel-tile:focus-visible{ outline:none; }
#view-hotels .kc-hotel-tile .kc-tile-img img{ transition:transform .8s var(--kc-ease), filter .6s var(--kc-ease); }
@media (prefers-reduced-motion: reduce){
  #view-hotels .kc-hotel-tile, #view-hotels .kc-hotel-tile::after, #view-hotels .kc-hotel-tile .kc-tile-img img{ transition:none; }
}
/* Foil free-transfer badge — the hero value prop, finally precious (global; only on hotel tiles) */
.hotel-free-badge{ background:linear-gradient(135deg,#f7ebc0 0%,#e7c873 26%,#c9a961 56%,#9c7c2e 100%); color:#2a2008; border:1px solid rgba(255,238,184,0.7); box-shadow:0 4px 14px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,0.55); }

/* ====================== DARK CANVAS (the original Vitrine) ====================== */
#view-hotels.vit-dark{
  --gray:#bdbdbd;                 /* warm light grey replaces #666 for AA on near-black */
  --border:rgba(201,169,97,0.20); /* gold hairline replaces #e5e5e5 dividers */
  background:
    radial-gradient(1150px 540px at 50% -6%, rgba(201,169,97,0.11), rgba(201,169,97,0) 62%),
    linear-gradient(180deg,#0b0b0c 0%,#0d0d0e 60%,#0b0a09 100%);
  color:#e6e6e6;
}
#view-hotels.vit-dark .vit-eyebrow{ color:var(--gold-light); }
#view-hotels.vit-dark .section-title{ color:#ffffff; }
#view-hotels.vit-dark .section-subtitle{ color:#bdbdbd; }
#view-hotels.vit-dark .hp-trust{ background:rgba(255,255,255,0.035); border-color:rgba(201,169,97,0.22); }
#view-hotels.vit-dark .hp-trust-head{ color:#ffffff; }
#view-hotels.vit-dark .hp-trust-prop b{ color:#ffffff; }
#view-hotels.vit-dark .hp-trust-prop span{ color:#bdbdbd; }
#view-hotels.vit-dark .hp-trust-steps{ border-top-color:rgba(201,169,97,0.18); }
#view-hotels.vit-dark .hp-trust-step div b{ color:#ffffff; }
#view-hotels.vit-dark .hp-trust-step div span{ color:#a8a8a8; }
#view-hotels.vit-dark .hp-trust-cred{ color:#a8a8a8; }
#view-hotels.vit-dark .hp-finder{ border:1px solid rgba(201,169,97,0.28); }
#view-hotels.vit-dark .hp-finder-resulthead b{ color:#ffffff; }
#view-hotels.vit-dark .form-input, #view-hotels.vit-dark .form-select{ background:rgba(255,255,255,0.05); border:1px solid rgba(201,169,97,0.22); color:#ffffff; }
#view-hotels.vit-dark .form-input::placeholder{ color:#a8a8a8; }
#view-hotels.vit-dark .form-input:focus, #view-hotels.vit-dark .form-select:focus{ border-color:var(--gold); box-shadow:0 0 0 3px rgba(201,169,97,0.18); }
#view-hotels.vit-dark select.form-select option{ color:#1a1a1a; background:#fff; }
#view-hotels.vit-dark .hd-bar{ background:rgba(255,255,255,0.035); border-color:rgba(201,169,97,0.22); }
#view-hotels.vit-dark .hd-label{ color:var(--gold-light); }
#view-hotels.vit-dark .hd-bar label{ color:#a8a8a8; }
#view-hotels.vit-dark .hd-bar input{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#ffffff; }
#view-hotels.vit-dark .hd-bar input[type=date]::-webkit-calendar-picker-indicator{ filter:invert(0.85) sepia(0.3); cursor:pointer; }
#view-hotels.vit-dark .hd-summary{ color:var(--gold-light); }
#view-hotels.vit-dark .hs-btn{ background:rgba(255,255,255,0.05); border-color:rgba(201,169,97,0.22); color:#e6e6e6; }
#view-hotels.vit-dark .hs-btn:hover{ border-color:var(--gold); color:#fff; }
#view-hotels.vit-dark .hs-saved{ background:#141414; border-color:rgba(201,169,97,0.18); box-shadow:0 14px 32px rgba(0,0,0,.55); }
#view-hotels.vit-dark .hs-saved-empty{ color:#a8a8a8; }
#view-hotels.vit-dark .hs-saved-item{ border-color:rgba(201,169,97,0.14); }
#view-hotels.vit-dark .hs-saved-body b{ color:#ffffff; }
#view-hotels.vit-dark .hs-saved-body span{ color:#a8a8a8; }
#view-hotels.vit-dark .pkg-filter-toggle-btn{ background:rgba(255,255,255,0.05); border-color:rgba(201,169,97,0.25); color:#e6e6e6; }
#view-hotels.vit-dark .area-chip{ background:rgba(255,255,255,0.05); border:1px solid rgba(201,169,97,0.22); color:#d6d6d6; }
#view-hotels.vit-dark .area-chip:hover{ border-color:var(--gold); color:#fff; }
#view-hotels.vit-dark .area-chip.active{ background:var(--gold); border-color:var(--gold); color:#1a1a1a; }
#view-hotels.vit-dark .hp-shelf-title{ color:#ffffff; }
#view-hotels.vit-dark .hp-shelf-sub{ color:#a8a8a8; }
#view-hotels.vit-dark .hp-shelf-all{ color:var(--gold-light); }
#view-hotels.vit-dark .hp-col-card,#view-hotels.vit-dark .hp-hood-card{ background:#141414; border:1px solid rgba(201,169,97,0.18); }
#view-hotels.vit-dark .hp-col-card:hover,#view-hotels.vit-dark .hp-hood-card:hover{ border-color:var(--gold); box-shadow:0 14px 32px rgba(0,0,0,.55); }
#view-hotels.vit-dark .hp-col-name,#view-hotels.vit-dark .hp-col-price,#view-hotels.vit-dark .hp-hood-name{ color:#ffffff; }
#view-hotels.vit-dark .hp-col-area,#view-hotels.vit-dark .hp-hood-count{ color:#a8a8a8; }
#view-hotels.vit-dark .hp-hood-count b{ color:var(--gold-light); }
#view-hotels.vit-dark .hp-hood-card:hover .hp-hood-name{ color:var(--gold-light); }
#view-hotels.vit-dark .filter-sidebar{ background:rgba(255,255,255,0.03); border:1px solid rgba(201,169,97,0.16); border-radius:14px; padding:1.2rem 1.1rem; }
#view-hotels.vit-dark .filter-group{ border-bottom-color:rgba(201,169,97,0.14); }
#view-hotels.vit-dark .filter-title{ color:#ffffff; }
#view-hotels.vit-dark .filter-option{ color:#d6d6d6; }
#view-hotels.vit-dark .filter-option:hover{ color:#fff; }
#view-hotels.vit-dark .filter-option-count{ color:#a8a8a8; }
#view-hotels.vit-dark .filter-reset{ background:rgba(255,255,255,0.05); border:1px solid rgba(201,169,97,0.22); color:#e6e6e6; }
#view-hotels.vit-dark .filter-reset:hover{ border-color:var(--gold); color:#fff; background:rgba(201,169,97,0.12); }
#view-hotels.vit-dark .hotel-price-range-row{ color:#a8a8a8; }
#view-hotels.vit-dark .hotel-price-range-row #hotelMaxPriceLabel{ color:var(--gold-light); }
#view-hotels.vit-dark .hotels-resultbar #hotelCountInfo{ color:#bdbdbd; }
#view-hotels.vit-dark .hotel-view-toggle{ background:rgba(255,255,255,0.05); border-color:rgba(201,169,97,0.25); }
#view-hotels.vit-dark .hvt-btn{ background:transparent; color:#d6d6d6; }
#view-hotels.vit-dark .hvt-btn.active{ background:var(--gold); color:#1a1a1a; }
#view-hotels.vit-dark .hotels-map-controls{ color:#bdbdbd; }
#view-hotels.vit-dark .hotels-map-note{ color:#a8a8a8; }
#view-hotels.vit-dark .btn-outline{ color:#e6e6e6; border-color:rgba(201,169,97,0.4); background:transparent; }
#view-hotels.vit-dark .btn-outline:hover{ border-color:var(--gold); color:#fff; }
#view-hotels.vit-dark .kc-hotel-tile:hover,#view-hotels.vit-dark .kc-hotel-tile:focus-visible{ box-shadow:0 28px 60px rgba(0,0,0,.6), 0 0 32px rgba(201,169,97,0.12); }
#view-hotels.vit-dark .kc-hotel-tile .kc-tile-img img{ filter:saturate(.9) brightness(.88); }
#view-hotels.vit-dark .kc-hotel-tile:hover .kc-tile-img img{ filter:saturate(1.06) brightness(1.04); }
#view-hotels.vit-dark .vit-theme-toggle{ background:rgba(255,255,255,0.06); border:1px solid rgba(201,169,97,0.28); }
#view-hotels.vit-dark .vit-theme-toggle .vtt-dark{ background:var(--gold); color:#1a1a1a; }
#view-hotels.vit-dark .vit-theme-toggle .vtt-light{ color:#d6d6d6; }

/* ====================== WHITE CANVAS (the gallery — default) ======================
   Chrome (trust band, finder, inputs, filters, toolbars…) keeps its original light styling,
   so the light theme only needs the canvas, masthead, card depth + the toggle. */
#view-hotels.vit-light{
  --gray:#6f6a60;
  background:
    radial-gradient(1150px 520px at 50% -6%, rgba(201,169,97,0.07), rgba(201,169,97,0) 60%),
    #ffffff;
  color:#2c2c2c;
}
#view-hotels.vit-light .vit-eyebrow{ color:var(--gold-text); }
#view-hotels.vit-light .section-title{ color:#15130f; }
#view-hotels.vit-light .section-subtitle{ color:#6f6a60; }
#view-hotels.vit-light .filter-sidebar{ background:#fcfbf9; border:1px solid #efe7d4; border-radius:14px; }
#view-hotels.vit-light .kc-hotel-tile{ box-shadow:0 6px 22px rgba(20,16,8,.10); }
#view-hotels.vit-light .kc-hotel-tile:hover,#view-hotels.vit-light .kc-hotel-tile:focus-visible{ box-shadow:0 22px 46px rgba(20,16,8,.18), 0 0 0 1px rgba(201,169,97,0.12); }
#view-hotels.vit-light .kc-hotel-tile .kc-tile-img img{ filter:saturate(.99) brightness(.97); }
#view-hotels.vit-light .kc-hotel-tile:hover .kc-tile-img img{ filter:saturate(1.05) brightness(1.03); }
#view-hotels.vit-light .vit-theme-toggle{ background:#f3eede; border:1px solid #e6dcc2; }
#view-hotels.vit-light .vit-theme-toggle .vtt-light{ background:var(--gold); color:#1a1a1a; }
#view-hotels.vit-light .vit-theme-toggle .vtt-dark{ color:#8a8276; }


            .fs-track-row{ margin-top:.6rem; }
            .fs-track-btn{ display:inline-flex; align-items:center; gap:.4rem; background:#10243a; color:#fff; border:none; border-radius:9px; padding:.55rem .95rem; font-weight:700; font-size:13px; cursor:pointer; font-family:inherit; }
            .fs-track-btn:hover{ background:#16314f; }
            .fs-panel{ margin-top:.8rem; border:1px solid var(--border,#e2e2e2); border-radius:12px; padding:.9rem 1rem; background:#f7fafc; }
            .fs-loading{ font-size:13.5px; color:#555; }
            .fs-head{ display:flex; align-items:center; justify-content:space-between; gap:.6rem; flex-wrap:wrap; }
            .fs-flight{ font-weight:700; font-size:14px; color:#10243a; }
            .fs-badge{ font-size:12px; font-weight:800; padding:.2rem .55rem; border-radius:999px; color:#fff; white-space:nowrap; }
            .fs-ontime{ background:#1a8a4a; } .fs-delayed{ background:#c8881c; } .fs-landed{ background:#2563eb; }
            .fs-times{ display:flex; gap:1.4rem; margin:.7rem 0; }
            .fs-times .fs-lbl{ display:block; font-size:11px; color:#888; text-transform:uppercase; letter-spacing:.04em; }
            .fs-times b{ font-size:15px; color:#10243a; }
            .fs-suggest{ display:flex; align-items:center; justify-content:space-between; gap:.6rem; flex-wrap:wrap; background:#fff; border:1px dashed var(--gold,#c9a14a); border-radius:9px; padding:.55rem .75rem; }
            .fs-suggest b{ color:#10243a; } .fs-sub{ font-size:11.5px; color:#888; }
            .fs-apply{ background:var(--gold,#c9a14a); color:#1a1a1a; border:none; border-radius:7px; padding:.4rem .85rem; font-weight:700; font-size:12.5px; cursor:pointer; font-family:inherit; }
            .fs-tip{ font-size:12px; color:#555; margin-top:.6rem; line-height:1.5; }
            .fs-mock{ font-size:11px; color:#999; margin-top:.4rem; font-style:italic; }
            @media(max-width:560px){ .fs-times{ gap:1rem; } }
          

#view-events{ min-height:100vh; }
#view-events .apt-eyebrow{ display:block; font-family:var(--font-body); font-size:12px; font-weight:600; letter-spacing:3px; text-transform:uppercase; margin-bottom:.7rem; position:relative; z-index:1; }
#view-events .vit-theme-toggle{ display:inline-flex; align-items:center; border-radius:999px; padding:3px; cursor:pointer; font:inherit; -webkit-appearance:none; appearance:none; position:relative; z-index:1; }
#view-events .events-hero .vit-theme-toggle{ margin-top:1.4rem; }
#view-events .vit-theme-toggle .vtt-opt{ font-size:12px; font-weight:600; letter-spacing:.03em; padding:.34rem .85rem; border-radius:999px; transition:background .2s,color .2s; }
@media (prefers-reduced-motion: reduce){ #view-events .vit-theme-toggle .vtt-opt{ transition:none; } }
/* WHITE (default) */
#view-events.vit-light{ --gray:#6f6a60; background:radial-gradient(1200px 540px at 50% 0, rgba(201,169,97,0.05), rgba(201,169,97,0) 60%), #ffffff; color:#2c2c2c; }
#view-events.vit-light .events-hero{ background:#ffffff; color:#2c2c2c; }
#view-events.vit-light .events-hero::before{ background:radial-gradient(circle at 70% 0%, rgba(201,169,97,0.10) 0%, transparent 55%); }
#view-events.vit-light .events-hero h1{ color:#15130f; }
#view-events.vit-light .events-hero p{ color:#6f6a60; }
#view-events.vit-light .apt-eyebrow{ color:var(--gold-text); }
#view-events.vit-light .vit-theme-toggle{ background:#f3eede; border:1px solid #e6dcc2; }
#view-events.vit-light .vit-theme-toggle .vtt-light{ background:var(--gold); color:#1a1a1a; }
#view-events.vit-light .vit-theme-toggle .vtt-dark{ color:#8a8276; }
/* category chips sit in the now-white hero — make them legible on white */
#view-events.vit-light .events-cat-chip{ background:#f3eede; border:1px solid #e6dcc2; color:#6f6a60; }
#view-events.vit-light .events-cat-chip:hover{ background:rgba(201,169,97,0.18); border-color:var(--gold); color:var(--gold-text); }
/* month dividers use a white→cream metallic text-clip that vanishes on white */
#view-events.vit-light .events-month-label{ color:#15130f; }
@supports ((-webkit-background-clip: text) or (background-clip: text)){
  #view-events.vit-light .events-month-label{ background-image:none; -webkit-text-fill-color:#15130f; }
}
/* BLACK (optional) */
#view-events.vit-dark{ --gray:#bdbdbd; --border:rgba(201,169,97,0.20); background:radial-gradient(1200px 560px at 50% 0, rgba(201,169,97,0.10), rgba(201,169,97,0) 62%), linear-gradient(180deg,#0b0b0c,#0d0d0e 60%,#0b0a09); color:#e6e6e6; }
#view-events.vit-dark .apt-eyebrow{ color:var(--gold-light); }
/* >>> PAGE-SPECIFIC dark overrides <<< */
/* filters panel + its controls */
#view-events.vit-dark .pkg-filters-panel{ background:rgba(255,255,255,0.04); border-bottom-color:rgba(201,169,97,0.20); box-shadow:0 1px 4px rgba(0,0,0,0.35); }
#view-events.vit-dark .pkg-search-input{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#ffffff; }
#view-events.vit-dark .pkg-sort-select{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#ffffff; }
#view-events.vit-dark .pkg-filter-toggle-btn{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#ffffff; }
#view-events.vit-dark .pkg-filter-toggle-btn[aria-expanded="true"]{ background:var(--gold); color:#1a1a1a; border-color:var(--gold); }
#view-events.vit-dark .pkg-search-clear:hover{ background:var(--gold); color:#1a1a1a; }
#view-events.vit-dark .pkg-chip{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#bdbdbd; }
#view-events.vit-dark .pkg-chip.active{ background:var(--gold); color:#1a1a1a; border-color:var(--gold); }
#view-events.vit-dark .pkg-toggle{ color:#ffffff; }
#view-events.vit-dark .pkg-active-filter-pill{ background:rgba(201,169,97,0.12); border-color:var(--gold); color:#ffffff; }
/* category chips (hero) — base translucent-white already reads on dark, just align hover */
#view-events.vit-dark .events-cat-chip:hover{ background:rgba(201,169,97,0.2); border-color:var(--gold); color:var(--gold); }
/* month dividers — keep metallic clip (designed for dark), no change needed */
/* event cards */
#view-events.vit-dark .event-card{ background:#141414; border-color:rgba(201,169,97,0.20); }
#view-events.vit-dark .event-card:hover{ box-shadow:0 10px 30px rgba(0,0,0,0.5); }
#view-events.vit-dark .event-card.featured{ background:linear-gradient(135deg,#1a1610 0%,#141414 100%); border-color:var(--gold); }
#view-events.vit-dark .event-name{ color:#ffffff; }
#view-events.vit-dark .event-cat-badge{ background:rgba(255,255,255,0.06); color:#bdbdbd; }
#view-events.vit-dark .event-fare b{ color:#ffffff; }
#view-events.vit-dark .event-cta{ background:var(--gold); color:#1a1a1a; }
#view-events.vit-dark .event-cta:hover{ background:var(--gold-light,#d4b677); color:#1a1a1a; }
#view-events.vit-dark .event-cta-ghost{ background:transparent; color:#ffffff; border-color:rgba(201,169,97,0.22); }
#view-events.vit-dark .event-cta-ghost:hover{ color:#ffffff; border-color:var(--gold); }
#view-events.vit-dark .event-ical{ background:rgba(255,255,255,0.08); border-color:rgba(201,169,97,0.22); color:#ffffff; }
#view-events.vit-dark .event-ical:hover{ border-color:var(--gold); background:rgba(255,255,255,0.12); }
/* toggle pill */
/* review fixes */
#view-events.vit-dark .pkg-reset-btn{ color:#bdbdbd; border-color:rgba(201,169,97,0.22); }
#view-events.vit-dark .pkg-reset-btn:hover{ color:#ffffff; border-color:var(--gold); }
#view-events.vit-dark .pkg-sort-select option{ color:#1a1a1a; background:#fff; }
#view-events.vit-dark .pkg-search-input::placeholder{ color:#a8a8a8; }
#view-events.vit-dark .vit-theme-toggle{ background:rgba(255,255,255,0.06); border:1px solid rgba(201,169,97,0.28); }
#view-events.vit-dark .vit-theme-toggle .vtt-dark{ background:var(--gold); color:#1a1a1a; }
#view-events.vit-dark .vit-theme-toggle .vtt-light{ color:#d6d6d6; }


#view-tickets{ min-height:100vh; }
#view-tickets .apt-eyebrow{ display:block; font-family:var(--font-body); font-size:12px; font-weight:600; letter-spacing:3px; text-transform:uppercase; margin-bottom:.7rem; position:relative; z-index:1; }
#view-tickets .vit-theme-toggle{ display:inline-flex; align-items:center; border-radius:999px; padding:3px; cursor:pointer; font:inherit; -webkit-appearance:none; appearance:none; position:relative; z-index:1; }
#view-tickets .events-hero .vit-theme-toggle{ margin-top:1.4rem; }
#view-tickets .vit-theme-toggle .vtt-opt{ font-size:12px; font-weight:600; letter-spacing:.03em; padding:.34rem .85rem; border-radius:999px; transition:background .2s,color .2s; }
@media (prefers-reduced-motion: reduce){ #view-tickets .vit-theme-toggle .vtt-opt{ transition:none; } }
/* WHITE (default) */
#view-tickets.vit-light{ --gray:#6f6a60; background:radial-gradient(1200px 540px at 50% 0, rgba(201,169,97,0.05), rgba(201,169,97,0) 60%), #ffffff; color:#2c2c2c; }
#view-tickets.vit-light .events-hero{ background:#ffffff; color:#2c2c2c; }
#view-tickets.vit-light .events-hero::before{ display:none; }
#view-tickets.vit-light .events-hero h1{ color:#15130f; }
#view-tickets.vit-light .events-hero p{ color:#6f6a60; }
#view-tickets.vit-light .apt-eyebrow{ color:var(--gold-text); }
/* hero category chips are white-on-dark by default — re-skin for the white hero */
#view-tickets.vit-light .events-cat-chip{ background:#f6f1e6; border-color:#e6dcc2; color:#6f6a60; }
#view-tickets.vit-light .events-cat-chip:hover{ background:rgba(201,169,97,0.15); border-color:var(--gold); color:var(--gold-text); }
#view-tickets.vit-light .events-cat-chip.active{ background:var(--gold); color:#1a1a1a; border-color:var(--gold); }
#view-tickets.vit-light .vit-theme-toggle{ background:#f3eede; border:1px solid #e6dcc2; }
#view-tickets.vit-light .vit-theme-toggle .vtt-light{ background:var(--gold); color:#1a1a1a; }
#view-tickets.vit-light .vit-theme-toggle .vtt-dark{ color:#8a8276; }
/* BLACK (optional) */
#view-tickets.vit-dark{ --gray:#bdbdbd; --border:rgba(201,169,97,0.20); background:radial-gradient(1200px 560px at 50% 0, rgba(201,169,97,0.10), rgba(201,169,97,0) 62%), linear-gradient(180deg,#0b0b0c,#0d0d0e 60%,#0b0a09); color:#e6e6e6; }
#view-tickets.vit-dark .apt-eyebrow{ color:var(--gold-light); }
/* hero (already a dark gradient in base CSS — leave it; only ensure copy reads on it) */
/* >>> PAGE-SPECIFIC dark overrides <<< */
/* filters bar */
#view-tickets.vit-dark .pkg-filters-panel{ background:rgba(255,255,255,0.04); border-bottom-color:rgba(201,169,97,0.20); box-shadow:none; }
#view-tickets.vit-dark .pkg-search-input{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#ffffff; }
#view-tickets.vit-dark .pkg-search-input::placeholder{ color:#a8a8a8; }
#view-tickets.vit-dark .pkg-search-clear{ background:rgba(255,255,255,0.12); color:#d6d6d6; }
#view-tickets.vit-dark .pkg-sort-select{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#ffffff; }
#view-tickets.vit-dark .pkg-sort-select option{ color:#1a1a1a; background:#fff; }
#view-tickets.vit-dark .pkg-filter-toggle-btn{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#ffffff; }
#view-tickets.vit-dark .pkg-filter-toggle-btn[aria-expanded="true"]{ background:var(--gold); color:#1a1a1a; border-color:var(--gold); }
#view-tickets.vit-dark .pkg-reset-btn{ color:#bdbdbd; border-color:rgba(201,169,97,0.22); }
#view-tickets.vit-dark .pkg-chip{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#d6d6d6; }
#view-tickets.vit-dark .pkg-chip.active{ background:var(--gold); color:#1a1a1a; border-color:var(--gold); }
#view-tickets.vit-dark .pkg-toggle{ color:#ffffff; }
#view-tickets.vit-dark .pkg-active-filter-pill{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.45); color:#ffffff; }
/* bundle strip (light gradient band) */
#view-tickets.vit-dark .bundle-strip{ background:rgba(255,255,255,0.04); border-color:rgba(201,169,97,0.30); color:#e6e6e6; }
/* month group label + counts */
#view-tickets.vit-dark .events-month-label{ color:#ffffff; }
/* ticket cards */
#view-tickets.vit-dark .tkt-card{ background:#141414; border-color:rgba(201,169,97,0.20); }
#view-tickets.vit-dark .tkt-name{ color:#ffffff; }
#view-tickets.vit-dark .tkt-card.soldout .tkt-btn{ background:#3a3a3a; }
/* "Why book tickets with us" trust section (hardcoded #faf8f5 band + inner card) */
#view-tickets.vit-dark .tkt-confidence{ background:rgba(255,255,255,0.04) !important; }
#view-tickets.vit-dark .tkt-confidence .tkt-confidence-h3{ color:#ffffff; }
#view-tickets.vit-dark .tkt-confidence .tkt-confidence-callout{ background:#141414 !important; border-color:rgba(201,169,97,0.20) !important; }
#view-tickets.vit-dark .tkt-confidence .tkt-confidence-callout-h{ color:#ffffff; }
/* MODAL RESETS — keep these light + restore re-scoped tokens */
#view-tickets.vit-dark #ticketCheckoutModal{ --gray:#888; --border:#e5e5e5; }
#view-tickets.vit-dark #ticketBasketModal{ --gray:#888; --border:#e5e5e5; }
/* theme toggle */
/* review fixes */
#view-tickets.vit-dark .tkt-card .tkt-btn{ background:rgba(255,255,255,0.08); color:#ffffff; border:1px solid rgba(201,169,97,0.30); }
#view-tickets.vit-dark .tkt-pricebar{ background:rgba(255,255,255,0.06); }
#view-tickets.vit-dark .vit-theme-toggle{ background:rgba(255,255,255,0.06); border:1px solid rgba(201,169,97,0.28); }
#view-tickets.vit-dark .vit-theme-toggle .vtt-dark{ background:var(--gold); color:#1a1a1a; }
#view-tickets.vit-dark .vit-theme-toggle .vtt-light{ color:#d6d6d6; }


/* ============ "THE VITRINE" for the TOURS page — white default / black toggle ============
   Scoped to #view-tours. Theme class on the view: .vit-light (default, white gallery) | .vit-dark (near-black).
   Shared bits (eyebrow, toggle pill) on bare #view-tours. The dark theme re-scopes --gray + --border so
   inherited muted text / dividers flip in one place; the tours drawer resets them so its light panels stay readable.
   NOTE: --dark (#0f0f0f) is NOT re-scoped by this template, so .tours-count b / .tours-pill (var(--dark) text)
   get explicit cream overrides below. */
#view-tours{ min-height:100vh; }
#view-tours .apt-eyebrow{ display:block; font-family:var(--font-body); font-size:12px; font-weight:600; letter-spacing:3px; text-transform:uppercase; margin-bottom:.7rem; position:relative; z-index:1; }
#view-tours .vit-theme-toggle{ display:inline-flex; align-items:center; border-radius:999px; padding:3px; cursor:pointer; font:inherit; -webkit-appearance:none; appearance:none; position:relative; z-index:1; }
#view-tours .service-hero .vit-theme-toggle{ margin-top:1.4rem; }
#view-tours .vit-theme-toggle .vtt-opt{ font-size:12px; font-weight:600; letter-spacing:.03em; padding:.34rem .85rem; border-radius:999px; transition:background .2s,color .2s; }
@media (prefers-reduced-motion:reduce){ #view-tours .vit-theme-toggle .vtt-opt{ transition:none; } }

/* ===================== WHITE CANVAS (default) ===================== */
#view-tours.vit-light{ --gray:#6f6a60; background:radial-gradient(1200px 540px at 50% 0, rgba(201,169,97,0.05), rgba(201,169,97,0) 60%), #ffffff; color:#2c2c2c; }
#view-tours.vit-light .service-hero{ background:#ffffff; color:#2c2c2c; }
#view-tours.vit-light .service-hero::before{ background:radial-gradient(circle at 50% 0%, rgba(201,169,97,0.10) 0%, transparent 60%); }
#view-tours.vit-light .service-hero h1{ color:#15130f; }
#view-tours.vit-light .service-hero p{ color:#6f6a60; }
#view-tours.vit-light .apt-eyebrow{ color:var(--gold-text); }
#view-tours.vit-light .vit-theme-toggle{ background:#f3eede; border:1px solid #e6dcc2; }
#view-tours.vit-light .vit-theme-toggle .vtt-light{ background:var(--gold); color:#1a1a1a; }
#view-tours.vit-light .vit-theme-toggle .vtt-dark{ color:#8a8276; }

/* ===================== BLACK CANVAS (optional) ===================== */
#view-tours.vit-dark{
  --gray:#bdbdbd; --border:rgba(201,169,97,0.20);
  background:radial-gradient(1200px 560px at 50% 0, rgba(201,169,97,0.10), rgba(201,169,97,0) 62%), linear-gradient(180deg,#0b0b0c,#0d0d0e 60%,#0b0a09);
  color:#e6e6e6;
}
#view-tours.vit-dark .apt-eyebrow{ color:var(--gold-light); }
/* tour / service cards → near-black */
#view-tours.vit-dark .tour-card2,
#view-tours.vit-dark .service-card{ background:#141414; }
/* headings & strong text → light cream */
#view-tours.vit-dark .tour-name,
#view-tours.vit-dark .tours-count b{ color:#ffffff; }
/* light pill / chip → dark glass */
#view-tours.vit-dark .tours-pill{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#ffffff; }
#view-tours.vit-dark .tours-pill a{ color:#bdbdbd; }
#view-tours.vit-dark .tours-pill a:hover{ color:var(--gold); }
/* light price-bar tracks → dark glass (gold fill stays gold) */
#view-tours.vit-dark .tour-pricebar,
#view-tours.vit-dark .tkt-pricebar{ background:rgba(255,255,255,0.06); }
/* white iCal button → dark glass */
#view-tours.vit-dark .event-ical{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#ffffff; }
#view-tours.vit-dark .event-ical:hover{ border-color:var(--gold); background:rgba(255,255,255,0.10); }
/* keep the tours detail drawer readable (reset the re-scoped tokens to their light defaults) */
#view-tours.vit-dark #toursDrawer{ --gray:#777; --border:#e5e5e5; }
/* toggle (dark) */
/* review fixes */
#view-tours.vit-dark .hpc-sort{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#ffffff; }
#view-tours.vit-dark .hpc-search{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#ffffff; }
#view-tours.vit-dark .hpc-search::placeholder{ color:#8f8676; }
#view-tours.vit-dark .hpc-chip{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#ffffff; }
#view-tours.vit-dark .hpc-chip.on{ background:var(--gold); color:#1a1a1a; }
#view-tours.vit-dark .vit-theme-toggle{ background:rgba(255,255,255,0.06); border:1px solid rgba(201,169,97,0.28); }
#view-tours.vit-dark .vit-theme-toggle .vtt-dark{ background:var(--gold); color:#1a1a1a; }
#view-tours.vit-dark .vit-theme-toggle .vtt-light{ color:#d6d6d6; }


.aq-wrap{ max-width:1100px; margin:1.6rem auto 0; padding-top:0; }
.aq-tool{ background:linear-gradient(135deg,#1a1d22,#2c3038); color:#fff; border:1px solid rgba(201,169,97,.4); border-radius:16px; padding:1.4rem 1.6rem; }
.aq-tool-head{ font-family:'Playfair Display',serif; font-size:1.3rem; display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; margin-bottom:1rem; }
.aq-ic{ color:#e7c87a; }
.aq-tool-sub{ font-family:inherit; font-size:12px; font-weight:400; color:#d6d6d6; }
.aq-fields{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:.8rem; }
.aq-f{ display:flex; flex-direction:column; gap:.3rem; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:#cbb27a; }
.aq-f select{ border:1px solid rgba(255,255,255,.25); border-radius:9px; padding:.55rem .6rem; font:inherit; font-size:13.5px; background:#23272e; color:#fff; text-transform:none; }
.aq-result{ margin-top:1.2rem; padding-top:1.2rem; border-top:1px solid rgba(255,255,255,.12); }
.aq-price-box{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.aq-price{ display:flex; align-items:baseline; gap:.5rem; }
.aq-price span{ font-size:12px; color:#d6d6d6; }
.aq-price b{ font-family:'Playfair Display',serif; font-size:2.2rem; color:#fff; line-height:1; }
.aq-price i{ font-style:normal; font-size:11.5px; color:#9fb592; }
.aq-route{ font-size:13px; color:#ddd; margin-top:.85rem; }
.aq-incl{ display:flex; flex-wrap:wrap; gap:.4rem .9rem; margin-top:.7rem; }
.aq-incl span{ font-size:11.5px; color:#cbb27a; }
.aq-enquire{ font-size:13.5px; color:#ddd; } .aq-enquire a{ color:#e7c87a; cursor:pointer; text-decoration:underline; }
.aft-tool{ background:#fff; border:1px solid var(--border,#e5e5e5); border-radius:16px; padding:1.4rem 1.6rem; box-shadow:0 8px 22px rgba(0,0,0,.05); }
.aft-tool-head{ font-family:'Playfair Display',serif; font-size:1.3rem; display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; margin-bottom:1rem; color:#1a1a1a; }
.aft-tool-head .aq-ic{ color:var(--gold,#c9a14a); }
.aft-tool-sub{ font-family:inherit; font-size:12px; font-weight:400; color:#888; }
.aft-fields{ display:flex; gap:.7rem; flex-wrap:wrap; align-items:center; }
.aft-fields input{ border:1px solid var(--border,#ddd); border-radius:9px; padding:.6rem .7rem; font:inherit; font-size:13.5px; background:#fafafa; color:#1a1a1a; }
.aft-fields input#aftFlight{ flex:1; min-width:160px; text-transform:uppercase; }
@media(max-width:560px){ .aq-price b{ font-size:1.8rem; } .aft-fields input, .aft-fields button{ width:100%; flex-basis:100%; } }
/* Meet & greet timeline + meet points */
.mg-section{ max-width:1100px; margin:2.6rem auto 0; }
.mg-head{ font-family:'Playfair Display',serif; font-size:1.6rem; text-align:center; color:var(--dark,#1a1a1a); margin-bottom:1.8rem; }
.mg-steps{ display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; }
.mg-step{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:.5rem; position:relative; }
.mg-ic{ width:52px; height:52px; border-radius:50%; background:linear-gradient(135deg,#1a1d22,#2c3038); color:#e7c87a; display:flex; align-items:center; justify-content:center; font-size:1.4rem; border:1px solid rgba(201,169,97,.4); flex:0 0 auto; z-index:1; }
.mg-step-txt b{ font-size:13.5px; color:var(--dark,#1a1a1a); display:block; }
.mg-step-txt span{ font-size:12px; color:var(--gray,#777); line-height:1.45; }
.mg-step:not(:last-child)::after{ content:''; position:absolute; top:26px; left:calc(50% + 30px); width:calc(100% - 60px); height:2px; background:linear-gradient(90deg,#c9a14a,#e7c87a); }
.mg-meet{ margin-top:2.4rem; background:#faf8f5; border:1px solid #ecdfc4; border-radius:16px; padding:1.4rem 1.6rem; }
.mg-meet-head{ font-weight:700; font-size:14px; color:#6b531d; margin-bottom:1rem; }
.mg-meet-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:.9rem 1.4rem; }
.mg-meet-item{ display:flex; gap:.7rem; align-items:flex-start; }
.mg-meet-code{ flex:0 0 auto; background:var(--dark,#1a1d22); color:#fff; font-weight:800; font-size:11px; padding:.25rem .45rem; border-radius:6px; letter-spacing:.04em; }
.mg-meet-item b{ font-size:13px; display:block; color:var(--dark,#1a1a1a); }
.mg-meet-item span{ font-size:12px; color:#7a7264; }
@media(max-width:760px){ .mg-steps{ grid-template-columns:1fr; gap:1.2rem; } .mg-step{ flex-direction:row; text-align:left; align-items:flex-start; } .mg-step:not(:last-child)::after{ display:none; } }
/* Airports map + which-airport helper */
.apm-section{ max-width:1100px; margin:2.6rem auto 0; }
.apm-head{ font-family:'Playfair Display',serif; font-size:1.6rem; text-align:center; color:var(--dark,#1a1a1a); margin-bottom:1.4rem; }
.apm-which{ background:#faf8f5; border:1px solid #ecdfc4; border-radius:14px; padding:1.1rem 1.3rem; margin-bottom:1.2rem; display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; }
.apm-which-label{ font-weight:700; font-size:13px; color:#6b531d; }
.apm-which select{ border:1px solid var(--border,#ddd); border-radius:9px; padding:.5rem .6rem; font:inherit; font-size:13.5px; background:#fff; flex:1 1 200px; min-width:0; }
.apm-rank{ margin-top:.9rem; flex-basis:100%; }
.apm-rank-hint{ font-size:12.5px; color:#9a8f78; }
.mg-head, .mg-meet-head, .apm-head, .aq-tool-head, .aft-tool-head, .apm-rank-h{ margin-top:0; }
.apm-rank-h{ font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:#9a8f78; margin-bottom:.5rem; }
.apm-rank-row{ display:flex; align-items:center; gap:.7rem; padding:.45rem 0; border-bottom:1px solid #efe7d6; flex-wrap:wrap; }
.apm-rank-n{ flex:0 0 auto; width:22px; height:22px; border-radius:50%; background:var(--gold,#c9a14a); color:#1a1a1a; font-weight:800; font-size:12px; display:flex; align-items:center; justify-content:center; }
.apm-rank-row b{ font-size:13.5px; color:var(--dark,#1a1a1a); }
.apm-rank-meta{ font-size:12px; color:#888; margin-left:auto; white-space:nowrap; }
.apm-rank-btn{ flex:0 0 auto; background:var(--dark,#1a1d22); color:#fff; border:none; border-radius:7px; padding:.32rem .6rem; font:inherit; font-size:12px; font-weight:600; cursor:pointer; }
.apm-map{ height:420px; border-radius:14px; border:1px solid var(--border,#e2e2e2); overflow:hidden; z-index:0; background:#e7eef2; }
.apm-note{ font-size:11.5px; color:#9a9a9a; margin-top:.6rem; text-align:center; }
.ap-pin{ display:inline-block; transform:translateX(-50%); background:#1a1d22; color:#fff; border:1px solid rgba(201,169,97,.6); border-radius:999px; font-weight:700; font-size:11px; padding:3px 8px; white-space:nowrap; box-shadow:0 2px 8px rgba(0,0,0,.3); }
.ap-pin-cruise{ background:#b8924a; color:#1a1a1a; border-color:#b8924a; }
.ap-pop-btn{ margin-top:.4rem; background:var(--gold,#c9a14a); color:#1a1a1a; border:none; border-radius:6px; padding:.3rem .55rem; font-weight:700; font-size:12px; cursor:pointer; }
.leaflet-popup-content .ap-pop-btn{ display:block; }
@media(max-width:560px){ .apm-rank-meta{ margin-left:0; } .apm-map{ height:340px; } }
/* ===== Airports hotel-toolkit (trust · collections · filters · ratings/quick-view · compare · save/share · travel-aware) ===== */
.at-trust{ max-width:1100px; margin:1.6rem auto 0; background:#faf8f5; border:1px solid #ecdfc4; border-radius:16px; padding:1.5rem 1.6rem; }
.at-trust-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem; }
.at-trust-item{ display:flex; gap:.65rem; align-items:flex-start; }
.at-trust-item .ti-ic{ font-size:1.3rem; flex:0 0 auto; line-height:1.2; }
.at-trust-item b{ display:block; font-size:13.5px; color:var(--dark,#1a1a1a); }
.at-trust-item span{ font-size:12.5px; color:#7d7363; line-height:1.4; }
.at-steps{ display:flex; gap:.6rem; margin-top:1.3rem; flex-wrap:wrap; }
.at-step{ flex:1 1 0; min-width:160px; display:flex; align-items:center; gap:.55rem; background:#fff; border:1px solid #efe7d6; border-radius:11px; padding:.7rem .8rem; }
.at-step-n{ flex:0 0 auto; width:24px; height:24px; border-radius:50%; background:var(--gold,#c9a14a); color:#1a1a1a; font-weight:800; font-size:12px; display:flex; align-items:center; justify-content:center; }
.at-step b{ font-size:13px; } .at-step span{ font-size:11.5px; color:#6b6253; display:block; }
.at-cols{ max-width:1180px; margin:1.4rem auto 0; }
.at-col{ margin-bottom:1.6rem; }
.at-col-head{ display:flex; align-items:baseline; justify-content:space-between; margin:0 .4rem .7rem; gap:.6rem; }
.at-col-head h3{ font-family:'Playfair Display',serif; font-size:1.3rem; margin:0; color:var(--dark,#1a1a1a); }
.at-col-head span{ font-size:12px; color:#6b6253; text-align:right; }
.at-shelf{ display:flex; gap:1rem; overflow-x:auto; padding:.3rem .4rem .8rem; scroll-snap-type:x mandatory; }
.at-ccard{ flex:0 0 230px; scroll-snap-align:start; background:#fff; border:1px solid var(--border,#eee); border-radius:14px; padding:1rem 1.1rem; cursor:pointer; transition:.18s; }
.at-ccard:hover{ box-shadow:0 12px 26px -16px rgba(0,0,0,.3); transform:translateY(-2px); border-color:#e6d3a8; }
.at-ccard-top{ display:flex; align-items:center; gap:.5rem; }
.at-ccard-ic{ font-size:1.4rem; }
.at-ccard-badge{ margin-left:auto; font-size:10.5px; font-weight:700; color:#6b531d; background:#f6edd8; border-radius:999px; padding:2px 8px; white-space:nowrap; }
.at-ccard h4{ margin:.55rem 0 .2rem; font-size:14.5px; color:var(--dark,#1a1a1a); }
.at-ccard-sub{ font-size:12px; color:#6b6253; }
.at-ccard-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:.7rem; }
.at-ccard-price{ font-weight:800; color:var(--gold,#b8924a); font-size:14px; }
.at-ccard-go{ font-size:11.5px; font-weight:700; color:#1a1a1a; }
.at-filterbar{ max-width:1180px; margin:0 auto 1.2rem; display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; justify-content:center; }
.at-fgroup{ display:flex; gap:.3rem; background:#f5f1ea; border-radius:10px; padding:.25rem; }
.at-fchip{ border:none; background:transparent; border-radius:8px; padding:.4rem .7rem; font:inherit; font-size:12.5px; font-weight:600; color:#6f6657; cursor:pointer; }
.at-fchip.active{ background:#fff; color:#1a1a1a; box-shadow:0 1px 4px rgba(0,0,0,.08); }
.at-fselect{ border:1px solid var(--border,#ddd); border-radius:9px; padding:.45rem .6rem; font:inherit; font-size:12.5px; background:#fff; }
.at-count{ width:100%; text-align:center; font-size:12px; color:#6b6253; }
.at-acard .service-card-image{ position:relative; }
.at-rating-pill{ position:absolute; top:10px; right:10px; background:rgba(20,29,24,.92); color:#fff; border-radius:999px; font-size:11.5px; font-weight:700; padding:3px 9px; }
.at-rating-pill .star{ color:#e7c87a; }
.at-private-tag{ position:absolute; top:10px; left:10px; background:var(--gold,#c9a14a); color:#1a1a1a; border-radius:999px; font-size:10px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; padding:3px 8px; }
.at-card-acts{ display:flex; gap:.5rem; margin-top:.8rem; }
.at-card-acts button{ flex:1; border:1px solid var(--border,#ddd); background:#fff; border-radius:9px; padding:.45rem; font:inherit; font-size:12px; font-weight:600; cursor:pointer; color:#1a1a1a; min-width:0; }
.at-card-acts button:hover{ border-color:var(--gold,#c9a14a); }
.at-card-acts button.on{ background:#1a1d22; color:#fff; border-color:#1a1d22; }
.atq-hero{ display:flex; align-items:center; gap:.9rem; margin-bottom:1rem; flex-wrap:wrap; }
.atq-hero .atq-ic{ font-size:2.2rem; }
.atq-hero h4{ margin:0; font-size:1.2rem; font-family:'Playfair Display',serif; }
.atq-hero .atq-code{ font-size:12px; color:#6b6253; font-weight:700; letter-spacing:.05em; }
.atq-badge{ margin-left:auto; text-align:center; background:#10331f; color:#fff; border-radius:11px; padding:.4rem .7rem; }
.atq-badge b{ display:block; font-size:1.1rem; } .atq-badge span{ font-size:10px; }
.atq-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem; margin-bottom:1rem; }
.atq-stat{ background:#faf8f5; border:1px solid #efe7d6; border-radius:11px; padding:.7rem; text-align:center; }
.atq-stat b{ display:block; font-size:1rem; color:var(--dark,#1a1a1a); } .atq-stat span{ font-size:11px; color:#6b6253; }
.atq-sec-h{ font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:#6b6253; margin:1rem 0 .5rem; font-weight:700; }
.atq-veh-row,.atq-route-row{ display:flex; align-items:center; justify-content:space-between; padding:.45rem 0; border-bottom:1px solid #f1ece1; font-size:13px; }
.atq-veh-row b,.atq-route-row b{ color:var(--gold,#b8924a); }
.atq-ctas{ display:flex; gap:.6rem; margin-top:1.2rem; flex-wrap:wrap; }
.atq-ctas .btn{ flex:1 1 30%; }
.atc-tray{ position:fixed; left:50%; transform:translateX(-50%); bottom:18px; z-index:1200; background:#1a1d22; color:#fff; border:1px solid rgba(201,169,97,.5); border-radius:14px; padding:.6rem .8rem; display:none; align-items:center; gap:.7rem; box-shadow:0 16px 40px -18px rgba(0,0,0,.7); max-width:94vw; }
.atc-tray.show{ display:flex; }
.atc-tray-chips{ display:flex; gap:.4rem; flex-wrap:wrap; }
.atc-chip{ background:#2a2e35; border-radius:999px; padding:.25rem .6rem; font-size:12px; display:flex; align-items:center; gap:.35rem; }
.atc-chip button{ background:none; border:none; color:#c9a14a; cursor:pointer; font-size:14px; line-height:1; }
.atc-tray .btn{ padding:.45rem .8rem; font-size:12.5px; }
.atc-tray-clear{ background:none; border:none; color:#9a9a9a; font-size:12px; cursor:pointer; text-decoration:underline; }
.atc-table{ width:100%; border-collapse:collapse; font-size:13px; }
.atc-table th,.atc-table td{ padding:.55rem .6rem; border-bottom:1px solid #f1ece1; text-align:left; vertical-align:top; }
.atc-table thead th{ font-family:'Playfair Display',serif; font-size:14px; }
.atc-table tbody th{ font-weight:600; color:#7d7363; font-size:12px; white-space:nowrap; }
.atc-table .best{ color:var(--gold,#b8924a); font-weight:800; }
.atc-scroll{ overflow-x:auto; }
.aqs-toolbar{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.9rem; padding-top:.9rem; border-top:1px solid rgba(255,255,255,.12); }
.aqs-btn{ background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); color:#fff; border-radius:9px; padding:.45rem .7rem; font:inherit; font-size:12.5px; font-weight:600; cursor:pointer; }
.aqs-btn:hover{ border-color:var(--gold,#c9a14a); }
.aqs-saved{ display:none; margin-top:.7rem; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); border-radius:11px; padding:.7rem .8rem; }
.aqs-saved.show{ display:block; }
.aqs-saved-row{ display:flex; align-items:center; justify-content:space-between; gap:.6rem; padding:.4rem 0; border-bottom:1px solid rgba(255,255,255,.08); font-size:12.5px; }
.aqs-saved-row .aqs-open{ background:none; border:none; padding:0; font:inherit; text-align:left; color:var(--gold,#e7c87a); cursor:pointer; }
.aqs-saved-row .aqs-open:hover{ text-decoration:underline; }
.aqs-saved-row .del{ color:#d8a; cursor:pointer; background:none; border:none; font:inherit; }
.aq-travel-fields{ display:grid; grid-template-columns:repeat(4,1fr); gap:.8rem; margin-top:.2rem; }
.aq-travel{ margin-top:.8rem; display:flex; flex-wrap:wrap; gap:.5rem; }
.aq-travel-tag{ background:rgba(201,169,97,.16); border:1px solid rgba(201,169,97,.4); color:#f0e2c0; border-radius:10px; padding:.4rem .7rem; font-size:12px; }
.aq-travel-tag b{ color:#fff; }
@media(max-width:760px){
  .at-trust-grid{ grid-template-columns:1fr 1fr; }
  .atq-stats{ grid-template-columns:1fr 1fr; }
  .aq-travel-fields{ grid-template-columns:1fr 1fr; }
  .atc-tray{ left:8px; right:8px; transform:none; max-width:none; flex-wrap:wrap; }
  body.atc-tray-open .fab-container, body.atc-tray-open #akLauncher{ display:none !important; }
}
@media(max-width:480px){ .at-trust-grid{ grid-template-columns:1fr; } .atq-ctas .btn{ flex:1 1 100%; } }
/* ===== Extras + EV · departure planner · reviews · FAQ ===== */
.aq-extras{ margin-top:.4rem; }
.aq-extras-head{ font-size:12px; font-weight:700; color:#d6d6d6; margin-bottom:.5rem; }
.aq-extras-head span{ font-weight:400; color:#9a8f78; }
.aq-extras-grid{ display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
.aq-x{ display:flex; align-items:center; gap:.55rem; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); border-radius:10px; padding:.5rem .65rem; cursor:pointer; }
.aq-x:hover{ border-color:rgba(201,169,97,.5); }
.aq-x input{ accent-color:var(--gold,#c9a14a); flex:0 0 auto; }
.aq-x-ic{ font-size:1.1rem; flex:0 0 auto; }
.aq-x-txt{ flex:1; min-width:0; display:flex; flex-direction:column; }
.aq-x-txt b{ font-size:12.5px; color:#fff; font-weight:600; }
.aq-x-txt em{ font-size:11px; color:#a8a8a8; font-style:normal; }
.aq-x-price{ font-size:11.5px; font-weight:700; color:#e7c87a; flex:0 0 auto; white-space:nowrap; }
.aq-x-ev{ grid-column:1/-1; background:rgba(120,180,120,.1); border-color:rgba(140,190,120,.4); }
.aq-ev-badge{ margin-top:.7rem; background:rgba(120,180,120,.14); border:1px solid rgba(140,190,120,.45); border-radius:10px; padding:.5rem .7rem; font-size:12.5px; color:#cfe6c4; }
.aq-ev-badge b{ color:#fff; }
.aq-extras-sum{ margin-top:.7rem; display:flex; flex-wrap:wrap; gap:.4rem; }
.aq-extras-sum span{ font-size:11.5px; background:rgba(255,255,255,.08); border-radius:999px; padding:.25rem .6rem; color:#e6e6e6; }
.dp-tool{ background:#faf8f5; border:1px solid #ecdfc4; border-radius:16px; padding:1.3rem 1.5rem; }
.dp-fields select, .dp-fields input{ min-width:0; }
.dp-result{ margin-top:.9rem; }
.dp-hint{ font-size:12.5px; color:#6b6253; }
.dp-card{ background:#fff; border:1px solid #efe7d6; border-radius:12px; padding:1rem 1.1rem; }
.dp-big{ font-size:1.05rem; color:#1a1a1a; } .dp-big b{ color:var(--gold,#b8924a); font-size:1.2rem; }
.dp-prev{ font-size:12px; color:#b3402b; font-weight:600; }
.dp-flow{ display:flex; align-items:center; gap:.5rem; margin:.9rem 0; flex-wrap:wrap; }
.dp-node{ background:#faf8f5; border:1px solid #efe7d6; border-radius:10px; padding:.5rem .7rem; text-align:center; flex:1 1 120px; }
.dp-node b{ display:block; font-size:1rem; color:#1a1a1a; } .dp-node span{ font-size:10.5px; color:#6b6253; }
.dp-arrow{ color:var(--gold,#c9a14a); font-weight:700; flex:0 0 auto; }
.dp-breakdown{ font-size:11.5px; color:#6b6253; margin-bottom:.8rem; }
.ar-strip{ max-width:1100px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; }
.ar-card{ background:#fff; border:1px solid var(--border,#eee); border-radius:14px; padding:1.1rem 1.2rem; }
.ar-head{ display:flex; align-items:center; gap:.6rem; margin-bottom:.6rem; }
.ar-av{ flex:0 0 auto; width:34px; height:34px; border-radius:50%; background:var(--gold,#c9a14a); color:#1a1a1a; font-weight:800; display:flex; align-items:center; justify-content:center; }
.ar-who{ flex:1; min-width:0; } .ar-who b{ display:block; font-size:13.5px; } .ar-who span{ font-size:11.5px; color:#6b6253; }
.ar-stars{ color:#d99a1c; font-size:13px; flex:0 0 auto; }
.ar-quote{ font-size:13px; color:#444; line-height:1.5; font-style:italic; }
.ar-verified{ margin-top:.6rem; font-size:11px; color:#2f7a44; font-weight:600; }
.at-faq{ max-width:820px; margin:0 auto; }
.at-faq-item{ border:1px solid var(--border,#eee); border-radius:11px; margin-bottom:.6rem; background:#fff; overflow:hidden; }
.at-faq-item summary{ cursor:pointer; padding:.9rem 1.1rem; font-weight:600; font-size:14px; color:#1a1a1a; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.at-faq-item summary::-webkit-details-marker{ display:none; }
.at-faq-item summary::after{ content:'+'; color:var(--gold,#c9a14a); font-size:1.3rem; font-weight:700; flex:0 0 auto; }
.at-faq-item[open] summary::after{ content:'–'; }
.at-faq-item p{ padding:0 1.1rem 1rem; margin:0; font-size:13px; color:#555; line-height:1.6; }
@media(max-width:760px){ .ar-strip{ grid-template-columns:1fr; } .dp-flow{ flex-direction:column; align-items:stretch; } .dp-arrow{ transform:rotate(90deg); align-self:center; } }
@media(max-width:560px){ .aq-extras-grid{ grid-template-columns:1fr; } }


/* ============ "THE VITRINE" for the AIRPORTS page — white default / black toggle ============
   Scoped to #view-airports. Theme class on the view: .vit-light (default, white gallery) | .vit-dark (near-black).
   Shared bits (eyebrow, toggle pill) on bare #view-airports. The dark theme re-scopes --gray + --border so
   inherited muted text / dividers flip in one place; the 2 airport modals reset them so they stay readable. */
#view-airports{ min-height:100vh; }
#view-airports .apt-eyebrow{ display:block; font-family:var(--font-body); font-size:12px; font-weight:600; letter-spacing:3px; text-transform:uppercase; margin-bottom:.7rem; position:relative; z-index:1; }
#view-airports .vit-theme-toggle{ display:inline-flex; align-items:center; border-radius:999px; padding:3px; cursor:pointer; font:inherit; -webkit-appearance:none; appearance:none; position:relative; z-index:1; }
#view-airports .service-hero .vit-theme-toggle{ margin-top:0.9rem; }
/* Compact airports hero so the booking form sits higher up the page */
#view-airports .service-hero{ padding:1.6rem 2rem 1rem; }
#view-airports .service-hero h1{ font-size:2.6rem; margin-bottom:.4rem; }
#view-airports .service-hero p{ margin-bottom:0; font-size:1rem; max-width:680px; margin-left:auto; margin-right:auto; }
#view-airports .aq-wrap{ margin-top:.55rem; }
@media(max-width:768px){ #view-airports .service-hero{ padding:1.3rem 1rem .9rem; } }
#view-airports .vit-theme-toggle .vtt-opt{ font-size:12px; font-weight:600; letter-spacing:.03em; padding:.34rem .85rem; border-radius:999px; transition:background .2s,color .2s; }

/* ===================== WHITE CANVAS (default) ===================== */
#view-airports.vit-light{ --gray:#6f6a60; background:radial-gradient(1200px 540px at 50% 0, rgba(201,169,97,0.05), rgba(201,169,97,0) 60%), #ffffff; color:#2c2c2c; }
#view-airports.vit-light .service-hero{ background:#ffffff; color:#2c2c2c; }
#view-airports.vit-light .service-hero::before{ background:radial-gradient(circle at 50% 0%, rgba(201,169,97,0.10) 0%, transparent 60%); }
#view-airports.vit-light .service-hero h1{ color:#15130f; }
#view-airports.vit-light .service-hero p{ color:#6f6a60; }
#view-airports.vit-light .apt-eyebrow{ color:var(--gold-text); }
#view-airports.vit-light .aq-tool{ box-shadow:0 30px 60px -34px rgba(0,0,0,.45); }   /* midnight quote panel floats on white */
#view-airports.vit-light .vit-theme-toggle{ background:#f3eede; border:1px solid #e6dcc2; }
#view-airports.vit-light .vit-theme-toggle .vtt-light{ background:var(--gold); color:#1a1a1a; }
#view-airports.vit-light .vit-theme-toggle .vtt-dark{ color:#8a8276; }

/* ===================== BLACK CANVAS (optional) ===================== */
#view-airports.vit-dark{
  --gray:#bdbdbd; --border:rgba(201,169,97,0.20);
  background:radial-gradient(1200px 560px at 50% 0, rgba(201,169,97,0.10), rgba(201,169,97,0) 62%), linear-gradient(180deg,#0b0b0c,#0d0d0e 60%,#0b0a09);
  color:#e6e6e6;
}
#view-airports.vit-dark .apt-eyebrow{ color:var(--gold-light); }
/* panels & bands → dark glass */
#view-airports.vit-dark .aft-tool,
#view-airports.vit-dark .dp-tool,
#view-airports.vit-dark .mg-meet,
#view-airports.vit-dark .apm-which,
#view-airports.vit-dark .at-trust,
#view-airports.vit-dark .cl-note{ background:rgba(255,255,255,0.04); }
/* cards → near-black */
#view-airports.vit-dark .fs-panel,
#view-airports.vit-dark .dp-card,
#view-airports.vit-dark .dp-node,
#view-airports.vit-dark .service-card,
#view-airports.vit-dark .at-step,
#view-airports.vit-dark .at-ccard,
#view-airports.vit-dark .at-faq-item,
#view-airports.vit-dark .ar-card,
#view-airports.vit-dark .airport-anatomy-stage,
#view-airports.vit-dark .airport-time-card,
#view-airports.vit-dark .airport-commitment-principle,
#view-airports.vit-dark .uk-dest-card{ background:#141414; }
#view-airports.vit-dark .airport-commitment,
#view-airports.vit-dark .uk-coverage-section{ background:linear-gradient(180deg,#0c0c0d,#0b0a09); }
#view-airports.vit-dark .airport-time-card.featured{ background:linear-gradient(135deg,#161310,#1d1808); border-color:rgba(201,169,97,0.5); }
#view-airports.vit-dark .uk-dest-card.popular{ background:linear-gradient(180deg,#16130c,#141414 60px); }
/* inputs / selects / chips → dark */
#view-airports.vit-dark .aft-fields input,
#view-airports.vit-dark .apm-which select,
#view-airports.vit-dark .at-fselect,
#view-airports.vit-dark .at-card-acts button,
#view-airports.vit-dark .uk-region-chip,
#view-airports.vit-dark .at-fgroup,
#view-airports.vit-dark .form-input,
#view-airports.vit-dark .form-select{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#ffffff; }
#view-airports.vit-dark .aft-fields input::placeholder, #view-airports.vit-dark .form-input::placeholder{ color:#a8a8a8; }
#view-airports.vit-dark .at-fchip{ color:#d6d6d6; }
#view-airports.vit-dark .at-fchip.active{ background:var(--gold); color:#1a1a1a; box-shadow:none; }
#view-airports.vit-dark .uk-region-chip{ color:#d6d6d6; }
#view-airports.vit-dark .uk-region-chip:hover{ border-color:var(--gold); color:#fff; }
#view-airports.vit-dark .uk-region-chip.active{ background:var(--gold); border-color:var(--gold); color:#1a1a1a; }
#view-airports.vit-dark .at-card-acts button.on{ background:var(--gold); border-color:var(--gold); color:#1a1a1a; }
/* headings & strong text → light cream */
#view-airports.vit-dark .section-title,
#view-airports.vit-dark .mg-head,
#view-airports.vit-dark .apm-head,
#view-airports.vit-dark .service-card-title,
#view-airports.vit-dark .at-ccard h4,
#view-airports.vit-dark .at-col-head h3,
#view-airports.vit-dark .at-trust-item b,
#view-airports.vit-dark .at-step b,
#view-airports.vit-dark .mg-step-txt b,
#view-airports.vit-dark .mg-meet-item b,
#view-airports.vit-dark .apm-rank-row b,
#view-airports.vit-dark .dp-big,
#view-airports.vit-dark .dp-node b,
#view-airports.vit-dark .ar-who b,
#view-airports.vit-dark .at-faq-item summary,
#view-airports.vit-dark .at-ccard-go,
#view-airports.vit-dark .airport-commitment-title,
#view-airports.vit-dark .airport-commitment-times-title,
#view-airports.vit-dark .airport-anatomy-stage-title,
#view-airports.vit-dark .airport-time-name,
#view-airports.vit-dark .airport-time-commit,
#view-airports.vit-dark .airport-commitment-principle-text,
#view-airports.vit-dark .uk-dest-name,
#view-airports.vit-dark .uk-coverage-count strong,
#view-airports.vit-dark .cl-note .cl-note-body strong,
#view-airports.vit-dark .airport-commitment-intro strong{ color:#ffffff; }
/* body / muted hardcoded greys → warm light */
#view-airports.vit-dark .service-card-desc,
#view-airports.vit-dark .aft-tool-sub,
#view-airports.vit-dark .at-trust-item span,
#view-airports.vit-dark .mg-step-txt span,
#view-airports.vit-dark .mg-meet-item span,
#view-airports.vit-dark .ar-quote,
#view-airports.vit-dark .ar-who span,
#view-airports.vit-dark .at-faq-item p,
#view-airports.vit-dark .at-ccard-sub,
#view-airports.vit-dark .at-col-head span,
#view-airports.vit-dark .at-count,
#view-airports.vit-dark .dp-node span,
#view-airports.vit-dark .dp-hint,
#view-airports.vit-dark .dp-breakdown,
#view-airports.vit-dark .apm-rank-meta,
#view-airports.vit-dark .apm-rank-hint,
#view-airports.vit-dark .apm-rank-h,
#view-airports.vit-dark .apm-note,
#view-airports.vit-dark .airport-commitment-intro,
#view-airports.vit-dark .airport-anatomy-stage-desc,
#view-airports.vit-dark .airport-time-note,
#view-airports.vit-dark .uk-dest-desc,
#view-airports.vit-dark .uk-region-chip{ color:#bdbdbd; }
/* gold-on-cream labels → gold-light on dark */
#view-airports.vit-dark .mg-meet-head,
#view-airports.vit-dark .apm-which-label{ color:var(--gold-light); }
/* review fixes: tool headings (#1a1a1a) on dark glass panels + low-contrast verified-green */
#view-airports.vit-dark .aft-tool-head{ color:#ffffff; }
#view-airports.vit-dark .ar-verified{ color:#5fbf7a; }
/* keep the 2 airport modals readable (reset the re-scoped tokens to their light defaults) */
#view-airports.vit-dark #airportQuickModal,
#view-airports.vit-dark #airportCompareModal{ --gray:#666; --border:#e5e5e5; color:#1a1a1a; }
/* toggle (dark) */
/* UK coverage airport cards + UK-city transfer cards — vehicle rows were #333 (dim on dark); lighten */
#view-airports.vit-dark .fixed-pricing-card-vname{ color:#d6d6d6; }
#view-airports.vit-dark .fixed-pricing-card-vrow{ border-bottom-color:rgba(201,169,97,0.16); }
#view-airports.vit-dark .vit-theme-toggle{ background:rgba(255,255,255,0.06); border:1px solid rgba(201,169,97,0.28); }
#view-airports.vit-dark .vit-theme-toggle .vtt-dark{ background:var(--gold); color:#1a1a1a; }
#view-airports.vit-dark .vit-theme-toggle .vtt-light{ color:#d6d6d6; }


#view-theatre .th-intro{max-width:760px;margin:0 auto 1.6rem;text-align:center;color:var(--gray);font-size:15px;line-height:1.7}
#view-theatre .th-tools{max-width:560px;margin:0 auto 2rem;position:relative}
#view-theatre .th-search{width:100%;padding:0.85rem 1rem 0.85rem 2.6rem;border:1px solid var(--border);border-radius:40px;background:var(--card,#fff);font-size:14px;color:inherit;outline:none;transition:border-color .2s}
#view-theatre .th-search:focus{border-color:var(--gold)}
#view-theatre .th-search-ico{position:absolute;left:1rem;top:50%;transform:translateY(-50%);opacity:.5;font-size:15px}
#view-theatre .th-count{text-align:center;color:var(--gray);font-size:12.5px;letter-spacing:.5px;text-transform:uppercase;margin-bottom:1.4rem}
#view-theatre .th-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:1.4rem;max-width:1180px;margin:0 auto}
#view-theatre .th-card{border:1px solid var(--border);border-radius:16px;background:var(--card,#fff);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .25s,transform .25s,border-color .25s}
#view-theatre .th-card:hover{box-shadow:0 14px 38px rgba(0,0,0,.12);transform:translateY(-3px);border-color:rgba(201,169,97,.5)}
#view-theatre .th-imgwrap{display:block;position:relative;aspect-ratio:16/10;background:#15110b;overflow:hidden}
#view-theatre .th-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}
#view-theatre .th-card:hover .th-img{transform:scale(1.045)}
#view-theatre .th-body{padding:1.35rem 1.5rem 1.3rem;display:flex;flex-direction:column;flex:1}
#view-theatre .th-genre{align-self:flex-start;font-size:10.5px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--gold);border:1px solid rgba(201,169,97,.45);border-radius:30px;padding:3px 11px;margin-bottom:.85rem}
#view-theatre .th-name{font-family:var(--serif,Georgia,serif);font-size:1.32rem;line-height:1.25;margin:0 0 .55rem;color:var(--ink,inherit)}
#view-theatre .th-name a{color:inherit;text-decoration:none;transition:color .2s}
#view-theatre .th-name a:hover{color:var(--gold);text-decoration:underline}
#view-theatre .th-meta{display:flex;flex-wrap:wrap;gap:.45rem 1rem;font-size:12.5px;color:var(--gray);margin-bottom:.85rem}
#view-theatre .th-meta b{color:var(--gold);font-weight:600}
#view-theatre .th-desc{font-size:13.5px;line-height:1.65;color:var(--gray);margin:0 0 1rem}
#view-theatre .th-more{display:none;border-top:1px solid var(--border);margin-top:.2rem;padding-top:1rem}
#view-theatre .th-card.open .th-more{display:block}
#view-theatre .th-more h4{font-size:11px;letter-spacing:1.3px;text-transform:uppercase;color:var(--gold);margin:1rem 0 .5rem}
#view-theatre .th-more h4:first-child{margin-top:0}
#view-theatre .th-about{font-size:13.5px;line-height:1.7;color:var(--ink,inherit);margin:0}
#view-theatre .th-hl{list-style:none;padding:0;margin:.2rem 0 0}
#view-theatre .th-hl li{position:relative;padding-left:1.25rem;font-size:13px;line-height:1.55;color:var(--gray);margin-bottom:.4rem}
#view-theatre .th-hl li:before{content:"\2726";position:absolute;left:0;color:var(--gold);font-size:11px;top:1px}
#view-theatre .th-gtk{font-size:12.5px;line-height:1.6;color:var(--gray);font-style:italic;margin:.2rem 0 0}
#view-theatre .th-foot{margin-top:auto;padding-top:1.1rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
#view-theatre .th-toggle{background:none;border:none;color:var(--gold);font-weight:600;font-size:12.5px;cursor:pointer;padding:0;letter-spacing:.3px}
#view-theatre .th-toggle:hover{text-decoration:underline}
#view-theatre .th-book{margin-left:auto;font-size:12.5px;font-weight:600;border:1px solid var(--gold);background:var(--gold);color:#fff;border-radius:30px;padding:.5rem 1.05rem;cursor:pointer;transition:filter .2s;text-decoration:none;display:inline-block;white-space:nowrap}
#view-theatre .th-book:hover{filter:brightness(1.08)}
#view-theatre .th-chauf{margin-top:.85rem;width:100%;background:none;border:1px solid var(--border);color:var(--gray);border-radius:30px;padding:.55rem;font-size:12px;font-weight:600;cursor:pointer;transition:border-color .2s,color .2s}
#view-theatre .th-chauf:hover{border-color:var(--gold);color:var(--gold)}
#view-theatre .th-empty{text-align:center;color:var(--gray);padding:3rem 1rem;font-size:14px}
@media(max-width:600px){#view-theatre .th-grid{grid-template-columns:1fr}}


#view-theatre .th-filterbar{max-width:1180px;margin:0 auto 1.5rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.7rem 1.4rem}
#view-theatre .th-chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}
#view-theatre .th-chip{font-size:12.5px;font-weight:600;border:1px solid var(--border);background:var(--card,#fff);color:var(--gray);border-radius:30px;padding:.45rem .95rem;cursor:pointer;transition:background .18s,border-color .18s,color .18s;display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}
#view-theatre .th-chip span{font-size:11px;opacity:.55;font-weight:600}
#view-theatre .th-chip:hover{border-color:var(--gold);color:var(--ink,inherit)}
#view-theatre .th-chip.active{background:var(--gold);border-color:var(--gold);color:#fff}
#view-theatre .th-chip.active span{opacity:.85}
#view-theatre .th-sortwrap{display:flex;align-items:center;gap:.5rem;font-size:12px;letter-spacing:.5px;text-transform:uppercase;color:var(--gray)}
#view-theatre .th-sort{font-size:12.5px;font-weight:600;padding:.5rem 2rem .5rem .85rem;border:1px solid var(--border);border-radius:30px;background:var(--card,#fff);color:inherit;cursor:pointer;outline:none;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23c9a961' stroke-width='3'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right .7rem center}
#view-theatre .th-sort:focus{border-color:var(--gold)}
@media(max-width:600px){#view-theatre .th-filterbar{gap:.9rem}}


#view-theatre{ min-height:100vh; }
#view-theatre .apt-eyebrow{ display:block; font-family:var(--font-body); font-size:12px; font-weight:600; letter-spacing:3px; text-transform:uppercase; margin-bottom:.7rem; position:relative; z-index:1; }
#view-theatre .vit-theme-toggle{ display:inline-flex; align-items:center; border-radius:999px; padding:3px; cursor:pointer; font:inherit; -webkit-appearance:none; appearance:none; position:relative; z-index:1; }
#view-theatre .events-hero .vit-theme-toggle{ margin-top:1.4rem; }
#view-theatre .vit-theme-toggle .vtt-opt{ font-size:12px; font-weight:600; letter-spacing:.03em; padding:.34rem .85rem; border-radius:999px; transition:background .2s,color .2s; }
@media (prefers-reduced-motion:reduce){ #view-theatre .vit-theme-toggle .vtt-opt{ transition:none; } }
/* WHITE (default) */
#view-theatre.vit-light{ --gray:#6f6a60; background:radial-gradient(1200px 540px at 50% 0, rgba(201,169,97,0.05), rgba(201,169,97,0) 60%), #ffffff; color:#2c2c2c; }
#view-theatre.vit-light .events-hero{ background:#ffffff; color:#2c2c2c; }
#view-theatre.vit-light .events-hero h1{ color:#15130f; }
#view-theatre.vit-light .events-hero p{ color:#6f6a60; }
#view-theatre.vit-light .apt-eyebrow{ color:var(--gold-text); }
#view-theatre.vit-light .vit-theme-toggle{ background:#f3eede; border:1px solid #e6dcc2; }
#view-theatre.vit-light .vit-theme-toggle .vtt-light{ background:var(--gold); color:#1a1a1a; }
#view-theatre.vit-light .vit-theme-toggle .vtt-dark{ color:#8a8276; }
/* BLACK (optional) */
#view-theatre.vit-dark{ --gray:#bdbdbd; --border:rgba(201,169,97,0.20); background:radial-gradient(1200px 560px at 50% 0, rgba(201,169,97,0.10), rgba(201,169,97,0) 62%), linear-gradient(180deg,#0b0b0c,#0d0d0e 60%,#0b0a09); color:#e6e6e6; }
#view-theatre.vit-dark .apt-eyebrow{ color:var(--gold-light); }
/* >>> PAGE-SPECIFIC dark overrides <<< */
/* Search input (hardcoded var(--card,#fff) fallback) */
#view-theatre.vit-dark .th-search{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#ffffff; }
#view-theatre.vit-dark .th-search::placeholder{ color:#bdbdbd; }
/* Show cards */
#view-theatre.vit-dark .th-card{ background:#141414; }
#view-theatre.vit-dark .th-card:hover{ box-shadow:0 14px 38px rgba(0,0,0,.5); }
/* Card headings / about text (var(--ink) -> light) */
#view-theatre.vit-dark .th-name{ color:#ffffff; }
#view-theatre.vit-dark .th-about{ color:#ffffff; }
/* Filter chips */
#view-theatre.vit-dark .th-chip{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#bdbdbd; }
#view-theatre.vit-dark .th-chip:hover{ color:#ffffff; }
#view-theatre.vit-dark .th-chip.active{ background:var(--gold); border-color:var(--gold); color:#1a1a1a; }
/* Sort select */
#view-theatre.vit-dark .th-sort{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#ffffff; }
/* Toggle (dark) */
#view-theatre.vit-dark .vit-theme-toggle{ background:rgba(255,255,255,0.06); border:1px solid rgba(201,169,97,0.28); }
#view-theatre.vit-dark .vit-theme-toggle .vtt-dark{ background:var(--gold); color:#1a1a1a; }
#view-theatre.vit-dark .vit-theme-toggle .vtt-light{ color:#d6d6d6; }


#view-theatre .th-card{cursor:pointer}
#view-theatre .th-detaillink{color:var(--gold);font-weight:600;font-size:13px;letter-spacing:.3px}
#view-theatre .th-card:hover .th-detaillink{text-decoration:underline}
#view-theatre-show .ts-wrap{max-width:1040px;margin:0 auto;padding:2rem 1.2rem 1rem}
#view-theatre-show .ts-back{display:inline-block;color:var(--gold);font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;margin-bottom:1.4rem}
#view-theatre-show .ts-back:hover{text-decoration:underline}
#view-theatre-show .ts-hero{display:grid;grid-template-columns:minmax(0,0.85fr) minmax(0,1fr);gap:2.4rem;align-items:center}
#view-theatre-show .ts-media{border-radius:16px;overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.22);background:#15110b;aspect-ratio:16/10}
#view-theatre-show .ts-media img{width:100%;height:100%;object-fit:cover;display:block}
#view-theatre-show .ts-genre{display:inline-block;font-size:10.5px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;color:var(--gold);border:1px solid rgba(201,169,97,.45);border-radius:30px;padding:4px 13px;margin-bottom:1rem}
#view-theatre-show h1.ts-title{font-family:var(--serif,Georgia,serif);font-size:2.5rem;line-height:1.12;margin:0 0 .8rem;color:var(--ink,inherit)}
#view-theatre-show .ts-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;font-size:14px;color:var(--gray);margin-bottom:1.1rem}
#view-theatre-show .ts-meta b{color:var(--gold);font-weight:700}
#view-theatre-show .ts-lede{font-size:16px;line-height:1.75;color:var(--ink,inherit);margin:0 0 1.5rem}
#view-theatre-show .ts-cta-row{display:flex;flex-wrap:wrap;gap:.8rem}
#view-theatre-show .ts-body{max-width:760px;margin:2.8rem auto 0}
#view-theatre-show .ts-body h2{font-family:var(--serif,Georgia,serif);font-size:1.5rem;margin:2rem 0 .7rem;color:var(--ink,inherit)}
#view-theatre-show .ts-body h2:first-child{margin-top:0}
#view-theatre-show .ts-body p{font-size:15px;line-height:1.8;color:var(--gray);margin:0 0 1rem}
#view-theatre-show .ts-hl{list-style:none;padding:0;margin:.3rem 0 1rem}
#view-theatre-show .ts-hl li{position:relative;padding-left:1.6rem;font-size:15px;line-height:1.6;color:var(--ink,inherit);margin-bottom:.6rem}
#view-theatre-show .ts-hl li:before{content:"\2726";position:absolute;left:0;color:var(--gold);top:2px}
#view-theatre-show .ts-gtk{border-left:3px solid var(--gold);background:rgba(201,169,97,.07);padding:1rem 1.2rem;border-radius:0 10px 10px 0;font-size:14px;line-height:1.65;color:var(--ink,inherit);margin:.5rem 0 1.5rem}
#view-theatre-show .ts-gtk strong{color:var(--gold);text-transform:uppercase;letter-spacing:1px;font-size:11px;display:block;margin-bottom:.3rem}
#view-theatre-show .ts-chauf{display:flex;gap:1rem;align-items:flex-start;background:var(--card,#fff);border:1px solid var(--border);border-radius:14px;padding:1.3rem 1.4rem;margin:1.5rem 0 0}
#view-theatre-show .ts-chauf .ts-chauf-ico{font-size:1.6rem;line-height:1}
#view-theatre-show .ts-chauf h3{margin:0 0 .35rem;font-size:1.05rem;color:var(--ink,inherit)}
#view-theatre-show .ts-chauf p{margin:0;font-size:13.5px;line-height:1.65;color:var(--gray)}
@media(max-width:760px){#view-theatre-show .ts-hero{grid-template-columns:1fr;gap:1.4rem}#view-theatre-show h1.ts-title{font-size:1.9rem}}


#view-sporting .sp-lede,#view-premier-league .sp-lede{max-width:760px;margin:0 auto 1.8rem;text-align:center;color:var(--gray);font-size:15px;line-height:1.7}
#view-sporting .sp-filterbar,#view-premier-league .sp-filterbar{max-width:1180px;margin:0 auto 1.3rem;display:flex;justify-content:center}
#view-sporting .sp-chips,#view-premier-league .sp-chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}
#view-sporting .sp-chip,#view-premier-league .sp-chip{font-size:12.5px;font-weight:600;border:1px solid var(--border);background:var(--card,#fff);color:var(--gray);border-radius:30px;padding:.45rem .95rem;cursor:pointer;transition:background .18s,border-color .18s,color .18s;display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}
#view-sporting .sp-chip span,#view-premier-league .sp-chip span{font-size:11px;opacity:.55}
#view-sporting .sp-chip:hover,#view-premier-league .sp-chip:hover{border-color:var(--gold);color:var(--ink,inherit)}
#view-sporting .sp-chip.active,#view-premier-league .sp-chip.active{background:var(--gold);border-color:var(--gold);color:#fff}
#view-sporting .sp-chip.active span,#view-premier-league .sp-chip.active span{opacity:.85}
#view-sporting .sp-count,#view-premier-league .sp-count{text-align:center;color:var(--gray);font-size:12.5px;letter-spacing:.5px;text-transform:uppercase;margin-bottom:1.8rem}
#view-sporting .sp-month,#view-premier-league .sp-month{max-width:1100px;margin:2.2rem auto .9rem;font-family:var(--serif,Georgia,serif);font-size:1.45rem;color:var(--ink,inherit);border-bottom:1px solid var(--border);padding-bottom:.5rem}
#view-sporting .sp-month b,#view-premier-league .sp-month b{color:var(--gold);font-weight:600;font-size:.8rem;letter-spacing:1px;text-transform:uppercase;font-family:inherit;margin-left:.5rem}
#view-sporting .sp-grid,#view-premier-league .sp-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
#view-sporting .sp-card,#view-premier-league .sp-card{display:flex;align-items:center;gap:1.1rem;border:1px solid var(--border);border-radius:14px;background:var(--card,#fff);padding:1rem 1.2rem;cursor:pointer;transition:box-shadow .2s,transform .2s,border-color .2s}
#view-sporting .sp-card:hover,#view-premier-league .sp-card:hover{box-shadow:0 12px 30px rgba(0,0,0,.1);transform:translateY(-2px);border-color:rgba(201,169,97,.55)}
#view-sporting .sp-date,#view-premier-league .sp-date{flex:0 0 auto;width:54px;text-align:center;border-right:1px solid var(--border);padding-right:1rem}
#view-sporting .sp-day,#view-premier-league .sp-day{display:block;font-family:var(--serif,Georgia,serif);font-size:1.7rem;line-height:1;color:var(--gold)}
#view-sporting .sp-mon,#view-premier-league .sp-mon{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:1px;color:var(--gray);margin-top:.25rem}
#view-sporting .sp-info,#view-premier-league .sp-info{flex:1;min-width:0}
#view-sporting .sp-sport,#view-premier-league .sp-sport{font-size:10.5px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--gold)}
#view-sporting .sp-info h3,#view-premier-league .sp-info h3{font-family:var(--serif,Georgia,serif);font-size:1.05rem;line-height:1.25;margin:.2rem 0 .25rem;color:var(--ink,inherit)}
#view-sporting .sp-venue,#view-premier-league .sp-venue{font-size:12.5px;color:var(--gray);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#view-sporting .sp-go,#view-premier-league .sp-go{flex:0 0 auto;color:var(--gold);font-size:1.3rem;opacity:.45;transition:opacity .2s,transform .2s}
#view-sporting .sp-card:hover .sp-go,#view-premier-league .sp-card:hover .sp-go{opacity:1;transform:translateX(3px)}
@media(max-width:760px){#view-sporting .sp-grid,#view-premier-league .sp-grid{grid-template-columns:1fr}}
#view-sporting .pl-filters,#view-premier-league .pl-filters{max-width:1180px;margin:0 auto 1rem;display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;align-items:flex-end}
#view-sporting .pl-fl,#view-premier-league .pl-fl{display:flex;flex-direction:column;gap:.3rem;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--gray)}
#view-sporting .pl-fl select,#view-premier-league .pl-fl select{font-family:inherit;font-size:14px;padding:.55rem .8rem;border:1px solid #ddd;border-radius:8px;background:#fff;min-width:165px;color:var(--dark)}
#view-sporting .pl-clear,#view-premier-league .pl-clear{align-self:flex-end;background:none;border:none;color:var(--gold);text-decoration:underline;cursor:pointer;font-size:13px;padding:.6rem .4rem}
#view-sporting .pl-meta,#view-premier-league .pl-meta{display:flex;gap:.6rem;align-items:center;margin:.4rem 0 .55rem;flex-wrap:wrap}
#view-sporting .pl-from,#view-premier-league .pl-from{font-family:var(--serif,Georgia,serif);font-weight:700;color:var(--gold);font-size:1.05rem}
#view-sporting .pl-tiers,#view-premier-league .pl-tiers{font-size:11px;color:var(--gray);background:#f3f0e8;padding:.2rem .5rem;border-radius:20px}
#view-sporting .pl-card .sp-tickets,#view-premier-league .pl-card .sp-tickets{margin-top:.2rem}


/* ===== Sporting redesign — icon-free sport cards, mega menu, sport hub ===== */
#curatedSportGrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:1.2rem; max-width:1180px; margin:0 auto; }
.sportcard { position:relative; border:1px solid var(--border,#e5e5e5); border-radius:16px; overflow:hidden; background:var(--card,#fff); cursor:pointer; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; display:flex; flex-direction:column; }
.sportcard:hover { transform:translateY(-4px); box-shadow:0 16px 38px rgba(0,0,0,.18); border-color:var(--gold,#c9a961); }
.sportcard:focus-visible { outline:2px solid var(--gold,#c9a961); outline-offset:2px; }
.sportcard-img { aspect-ratio:16/10; overflow:hidden; background:#1a1f29; }
.sportcard-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.sportcard:hover .sportcard-img img { transform:scale(1.06); }
.sportcard-img.is-blank { background:linear-gradient(135deg,#2a2f3a,#161a22); }
.sportcard-body { padding:.9rem 1.05rem 1.1rem; }
.sportcard-name { font-family:'Playfair Display',Georgia,serif; font-weight:700; font-size:1.22rem; color:var(--ink,#1a1a1a); margin:0 0 .12rem; line-height:1.12; }
.sportcard-count { font-size:12px; letter-spacing:.5px; color:var(--gray,#777); text-transform:uppercase; }
.sportcard-badge { position:absolute; top:.7rem; right:.7rem; z-index:2; background:var(--gold,#c9a961); color:#1a1a1a; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; padding:.28rem .6rem; border-radius:20px; box-shadow:0 2px 8px rgba(0,0,0,.3); }
.sportcard.is-soon { cursor:default; opacity:.6; }
.sportcard.is-soon:hover { transform:none; box-shadow:none; border-color:var(--border,#e5e5e5); }
.curated-section-dark #curatedSportGrid .sportcard { background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.13); }
.curated-section-dark #curatedSportGrid .sportcard-name { color:#fff; }
.curated-section-dark #curatedSportGrid .sportcard-count { color:#b9bcc4; }
.curated-section-dark #curatedSportGrid .sportcard:hover { border-color:var(--gold,#c9a961); }
.curated-section-dark #curatedSportGrid .sportcard.is-soon .sportcard-name { color:#9aa0ab; }

/* Desktop mega menu */
.nav-caret { font-size:.7em; opacity:.65; display:inline-block; transition:transform .25s ease, opacity .2s ease; }
.nav-mega.open .nav-caret { transform:rotate(180deg); opacity:1; }
.nav-mega { position:relative; }
.nav-mega > .mega-panel { position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(8px); width:min(880px,92vw); background:#fff; border:1px solid var(--border,#e5e5e5); border-top:3px solid var(--gold,#c9a961); border-radius:0 0 14px 14px; box-shadow:0 26px 60px rgba(0,0,0,.22); padding:1.3rem 1.5rem; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .25s ease, transform .25s ease; z-index:1200; }
/* Click-to-open only — never hover. */
.nav-mega.open > .mega-panel { opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0); }
.mega-viewall { display:block; text-align:right; margin-top:.5rem; padding:.7rem .2rem 0; border-top:1px solid rgba(200,162,89,.25); font-size:13px; font-weight:600; letter-spacing:.3px; color:#b8964f; cursor:pointer; text-decoration:none; }
.mega-viewall:hover { color:#9a7b3f; }
.mega-viewall::after { content:none !important; }
.mega-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.mm-col { padding:.6rem .95rem .75rem; border-right:1px solid rgba(200,162,89,.2); border-bottom:1px solid rgba(200,162,89,.2); }
.mm-col:nth-child(4n) { border-right:none; }
.mm-col:nth-child(n+9) { border-bottom:none; }
.mega-panel .mm-sport { display:inline-block; font-family:'Playfair Display',Georgia,serif; font-weight:700; font-size:.92rem; letter-spacing:.5px; text-transform:uppercase; color:#1a1a1a; cursor:pointer; padding:0 0 3px; border-bottom:2px solid transparent; margin-bottom:.5rem; transition:border-color .15s, color .15s; text-decoration:none; }
.mega-panel .mm-sport:hover { border-bottom-color:var(--gold,#c9a961); color:#b8964f; }
.mega-panel .mm-sport.is-soon { color:#9a9a9a; cursor:default; }
.mm-soon, .mm-live { font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; padding:.08rem .32rem; border-radius:10px; vertical-align:middle; }
.mm-soon { background:#ececec; color:#8a8a8a; }
.mm-live { background:rgba(15,130,67,.14); color:#0F8243; }
.mm-links { display:none; flex-direction:column; gap:.3rem; padding-top:.15rem; }
.mega-panel .mm-col.open .mm-links { display:flex; }
.mm-col-caret { display:inline-block; font-size:.62em; opacity:.5; margin-left:.25rem; transition:transform .2s ease; }
.mega-panel .mm-col.open .mm-col-caret, .mm-mob-col.open .mm-col-caret { transform:rotate(180deg); opacity:.9; }
.mm-mob-links { display:none; }
.mm-mob-col.open .mm-mob-links { display:block; }
.mega-panel .mm-link { font-size:12.5px; color:#555; cursor:pointer; text-decoration:none; transition:color .15s; padding:0; }
.mega-panel .mm-link:hover { color:#b8964f; }
.mega-panel .mm-muted { color:#aaa; cursor:default; font-size:12.5px; }
.mega-panel .mm-sport::after, .mega-panel .mm-link::after { content:none !important; display:none !important; }

/* Mobile mega accordion */
.mm-mob { display:none; margin:.1rem 0 .3rem; padding-left:.5rem; border-left:2px solid rgba(200,162,89,.3); }
.mm-mob.open { display:block; }
.mm-caret { display:inline-block; font-size:.72em; opacity:.7; transition:transform .25s ease; }
.mm-mob-trigger.open .mm-caret { transform:rotate(180deg); opacity:1; }
.mm-mob-viewall { display:block; margin-top:.4rem; padding:.5rem 0 .2rem .85rem; font-size:13px; font-weight:600; color:var(--gold,#c9a961); cursor:pointer; }
.mm-mob-col { padding:.35rem 0; }
.mm-mob-sport { display:block; font-weight:700; font-size:13.5px; color:var(--gold,#c9a961); text-transform:uppercase; letter-spacing:.5px; cursor:pointer; }
.mm-mob-sport.is-soon { color:#999; }
.mm-mob-link { display:block; font-size:13px; color:#c9c9c9; padding:.12rem 0 .12rem .85rem; cursor:pointer; }

/* Sport hub hero */
.sporthub-hero { background:#1a1f29 center/cover no-repeat; padding:3.2rem 1.5rem 2.6rem; text-align:center; }
.sporthub-hero-inner { max-width:760px; margin:0 auto; position:relative; }
.sporthub-eyebrow { color:var(--gold,#c9a961); text-transform:uppercase; letter-spacing:3px; font-size:12px; font-weight:600; margin-bottom:.7rem; }
.sporthub-title { font-family:'Playfair Display',Georgia,serif; color:#fff; font-size:2.6rem; line-height:1.08; margin:0 0 .7rem; }
.sporthub-sub { color:#dfe1e6; font-size:15px; line-height:1.6; margin:0; }
#view-sport .pl-crumb a { cursor:pointer; }
@media(max-width:760px){ .mega-grid{grid-template-columns:repeat(2,1fr)} .mm-col:nth-child(n+9){border-bottom:1px solid rgba(200,162,89,.2)} .mm-col:nth-child(2n){border-right:none} .sporthub-title{font-size:2rem} }


#view-sport{ min-height:100vh; }
#view-sport .vit-theme-toggle{ display:inline-flex; align-items:center; border-radius:999px; padding:3px; cursor:pointer; font:inherit; -webkit-appearance:none; appearance:none; position:relative; z-index:1; }
#view-sport .vit-theme-toggle .vtt-opt{ font-size:12px; font-weight:600; letter-spacing:.03em; padding:.34rem .85rem; border-radius:999px; transition:background .2s,color .2s; }
@media (prefers-reduced-motion: reduce){ #view-sport .vit-theme-toggle .vtt-opt{ transition:none; } }
/* WHITE (default) */
#view-sport.vit-light{ background:radial-gradient(1200px 540px at 50% 0, rgba(201,169,97,0.05), rgba(201,169,97,0) 60%), #ffffff; color:#2c2c2c; }
/* .curated-sport-card is built for dark bgs (translucent + white text) — give it a light skin on the white canvas */
#view-sport.vit-light .curated-sport-card{ background:#fcfbf9; border-color:#e6dcc2; }
#view-sport.vit-light .curated-sport-card:hover{ background:#ffffff; border-color:rgba(201,169,97,0.5); box-shadow:0 12px 28px rgba(0,0,0,0.10); }
#view-sport.vit-light .curated-sport-name{ color:#15130f; }
#view-sport.vit-light .curated-sport-desc,#view-sport.vit-light .curated-sport-examples li,#view-sport.vit-light .curated-sport-time-row{ color:#555; }
#view-sport.vit-light .curated-sport-footer{ border-top-color:rgba(0,0,0,0.1); }
#view-sport.vit-light .curated-sport-price-label,#view-sport.vit-light .curated-sport-time-row span,#view-sport.vit-light .curated-sport-price-note{ color:#888; }
/* review fixes: nested pricing-strip text (built for dark) + CTA hover on the light card */
#view-sport.vit-light .curated-sport-card:hover .curated-sport-cta-link:not(.is-browse){ color:#15130f; }
#view-sport.vit-light .wimb-strip-round{ color:#15130f; }
#view-sport.vit-light .wimb-strip-head,#view-sport.vit-light .wimb-strip-head .wimb-strip-price{ color:#888; }
#view-sport.vit-light .wimb-strip-note{ color:#888; }
#view-sport.vit-light .chelt-incl-host{ color:#555; }
#view-sport.vit-light .chelt-incl-list li{ color:#555; }
#view-sport.vit-light .chelt-incl-seating{ color:#888; }
#view-sport.vit-light .monaco-pkg-name{ color:#15130f; }
#view-sport.vit-light .monaco-day-label{ color:#888; }
#view-sport.vit-light .monaco-day{ background:rgba(0,0,0,0.03); border-color:rgba(0,0,0,0.10); }
#view-sport.vit-light .vit-theme-toggle{ background:#f3eede; border:1px solid #e6dcc2; }
#view-sport.vit-light .vit-theme-toggle .vtt-light{ background:var(--gold); color:#1a1a1a; }
#view-sport.vit-light .vit-theme-toggle .vtt-dark{ color:#8a8276; }
/* BLACK (optional) — re-scope --card/--ink/--gray/--border so variable-driven cards & text auto-flip */
#view-sport.vit-dark{ --gray:#bdbdbd; --border:rgba(201,169,97,0.20); --card:#141414; --ink:#ffffff; background:radial-gradient(1200px 560px at 50% 0, rgba(201,169,97,0.10), rgba(201,169,97,0) 62%), linear-gradient(180deg,#0b0b0c,#0d0d0e 60%,#0b0a09); color:#e6e6e6; }
#view-sport.vit-dark .pl-crumb a{ color:var(--gold-light); }
#view-sport.vit-dark .vit-theme-toggle{ background:rgba(255,255,255,0.06); border:1px solid rgba(201,169,97,0.28); }
#view-sport.vit-dark .vit-theme-toggle .vtt-dark{ background:var(--gold); color:#1a1a1a; }
#view-sport.vit-dark .vit-theme-toggle .vtt-light{ color:#d6d6d6; }


#view-premier-league{ min-height:100vh; }
#view-premier-league .vit-theme-toggle{ display:inline-flex; align-items:center; border-radius:999px; padding:3px; cursor:pointer; font:inherit; -webkit-appearance:none; appearance:none; position:relative; z-index:1; }
#view-premier-league .vit-theme-toggle .vtt-opt{ font-size:12px; font-weight:600; letter-spacing:.03em; padding:.34rem .85rem; border-radius:999px; transition:background .2s,color .2s; }
@media (prefers-reduced-motion: reduce){ #view-premier-league .vit-theme-toggle .vtt-opt{ transition:none; } }
/* WHITE (default) */
#view-premier-league.vit-light{ background:radial-gradient(1200px 540px at 50% 0, rgba(201,169,97,0.05), rgba(201,169,97,0) 60%), #ffffff; color:#2c2c2c; }
#view-premier-league.vit-light .pl-hero-eyebrow{ color:var(--gold-text); }
#view-premier-league.vit-light .vit-theme-toggle{ background:#f3eede; border:1px solid #e6dcc2; }
#view-premier-league.vit-light .vit-theme-toggle .vtt-light{ background:var(--gold); color:#1a1a1a; }
#view-premier-league.vit-light .vit-theme-toggle .vtt-dark{ color:#8a8276; }
/* BLACK (optional) — re-scope --card/--ink/--gray/--border so variable-driven cards & text auto-flip */
#view-premier-league.vit-dark{ --gray:#bdbdbd; --border:rgba(201,169,97,0.20); --card:#141414; --ink:#ffffff; background:radial-gradient(1200px 560px at 50% 0, rgba(201,169,97,0.10), rgba(201,169,97,0) 62%), linear-gradient(180deg,#0b0b0c,#0d0d0e 60%,#0b0a09); color:#e6e6e6; }
#view-premier-league.vit-dark .pl-hero-eyebrow{ color:var(--gold-light); }
#view-premier-league.vit-dark .pl-fl select{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#ffffff; }
#view-premier-league.vit-dark .pl-fl select option{ color:#1a1a1a; background:#fff; }
#view-premier-league.vit-dark .pl-tiers{ background:rgba(255,255,255,0.08); color:#bdbdbd; }
#view-premier-league.vit-dark .pl-mq-card{ background:#141414; }
#view-premier-league.vit-dark .pl-corporate{ border-color:rgba(201,169,97,0.4); }
#view-premier-league.vit-dark .pl-fl-search input{ background:rgba(255,255,255,0.06); border-color:rgba(201,169,97,0.22); color:#ffffff; }
#view-premier-league.vit-dark .pl-fl-search input::placeholder{ color:#a8a8a8; }
#view-premier-league.vit-dark .vit-theme-toggle{ background:rgba(255,255,255,0.06); border:1px solid rgba(201,169,97,0.28); }
#view-premier-league.vit-dark .vit-theme-toggle .vtt-dark{ background:var(--gold); color:#1a1a1a; }
#view-premier-league.vit-dark .vit-theme-toggle .vtt-light{ color:#d6d6d6; }


#view-sporting{ min-height:100vh; }
#view-sporting .apt-eyebrow{ display:block; font-family:var(--font-body); font-size:12px; font-weight:600; letter-spacing:3px; text-transform:uppercase; margin-bottom:.7rem; position:relative; z-index:1; }
#view-sporting .vit-theme-toggle{ display:inline-flex; align-items:center; border-radius:999px; padding:3px; cursor:pointer; font:inherit; -webkit-appearance:none; appearance:none; position:relative; z-index:1; }
#view-sporting .vit-theme-toggle .vtt-opt{ font-size:12px; font-weight:600; letter-spacing:.03em; padding:.34rem .85rem; border-radius:999px; transition:background .2s,color .2s; }
@media (prefers-reduced-motion: reduce){ #view-sporting .vit-theme-toggle .vtt-opt{ transition:none; } }
/* WHITE (default) */
#view-sporting.vit-light{ background:radial-gradient(1200px 540px at 50% 0, rgba(201,169,97,0.05), rgba(201,169,97,0) 60%), #ffffff; color:#2c2c2c; }
#view-sporting.vit-light .events-hero{ background:#ffffff; color:#2c2c2c; }
#view-sporting.vit-light .events-hero::before{ background:radial-gradient(circle at 70% 0%, rgba(201,169,97,0.10) 0%, transparent 55%); }
#view-sporting.vit-light .events-hero h1{ color:#15130f; }
#view-sporting.vit-light .events-hero p{ color:#6f6a60; }
#view-sporting.vit-light .apt-eyebrow{ color:var(--gold-text); }
#view-sporting.vit-light .vit-theme-toggle{ background:#f3eede; border:1px solid #e6dcc2; }
#view-sporting.vit-light .vit-theme-toggle .vtt-light{ background:var(--gold); color:#1a1a1a; }
#view-sporting.vit-light .vit-theme-toggle .vtt-dark{ color:#8a8276; }
/* BLACK (optional) — re-scope --card/--ink/--gray/--border so variable-driven cards & text auto-flip */
#view-sporting.vit-dark{ --gray:#bdbdbd; --border:rgba(201,169,97,0.20); --card:#141414; --ink:#ffffff; background:radial-gradient(1200px 560px at 50% 0, rgba(201,169,97,0.10), rgba(201,169,97,0) 62%), linear-gradient(180deg,#0b0b0c,#0d0d0e 60%,#0b0a09); color:#e6e6e6; }
#view-sporting.vit-dark .apt-eyebrow{ color:var(--gold-light); }
#view-sporting.vit-dark .sp-lede strong{ color:#ffffff; }
#view-sporting.vit-dark .pl-tiers{ background:rgba(255,255,255,0.08); color:#bdbdbd; }
#view-sporting.vit-dark .vit-theme-toggle{ background:rgba(255,255,255,0.06); border:1px solid rgba(201,169,97,0.28); }
#view-sporting.vit-dark .vit-theme-toggle .vtt-dark{ background:var(--gold); color:#1a1a1a; }
#view-sporting.vit-dark .vit-theme-toggle .vtt-light{ color:#d6d6d6; }


#view-tours .tour-card2{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--card,#fff);cursor:pointer;transition:box-shadow .25s,transform .25s,border-color .25s}
#view-tours .tour-card2:hover{box-shadow:0 16px 40px rgba(0,0,0,.13);transform:translateY(-3px);border-color:rgba(201,169,97,.5)}
#view-tours .tour-img{position:relative;aspect-ratio:16/10;overflow:hidden;background:#15110b}
#view-tours .tour-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}
#view-tours .tour-card2:hover .tour-img img{transform:scale(1.05)}
#view-tours .tour-img.noimg{display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 40%,#2a2a2a,#141414)}
#view-tours .tour-crest{font-size:2.6rem}
#view-tours .tour-dur{position:absolute;top:.7rem;left:.7rem;background:rgba(0,0,0,.6);color:#fff;font-size:11px;font-weight:600;letter-spacing:.5px;padding:.3rem .7rem;border-radius:30px;backdrop-filter:blur(4px)}
#view-tours .tour-body{padding:1.3rem 1.4rem 1.2rem;display:flex;flex-direction:column;flex:1}
#view-tours .tour-name{font-family:var(--serif,Georgia,serif);font-size:1.25rem;line-height:1.25;margin:0 0 .5rem;color:var(--ink,inherit)}
#view-tours .tour-desc{font-size:13.5px;line-height:1.6;color:var(--gray);margin:0 0 1rem}
#view-tours .tour-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding-top:.9rem;border-top:1px solid var(--border)}
#view-tours .tour-price{font-size:12px;color:var(--gray)}
#view-tours .tour-price b{font-family:var(--serif,Georgia,serif);font-size:1.25rem;color:var(--gold);margin:0 .15rem}
#view-tours .tour-go{font-size:12.5px;font-weight:600;color:var(--gold);white-space:nowrap}
#view-tours .tour-card2:hover .tour-go{text-decoration:underline}
/* tour detail */
#view-tour-detail .tr-cols{max-width:1000px;margin:2.5rem auto 0;display:grid;grid-template-columns:1fr 1fr;gap:2rem}
#view-tour-detail .tr-col h2{font-family:var(--serif,Georgia,serif);font-size:1.4rem;margin:0 0 .9rem;color:var(--ink,inherit)}
#view-tour-detail .tr-list{list-style:none;padding:0;margin:0}
#view-tour-detail .tr-list li{position:relative;padding-left:1.6rem;font-size:14.5px;line-height:1.55;color:var(--ink,inherit);margin-bottom:.7rem}
#view-tour-detail .tr-list li:before{content:"\2713";position:absolute;left:0;color:var(--gold);font-weight:700}
#view-tour-detail .tr-list.tr-star li:before{content:"\2726"}
#view-tour-detail .tr-note{max-width:1100px;margin:.4rem auto 0;text-align:center;font-size:12.5px;color:var(--gray)}
@media(max-width:760px){#view-tour-detail .tr-cols{grid-template-columns:1fr;gap:1.5rem}}


#kbTktOverlay{position:fixed;inset:0;z-index:99999;display:none;align-items:flex-start;justify-content:center;background:rgba(15,15,18,.62);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow-y:auto;padding:4vh 16px}
#kbTktOverlay.open{display:flex}
.kbtk-panel{background:var(--card,#fff);color:var(--ink,#1a1a1a);max-width:560px;width:100%;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.45);overflow:hidden;margin:auto}
.kbtk-hero{position:relative;padding:1.4rem 1.5rem;background:linear-gradient(135deg,#1a1a1f,#2c2c34);color:#fff}
.kbtk-hero-theatre{background:linear-gradient(135deg,#3a1220 0%,#1d0f1f 55%,#0e0b14 100%)}
.kbtk-hero-theatre .kbtk-kicker{color:var(--gold,#c9a961)}
.kbtk-kicker{color:var(--gold,#c9a961);text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:600}
.kbtk-hero h3{font-family:var(--serif,Georgia,serif);font-size:1.4rem;margin:.3rem 0 .25rem;line-height:1.2;color:#fff}
.kbtk-venue{font-size:12.5px;opacity:.82}
.kbtk-close{position:absolute;top:12px;right:14px;background:rgba(255,255,255,.14);border:none;color:#fff;width:32px;height:32px;border-radius:50%;font-size:20px;cursor:pointer;line-height:1}
.kbtk-close:hover{background:rgba(255,255,255,.26)}
.kbtk-body{padding:1.3rem 1.5rem}
.kbtk-sec-label{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;color:var(--gray,#888);font-weight:600;margin:0 0 .6rem}
.kbtk-cat{display:flex;align-items:center;gap:.8rem;border:1px solid var(--border,#e5e5e5);border-radius:12px;padding:.7rem .9rem;margin-bottom:.5rem;cursor:pointer;transition:border-color .15s,background .15s}
.kbtk-cat:hover{border-color:var(--gold,#c9a961)}
.kbtk-cat.sel{border-color:var(--gold,#c9a961);background:rgba(201,169,97,.08)}
.kbtk-cat input{accent-color:var(--gold,#c9a961);flex:0 0 auto}
.kbtk-cat-main{flex:1;min-width:0;display:flex;flex-direction:column}
.kbtk-cat-name{font-weight:600;font-size:14px}
.kbtk-cat-meta{font-size:11.5px;color:var(--gray,#888);text-transform:capitalize}
.kbtk-cat-price{font-family:var(--serif,Georgia,serif);font-size:1.05rem;color:var(--ink,#1a1a1a);white-space:nowrap}
.kbtk-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1.1rem 0 .2rem}
.kbtk-qty{display:inline-flex;align-items:center;border:1px solid var(--border,#e5e5e5);border-radius:30px;overflow:hidden}
.kbtk-qty button{background:none;border:none;width:38px;height:38px;font-size:18px;cursor:pointer;color:var(--ink,#1a1a1a)}
.kbtk-qty button:hover{background:rgba(201,169,97,.1)}
.kbtk-qty span{min-width:34px;text-align:center;font-weight:600}
.kbtk-select{width:100%;padding:.7rem .9rem;border:1px solid var(--border,#e5e5e5);border-radius:10px;font:inherit;background:var(--card,#fff);color:inherit}
.kbtk-total{display:flex;align-items:baseline;justify-content:space-between;border-top:1px solid var(--border,#e5e5e5);margin-top:1.1rem;padding-top:1rem;font-size:14px}
.kbtk-total b{font-family:var(--serif,Georgia,serif);font-size:1.5rem;color:var(--gold,#c9a961)}
.kbtk-cta{display:block;width:100%;margin-top:1rem;padding:.95rem;border:none;border-radius:30px;background:var(--gold,#c9a961);color:#fff;font-weight:600;font-size:15px;letter-spacing:.4px;cursor:pointer;transition:filter .15s;text-align:center;text-decoration:none}
.kbtk-cta:hover{filter:brightness(1.07)}
.kbtk-cta[disabled]{opacity:.55;cursor:not-allowed}
.kbtk-note{font-size:11px;color:var(--gray,#888);text-align:center;margin-top:.75rem;line-height:1.6}
.kbtk-loading,.kbtk-msg{padding:2.4rem 1.5rem;text-align:center;color:var(--gray,#666);line-height:1.7}
.kbtk-spin{width:30px;height:30px;border:3px solid var(--border,#e5e5e5);border-top-color:var(--gold,#c9a961);border-radius:50%;animation:kbspin .8s linear infinite;margin:0 auto 1rem}
@keyframes kbspin{to{transform:rotate(360deg)}}
.kbtk-demo-tag{display:inline-block;font-size:9.5px;letter-spacing:.5px;text-transform:uppercase;color:#1a1a1f;background:var(--gold,#c9a961);border-radius:4px;padding:1px 6px;margin-left:6px;vertical-align:middle;font-weight:700}
.sp-tickets{margin-top:.6rem;display:inline-flex;align-items:center;gap:.35rem;font-size:12px;font-weight:600;color:var(--gold,#c9a961);background:rgba(201,169,97,.1);border:1px solid rgba(201,169,97,.45);border-radius:30px;padding:.35rem .85rem;cursor:pointer;transition:background .15s;line-height:1.2}
.sp-tickets:hover{background:rgba(201,169,97,.22)}
@media(max-width:600px){.kbtk-panel{border-radius:14px}}
.kbch-list{display:flex;flex-direction:column;gap:.45rem;margin:.2rem 0}
.kbch-veh{display:flex;align-items:center;gap:.7rem;border:1px solid var(--border,#e5e5e5);border-radius:12px;padding:.6rem .8rem;cursor:pointer;transition:border-color .15s,background .15s}
.kbch-veh.sel{border-color:var(--gold,#b8964f);background:rgba(184,150,79,.07)}
.kbch-veh input{accent-color:var(--gold,#b8964f);flex:0 0 auto}
.kbch-main{flex:1;min-width:0}
.kbch-name{display:block;font-weight:700;font-size:13.5px}
.kbch-meta{display:block;font-size:11px;color:var(--gray,#777);margin-top:.1rem}
.kbch-price{flex:0 0 auto;font-weight:700;color:var(--gold,#b8964f);font-size:14px;text-align:right;white-space:nowrap}
.kbch-price small{display:block;font-weight:400;color:var(--gray,#777);font-size:9.5px;text-transform:uppercase;letter-spacing:.4px}
.kbch-mode{display:flex;flex-direction:column;gap:.4rem;margin:.6rem 0 .2rem;padding:.65rem .2rem 0;border-top:1px dashed var(--border,#e5e5e5)}
.kbch-modeopt{display:flex;align-items:baseline;gap:.45rem;font-size:13px;cursor:pointer}
.kbch-modeopt small{color:var(--gray,#777);font-size:11px}
.kbch-modeopt.sel{font-weight:700}
.kbch-pickup{width:100%;padding:.6rem .8rem;border:1px solid var(--border,#e5e5e5);border-radius:10px;font:inherit;margin-top:.25rem}
.kbch-line{display:flex;justify-content:space-between;align-items:baseline;font-size:13.5px;margin-top:.6rem}
.kbch-save{font-size:11px;color:#1a7f4b;margin-top:.15rem}
.kbch-badge{display:inline-block;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#1a7f4b;background:rgba(26,127,75,.1);padding:.1rem .4rem;border-radius:20px;margin-left:.4rem;vertical-align:middle}
.kbch-more{background:none;border:none;color:var(--gold,#b8964f);text-decoration:underline;cursor:pointer;font-size:12.5px;padding:.5rem .2rem;display:block;text-align:left}
.kbch-foot{font-size:11px;color:var(--gray,#777);margin-top:.65rem;line-height:1.45}
.kbch-concierge{font-size:13px;color:var(--ink,#1a1a1a);padding:.9rem;border:1px dashed var(--border,#e5e5e5);border-radius:12px;line-height:1.5}
.kbch-concierge a{color:var(--gold,#b8964f);cursor:pointer;font-weight:700;white-space:nowrap}
.kbch-note2{display:block;font-size:10.5px;color:#a06a00;margin-top:.2rem;font-style:italic}
.kbch-banner{background:rgba(184,150,79,.08);border:1px solid rgba(184,150,79,.25);border-radius:12px;padding:.7rem .85rem;font-size:12px;line-height:1.5;color:var(--ink,#1a1a1a);margin-bottom:.8rem}
.kbch-twocol{display:flex;gap:.7rem}.kbch-twocol>div{flex:1}
.kbch-hint{font-size:10.5px;color:var(--gray,#777);margin:.35rem 0 .2rem}
.kbch-typeahead{display:inline-block;margin-top:.15rem;font-style:italic;opacity:.85}
.kbjp{margin:.9rem 0 .2rem;border:1px solid var(--border,#e5e5e5);border-radius:12px;background:var(--light,#f8f6f1);padding:.7rem .85rem}
.kbjp-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--gray,#777);margin-bottom:.5rem}
.kbjp-row{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;font-size:13px;color:var(--ink,#1a1a1a);padding:.2rem 0}
.kbjp-row span{color:var(--gray,#555)}
.kbjp-row b{font-variant-numeric:tabular-nums;white-space:nowrap}
.kbjp-rt{border-top:1px dashed var(--border,#ddd);margin-top:.15rem;padding-top:.35rem;font-weight:600}
.kbjp-rt span{color:var(--ink,#1a1a1a)}
.kbjp-save b{color:#0F8243}
.kbjp-total{border-top:1px solid var(--border,#ddd);margin-top:.25rem;padding-top:.45rem;font-size:14.5px;font-weight:700}
.kbjp-total b{color:var(--gold,#b8964f)}
.kbjp-note{font-size:10px;color:var(--gray,#888);line-height:1.45;margin-top:.5rem}
.kbch-hint2{font-size:10.5px;color:var(--gray,#777);font-weight:400;text-transform:none;letter-spacing:0}
.kbch-notes{width:100%;padding:.6rem .8rem;border:1px solid var(--border,#e5e5e5);border-radius:10px;font:inherit;resize:vertical}
.kbch-summary{display:flex;justify-content:space-between;align-items:center;gap:.6rem;background:var(--light,#f8f6f1);border-radius:12px;padding:.7rem .85rem;margin-top:1rem}
.kbch-summary span{display:block;font-size:11px;color:var(--gray,#777);margin-top:.15rem}
.kbch-summary-price{color:var(--gold,#b8964f);font-family:'Playfair Display',Georgia,serif;font-size:1.1rem;white-space:nowrap}
.kbch-back{background:none;border:none;color:var(--gray,#777);cursor:pointer;font-size:12.5px;padding:.6rem;display:block;width:100%;text-align:center;margin-top:.3rem}
.kbch-locked{font-size:14px;color:var(--ink,#1a1a1a);padding:.6rem .8rem;border:1px solid var(--border,#e5e5e5);border-radius:10px;background:var(--light,#f8f6f1)}
.kbch-changelink{display:inline-block;margin-top:.4rem;color:var(--gold,#b8964f);text-decoration:underline;cursor:pointer;font-size:12.5px}
.kbfl{display:flex;align-items:center;gap:.7rem;margin-bottom:.85rem;flex-wrap:wrap}
.kbfl-back{background:none;border:none;color:var(--gold,#b8964f);cursor:pointer;font-size:13px;font-weight:600;padding:.2rem 0;white-space:nowrap}
.kbfl-crumbs{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--gray,#bbb)}
.kbfl-step.on{color:var(--gold,#b8964f);font-weight:700}
.kbfl-sep{font-style:normal;margin:0 .3rem;color:#d0d0d0}
#view-sporting .pl-card.has-thumb .sp-thumb,#view-premier-league .pl-card.has-thumb .sp-thumb{position:relative;height:142px;overflow:hidden}
.pl-art{position:absolute;inset:0;overflow:hidden}
.pl-art-dim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,12,18,.28),rgba(8,12,18,.60))}
.pl-art-sky{position:absolute;bottom:0;left:0;width:100%;height:32px;opacity:.16}
.pl-art-ribbon{position:absolute;top:0;left:0;right:0;background:linear-gradient(90deg,rgba(184,150,79,.96),rgba(214,182,120,.92));color:#1a1a1a;font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;text-align:center;padding:.28rem .3rem}
.pl-art-label{position:absolute;top:1.7rem;left:.55rem;background:rgba(0,0,0,.5);color:#fff;font-size:8.5px;text-transform:uppercase;letter-spacing:.5px;padding:.18rem .5rem;border-radius:20px}
.pl-art-crests{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:.7rem;padding-top:.6rem}
.pl-crest{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;letter-spacing:.5px;border:2px solid rgba(255,255,255,.75);box-shadow:0 5px 14px rgba(0,0,0,.4)}
.pl-art-vs{color:#fff;font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;text-shadow:0 2px 6px rgba(0,0,0,.55)}
#pl-catalogue{transition:background .4s}
#pl-catalogue.pl-flash{animation:plFlash 1.4s ease}
@keyframes plFlash{0%,100%{background:transparent}30%{background:rgba(184,150,79,.10)}}
.curated-sport-card.is-featured{position:relative;outline:1.5px solid rgba(184,150,79,.6);outline-offset:-1.5px;box-shadow:0 14px 40px rgba(184,150,79,.16)}
.curated-sport-live{position:absolute;top:.75rem;right:.75rem;z-index:4;background:#0F8243;color:#fff;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;padding:.26rem .6rem;border-radius:30px;box-shadow:0 4px 12px rgba(0,0,0,.35)}
.curated-sport-cta-link.is-browse{display:inline-block;background:linear-gradient(135deg,#C8A259,#e6c88a);color:#1a1a1a;font-weight:800;letter-spacing:.2px;padding:.7rem 1.3rem;border-radius:30px;box-shadow:0 7px 20px rgba(184,150,79,.4);transition:transform .15s ease,box-shadow .15s ease;cursor:pointer}
.curated-sport-card.is-featured:hover .curated-sport-cta-link.is-browse{transform:translateY(-2px);box-shadow:0 11px 26px rgba(184,150,79,.5)}
#pl-catalogue .pl-hero{text-align:center;max-width:760px;margin:0 auto 1.6rem;padding:1.4rem 1rem 0}
#pl-catalogue .pl-hero-eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:600;margin-bottom:.6rem}
#pl-catalogue .pl-hero-title{font-family:'Playfair Display',Georgia,serif;font-size:2rem;line-height:1.15;margin:0 0 .7rem;color:var(--ink,#1a1a1a)}
#pl-catalogue .pl-hero-sub{color:var(--gray,#666);font-size:15px;line-height:1.55;margin:0 auto 1rem;max-width:620px}
#pl-catalogue .pl-trust{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem .9rem;font-size:12px;color:var(--gray,#777)}
#pl-catalogue .pl-trust span{white-space:nowrap}
#view-sporting .pl-fl-search input,#view-premier-league .pl-fl-search input{font-family:inherit;font-size:14px;padding:.55rem .8rem;border:1px solid #ddd;border-radius:8px;background:#fff;min-width:200px;color:var(--dark)}
.pl-avail{display:inline-flex;align-items:center;gap:.3rem;font-size:11px;color:var(--gray,#777)}
.pl-avail i{width:8px;height:8px;border-radius:50%;display:inline-block}
.pl-avail.ok i{background:#0F8243}.pl-avail.low i{background:#E8A33D}.pl-avail.out i{background:#b00}
.pl-avail.low{color:#b8791f}
.pl-mq-h{font-family:'Playfair Display',Georgia,serif;font-size:1.15rem;color:var(--ink,#1a1a1a);margin:.4rem 0 .7rem;text-align:center}
.pl-mq-row{display:flex;gap:1rem;overflow-x:auto;padding:.2rem .2rem 1rem;scroll-snap-type:x mandatory}
.pl-mq-card{flex:0 0 260px;scroll-snap-align:start;border-radius:14px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.12);cursor:pointer;background:#fff;transition:transform .15s,box-shadow .15s}
.pl-mq-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(0,0,0,.18)}
.pl-mq-art{position:relative;height:120px}
.pl-mq-body{padding:.7rem .85rem}
.pl-mq-date{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--gray,#888)}
.pl-mq-name{font-weight:700;font-size:14px;margin:.15rem 0 .35rem;color:var(--ink,#1a1a1a)}
.pl-mq-price{color:var(--gold,#b8964f);font-weight:700;font-size:12.5px}
.pl-chauffeur-panel{display:flex;gap:1rem;align-items:flex-start;background:linear-gradient(135deg,#0A1E2F,#13314a);color:#fff;border-radius:16px;padding:1.4rem 1.5rem;margin:2rem 0 1.2rem}
.pl-cp-icon{font-size:2rem;flex:0 0 auto}
.pl-cp-h{font-family:'Playfair Display',Georgia,serif;font-size:1.25rem;margin-bottom:.4rem;color:#fff}
.pl-cp-body{font-size:13.5px;line-height:1.6;color:#cfd8e2;margin:0}
.pl-corporate{font-size:13px;color:var(--gray,#666);text-align:center;padding:1rem;border:1px dashed #d8d2c4;border-radius:12px}
.pl-corporate a{color:var(--gold,#b8964f);cursor:pointer;font-weight:700;white-space:nowrap}
@media(max-width:600px){#pl-catalogue .pl-hero-title{font-size:1.55rem}.pl-chauffeur-panel{flex-direction:column}.pl-mq-card{flex-basis:220px}}
.pl-crumb{max-width:1180px;margin:0 auto;font-size:12px;color:var(--gray,#888);padding:.2rem 0}
.pl-crumb a{color:var(--gold,#b8964f);cursor:pointer;text-decoration:none}
.pl-crumb a:hover{text-decoration:underline}
.pl-crumb b{color:var(--ink,#1a1a1a)}


#view-gift{ --gc-ink:#1a1a1a; --gc-soft:#6a6a6a; }
.gc-hero{ background:linear-gradient(135deg,#0e0e0e,#1c1c1c 55%,#241d0b); color:#fff; padding:3.2rem 1.25rem 2.8rem; text-align:center; }
.gc-hero-eyebrow{ letter-spacing:.22em; text-transform:uppercase; font-size:12px; color:var(--gold,#c9a14a); font-weight:700; margin-bottom:.6rem; }
.gc-hero h1{ font-size:clamp(1.9rem,4.5vw,2.9rem); margin:0 0 .7rem; line-height:1.1; }
.gc-hero p{ max-width:620px; margin:0 auto; color:#d9d9d9; font-size:1.02rem; line-height:1.55; }
.gc-wrap{ max-width:1040px; margin:-1.6rem auto 3.5rem; padding:0 1.1rem; }
.gc-tabs{ display:flex; gap:.3rem; background:#fff; border:1px solid var(--border,#e7e7e7); border-radius:999px; padding:.3rem; max-width:460px; margin:0 auto 1.6rem; box-shadow:0 10px 30px rgba(0,0,0,.08); }
.gc-tab{ flex:1; border:none; background:transparent; padding:.6rem .7rem; border-radius:999px; font-weight:700; font-size:13.5px; color:var(--gc-soft); cursor:pointer; font-family:inherit; }
.gc-tab.active{ background:var(--gold,#c9a14a); color:#1a1a1a; }
.gc-builder{ display:grid; grid-template-columns:1.1fr .9fr; gap:1.6rem; align-items:start; }
.gc-form{ background:#fff; border:1px solid var(--border,#e7e7e7); border-radius:18px; box-shadow:0 16px 44px rgba(0,0,0,.09); padding:1.5rem; }
.gc-field{ margin-bottom:1rem; }
.gc-field label{ display:block; font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--gc-soft); margin-bottom:.45rem; }
.gc-field input, .gc-field textarea{ width:100%; padding:.7rem .8rem; border:1px solid var(--border,#dcdcdc); border-radius:11px; font-size:15px; background:#fafafa; color:var(--gc-ink); font-family:inherit; }
.gc-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.gc-denoms{ display:flex; flex-wrap:wrap; gap:.5rem; }
.gc-denom{ flex:1; min-width:72px; padding:.6rem .4rem; border:1.5px solid var(--border,#dcdcdc); border-radius:11px; background:#fafafa; font-weight:700; font-size:15px; color:var(--gc-ink); cursor:pointer; font-family:inherit; }
.gc-denom.active{ border-color:var(--gold,#c9a14a); background:rgba(201,161,74,.12); box-shadow:0 0 0 1px var(--gold,#c9a14a) inset; }
.gc-denom-custom{ font-size:13px; }
.gc-uses{ display:flex; flex-wrap:wrap; gap:.5rem; }
.gc-use{ display:inline-flex; align-items:center; gap:.35rem; padding:.45rem .75rem; border:1.5px solid var(--border,#dcdcdc); border-radius:999px; background:#fafafa; font-size:13.5px; color:var(--gc-ink); cursor:pointer; font-family:inherit; }
.gc-use.active{ border-color:var(--gold,#c9a14a); background:rgba(201,161,74,.12); color:#7a5b16; font-weight:600; }
.gc-send{ display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.gc-radio{ display:inline-flex; align-items:center; gap:.35rem; font-size:14px; color:var(--gc-ink); text-transform:none; letter-spacing:0; font-weight:500; }
.gc-radio input{ width:auto; }
.gc-buy-btn{ width:100%; font-size:16px; padding:.85rem; margin-top:.3rem; }
.gc-note{ display:block; text-align:center; margin-top:.6rem; color:var(--gc-soft); font-size:12.5px; }
.gc-preview-wrap{ position:sticky; top:90px; }
.gc-card{ position:relative; overflow:hidden; background:linear-gradient(135deg,#1c1c1c 0%,#3a2f12 45%,#b8924a 135%); color:#fff; border-radius:16px; padding:1.4rem; box-shadow:0 18px 44px rgba(0,0,0,.28); border:1px solid rgba(201,161,74,.5); min-height:198px; }
.gc-card-sheen{ position:absolute; top:-60%; left:-30%; width:55%; height:220%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.13),transparent); transform:rotate(18deg); pointer-events:none; }
.gc-card-brand{ font-size:11px; letter-spacing:.18em; color:#e7c878; font-weight:700; }
.gc-card-label{ font-size:12.5px; color:#d6d6d6; margin-top:.15rem; }
.gc-card-amt{ font-family:'Playfair Display',Georgia,serif; font-size:2.5rem; font-weight:800; margin:.35rem 0 .15rem; }
.gc-card-code{ font-family:ui-monospace,Menlo,monospace; letter-spacing:.12em; font-size:14px; color:#e6e6e6; margin-bottom:.5rem; }
.gc-card-meta{ display:flex; justify-content:space-between; gap:1rem; font-size:12.5px; color:#d6d6d6; border-top:1px solid rgba(255,255,255,.18); padding-top:.55rem; }
.gc-card-msg{ margin-top:.55rem; font-size:13px; font-style:italic; color:#e6e6e6; line-height:1.45; }
.gc-card-lg{ max-width:420px; }
.gc-preview-cap{ text-align:center; font-size:12px; color:var(--gc-soft); margin:.5rem 0 0; text-transform:uppercase; letter-spacing:.1em; }
.gc-success{ margin-top:1.6rem; display:grid; grid-template-columns:420px 1fr; gap:1.4rem; align-items:center; background:#fff; border:1px solid var(--border,#e7e7e7); border-radius:16px; padding:1.4rem; box-shadow:0 14px 40px rgba(0,0,0,.08); }
.gc-success-body h3{ margin:0 0 .5rem; }
.gc-success-body p{ color:var(--gc-soft); font-size:14.5px; line-height:1.55; margin:0 0 1rem; }
.gc-success-actions{ display:flex; gap:.6rem; flex-wrap:wrap; }
.gc-redeem{ max-width:560px; margin:0 auto; background:#fff; border:1px solid var(--border,#e7e7e7); border-radius:18px; box-shadow:0 16px 44px rgba(0,0,0,.09); padding:1.6rem; }
.gc-redeem-row{ display:flex; gap:.6rem; }
.gc-redeem-row input{ flex:1; padding:.75rem .85rem; border:1px solid var(--border,#dcdcdc); border-radius:11px; font-size:16px; letter-spacing:.08em; text-transform:uppercase; font-family:ui-monospace,Menlo,monospace; background:#fafafa; }
.gc-redeem-msg{ color:var(--gc-soft); font-size:14px; margin-top:1rem; }
.gc-redeem-msg.gc-err{ color:#b3261e; }
.gc-balance{ margin-top:1.2rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; border:1px solid var(--border,#e7e7e7); border-radius:14px; padding:1.1rem 1.3rem; background:#fffdf7; }
.gc-bal-label{ display:block; font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:var(--gc-soft); }
.gc-bal-amt{ font-size:1.9rem; font-weight:800; color:var(--gc-ink); }
.gc-bal-sub{ font-size:12.5px; color:var(--gc-soft); margin-left:.5rem; }
.gc-book-credit{ display:flex; align-items:center; gap:.6rem; max-width:1100px; margin:1rem auto 0; padding:.7rem 1rem; background:#fffdf3; border:1px solid rgba(201,161,74,.5); border-radius:12px; font-size:14px; color:#5a4a1e; }
.gc-bc-ic{ font-size:1.2rem; } .gc-bc-txt{ flex:1; } .gc-bc-x{ border:none; background:transparent; color:#9a7a2a; font-size:16px; cursor:pointer; line-height:1; }
@media(max-width:820px){ .gc-builder{ grid-template-columns:1fr; } .gc-preview-wrap{ position:static; order:-1; } .gc-success{ grid-template-columns:1fr; } }
@media(max-width:560px){ .gc-grid2{ grid-template-columns:1fr; } .gc-redeem-row{ flex-direction:column; } }


#view-corporate{ --corp-ink:#1a1a1a; --corp-soft:#6a6a6a; --corp-navy:#10243a; }
.corp-hero{ background:linear-gradient(135deg,#0b1a2b,#10243a 55%,#241d0b); color:#fff; padding:3.4rem 1.25rem 3rem; text-align:center; }
.corp-hero-eyebrow{ letter-spacing:.22em; text-transform:uppercase; font-size:12px; color:var(--gold,#c9a14a); font-weight:700; margin-bottom:.6rem; }
.corp-hero h1{ font-size:clamp(1.9rem,4.5vw,3rem); margin:0 0 .7rem; line-height:1.1; }
.corp-hero p{ max-width:640px; margin:0 auto; color:#d5dce4; font-size:1.02rem; line-height:1.55; }
.corp-wrap{ max-width:1080px; margin:-1.8rem auto 3.5rem; padding:0 1.1rem; }
.corp-benefits{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-bottom:1.8rem; }
.corp-benefit{ background:#fff; border:1px solid var(--border,#e7e7e7); border-radius:14px; padding:1.2rem; box-shadow:0 10px 30px rgba(0,0,0,.06); }
.corp-benefit-ic{ font-size:1.5rem; }
.corp-benefit h4{ margin:.5rem 0 .3rem; font-size:15px; color:var(--corp-ink); }
.corp-benefit p{ margin:0; font-size:13px; color:var(--corp-soft); line-height:1.5; }
.corp-form{ background:#fff; border:1px solid var(--border,#e7e7e7); border-radius:18px; box-shadow:0 16px 44px rgba(0,0,0,.09); padding:1.6rem; max-width:720px; margin:0 auto; }
.corp-form h3{ margin:0 0 .3rem; }
.corp-form-sub{ color:var(--corp-soft); font-size:13.5px; margin:0 0 1.2rem; }
.corp-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.corp-field.corp-full{ grid-column:1/-1; }
.corp-field label{ display:block; font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--corp-soft); margin-bottom:.4rem; }
.corp-field input, .corp-field select{ width:100%; padding:.7rem .8rem; border:1px solid var(--border,#dcdcdc); border-radius:11px; font-size:15px; background:#fafafa; color:var(--corp-ink); font-family:inherit; }
.corp-submit{ width:100%; margin-top:1.2rem; font-size:16px; padding:.85rem; }
.corp-form-note{ display:block; text-align:center; margin-top:.7rem; color:var(--corp-soft); font-size:12.5px; }
.corp-portal-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; flex-wrap:wrap; background:linear-gradient(135deg,#0b1a2b,#10243a); color:#fff; border-radius:16px; padding:1.4rem 1.5rem; }
.corp-portal-head h2{ margin:.2rem 0; font-size:1.5rem; }
.corp-portal-head .corp-eyebrow{ color:var(--gold,#c9a14a); }
.corp-eyebrow{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:700; }
.corp-sub{ font-size:13px; color:#cdd6e0; }
.corp-signout{ background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.25); border-radius:8px; padding:.45rem .8rem; font-weight:600; font-size:13px; cursor:pointer; font-family:inherit; }
.corp-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin:1.2rem 0; }
.corp-stat{ background:#fff; border:1px solid var(--border,#e7e7e7); border-radius:12px; padding:1rem 1.1rem; text-align:center; }
.corp-stat-n{ display:block; font-size:1.6rem; font-weight:800; color:var(--corp-navy); }
.corp-stat-l{ font-size:12px; color:var(--corp-soft); text-transform:uppercase; letter-spacing:.04em; }
.corp-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin-bottom:1.2rem; }
.corp-card{ background:#fff; border:1px solid var(--border,#e7e7e7); border-radius:14px; padding:1.2rem 1.3rem; }
.corp-card h3{ margin:0 0 .8rem; font-size:14px; text-transform:uppercase; letter-spacing:.05em; color:var(--corp-soft); }
.corp-trav{ display:flex; align-items:center; gap:.7rem; padding:.5rem 0; border-bottom:1px solid #f0f0f0; }
.corp-trav-av{ width:34px; height:34px; border-radius:50%; background:var(--corp-navy); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; flex:0 0 auto; }
.corp-trav-body{ flex:1; display:flex; flex-direction:column; min-width:0; }
.corp-trav-body b{ font-size:14px; color:var(--corp-ink); } .corp-trav-body span{ font-size:12px; color:var(--corp-soft); overflow:hidden; text-overflow:ellipsis; }
.corp-trav-cc{ font-size:11.5px; font-weight:700; color:#7a5b16; background:rgba(201,161,74,.14); border-radius:999px; padding:.2rem .6rem; white-space:nowrap; }
.corp-addtrav{ display:flex; gap:.5rem; margin-top:.8rem; flex-wrap:wrap; }
.corp-addtrav input, .corp-addtrav select{ flex:1; min-width:110px; padding:.55rem .7rem; border:1px solid var(--border,#dcdcdc); border-radius:9px; font-size:13.5px; font-family:inherit; background:#fafafa; }
.corp-addtrav .btn{ flex:0 0 auto; padding:.55rem 1rem; }
.corp-cc{ list-style:none; margin:0; padding:0; }
.corp-cc li{ display:grid; grid-template-columns:1.1fr 2fr auto; align-items:center; gap:.7rem; padding:.45rem 0; }
.corp-cc-name{ font-size:13.5px; color:var(--corp-ink); }
.corp-cc-bar{ height:8px; background:#f0ece0; border-radius:999px; overflow:hidden; }
.corp-cc-bar span{ display:block; height:100%; background:var(--gold,#c9a14a); }
.corp-cc-amt{ font-size:13.5px; font-weight:700; color:var(--corp-ink); }
.corp-statement-head{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.corp-bill{ margin-bottom:1.2rem; }
.corp-bill-tabs{ display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:1rem; }
.corp-bill-tab{ border:1.5px solid var(--border,#dcdcdc); background:#fafafa; border-radius:999px; padding:.45rem .85rem; font-size:13px; font-weight:600; color:var(--corp-soft); cursor:pointer; font-family:inherit; }
.corp-bill-tab.active{ border-color:var(--corp-navy,#10243a); background:var(--corp-navy,#10243a); color:#fff; }
.corp-bill-lead{ font-size:13.5px; color:var(--corp-ink); margin:0 0 .9rem; line-height:1.55; }
.corp-bill-row{ display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:.4rem; }
.corp-bill-row label{ display:flex; flex-direction:column; gap:.3rem; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--corp-soft); flex:1; min-width:170px; }
.corp-bill-row input, .corp-bill-row select{ padding:.55rem .7rem; border:1px solid var(--border,#dcdcdc); border-radius:9px; font-size:14px; font-family:inherit; background:#fafafa; font-weight:400; text-transform:none; letter-spacing:0; color:var(--corp-ink); }
.corp-bill-due{ display:flex; align-items:center; gap:.8rem; flex-wrap:wrap; background:#fffdf7; border:1px solid rgba(201,161,74,.4); border-radius:10px; padding:.7rem .9rem; margin-top:.7rem; }
.corp-bill-amt{ font-size:1.25rem; font-weight:800; color:var(--corp-navy); }
.corp-bill-status{ display:flex; align-items:center; gap:.8rem; flex-wrap:wrap; font-size:13.5px; color:var(--corp-ink); margin-top:.4rem; }
.corp-bill-badge{ font-weight:700; } .corp-bill-badge.ok{ color:#1a8a4a; }
.corp-bill-card{ font-weight:700; }
.corp-bill-link{ background:none; border:none; color:#b3261e; font-size:12.5px; cursor:pointer; text-decoration:underline; font-family:inherit; padding:0; }
.corp-bill-note{ font-size:12px; color:var(--corp-soft); margin:.6rem 0 0; }
.corp-dl{ background:var(--corp-navy); color:#fff; border:none; border-radius:8px; padding:.5rem .9rem; font-weight:700; font-size:13px; cursor:pointer; font-family:inherit; }
.corp-table-wrap{ overflow-x:auto; margin-top:.4rem; }
.corp-table{ width:100%; border-collapse:collapse; font-size:13.5px; min-width:560px; }
.corp-table th{ text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--corp-soft); padding:.5rem .6rem; border-bottom:2px solid #eee; }
.corp-table td{ padding:.6rem; border-bottom:1px solid #f2f2f2; color:var(--corp-ink); }
.corp-table .corp-r{ text-align:right; }
.corp-tag{ font-size:11.5px; font-weight:700; color:#7a5b16; background:rgba(201,161,74,.14); border-radius:999px; padding:.15rem .55rem; white-space:nowrap; }
.corp-total td{ font-weight:800; border-top:2px solid #eee; border-bottom:none; }
.corp-note{ font-size:12px; color:var(--corp-soft); margin:.8rem 0 0; line-height:1.5; }
@media(max-width:820px){ .corp-benefits{ grid-template-columns:1fr 1fr; } .corp-stats{ grid-template-columns:1fr 1fr; } .corp-grid{ grid-template-columns:1fr; } .corp-form-grid{ grid-template-columns:1fr; } }
@media(max-width:520px){ .corp-benefits{ grid-template-columns:1fr; } }


.kc-confirm-comms{ display:flex; gap:.6rem; justify-content:center; flex-wrap:wrap; margin:0 0 1.4rem; }
.bk-wrap{ max-width:640px; margin:-1.6rem auto 3.5rem; padding:0 1.1rem; }
.bk-lookup{ display:flex; gap:.6rem; background:#fff; border:1px solid var(--border,#e7e7e7); border-radius:14px; padding:1rem; box-shadow:0 12px 34px rgba(0,0,0,.08); }
.bk-lookup input{ flex:1; padding:.7rem .85rem; border:1px solid var(--border,#dcdcdc); border-radius:11px; font-size:15px; background:#fafafa; font-family:inherit; }
.bk-empty{ text-align:center; color:#6a6a6a; font-size:14px; margin-top:1.4rem; }
.bk-empty.bk-err{ color:#b3261e; }
.bk-card{ background:#fff; border:1px solid var(--border,#e7e7e7); border-radius:16px; padding:1.4rem; margin-top:1.4rem; box-shadow:0 12px 34px rgba(0,0,0,.08); }
.bk-card-head{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.bk-card-head h3{ margin:0; }
.bk-status{ font-size:12px; font-weight:800; padding:.25rem .7rem; border-radius:999px; white-space:nowrap; }
.bk-status.bk-ok{ background:#e7f5ec; color:#1a8a4a; } .bk-status.bk-cancelled{ background:#fdeaea; color:#b3261e; }
.bk-rows{ display:flex; flex-direction:column; }
.bk-row{ display:flex; justify-content:space-between; gap:1rem; padding:.5rem 0; border-bottom:1px solid #f2f2f2; font-size:14px; }
.bk-row span{ color:#6a6a6a; } .bk-row b{ color:#1a1a1a; text-align:right; }
.bk-actions{ display:flex; gap:.5rem; flex-wrap:wrap; margin-top:1.1rem; }
.bk-cancel-btn{ background:#fff; border:1.5px solid #b3261e; color:#b3261e; }
.bk-note{ font-size:12.5px; color:#6a6a6a; margin:.9rem 0 0; }
@media(max-width:560px){ .bk-lookup{ flex-direction:column; } }


/* Defensive wrap-hardening for data-driven flex rows (responsive audit, June 2026).
   Live testing showed zero overflow at 360/390px, but these keep long real-world
   strings (full addresses, long unhyphenated names, hotel+room labels, codes) wrapping
   instead of clipping/overflowing in the rare pathological case. Invisible for normal text. */
.bk-row{ flex-wrap:wrap; }
.bk-row b{ min-width:0; overflow-wrap:anywhere; }
.gc-card-meta{ flex-wrap:wrap; }
.gc-card-meta span{ min-width:0; overflow-wrap:anywhere; }
.cc-breakdown li{ flex-wrap:wrap; }
.cc-breakdown li > span:first-child{ min-width:0; overflow-wrap:anywhere; }
.rt-bar-sub{ overflow-wrap:anywhere; }
.ly-vrow code{ overflow-wrap:anywhere; }
@media(max-width:560px){ .ly-prog-top{ gap:.5rem; } }
/* Admin data tables: let wide tables scroll horizontally inside their card instead of
   pushing the whole page wide on mobile (same pattern as .hx-table-wrap). */
#adminBookingsTable, #adminUsersTable{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
/* Horizontal-scroll wrappers (wide rate tables) must never exceed the viewport —
   cap them so their inner min-width:880/620 content scrolls internally instead of
   pushing the whole hotel-detail page wide on phones. */
.hx-table-wrap, .room-rate{ max-width:100%; }
#view-hotel-detail .hotel-detail-extra > div{ min-width:0; }
/* Hotel gallery: let the grid's fr tracks shrink below the images' intrinsic width
   (grid items default to min-width:auto → overflow on very narrow phones). */
.gallery-grid{ min-width:0; }
.gallery-item{ min-width:0; }
.gallery-item img{ min-width:0; }
@media(max-width:430px){ .gallery-grid{ grid-template-columns:minmax(0,1fr) !important; } }
/* Hotel-detail hero + mini price axis: keep long buttons/labels from leaking on small phones */
@media(max-width:430px){
  .hotel-hero-content, .hotel-hero-meta{ min-width:0; max-width:100%; }
  .hotel-hero-meta{ flex-wrap:wrap; }
  .hotel-hero-meta .btn{ white-space:normal; max-width:100%; }
  .hotel-hero-meta > span{ overflow-wrap:anywhere; }
  .bpc-axis{ overflow:hidden; }
}


.trip-wrap{ max-width:860px; margin:-1.6rem auto 3.5rem; padding:0 1.1rem; }
.trip-empty{ text-align:center; color:#6a6a6a; background:#fff; border:1px solid var(--border,#eee); border-radius:16px; padding:2.4rem 1.4rem; box-shadow:0 12px 34px rgba(0,0,0,.07); }
.trip-empty h3{ margin:.5rem 0 .5rem; }
.trip-cta-row{ display:flex; gap:.6rem; flex-wrap:wrap; justify-content:center; margin-top:1.1rem; }
.trip-summary{ display:flex; flex-wrap:wrap; gap:1rem; align-items:center; justify-content:space-between; background:linear-gradient(135deg,#1a1d22,#2c3038); color:#fff; border-radius:16px; padding:1.3rem 1.5rem; margin-bottom:1.6rem; }
.trip-summary-when{ font-family:'Playfair Display',serif; font-size:1.4rem; }
.trip-summary-sub{ font-size:12.5px; opacity:.82; margin-top:.2rem; }
.trip-summary-stats{ display:flex; gap:1.5rem; }
.trip-summary-stat b{ display:block; font-size:1.3rem; font-family:'Playfair Display',serif; }
.trip-summary-stat span{ font-size:10px; opacity:.82; text-transform:uppercase; letter-spacing:.05em; }
.trip-actions{ display:flex; gap:.55rem; flex-wrap:wrap; margin-bottom:1.8rem; }
.trip-sec-h{ font-family:'Playfair Display',serif; font-size:1.2rem; margin:0 0 1rem; display:flex; align-items:center; gap:.5rem; }
.trip-timeline{ position:relative; margin:0 0 2rem; padding-left:34px; }
.trip-timeline::before{ content:''; position:absolute; left:11px; top:6px; bottom:6px; width:2px; background:linear-gradient(#c9a14a,#e7c87a); }
.trip-step{ position:relative; margin-bottom:1.1rem; }
.trip-dot{ position:absolute; left:-34px; top:2px; width:24px; height:24px; border-radius:50%; background:#fff; border:2px solid var(--gold,#c9a14a); display:flex; align-items:center; justify-content:center; font-size:12px; z-index:1; }
.trip-card{ background:#fff; border:1px solid var(--border,#eee); border-radius:14px; padding:1rem 1.1rem; box-shadow:0 8px 22px rgba(0,0,0,.06); }
.trip-card-top{ display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; }
.trip-card-route{ font-weight:700; font-size:14.5px; overflow-wrap:anywhere; }
.trip-card-when{ font-size:12.5px; color:var(--gray,#777); margin-top:.2rem; }
.trip-card-flight{ font-size:12px; color:#1a7a42; margin-top:.35rem; }
.trip-status{ font-size:11px; font-weight:800; padding:.2rem .6rem; border-radius:999px; white-space:nowrap; }
.trip-status.ok{ background:#e7f5ec; color:#1a8a4a; } .trip-status.pend{ background:#fdf3e0; color:#9a6a00; } .trip-status.done{ background:#eef1f4; color:#5a6570; } .trip-status.cancel{ background:#fdeaea; color:#b3261e; }
.trip-card-acts{ display:flex; gap:.5rem; margin-top:.7rem; flex-wrap:wrap; }
.trip-mini-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:.8rem; margin-bottom:2rem; }
.trip-mini{ background:#fff; border:1px solid var(--border,#eee); border-radius:12px; padding:1rem; cursor:pointer; transition:transform .15s, box-shadow .15s; }
.trip-mini:hover{ transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.07); }
.trip-mini-label{ font-size:11px; color:var(--gray,#888); text-transform:uppercase; letter-spacing:.05em; }
.trip-mini-val{ font-size:1.3rem; font-family:'Playfair Display',serif; color:var(--dark,#1a1a1a); margin:.2rem 0 .1rem; }
.trip-mini-sub{ font-size:11.5px; color:var(--gold-text,#8a6d1f); }
.trip-saved-list{ display:flex; flex-direction:column; gap:.6rem; margin-bottom:2rem; }
.trip-saved{ display:flex; justify-content:space-between; align-items:center; gap:1rem; background:#fff; border:1px solid var(--border,#eee); border-radius:12px; padding:.8rem 1rem; }
.trip-saved b{ font-size:13.5px; } .trip-saved span span, .trip-saved>span span{ font-size:12px; color:var(--gray,#888); }
.trip-past summary{ cursor:pointer; font-weight:600; color:var(--gray,#666); font-size:13.5px; margin-bottom:.8rem; }
@media(max-width:560px){ .trip-summary{ flex-direction:column; align-items:flex-start; } .trip-summary-stats{ gap:1.1rem; } }
/* Guest reviews (hotel detail) */
.hr-summary{ display:grid; grid-template-columns:auto 1fr; gap:1.5rem 2rem; align-items:center; max-width:900px; margin:0 auto 2rem; background:#fff; border:1px solid var(--border,#eee); border-radius:16px; padding:1.4rem 1.6rem; box-shadow:0 10px 28px rgba(0,0,0,.05); }
.hr-overall{ text-align:center; padding-right:1.6rem; border-right:1px solid #eee; }
.hr-overall b{ display:block; font-family:'Playfair Display',serif; font-size:2.6rem; color:#1a7a42; line-height:1; }
.hr-overall span{ display:block; font-weight:700; color:#1a7a42; font-size:13px; margin-top:.2rem; }
.hr-overall i{ display:block; font-style:normal; font-size:11.5px; color:var(--gray,#888); margin-top:.3rem; }
.hr-bars{ display:grid; gap:.55rem; }
.hr-bar{ display:flex; align-items:center; gap:.7rem; font-size:12.5px; }
.hr-bar-l{ flex:0 0 96px; color:#555; }
.hr-bar-track{ flex:1; height:7px; background:#ececec; border-radius:999px; overflow:hidden; }
.hr-bar-fill{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#2e9d4f,#56c878); }
.hr-bar-v{ flex:0 0 26px; text-align:right; font-weight:700; color:#1a7a42; }
.hr-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1rem; max-width:1120px; margin:0 auto; }
.hr-card{ background:#fff; border:1px solid var(--border,#eee); border-radius:14px; padding:1.1rem 1.2rem; box-shadow:0 8px 20px rgba(0,0,0,.04); }
.hr-card-top{ display:flex; align-items:center; gap:.7rem; }
.hr-ava{ width:38px; height:38px; border-radius:50%; flex:0 0 auto; background:linear-gradient(135deg,#b8924a,#e7c87a); color:#1a1a1a; font-weight:700; display:flex; align-items:center; justify-content:center; }
.hr-who{ flex:1; min-width:0; } .hr-who b{ font-size:13.5px; display:block; } .hr-who span{ font-size:11.5px; color:var(--gray,#888); }
.hr-card-score{ flex:0 0 auto; background:#eaf5ee; color:#1a7a42; font-weight:800; font-size:13px; padding:.2rem .5rem; border-radius:7px; }
.hr-card-text{ font-size:13.5px; line-height:1.6; color:#333; margin:.7rem 0 .5rem; overflow-wrap:anywhere; }
.hr-card-when{ font-size:11.5px; color:var(--gray,#999); }
/* Chauffeur sub-scores band (testimonials) */
.hr-chauffeur{ max-width:680px; margin:0 auto 2.2rem; background:#fff; border:1px solid var(--border,#eee); border-radius:16px; padding:1.3rem 1.6rem; box-shadow:0 8px 22px rgba(0,0,0,.05); }
.hr-ch-h{ font-weight:700; font-size:13px; color:#555; text-align:center; margin-bottom:.9rem; }
.hr-ch-bars{ display:grid; gap:.55rem; }
.hr-chauffeur .hr-bar-v{ color:var(--gold-text,#8a6d1f); }
.hr-chauffeur .hr-bar-fill{ background:linear-gradient(90deg,#b8924a,#e7c87a); }
/* Quick-view review snippet */
.hq-revsnip{ font-size:13px; line-height:1.55; color:#444; font-style:italic; }
.hq-revsnip span{ display:block; font-style:normal; font-size:11.5px; color:var(--gray,#999); margin-top:.3rem; }
/* Post-ride review modal */
.rr-stars{ display:flex; justify-content:center; gap:.3rem; margin-bottom:1rem; }
.rr-star{ background:none; border:none; font-size:2rem; line-height:1; cursor:pointer; color:#d8d8d8; transition:color .12s, transform .12s; padding:0; }
.rr-star.on{ color:#f5b301; } .rr-star:hover{ transform:scale(1.12); }
.rr-aspects{ display:flex; flex-wrap:wrap; gap:.45rem; justify-content:center; margin-bottom:1rem; }
.rr-aspect{ background:#f5f5f5; border:1px solid var(--border,#e5e5e5); color:#555; font-size:12px; font-weight:600; padding:.32rem .65rem; border-radius:999px; cursor:pointer; }
.rr-aspect.on{ background:#f3eede; border-color:rgba(201,169,97,.6); color:#6b531d; }
.rr-text{ width:100%; box-sizing:border-box; border:1px solid var(--border,#ddd); border-radius:10px; padding:.7rem; font:inherit; font-size:13.5px; resize:vertical; margin-bottom:1rem; background:#fafafa; }
.trip-reviewed{ font-size:12.5px; font-weight:700; color:#1a7a42; }
@media(max-width:560px){ .hr-summary{ grid-template-columns:1fr; gap:1.1rem; } .hr-overall{ border-right:none; border-bottom:1px solid #eee; padding-right:0; padding-bottom:1rem; } .hr-bar-l{ flex-basis:84px; } .hr-grid{ grid-template-columns:1fr; } }


#view-concierge{ --cc-ink:#1a1a1a; --cc-soft:#6a6a6a; }
.cc-hero{ background:linear-gradient(135deg,#0e0e0e 0%,#1c1c1c 55%,#241d0b 100%); color:#fff; padding:3.4rem 1.25rem 3rem; text-align:center; }
.cc-hero-eyebrow{ letter-spacing:.22em; text-transform:uppercase; font-size:12px; color:var(--gold,#c9a14a); font-weight:700; margin-bottom:.6rem; }
.cc-hero h1{ font-size:clamp(1.9rem,4.5vw,3rem); margin:0 0 .7rem; line-height:1.08; }
.cc-hero p{ max-width:660px; margin:0 auto; color:#d9d9d9; font-size:1.02rem; line-height:1.55; }
.cc-ai-badge{ display:inline-flex; align-items:center; gap:.4rem; margin-top:1.1rem; padding:.4rem .9rem; border:1px solid rgba(201,161,74,.5); border-radius:999px; font-size:12.5px; color:var(--gold,#c9a14a); }
.cc-wrap{ max-width:1080px; margin:-2rem auto 3.5rem; padding:0 1.1rem; }
.cc-templates{ display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; margin-bottom:1rem; }
.cc-tpl-label{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--gold,#c9a14a); margin-right:.2rem; }
.cc-tpl{ display:inline-flex; align-items:center; gap:.35rem; padding:.5rem .85rem; border:1.5px solid var(--border,#dcdcdc); border-radius:999px; background:#fff; cursor:pointer; font-size:13.5px; font-weight:600; color:var(--cc-ink,#1a1a1a); font-family:inherit; transition:.15s; }
.cc-tpl:hover{ border-color:var(--gold,#c9a14a); background:rgba(201,161,74,.1); }
.cc-tpl-ic{ font-size:1rem; }
.cc-chat{ background:#13110b; border:1px solid rgba(201,161,74,.4); border-radius:16px; padding:1.1rem 1.2rem; margin-bottom:1.2rem; }
.cc-chat-head{ font-size:14px; color:#d6d6d6; font-weight:600; margin-bottom:.7rem; }
.cc-chat-badge{ font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gold,#c9a14a); margin-right:.4rem; }
.cc-chat-log{ display:flex; flex-direction:column; gap:.5rem; max-height:230px; overflow-y:auto; margin-bottom:.7rem; }
.cc-bubble{ max-width:82%; padding:.6rem .85rem; border-radius:14px; font-size:14px; line-height:1.5; }
.cc-bubble-ai{ align-self:flex-start; background:rgba(255,255,255,.08); color:#e6e6e6; border-bottom-left-radius:4px; }
.cc-bubble-me{ align-self:flex-end; background:var(--gold,#c9a14a); color:#1a1a1a; border-bottom-right-radius:4px; }
.cc-bubble-typing{ opacity:.6; letter-spacing:.18em; }
.cc-chat-examples{ display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:.7rem; }
.cc-chat-ex{ border:1px solid rgba(201,161,74,.4); background:rgba(255,255,255,.05); color:#d6d6d6; border-radius:999px; padding:.35rem .7rem; font-size:12px; cursor:pointer; font-family:inherit; }
.cc-chat-ex:hover{ background:rgba(201,161,74,.18); }
.cc-chat-input{ display:flex; gap:.5rem; }
.cc-chat-input input{ flex:1; padding:.7rem .85rem; border:1px solid rgba(255,255,255,.2); border-radius:11px; font-size:14px; background:rgba(255,255,255,.06); color:#fff; font-family:inherit; }
.cc-chat-input input::placeholder{ color:#a8a8a8; }
.cc-chat-input .btn{ flex:0 0 auto; }
.cc-savedbar{ margin-top:.7rem; text-align:center; }
.cc-savedbtn{ background:none; border:none; color:var(--gold,#9c7a2a); font-weight:700; font-size:13px; cursor:pointer; font-family:inherit; }
.cc-savedwrap{ margin-top:.8rem; }
.cc-saved-empty{ text-align:center; color:var(--cc-soft,#6a6a6a); font-size:13.5px; background:#fff; border:1px solid var(--border,#e7e7e7); border-radius:12px; padding:1rem; }
.cc-saved-list{ display:flex; flex-direction:column; gap:.5rem; }
.cc-saved-item{ display:flex; align-items:center; gap:.7rem; background:#fff; border:1px solid var(--border,#e7e7e7); border-radius:12px; padding:.7rem .9rem; }
.cc-saved-body{ flex:1; display:flex; flex-direction:column; min-width:0; }
.cc-saved-body b{ font-size:14px; color:var(--cc-ink,#1a1a1a); }
.cc-saved-body span{ font-size:12px; color:var(--cc-soft,#6a6a6a); }
.cc-saved-open{ border:1.5px solid var(--gold,#c9a14a); background:#fff; color:#7a5b16; font-weight:700; font-size:12.5px; padding:.35rem .8rem; border-radius:999px; cursor:pointer; font-family:inherit; }
.cc-saved-del{ border:none; background:none; color:#b3261e; font-size:14px; cursor:pointer; }
.cc-share{ display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; margin:0 0 1.6rem; padding:.7rem .9rem; background:#faf7ef; border:1px solid var(--border,#eee); border-radius:12px; }
.cc-share-label{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--cc-soft,#6a6a6a); margin-right:.2rem; }
.cc-share-btn{ border:1px solid var(--border,#dcdcdc); background:#fff; border-radius:999px; padding:.45rem .85rem; font-size:13px; font-weight:600; color:var(--cc-ink,#1a1a1a); cursor:pointer; font-family:inherit; }
.cc-share-btn:hover{ border-color:var(--gold,#c9a14a); background:rgba(201,161,74,.08); }
.cc-form{ background:#fff; border:1px solid var(--border,#e7e7e7); border-radius:18px; box-shadow:0 18px 50px rgba(0,0,0,.10); padding:1.7rem 1.5rem 1.8rem; }
.cc-form-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.1rem 1.3rem; }
.cc-field label{ display:block; font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--cc-soft); margin-bottom:.4rem; }
.cc-field input, .cc-field select{ width:100%; padding:.7rem .8rem; border:1px solid var(--border,#dcdcdc); border-radius:11px; font-size:15px; background:#fafafa; color:var(--cc-ink); font-family:inherit; }
.cc-field-full{ grid-column:1 / -1; }
.cc-tiers{ display:flex; gap:.6rem; flex-wrap:wrap; }
.cc-tier{ flex:1; min-width:120px; padding:.7rem .6rem; border:1.5px solid var(--border,#dcdcdc); border-radius:12px; background:#fafafa; cursor:pointer; text-align:center; transition:.15s; font-family:inherit; }
.cc-tier b{ display:block; font-size:14.5px; color:var(--cc-ink); }
.cc-tier small{ color:var(--cc-soft); font-size:12px; }
.cc-tier.active{ border-color:var(--gold,#c9a14a); background:rgba(201,161,74,.10); box-shadow:0 0 0 1px var(--gold,#c9a14a) inset; }
.cc-tiers-4 .cc-tier{ min-width:104px; }
.cc-medal{ font-size:11px; margin-right:.1rem; vertical-align:middle; }
.cc-tier-bronze .cc-medal{ color:#cd7f32; } .cc-tier-silver .cc-medal{ color:#9aa3ad; } .cc-tier-gold .cc-medal{ color:#c9a14a; } .cc-tier-platinum .cc-medal{ color:#5b6472; }
.cc-tier-bronze.active{ border-color:#cd7f32; background:rgba(205,127,50,.10); box-shadow:0 0 0 1px #cd7f32 inset; }
.cc-tier-silver.active{ border-color:#9aa3ad; background:rgba(154,163,173,.14); box-shadow:0 0 0 1px #9aa3ad inset; }
.cc-tier-gold.active{ border-color:#c9a14a; background:rgba(201,161,74,.12); box-shadow:0 0 0 1px #c9a14a inset; }
.cc-tier-platinum.active{ border-color:#5b6472; background:rgba(91,100,114,.12); box-shadow:0 0 0 1px #5b6472 inset; }
.cc-reward{ margin:0 0 1.6rem; border:1px solid var(--border,#e7e7e7); border-radius:14px; padding:1.1rem 1.3rem; background:linear-gradient(180deg,#fffdf7,#fff); }
.cc-reward-head{ display:flex; align-items:center; gap:.6rem 1rem; flex-wrap:wrap; }
.cc-reward-badge{ display:inline-flex; align-items:center; gap:.35rem; font-weight:800; font-size:13.5px; letter-spacing:.02em; padding:.32rem .75rem; border-radius:999px; color:#fff; }
.cc-rb-bronze{ background:linear-gradient(135deg,#a8682c,#cd7f32); } .cc-rb-silver{ background:linear-gradient(135deg,#7f8893,#aeb6bf); } .cc-rb-gold{ background:linear-gradient(135deg,#b9892f,#e0bd5f); } .cc-rb-platinum{ background:linear-gradient(135deg,#2e3440,#5b6472); } .cc-rb-none{ background:#9aa0a6; }
.cc-reward-badge .cc-medal{ color:rgba(255,255,255,.92); }
.cc-reward-sub{ font-size:13.5px; color:var(--cc-soft,#6a6a6a); }
.cc-reward-perks{ list-style:none; margin:.85rem 0 0; padding:0; display:grid; grid-template-columns:repeat(2,1fr); gap:.32rem 1.2rem; }
.cc-reward-perks li{ position:relative; padding-left:1.25rem; font-size:13.5px; color:var(--cc-ink,#1a1a1a); }
.cc-reward-perks li::before{ content:'✓'; position:absolute; left:0; color:#c9a14a; font-weight:800; }
.cc-reward-next{ margin-top:.9rem; padding-top:.8rem; border-top:1px dashed var(--border,#eee); display:flex; align-items:center; justify-content:space-between; gap:.6rem 1rem; flex-wrap:wrap; }
.cc-reward-next-txt{ font-size:13.5px; color:var(--cc-ink,#1a1a1a); }
.cc-reward-btns{ display:flex; gap:.5rem; flex-wrap:wrap; }
.cc-reward-btn{ border:1.5px solid var(--gold,#c9a14a); background:#fff; color:#7a5b16; font-weight:700; font-size:13px; padding:.45rem .8rem; border-radius:999px; cursor:pointer; font-family:inherit; white-space:nowrap; }
.cc-reward-btn:hover{ background:rgba(201,161,74,.12); }
@media(max-width:640px){ .cc-reward-perks{ grid-template-columns:1fr; } .cc-reward-next{ flex-direction:column; align-items:flex-start; } }
.cc-chips{ display:flex; flex-wrap:wrap; gap:.55rem; }
.cc-chip{ display:inline-flex; align-items:center; gap:.4rem; padding:.5rem .85rem; border:1.5px solid var(--border,#dcdcdc); border-radius:999px; background:#fafafa; cursor:pointer; font-size:14px; color:var(--cc-ink); transition:.15s; font-family:inherit; }
.cc-chip.active{ border-color:var(--gold,#c9a14a); background:rgba(201,161,74,.12); color:#7a5b16; font-weight:600; }
.cc-compose{ margin-top:1.4rem; text-align:center; }
.cc-compose .btn{ font-size:16px; padding:.9rem 2.2rem; }
.cc-compose small{ display:block; margin-top:.7rem; color:var(--cc-soft); font-size:12.5px; }
.cc-plan{ margin-top:2.2rem; }
.cc-summary{ background:linear-gradient(135deg,#13110b,#241d0b); color:#fff; border-radius:16px; padding:1.4rem 1.5rem; }
.cc-summary-badge{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold,#c9a14a); font-weight:700; }
.cc-summary-text{ font-size:1.15rem; line-height:1.5; margin:.5rem 0 .85rem; }
.cc-summary-meta{ display:flex; flex-wrap:wrap; gap:.5rem 1.1rem; color:#d6d6d6; font-size:13.5px; }
.cc-estimate{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin:1rem 0 1.6rem; padding:1.1rem 1.3rem; border:1px solid var(--border,#e7e7e7); border-radius:14px; background:#fff; }
.cc-est-label{ display:block; font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:var(--cc-soft); }
.cc-est-figure{ font-size:2rem; font-weight:800; color:var(--cc-ink); }
.cc-est-sub{ font-size:13px; color:var(--cc-soft); margin-left:.5rem; }
.cc-est-actions{ display:flex; gap:.6rem; flex-wrap:wrap; }
.cc-days{ display:grid; gap:.9rem; }
.cc-day{ border:1px solid var(--border,#e7e7e7); border-radius:14px; overflow:hidden; background:#fff; }
.cc-day-head{ background:#faf7ef; padding:.6rem 1rem; border-bottom:1px solid var(--border,#eee); }
.cc-day-n{ font-weight:700; color:#7a5b16; letter-spacing:.03em; font-size:13.5px; text-transform:uppercase; }
.cc-day-items{ padding:.4rem .6rem; }
.cc-item{ display:flex; align-items:center; gap:.85rem; padding:.7rem .6rem; border-radius:10px; }
.cc-item[onclick]{ cursor:pointer; }
.cc-item[onclick]:hover{ background:#faf7ef; }
.cc-item-ico{ font-size:1.4rem; width:2rem; text-align:center; flex:0 0 auto; }
.cc-item-thumb{ width:54px; height:42px; flex:0 0 auto; border-radius:8px; overflow:hidden; background:#f0ece2; }
.cc-item-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.cc-item-time{ display:inline-block; margin-top:.2rem; font-size:11.5px; color:#7a5b16; background:rgba(201,161,74,.12); border-radius:999px; padding:.08rem .5rem; }
.cc-leg{ display:flex; align-items:center; padding:.1rem 0 .1rem 1rem; }
.cc-leg-txt{ position:relative; font-size:11px; color:var(--cc-soft,#8a8a8a); padding-left:1rem; }
.cc-leg-txt::before{ content:''; position:absolute; left:0; top:-9px; height:18px; width:2px; background:repeating-linear-gradient(#d8cdb4 0 3px, transparent 3px 6px); }
.cc-basemap{ display:flex; align-items:center; gap:1rem; background:#fff; border:1px solid var(--border,#e7e7e7); border-radius:14px; padding:.8rem 1rem; margin:1rem 0 1.6rem; }
.cc-map{ width:200px; height:auto; flex:0 0 auto; border-radius:10px; }
.cc-basemap-cap{ display:flex; flex-direction:column; }
.cc-basemap-label{ font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--gold,#c9a14a); font-weight:700; }
.cc-basemap-cap b{ font-size:15px; color:var(--cc-ink,#1a1a1a); }
.cc-basemap-cap span:last-child{ font-size:12.5px; color:var(--cc-soft,#6a6a6a); }
@media(max-width:560px){ .cc-basemap{ flex-direction:column; align-items:flex-start; } .cc-map{ width:100%; } }
.cc-item-body{ flex:1 1 auto; display:flex; flex-direction:column; min-width:0; }
.cc-item-title{ font-weight:600; color:var(--cc-ink); font-size:15px; }
.cc-item-sub{ color:var(--cc-soft); font-size:13px; }
.cc-item-price{ font-weight:700; color:var(--cc-ink); white-space:nowrap; }
.cc-item-perk{ font-size:12.5px; color:#9c7a2a; white-space:nowrap; }
.cc-breakdown{ margin-top:1.5rem; border:1px solid var(--border,#e7e7e7); border-radius:14px; padding:1.1rem 1.3rem; background:#fff; }
.cc-breakdown h4{ margin:0 0 .7rem; font-size:13px; text-transform:uppercase; letter-spacing:.06em; color:var(--cc-soft); }
.cc-breakdown ul{ list-style:none; margin:0; padding:0; }
.cc-breakdown li{ display:flex; justify-content:space-between; gap:1rem; padding:.45rem 0; border-bottom:1px dashed var(--border,#eee); font-size:14.5px; color:var(--cc-ink); }
.cc-bd-total{ font-weight:800; border-bottom:none !important; padding-top:.7rem !important; font-size:16px !important; }
.cc-bd-note{ margin:.7rem 0 0; font-size:12.5px; color:var(--cc-soft); line-height:1.5; }
.cc-alts{ margin-top:1.5rem; }
.cc-alts h4{ font-size:13px; text-transform:uppercase; letter-spacing:.06em; color:var(--cc-soft); margin:0 0 .7rem; }
.cc-alt-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:.7rem; }
.cc-alt{ text-align:left; border:1px solid var(--border,#e7e7e7); border-radius:12px; padding:.85rem 1rem; background:#fff; cursor:pointer; transition:.15s; font-family:inherit; }
.cc-alt:hover{ border-color:var(--gold,#c9a14a); box-shadow:0 6px 18px rgba(0,0,0,.07); }
.cc-alt-name{ display:block; font-weight:700; color:var(--cc-ink); font-size:14.5px; }
.cc-alt-meta{ display:block; color:var(--cc-soft); font-size:12.5px; margin-top:.2rem; }
@media(max-width:640px){ .cc-form-grid{ grid-template-columns:1fr; } .cc-estimate{ flex-direction:column; align-items:flex-start; } .cc-est-actions{ width:100%; } .cc-est-actions .btn{ flex:1; } }


.ak-launcher{ position:fixed; left:20px; bottom:20px; z-index:1400; display:inline-flex; align-items:center; gap:.5rem; background:linear-gradient(135deg,#b8924a,#e7c87a); color:#1a1a1a; border:none; border-radius:999px; padding:.7rem 1.1rem .7rem .95rem; font:inherit; font-weight:700; font-size:14px; cursor:pointer; box-shadow:0 8px 24px rgba(0,0,0,.28); transition:transform .15s, box-shadow .15s; }
.ak-launcher:hover{ transform:translateY(-2px); box-shadow:0 12px 30px rgba(0,0,0,.34); }
.ak-launcher-ic{ font-size:1.05rem; }
.ak-panel{ position:fixed; left:20px; bottom:20px; z-index:1401; width:372px; max-width:calc(100vw - 40px); height:540px; max-height:calc(100vh - 100px); background:#fff; border-radius:18px; box-shadow:0 24px 60px rgba(0,0,0,.30); display:none; flex-direction:column; overflow:hidden; border:1px solid rgba(0,0,0,.08); }
.ak-panel.open{ display:flex; }
.ak-head{ display:flex; align-items:center; justify-content:space-between; padding:.95rem 1.1rem; background:linear-gradient(135deg,#1a1d22,#2c3038); color:#fff; flex:0 0 auto; }
.ak-head-title{ font-family:'Playfair Display',serif; font-size:1.1rem; display:flex; align-items:center; gap:.5rem; }
.ak-head-ic{ color:#e7c87a; }
.ak-head-close{ background:none; border:none; color:#fff; font-size:1.5rem; cursor:pointer; line-height:1; opacity:.85; padding:0 .2rem; }
.ak-head-close:hover{ opacity:1; }
.ak-log{ flex:1 1 auto; overflow-y:auto; padding:1rem; display:flex; flex-direction:column; gap:.6rem; background:#faf8f5; }
.ak-bubble{ max-width:86%; padding:.6rem .8rem; border-radius:14px; font-size:13.5px; line-height:1.5; }
.ak-bubble-ai{ align-self:flex-start; background:#fff; border:1px solid var(--border,#eee); color:#222; border-bottom-left-radius:4px; }
.ak-bubble-me{ align-self:flex-end; background:#1a1d22; color:#fff; border-bottom-right-radius:4px; }
.ak-bubble-typing{ color:#999; letter-spacing:2px; }
.ak-acts{ display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.55rem; }
.ak-act{ background:#f3eede; border:1px solid rgba(201,169,97,.5); color:#6b531d; font:inherit; font-size:12px; font-weight:600; padding:.3rem .6rem; border-radius:999px; cursor:pointer; }
.ak-act:hover{ background:#ece2c8; }
.ak-chips{ display:flex; flex-wrap:wrap; gap:.4rem; padding:0 1rem .6rem; background:#faf8f5; flex:0 0 auto; }
.ak-chip{ background:#fff; border:1px solid var(--border,#e5e5e5); color:#444; font:inherit; font-size:12px; padding:.32rem .6rem; border-radius:999px; cursor:pointer; }
.ak-chip:hover{ border-color:var(--gold,#c9a14a); color:#1a1a1a; }
.ak-input-row{ display:flex; gap:.5rem; padding:.8rem 1rem; border-top:1px solid var(--border,#eee); background:#fff; flex:0 0 auto; }
.ak-input-row input{ flex:1; min-width:0; border:1px solid var(--border,#ddd); border-radius:999px; padding:.6rem .9rem; font:inherit; font-size:13.5px; background:#fafafa; }
.ak-send{ flex:0 0 auto; width:40px; height:40px; border:none; border-radius:50%; background:linear-gradient(135deg,#b8924a,#e7c87a); color:#1a1a1a; font-size:14px; cursor:pointer; }
.ak-disclaim{ font-size:10px; color:#b0b0b0; text-align:center; padding:0 1rem .55rem; background:#fff; flex:0 0 auto; }
@media(max-width:560px){
  .ak-launcher-txt{ display:none; }
  .ak-launcher{ left:14px; bottom:14px; padding:.85rem; }
  .ak-panel{ left:8px; right:8px; bottom:8px; width:auto; max-width:none; height:76vh; }
}


/* ---- 7. Accessibility: gold focus rings ---- */
a:focus-visible, button:focus-visible, .btn:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible,
[tabindex]:focus-visible, .tab:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
  border-radius: 3px;
}

/* ---- 1. SVG icon glyphs (replace emoji at runtime) ---- */
.kc-ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.04em; height: 1.04em; vertical-align: -0.16em;
  color: inherit; flex: 0 0 auto;
}
.kc-ico svg { width: 100%; height: 100%; display: block; }
.fleet-info .kc-ico, .hotel-area .kc-ico { color: var(--gold); }

/* ---- 2. Scroll-reveal ---- */
.kc-reveal { opacity: 0; transform: translateY(18px);
  transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.kc-reveal.kc-in { opacity: 1; transform: none; }

/* ---- 3. Card micro-interactions: gold glow + image zoom ---- */
.fleet-card, .hotel-card {
  transition: transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease, border-color .4s ease;
}
.hotel-img img, .fleet-img img { transition: transform .65s cubic-bezier(.2,.7,.2,1); will-change: transform; }
.hotel-card:hover .hotel-img img { transform: scale(1.06); }
.fleet-card:hover .fleet-img img { transform: scale(1.04); }
.hotel-card:hover, .fleet-card:hover {
  box-shadow: 0 18px 50px rgba(0,0,0,0.16), 0 0 0 1px rgba(201,169,97,0.38);
}
.event-card, .trust-badge-card, .stat-card, .blog-card,
.curated-sport-card, .curated-pkg-card, .airport-time-card {
  transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .35s ease;
}
.event-card:hover, .trust-badge-card:hover, .stat-card:hover, .blog-card:hover,
.curated-sport-card:hover, .curated-pkg-card:hover, .airport-time-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 38px rgba(0,0,0,0.14), 0 0 0 1px rgba(201,169,97,0.30);
}

/* ---- 3b. Button shine sweep ---- */
.btn-gold, .btn-primary { position: relative; overflow: hidden; }
.btn-gold::after, .btn-primary::after {
  content: ''; position: absolute; top: 0; left: -130%;
  width: 60%; height: 100%; pointer-events: none;
  background: linear-gradient(105deg, transparent 0%, rgba(255,255,255,0.45) 50%, transparent 100%);
  transform: skewX(-20deg);
}
.btn-gold:hover::after, .btn-primary:hover::after { animation: kcShine .85s ease; }
@keyframes kcShine { from { left: -130%; } to { left: 150%; } }

/* ---- 4. Typography: warm metallic hero headline ---- */
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .hero-text h1 {
    background: linear-gradient(177deg, #ffffff 0%, #f6ecd6 55%, #dcc188 100%);
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent;
  }
}

/* ---- 5. Hero cinematics: slow gold light drift ---- */
@keyframes kcHeroDrift {
  0%   { transform: rotate(8deg) translateX(0);     opacity: .75; }
  50%  { transform: rotate(8deg) translateX(-34px); opacity: 1;   }
  100% { transform: rotate(8deg) translateX(0);     opacity: .75; }
}
.hero::after { animation: kcHeroDrift 16s ease-in-out infinite; }

/* ---- 6. Glass nav on scroll ---- */
.navbar { transition: padding .3s ease, background .3s ease, box-shadow .3s ease, backdrop-filter .3s ease; }
.navbar.kc-scrolled {
  padding-top: .6rem; padding-bottom: .6rem;
  background: linear-gradient(180deg, rgba(10,10,10,0.92) 0%, rgba(18,18,18,0.82) 100%);
  backdrop-filter: blur(16px) saturate(1.25);
  box-shadow: 0 6px 28px rgba(0,0,0,0.55);
  border-bottom-color: rgba(201,169,97,0.4);
}
.navbar.kc-scrolled .logo img { height: 38px; }

/* ---- 8. Mobile: prevent horizontal overflow + tidy hero stats ---- */
body { overflow-x: clip; }
@media (max-width: 600px) {
  .hero, .hero-container, .hero-text { max-width: 100%; }
  .hero-text h1 { word-break: break-word; }
  .hero-stats { flex-wrap: wrap; }
  .hero-stats > div { min-width: auto; }
}

/* ---- Respect reduced motion ---- */
@media (prefers-reduced-motion: reduce) {
  .kc-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  .hero::after { animation: none !important; }
  .btn-gold:hover::after, .btn-primary:hover::after { animation: none !important; }
  .hotel-card:hover .hotel-img img, .fleet-card:hover .fleet-img img { transform: none !important; }
}


:root { --kc-ease: cubic-bezier(.16,1,.3,1); }

/* ---------- Global luxe touches ---------- */
::selection { background: rgba(201,169,97,0.32); color: #fff; }
::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-track { background: #0b0b0c; }
::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #c9a961, #6f5526); border-radius: 10px; border: 2px solid #0b0b0c; }
::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #e5c158, #8a6d2f); }
.section-title, .hotel-section-title, .pricing-tier-title { letter-spacing: -0.6px; }

/* ---------- Hero: cinematic immersion ---------- */
.hero { min-height: 100vh; min-height: 100svh; }

/* Ambient drifting gold light orbs (aurora) */
.kc-aurora { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 1; }
.kc-aurora span { position: absolute; border-radius: 50%; filter: blur(72px); mix-blend-mode: screen; opacity: 0.55; }
.kc-aurora span:nth-child(1) { width: 48vw; height: 48vw; left: -10%; top: -14%; background: radial-gradient(circle, rgba(201,169,97,0.55), transparent 62%); animation: kcOrb1 24s ease-in-out infinite; }
.kc-aurora span:nth-child(2) { width: 42vw; height: 42vw; right: -8%; top: 14%; background: radial-gradient(circle, rgba(150,108,46,0.6), transparent 62%); animation: kcOrb2 30s ease-in-out infinite; }
.kc-aurora span:nth-child(3) { width: 36vw; height: 36vw; left: 28%; bottom: -22%; background: radial-gradient(circle, rgba(229,193,88,0.4), transparent 62%); animation: kcOrb3 27s ease-in-out infinite; }
@keyframes kcOrb1 { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(7%,9%) scale(1.08); } }
@keyframes kcOrb2 { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-6%,6%) scale(1.12); } }
@keyframes kcOrb3 { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(5%,-8%) scale(1.06); } }

/* Editorial eyebrow with a drawn-in gold rule */
.hero-text .kc-eyebrow { display: inline-flex; align-items: center; gap: 0.8rem; }
.hero-text .kc-eyebrow-rule { width: 44px; height: 1px; background: linear-gradient(90deg, transparent, var(--gold)); transform-origin: left; animation: kcRuleIn 1.1s 0.15s var(--kc-ease) both; }
@keyframes kcRuleIn { from { transform: scaleX(0); opacity: 0; } to { transform: scaleX(1); opacity: 1; } }

/* Dramatic, oversized metallic headline with a slow living sheen */
.hero-text h1.kc-hero-title {
  font-family: 'Playfair Display', serif; font-weight: 700;
  font-size: clamp(3rem, 7.4vw, 6.8rem); line-height: 0.98; letter-spacing: -2px;
  margin-bottom: 1.5rem;
}
.hero-text h1.kc-hero-title .kc-accent { font-style: italic; font-weight: 600; padding-right: 0.06em; }
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .hero-text h1.kc-hero-title {
    background-image: linear-gradient(100deg, #ffffff 0%, #f7ecd2 28%, #e7cd92 44%, #fffbef 50%, #e7cd92 56%, #d9bd82 72%, #c39a52 100%);
    background-size: 230% auto;
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    animation: kcSheen 9s ease-in-out infinite, kcRise 1s 0.18s var(--kc-ease) both;
  }
}
@keyframes kcSheen { 0% { background-position: 0% center; } 100% { background-position: 230% center; } }

/* Staggered entrance choreography */
@keyframes kcRise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
.hero-text .kc-eyebrow { animation: kcRise 0.9s 0.05s var(--kc-ease) both; }
.hero-text p { animation: kcRise 1s 0.34s var(--kc-ease) both; }
.hero-text .hero-stats { animation: kcRise 1s 0.5s var(--kc-ease) both; }
.booking-widget { animation: kcRise 1.1s 0.44s var(--kc-ease) both; }

/* Refined stats */
.hero-stats { gap: 2.4rem; }
.hero-stat-number { font-size: 2.2rem; letter-spacing: -0.5px; }
.hero-text .hero-stats > div { position: relative; transition: transform 0.3s var(--kc-ease); }
.hero-text .hero-stats > div:hover { transform: translateY(-3px); }

/* Premium glass booking widget */
.booking-widget {
  border-radius: 16px; position: relative; overflow: hidden;
  box-shadow: 0 36px 90px rgba(0,0,0,0.55), 0 0 0 1px rgba(201,169,97,0.22);
}
.booking-widget::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, #8a6d2f, #e5c158 50%, #8a6d2f);
}
.booking-widget h2 { letter-spacing: -0.4px; }

/* Scroll cue */
.kc-scroll {
  position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%); z-index: 3;
  display: flex; flex-direction: column; align-items: center; gap: 9px;
  color: rgba(255,255,255,0.55); font-size: 10px; letter-spacing: 2.6px; text-transform: uppercase;
  animation: kcRise 1s 1s var(--kc-ease) both;
}
.kc-scroll i { width: 1px; height: 48px; background: linear-gradient(var(--gold), transparent); position: relative; overflow: hidden; }
.kc-scroll i::after { content: ''; position: absolute; left: 0; top: -50%; width: 100%; height: 50%; background: var(--gold); animation: kcScrollDot 2.2s ease-in-out infinite; }
@keyframes kcScrollDot { 0% { top: -55%; } 65%,100% { top: 105%; } }
@media (max-width: 900px) { .kc-scroll { display: none; } }

/* ---------- Respect reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .kc-aurora span,
  .hero-text .kc-eyebrow, .hero-text .kc-eyebrow-rule,
  .hero-text h1.kc-hero-title, .hero-text p, .hero-text .hero-stats,
  .booking-widget, .kc-scroll, .kc-scroll i::after {
    animation: none !important; opacity: 1 !important; transform: none !important;
  }
  .hero-text .kc-eyebrow-rule { transform: scaleX(1) !important; }
  .kc-rise-el { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ═══════════ SITE-WIDE CINEMATIC SECTIONS ═══════════ */
/* More editorial breathing room */
.section { padding-top: 4.75rem; padding-bottom: 4.75rem; }
.section-title { font-size: clamp(2rem, 3.4vw, 2.9rem); letter-spacing: -0.7px; line-height: 1.1; }

/* Metallic titles on dark backgrounds (safe contrast) */
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .section-dark-bg .section-title,
  .press-title, .testimonials-title, .chauffeur-section h2 {
    background-image: linear-gradient(180deg, #ffffff 0%, #f4e8cf 58%, #d8bb80 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  }
}

/* Ambient gold depth in prominent dark sections */
.press-section, .chauffeur-section { position: relative; overflow: hidden; }
.press-section::before, .chauffeur-section::before {
  content: ''; position: absolute; pointer-events: none; z-index: 0;
  width: 75vw; height: 75vw; max-width: 1100px; max-height: 1100px;
  left: 50%; top: -32%; transform: translateX(-50%);
  background: radial-gradient(circle, rgba(201,169,97,0.13), transparent 60%);
}
.press-inner, .chauffeur-inner { position: relative; z-index: 1; }

/* Press logos — refined hover */
.press-logo { transition: color 0.3s var(--kc-ease), transform 0.3s var(--kc-ease); }
.press-logo:hover { color: var(--gold); transform: translateY(-2px); }

/* Scroll-reveal choreography for homepage section headers */
.kc-rise-el { opacity: 0; transform: translateY(24px); transition: opacity 0.85s var(--kc-ease), transform 0.85s var(--kc-ease); }
.kc-rise-el.kc-rise-in { opacity: 1; transform: none; }


/* ---------- 1. FLEET — editorial full-bleed showcase ---------- */
.kc-fleet-showcase .kc-show-head { text-align: center; max-width: 720px; margin: 0 auto 3rem; }
.kc-fleet-showcase .kc-show-eyebrow,
.kc-hotels-showcase .kc-show-eyebrow {
  color: var(--gold); text-transform: uppercase; letter-spacing: 3px; font-size: 12px; font-weight: 600; margin-bottom: 0.7rem;
}
.kc-fleet-showcase .fleet-grid { gap: 1.6rem; }
.kc-fleet-card {
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, #181818 0%, #0e0e0f 100%) !important;
  border: 1px solid rgba(201,169,97,0.18) !important;
  transition: transform 0.45s var(--kc-ease), box-shadow 0.45s var(--kc-ease), border-color 0.45s var(--kc-ease);
}
.kc-fleet-card .kc-fleet-index {
  position: absolute; top: -8px; right: 14px; z-index: 0; pointer-events: none;
  font-family: 'Playfair Display', serif; font-weight: 700; font-size: 5.6rem; line-height: 1;
  color: rgba(201,169,97,0.10);
}
.kc-fleet-card .fleet-img { background: transparent !important; height: 200px; position: relative; z-index: 1; }
.kc-fleet-card .fleet-img img { transition: transform 0.65s var(--kc-ease); }
.kc-fleet-card:hover .fleet-img img { transform: scale(1.07); }
.kc-fleet-card .fleet-body { position: relative; z-index: 1; }
.kc-fleet-card .fleet-name { color: #fff; }
.kc-fleet-card .fleet-info { color: #9a9a9a; }
.kc-fleet-card:hover {
  transform: translateY(-7px); border-color: var(--gold) !important;
  box-shadow: 0 26px 64px rgba(0,0,0,0.55), 0 0 0 1px rgba(201,169,97,0.4);
}

/* ---------- 2. PARTNER HOTELS — refined gallery with hover reveals ---------- */
#homeHotelGrid, #homeToursGrid, #homeSportingGrid, #homeTicketsGrid, #homeTheatreGrid, #homeFeaturedEvents { gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.kc-tile-from { color: var(--gold); font-size: 13px; font-weight: 600; }
.kc-hotel-tile {
  position: relative; height: 350px; border-radius: 10px; overflow: hidden;
  background: #111; border: none !important; cursor: pointer;
}
.kc-hotel-tile .kc-tile-img, .kc-hotel-tile .kc-tile-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kc-hotel-tile .kc-tile-img img { transition: transform 0.8s var(--kc-ease); }
.kc-hotel-tile:hover .kc-tile-img img { transform: scale(1.09); }
.kc-hotel-tile .kc-tile-scrim {
  position: absolute; inset: 0; z-index: 1; transition: background 0.45s var(--kc-ease);
  background: linear-gradient(to top, rgba(0,0,0,0.88) 0%, rgba(0,0,0,0.32) 40%, rgba(0,0,0,0) 66%);
}
.kc-hotel-tile:hover .kc-tile-scrim { background: linear-gradient(to top, rgba(0,0,0,0.92) 0%, rgba(18,13,4,0.55) 48%, rgba(0,0,0,0.12) 78%); }
.kc-hotel-tile .kc-tile-info { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 1.35rem; color: #fff; }
.kc-hotel-tile .kc-tile-area { color: var(--gold); font-size: 11px; text-transform: uppercase; letter-spacing: 1.3px; margin-bottom: 0.35rem; }
.kc-hotel-tile .kc-tile-name { font-family: 'Playfair Display', serif; font-size: 1.25rem; line-height: 1.25; }
.kc-hotel-tile .kc-tile-reveal {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  max-height: 0; opacity: 0; overflow: hidden; margin-top: 0;
  transition: max-height 0.5s var(--kc-ease), opacity 0.4s, margin-top 0.5s var(--kc-ease);
}
.kc-hotel-tile:hover .kc-tile-reveal { max-height: 44px; opacity: 1; margin-top: 0.75rem; }
.kc-hotel-tile .kc-tile-reveal .hotel-stars { color: var(--gold-text); font-size: 13px; }
.kc-hotel-tile .kc-tile-link { color: #fff; font-size: 12px; letter-spacing: 0.5px; white-space: nowrap; border-bottom: 1px solid var(--gold); padding-bottom: 2px; }
.kc-hotel-tile .kc-tile-badge { position: absolute; top: 54px; right: 12px; z-index: 3; }   /* sits below the favourite heart */
.kc-hotel-tile .kc-tile-fav { position: absolute; top: 11px; right: 11px; z-index: 4; width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; padding: 0; cursor: pointer; color: #fff; background: rgba(15,13,8,0.5); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); border: 1px solid rgba(255,255,255,0.5); transition: background .2s, transform .12s, color .2s, border-color .2s; }
.kc-hotel-tile .kc-tile-fav:hover { background: rgba(15,13,8,0.8); transform: scale(1.08); }
.kc-hotel-tile .kc-tile-fav.on { color: var(--gold-light); border-color: rgba(201,169,97,0.85); }
.kc-hotel-tile .kc-tile-fav svg { width: 17px; height: 17px; pointer-events: none; }
.kc-hotel-tile .kc-tile-fav svg path { fill: none; stroke: currentColor; stroke-width: 2; }
.kc-hotel-tile .kc-tile-fav.on svg path { fill: currentColor; }
.kc-hotel-tile .kc-tile-price { position: absolute; top: 12px; left: 12px; z-index: 3; display: inline-flex; align-items: baseline; gap: 2px; background: rgba(15,13,8,0.62); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); color: #fff; font-size: 12.5px; font-weight: 800; letter-spacing: 0.01em; padding: 0.34rem 0.62rem; border-radius: 999px; border: 1px solid rgba(201,169,97,0.55); box-shadow: 0 2px 10px rgba(0,0,0,0.28); }
.kc-hotel-tile .kc-tile-price span { font-weight: 500; font-size: 10px; opacity: 0.82; }
@media (max-width: 560px){ .kc-hotel-tile .kc-tile-price { font-size: 11px; padding: 0.26rem 0.5rem; top: 8px; left: 8px; } }
.hotel-price-range { width: 100%; accent-color: var(--gold); cursor: pointer; margin: 2px 0 0; }
.hotel-price-range-row { display: flex; justify-content: space-between; font-size: 12px; color: var(--gray); margin-top: 5px; }
.hotel-price-range-row #hotelMaxPriceLabel { font-weight: 700; color: var(--dark); }
/* "Add a chauffeur to this stay" sits on the dark hotel-detail hero — force legible white/glass styling */
#hotelDetailChauffeur { color: #fff; border: 1px solid rgba(255,255,255,0.65); background: rgba(255,255,255,0.10); backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px); }
#hotelDetailChauffeur:hover { background: linear-gradient(135deg, var(--gold), var(--gold-light)); border-color: var(--gold); color: var(--dark); }

/* ---------- 3. EVENTS — dramatic dark "social calendar" ---------- */
.kc-cal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 2.6rem; }
@media (max-width: 760px) { .kc-cal-grid { grid-template-columns: 1fr; gap: 0; } }
.kc-cal-item {
  display: flex; align-items: center; gap: 1.4rem; padding: 1.35rem 0.5rem; cursor: pointer;
  border-bottom: 1px solid rgba(201,169,97,0.16);
  transition: background 0.35s var(--kc-ease), padding-left 0.35s var(--kc-ease);
}
.kc-cal-item:hover { background: linear-gradient(90deg, rgba(201,169,97,0.09), transparent 80%); padding-left: 1rem; }
.kc-cal-date { flex: 0 0 auto; width: 78px; text-align: center; border-right: 1px solid rgba(201,169,97,0.25); padding-right: 1rem; }
.kc-cal-day { display: block; font-family: 'Playfair Display', serif; font-size: 2.4rem; line-height: 1; font-weight: 700; color: var(--gold); }
.kc-cal-mon { display: block; font-size: 10px; letter-spacing: 1.6px; text-transform: uppercase; color: #9a9a9a; margin-top: 0.35rem; }
.kc-cal-body { flex: 1 1 auto; min-width: 0; }
.kc-cal-name { font-family: 'Playfair Display', serif; font-size: 1.16rem; color: #fff; line-height: 1.25; }
.kc-cal-venue { font-size: 12.5px; color: #9a9a9a; margin-top: 0.3rem; display: flex; align-items: center; gap: 0.45rem; }
.kc-cal-venue .kc-ico { color: var(--gold); }
.kc-cal-cta { flex: 0 0 auto; color: var(--gold); font-size: 1.35rem; opacity: 0; transform: translateX(-7px); transition: opacity 0.35s, transform 0.35s var(--kc-ease); }
.kc-cal-item:hover .kc-cal-cta { opacity: 1; transform: none; }

/* ---------- 4. TESTIMONIALS — editorial glass cards ---------- */
.testimonials::before { font-size: 30rem; top: -6rem; left: 1rem; color: rgba(201,169,97,0.06); }
.testimonial-card {
  position: relative; border-radius: 13px; padding: 2.3rem 2rem 2rem;
  transition: transform 0.42s var(--kc-ease), box-shadow 0.42s, border-color 0.42s, background 0.42s;
}
.testimonial-card::before {
  content: '\201C'; position: absolute; top: 0.5rem; right: 1.4rem;
  font-family: 'Playfair Display', serif; font-size: 4.6rem; line-height: 1;
  color: rgba(201,169,97,0.22); pointer-events: none;
}
.testimonial-card:hover {
  transform: translateY(-6px); border-color: rgba(201,169,97,0.55);
  background: rgba(255,255,255,0.06);
  box-shadow: 0 26px 64px rgba(0,0,0,0.42);
}
.testimonial-text { font-size: 1rem; position: relative; z-index: 1; }
.testimonial-avatar { box-shadow: 0 0 0 2px rgba(201,169,97,0.4), 0 0 0 5px rgba(201,169,97,0.12); }

/* ---------- 5. FAQ — refined pill tabs + carded accordion ---------- */
.faq-tabs { border-bottom: none; gap: 0.6rem; }
.faq-tab {
  border: 1px solid var(--border); border-radius: 999px; margin-bottom: 0;
  padding: 0.62rem 1.35rem; transition: all 0.3s var(--kc-ease); letter-spacing: 1.2px;
}
.faq-tab:hover:not(.active) { border-color: var(--gold); color: var(--dark); }
.faq-tab.active {
  background: linear-gradient(135deg, var(--gold), var(--gold-light, #d4b677));
  color: var(--dark); border-color: var(--gold);
  box-shadow: 0 6px 18px rgba(201,169,97,0.3);
}
.faq-list { max-width: 820px; }
.faq-item {
  border: 1px solid var(--border); border-radius: 12px; margin-bottom: 0.75rem;
  padding: 0 1.4rem; transition: border-color 0.3s var(--kc-ease), background 0.3s, box-shadow 0.3s;
}
.faq-item:hover { border-color: rgba(201,169,97,0.5); }
.faq-item.open {
  border-color: var(--gold); background: #fffdf8;
  box-shadow: 0 12px 34px rgba(201,169,97,0.1);
}
.faq-question { padding: 1.15rem 0; }
.faq-toggle {
  width: 27px; height: 27px; border: 1px solid rgba(201,169,97,0.45); border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center; font-size: 1.05rem; line-height: 1;
  transition: transform 0.3s var(--kc-ease), background 0.3s, color 0.3s, border-color 0.3s;
}
.faq-item.open .faq-toggle { background: var(--gold); color: var(--dark); border-color: var(--gold); }
.faq-answer { padding-left: 2.3rem; }

/* ---------- 6. EXCLUSIVE OFFER band — refined ---------- */
.promo-hero-card {
  border: 1px solid rgba(201,169,97,0.45) !important;
  border-radius: 18px; padding: 3rem 2.5rem;
  box-shadow: 0 34px 90px rgba(0,0,0,0.5), 0 0 70px rgba(201,169,97,0.08);
}
.promo-badge {
  background: linear-gradient(135deg, #e5c158, #c9a961) !important;
  letter-spacing: 2.5px; box-shadow: 0 6px 18px rgba(201,169,97,0.35);
}
.promo-hero-card h2 { font-size: clamp(1.85rem, 3.4vw, 2.8rem); letter-spacing: -0.5px; }
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .promo-hero-card h2 {
    background-image: linear-gradient(180deg, #ffffff 0%, #f4e8cf 58%, #d9bd82 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  }
  .promo-hero-card h2 .gold-text {
    background-image: linear-gradient(180deg, #f3d894 0%, #c9a961 55%, #9c7c38 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent;
  }
}
.promo-feature-numeral { font-size: 2.1rem; }
.promo-feature { transition: transform 0.35s var(--kc-ease); }
.promo-feature:hover { transform: translateY(-4px); }

/* ---------- 7. WHY CHOOSE US — editorial cards ---------- */
.kc-why-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.5rem; margin-top: 2.75rem; }
.kc-why-item {
  text-align: center; padding: 2.2rem 1.6rem; border: 1px solid var(--border); border-radius: 16px;
  transition: transform 0.42s var(--kc-ease), box-shadow 0.42s, border-color 0.42s;
}
.kc-why-item:hover { transform: translateY(-7px); border-color: rgba(201,169,97,0.55); box-shadow: 0 20px 48px rgba(0,0,0,0.09); }
.kc-why-ic {
  width: 62px; height: 62px; margin: 0 auto 1.2rem; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: radial-gradient(circle, #fbf7ec, #f1e6cd); border: 1px solid rgba(201,169,97,0.4);
  transition: transform 0.42s var(--kc-ease);
}
.kc-why-item:hover .kc-why-ic { transform: scale(1.07); }
.kc-why-ic .kc-icon { width: 26px; height: 26px; color: var(--gold); }
.kc-why-item h3 { font-family: 'Playfair Display', serif; margin-bottom: 0.5rem; font-size: 1.18rem; }
.kc-why-item p { color: var(--gray); font-size: 14px; line-height: 1.6; }

/* ---------- 8. FOOTER — cinematic sign-off ---------- */
.footer { position: relative; overflow: hidden; }
.footer::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; z-index: 2;
  background: linear-gradient(90deg, transparent, rgba(201,169,97,0.65), transparent);
}
.footer::after {
  content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); z-index: 0;
  width: 900px; max-width: 92%; height: 260px; pointer-events: none;
  background: radial-gradient(ellipse at top, rgba(201,169,97,0.12), transparent 72%);
}
.footer > * { position: relative; z-index: 1; }
.footer-social-icons a { transition: transform 0.3s var(--kc-ease), color 0.3s, border-color 0.3s; }
.footer-social-icons a:hover { transform: translateY(-3px); color: var(--gold); border-color: var(--gold); }

/* ---------- 9. INTERIOR PAGES ---------- */
/* Hotels full page → same refined gallery */
#hotelsGrid { gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
/* Fleet page card button reads on dark */
.kc-fleet-card .btn-outline { border-color: rgba(201,169,97,0.5); color: var(--gold); background: transparent; }
.kc-fleet-card .btn-outline:hover { background: var(--gold); color: var(--dark); border-color: var(--gold); }
.kc-fleet-card .fleet-img span { position: relative; z-index: 1; }
/* Fleet page group divider sits above index numerals */
.kc-fleet-showcase .fleet-grid > div[style*="grid-column"] { position: relative; z-index: 2; }

/* Events page → gold pill category chips + metallic month labels */
.events-cat-chip {
  border-radius: 999px; transition: all 0.3s var(--kc-ease); letter-spacing: 0.5px;
}
.events-cat-chip.active {
  background: linear-gradient(135deg, var(--gold), var(--gold-light, #d4b677)) !important;
  color: var(--dark) !important; border-color: var(--gold) !important;
  box-shadow: 0 6px 16px rgba(201,169,97,0.3);
}
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .events-month-label {
    background-image: linear-gradient(180deg, #fff 0%, #f4e8cf 55%, #d8bb80 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  }
  .events-month-label .month-count { -webkit-text-fill-color: initial; }
}

/* Pricing page → metallic tier titles on dark sections */
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .heathrow-transfers-section .pricing-tier-title {
    background-image: linear-gradient(180deg, #fff 0%, #f4e8cf 58%, #d8bb80 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  }
}

/* ---------- 10. BOOKING FLOW ---------- */
.booking-intro-hero { padding: 4rem 2rem; }
.booking-intro-hero h1 { font-size: clamp(2rem, 4vw, 3rem); letter-spacing: -0.5px; }
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .booking-intro-hero h1 {
    background-image: linear-gradient(180deg, #fff 0%, #f4e8cf 58%, #d8bb80 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  }
}
.three-step-num {
  background: linear-gradient(135deg, #e5c158, #c9a961);
  box-shadow: 0 0 0 4px rgba(201,169,97,0.22), 0 8px 22px rgba(201,169,97,0.3);
  transition: transform 0.35s var(--kc-ease);
}
.three-step:hover .three-step-num { transform: scale(1.08); }
.booking-card { border-radius: 16px; box-shadow: 0 30px 80px rgba(0,0,0,0.13), 0 0 0 1px rgba(201,169,97,0.16); }
.booking-card .form-input:focus, .booking-card .form-select:focus, .booking-card .form-textarea:focus {
  box-shadow: 0 0 0 3px rgba(201,169,97,0.16);
}
.booking-step h3 { letter-spacing: -0.3px; }

/* ---------- 11. CONFIRMATION — premium "journey booked" ---------- */
.kc-confirm {
  min-height: 82vh; display: flex; align-items: center; justify-content: center;
  padding: 4rem 2rem; position: relative; overflow: hidden; color: #fff;
  background: radial-gradient(120% 90% at 50% -5%, rgba(201,169,97,0.18), transparent 55%),
              linear-gradient(180deg, #0a0a0b 0%, #141414 100%);
}
.kc-confirm-inner { max-width: 600px; text-align: center; position: relative; z-index: 1; width: 100%; }
.kc-confirm-check {
  width: 86px; height: 86px; margin: 0 auto 1.5rem; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: radial-gradient(circle, rgba(201,169,97,0.24), rgba(201,169,97,0.05));
  border: 1px solid rgba(201,169,97,0.5);
  box-shadow: 0 0 0 8px rgba(201,169,97,0.06), 0 0 44px rgba(201,169,97,0.28);
  animation: kcRise 0.8s 0.05s var(--kc-ease) both;
}
.kc-confirm-check .kc-icon { width: 42px; height: 42px; color: var(--gold); }
.kc-confirm-eyebrow { color: var(--gold); text-transform: uppercase; letter-spacing: 3px; font-size: 12px; font-weight: 600; }
.kc-confirm-title { font-family: 'Playfair Display', serif; font-size: clamp(2rem, 4.2vw, 3rem); margin: 0.6rem 0 0.8rem; line-height: 1.1; }
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .kc-confirm-title {
    background-image: linear-gradient(180deg, #fff 0%, #f4e8cf 58%, #d8bb80 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  }
}
.kc-confirm-sub { color: #c5c5c5; margin-bottom: 2rem; line-height: 1.7; }
.kc-confirm-card {
  background: #fff; color: #2c2c2c; border: 1px solid rgba(201,169,97,0.3);
  border-radius: 14px; padding: 1.9rem; text-align: left; margin-bottom: 2rem;
  box-shadow: 0 28px 70px rgba(0,0,0,0.45);
}
@media (prefers-reduced-motion: reduce) { .kc-confirm-check { animation: none !important; } }

/* ---------- 12. FOOTER — licensed & registered (TfL / ICO) ---------- */
.footer-accred {
  position: relative; z-index: 1;
  display: flex; flex-wrap: wrap; gap: 1.4rem 2.6rem; justify-content: center; align-items: center;
  max-width: 1300px; margin: 0 auto; padding: 1.9rem 2rem;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.footer-accred-item { display: flex; align-items: center; gap: 0.85rem; }
.footer-accred-mark { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; transition: transform 0.3s var(--kc-ease); }
.footer-accred-item:hover .footer-accred-mark { transform: translateY(-2px); }
.footer-accred-text strong { display: block; color: #e8e8e8; font-size: 12.5px; font-weight: 600; letter-spacing: 0.2px; }
.footer-accred-text span { display: block; color: #8c8c8c; font-size: 11px; margin-top: 1px; }
.footer-accred-divider { width: 1px; height: 36px; background: rgba(201,169,97,0.25); }
.footer-ico-badge {
  width: 48px; height: 35px; border: 1.5px solid rgba(201,169,97,0.6); border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  color: var(--gold); font-family: 'Playfair Display', serif; font-weight: 700; font-size: 15px; letter-spacing: 1.5px;
}
.footer-pci-badge {
  width: 48px; height: 35px; border: 1.5px solid rgba(201,169,97,0.6); border-radius: 8px;
  display: flex; align-items: center; justify-content: center; color: var(--gold);
}
@media (max-width: 560px) { .footer-accred-divider { display: none; } }

/* ---------- 13. SPORTING CALENDAR — venue/activity imagery ---------- */
.curated-sport-img {
  margin: -1.5rem -1.4rem 1.2rem; height: 168px; overflow: hidden;
  border-radius: 10px 10px 0 0; position: relative; background: #111;
}
.curated-sport-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.65s var(--kc-ease); }
.curated-sport-card.has-img:hover .curated-sport-img img { transform: scale(1.06); }
.curated-sport-img::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0) 42%, rgba(18,15,9,0.82) 100%);
}

/* ---------- 14. EVENTS PAGE — venue banner per event ---------- */
.event-card.has-img { padding-top: 0; }
.event-card-img { margin: 0 -1.5rem 1.2rem; height: 152px; overflow: hidden; position: relative; background: #15110b; }
.event-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s var(--kc-ease); }
.event-card.has-img:hover .event-card-img img { transform: scale(1.05); }
@media (max-width: 600px) { .event-card-img { margin: 0 -1rem 1rem; height: 140px; } }

/* ---------- 15. SPORTING PAGE — full venue banner per fixture (matches Events page) ---------- */
#view-sporting .sp-grid ,#view-premier-league .sp-grid { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.25rem; }
#view-sporting .sp-body ,#view-premier-league .sp-body { display: flex; align-items: center; gap: 1.1rem; flex: 1; min-width: 0; }
#view-sporting .sp-card.has-thumb ,#view-premier-league .sp-card.has-thumb {
  flex-direction: column; align-items: stretch; gap: 0; padding: 0; overflow: hidden;
}
#view-sporting .sp-card.has-thumb .sp-thumb ,#view-premier-league .sp-card.has-thumb .sp-thumb {
  width: 100%; height: 178px; border-radius: 0; overflow: hidden; background: #15110b; position: relative;
}
#view-sporting .sp-card.has-thumb .sp-thumb img ,#view-premier-league .sp-card.has-thumb .sp-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s var(--kc-ease); }
#view-sporting .sp-card.has-thumb:hover .sp-thumb img ,#view-premier-league .sp-card.has-thumb:hover .sp-thumb img { transform: scale(1.06); }
#view-sporting .sp-card.has-thumb .sp-body ,#view-premier-league .sp-card.has-thumb .sp-body { padding: 1.05rem 1.2rem 1.15rem; }
@media (max-width: 600px) { #view-sporting .sp-card.has-thumb .sp-thumb ,#view-premier-league .sp-card.has-thumb .sp-thumb { height: 160px; } }


/* ===== Adaptive QA refinements ===== */
/* 1. Tablet portrait: restore multi-column service grids (Tours / Airports / Cruise) */
@media (min-width:481px) and (max-width:768px){
  .service-card-grid{ grid-template-columns:repeat(auto-fit, minmax(230px,1fr)) !important; gap:1.2rem !important; }
}
/* 2. Comfortable touch targets on small screens (>=44px where practical) */
@media (max-width:768px){
  .th-chip, .sp-chip{ min-height:44px; }
  .quick-time-btn{ min-height:44px; padding-top:.6rem; padding-bottom:.6rem; }
  .tabs .tab{ min-height:44px; padding-top:.6rem; padding-bottom:.6rem; }
  .event-cta, .tkt-btn, .tour-btn, .tkt-chauf{ min-height:44px; }
  .th-toggle, .th-book, .th-chauf{ min-height:40px; display:inline-flex; align-items:center; }
  .hxq-q{ min-height:44px; display:flex; align-items:center; }
  .sp-card, .th-card, .tour-card2, .event-card{ }
}
/* 3. Wide data tables: smooth touch scroll + tighter cells so more fits on phones */
.hx-table-wrap{ -webkit-overflow-scrolling:touch; }
@media (max-width:600px){
  .hx-table{ font-size:13px; }
  .hx-table th, .hx-table td{ padding-left:.6rem; padding-right:.6rem; }
}
/* 4. Legibility floor on small phones for secondary copy */
@media (max-width:600px){
  .th-desc, .sp-venue, .tour-desc, .tkt-desc{ font-size:13.5px; }
  .al-intro p{ font-size:15px; line-height:1.7; }
}


.kc-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
.kc-table-scroll::-webkit-scrollbar { height: 8px; }
.kc-table-scroll::-webkit-scrollbar-thumb { background: rgba(201,169,97,0.5); border-radius: 8px; }
/* Mobile adaptive: prevent iOS focus-zoom + comfortable 44px+ touch targets */
@media (max-width: 768px) {
  /* 16px input font stops iOS auto-zoom on focus; 46px height = comfortable tap */
  .form-input, .form-select, .form-textarea { font-size: 16px; min-height: 46px; }
  /* Secondary/small buttons reach the 44px touch-target floor */
  .btn-sm { padding-top: 0.72rem; padding-bottom: 0.72rem; }
  /* Tap comfort for compact nav/chips/links */
  .faq-tab, .events-cat-chip, .sp-chip, .area-chip { min-height: 40px; }
  .footer a { min-height: 34px; }
  /* Booking-form +/- steppers: enlarge from 32px to a comfortable 42px tap */
  .passenger-btn { width: 42px; height: 42px; font-size: 20px; }
  /* Call-to-action phone buttons reach the 44px touch floor */
  .urgent-call-btn, .notice-24hr-call { min-height: 44px; }
}
