/* ============================================================
   GENERATION CARS — MAIN CSS v2.0
   Design: extracted from brand HTML
   Fonts: Plus Jakarta Sans + Playfair Display
   Colors: Deep blue palette (#00179e brand color)
   ============================================================ */

/* Hide WooCommerce page loading spinner */
.blockUI.blockOverlay,
.blockUI.blockMsg,
.wc-block-components-spinner,
.woocommerce-cart-form .blockUI,
body > .blockUI { display: none !important; }

/* ---- GOOGLE FONTS ---- */
/* Loaded via <link> tags in header.php with display=swap for performance. */

/* ---- CSS VARIABLES ---- */
:root {
  /* ── Brand palette (canonical — do not change) ── */
  --g900: #00179e;
  --g800: #00179e;
  --g700: #0033cc;
  --g600: #0EA5E9;
  --g500: #3B82F6;
  --g400: #60A5FA;
  --g200: #BFDBFE;
  --g100: #DBEAFE;
  --g50:  #EFF6FF;
  --bg:   #EFF6FF;
  --white:#FFFFFF;
  --ink:  #0D1F18;
  --ink-mid: #374151;
  --ink-light: #6B7280;
  --ink-faint: #9CA3AF;
  --accent: #ff9110;
  --accent-dark: #e07800;
  --border: rgba(0,23,158,0.12);
  --border-light: rgba(0,23,158,0.06);

  /* ── Alias tokens (MASTER.md naming — use for new code) ── */
  --gc-blue-900: #00179e;
  --gc-blue-700: #0033cc;
  --gc-blue-600: #0EA5E9;
  --gc-blue-400: #60A5FA;
  --gc-blue-200: #BFDBFE;
  --gc-blue-100: #DBEAFE;
  --gc-blue-50:  #EFF6FF;
  --gc-white:    #FFFFFF;
  --gc-bg:       #EFF6FF;
  --gc-orange:      #ff9110;
  --gc-orange-dark: #e07800;
  --gc-orange-glow: rgba(255,145,16,0.25);
  --gc-ink:       #0D1F18;
  --gc-ink-mid:   #374151;
  --gc-ink-light: #6B7280;
  --gc-ink-faint: #9CA3AF;
  --gc-border:       rgba(0,23,158,0.12);
  --gc-border-light: rgba(0,23,158,0.06);
  --gc-success: #16A34A;
  --gc-warning: #F59E0B;
  --gc-error:   #EF4444;

  /* ── Typography ── */
  --rsm: 6px;
  --rmd: 10px;
  --rlg: 16px;
  --rxl: 24px;
  --gc-radius-sm:   6px;
  --gc-radius-md:   10px;
  --gc-radius-lg:   16px;
  --gc-radius-xl:   24px;
  --gc-radius-full: 9999px;
  --fhead: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --fbody: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --fserif: 'Playfair Display', Georgia, serif;
  --gc-font-head: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --gc-font-body: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --gc-font-serif: 'Playfair Display', Georgia, serif;

  /* ── Spacing (4px base unit) ── */
  --gc-space-1:  4px;
  --gc-space-2:  8px;
  --gc-space-3:  12px;
  --gc-space-4:  16px;
  --gc-space-5:  20px;
  --gc-space-6:  24px;
  --gc-space-8:  32px;
  --gc-space-10: 40px;
  --gc-space-12: 48px;
  --gc-space-16: 64px;
  --gc-space-20: 80px;
  --gc-space-24: 96px;

  /* ── Shadows ── */
  --gc-shadow-xs: 0 1px 2px rgba(0,23,158,0.05);
  --gc-shadow-sm: 0 2px 6px rgba(0,23,158,0.07);
  --gc-shadow-md: 0 4px 16px rgba(0,23,158,0.09), 0 1px 4px rgba(0,23,158,0.05);
  --gc-shadow-lg: 0 8px 32px rgba(0,23,158,0.11), 0 2px 8px rgba(0,23,158,0.06);
  --gc-shadow-xl: 0 16px 48px rgba(0,23,158,0.13), 0 4px 16px rgba(0,23,158,0.07);
  --gc-shadow-orange-sm: 0 4px 16px rgba(255,145,16,0.25);
  --gc-shadow-orange-md: 0 8px 28px rgba(255,145,16,0.32), 0 2px 8px rgba(255,145,16,0.15);

  /* ── Z-index scale ── */
  --gc-z-base:     1;
  --gc-z-raised:   10;
  --gc-z-dropdown: 20;
  --gc-z-nav:      100;
  --gc-z-mobile:   99;
  --gc-z-overlay:  200;
  --gc-z-modal:    300;
  --gc-z-toast:    400;

  /* ── Animation ── */
  --gc-dur-fast:     150ms;
  --gc-dur-normal:   200ms;
  --gc-dur-moderate: 300ms;
  --gc-dur-slow:     500ms;
  --gc-dur-reveal:   600ms;
  --gc-dur-stagger:  60ms;
  --gc-ease-smooth:  cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --gc-ease-out:     cubic-bezier(0.0, 0, 0.2, 1);

  /* ── Layout ── */
  --nav-h: 68px;
  --container: 1200px;
  --transition: .2s ease;
}

/* ---- RESET ---- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; overflow-x: hidden; max-width: 100%; }
body {
  font-family: var(--fbody);
  background: var(--bg);
  color: var(--ink);
  line-height: 1.6;
  overflow-x: hidden;
  max-width: 100%;
  -webkit-font-smoothing: antialiased;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
#gc-main { flex: 1; }
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image:
    radial-gradient(circle at 20% 20%, rgba(0,23,158,.04) 0%, transparent 50%),
    radial-gradient(circle at 80% 80%, rgba(96,165,250,.06) 0%, transparent 50%);
  pointer-events: none;
  z-index: 0;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { font-family: var(--fbody); }
/* Font family is set on body below and inherits naturally — no !important override needed. */

/* ---- RTL SUPPORT ---- */
html[dir="rtl"] { direction: rtl; }
html[dir="rtl"] .ft-list a::before { content: '←'; }
html[dir="rtl"] .nav-right { flex-direction: row-reverse; }
html[dir="rtl"] .hero-actions { flex-direction: row-reverse; }

/* ---- LAYOUT ---- */
.gc-container { max-width: var(--container); margin: 0 auto; padding: 0 24px; }
.gc-section { padding: 80px 0; position: relative; z-index: 1; }
.gc-section-sm { padding: 48px 0; position: relative; z-index: 1; }

/* ============================================================
   NAVIGATION
   ============================================================ */
#gc-nav {
  position: sticky;
  top: 0;
  z-index: var(--gc-z-nav);
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--border);
  height: var(--nav-h);
  animation: slideDown .5s ease both;
  transition: transform .3s ease;
}
@keyframes slideDown { from { transform: translateY(-100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
#gc-nav.nav-hidden { transform: translateY(-100%); }

.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--nav-h);
  padding: 7px 0;
  gap: 16px;
}

.nav-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
}
.logo-icon {
  width: 38px; height: 38px;
  background: var(--g900);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.logo-icon svg { width: 20px; height: 20px; }
.logo-name { font-size: 15px; font-weight: 800; color: var(--g900); letter-spacing: -.3px; display: block; line-height: 1; }
.logo-sub { display: block; font-size: 10px; font-weight: 500; color: var(--ink-light); line-height: 1; margin-top: 3px; white-space: nowrap; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.nav-links {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 1;
  justify-content: center;
}
.nav-links a {
  font-size: 14px;
  font-weight: 500;
  color: var(--ink-mid);
  padding: 6px 10px;
  border-radius: var(--rmd);
  transition: all var(--transition);
  position: relative;
  white-space: nowrap;
}
.nav-links a::after {
  content: '';
  position: absolute;
  bottom: 0; left: 12px; right: 12px;
  height: 2px;
  background: var(--g600);
  border-radius: 2px;
  transform: scaleX(0);
  transition: transform var(--transition);
}
.nav-links a:hover,
.nav-links a.current-menu-item,
.nav-links a.current_page_item { color: var(--g900); background: var(--g50); }
.nav-links a:hover::after,
.nav-links a.current-menu-item::after,
.nav-links a.current_page_item::after { transform: scaleX(1); }

.nav-right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

/* Currency + language dropdowns */
.nav-dd { position: relative; }
.nav-dd-btn {
  display: flex; align-items: center; gap: 5px;
  font-size: 12px; font-weight: 600; color: var(--ink-light);
  background: var(--g50); border: 1px solid var(--g200);
  padding: 4px 8px; border-radius: var(--rmd);
  cursor: pointer; transition: all .15s;
  white-space: nowrap; line-height: 1;
}
.nav-dd-btn:hover,
.nav-dd.open .nav-dd-btn { color: var(--g900); border-color: var(--g500); background: var(--white); }
.nav-dd-chevron { width: 12px; height: 12px; flex-shrink: 0; transition: transform .2s; }
.nav-dd.open .nav-dd-chevron { transform: rotate(180deg); }
.nav-dd-menu {
  display: none;
  position: absolute; top: calc(100% + 8px); right: 0; left: auto;
  min-width: 160px;
  background: var(--white); border: 1.5px solid var(--g200);
  border-radius: 16px; padding: 6px;
  box-shadow: 0 12px 40px rgba(0,23,158,.13);
  z-index: 500;
}
.nav-dd.open .nav-dd-menu { display: flex; flex-direction: column; gap: 2px; animation: dd-in .15s ease forwards; }
@keyframes dd-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
.nav-dd-item {
  font-size: 13px; font-weight: 600; color: var(--ink-light);
  background: transparent; border: none;
  padding: 8px 12px; border-radius: 10px;
  cursor: pointer; transition: all .15s;
  text-align: left; white-space: nowrap; width: 100%;
  text-decoration: none; display: block;
}
.nav-dd-item:hover { background: var(--g50); color: var(--g900); }
.nav-dd-item.active { background: var(--g900); color: var(--white); }
/* Language dropdown specific */
.nav-dd-lang .nav-dd-btn { border-color: #86EFAC; color: #16A34A; background: rgba(22,163,74,.07); }
.nav-dd-lang .nav-dd-btn:hover,
.nav-dd-lang.open .nav-dd-btn { border-color: #16A34A; background: rgba(22,163,74,.12); color: #16A34A; }
.nav-dd-lang .nav-dd-item.active { background: #16A34A; color: var(--white); }
.nav-dd-lang .nav-dd-chevron { color: #16A34A; }

/* Polylang switcher (rendered by pll_the_languages) */
.polylang-switcher { display: flex; gap: 4px; align-items: center; }
.polylang-switcher a {
  display: flex; align-items: center; gap: 4px;
  font-size: 12px; font-weight: 600;
  color: var(--ink-mid); text-decoration: none;
  padding: 4px 8px; border-radius: 6px;
  transition: all .2s;
}
.polylang-switcher a:hover,
.polylang-switcher a.current-lang { background: var(--g50); color: var(--g900); }
.polylang-switcher img { width: 16px; height: 12px; border-radius: 2px; }

.nav-cta {
  background: var(--accent);
  color: var(--white) !important;
  padding: 6px 12px;
  border-radius: var(--rmd);
  font-size: 13px; font-weight: 600;
  display: flex; align-items: center; gap: 6px;
  transition: all var(--transition);
  border: none; cursor: pointer;
  white-space: nowrap;
}
.nav-cta:hover { background: var(--accent-dark); transform: translateY(-1px); }

/* Phone link in nav */
.nav-phone {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--g900);
  text-decoration: none;
  white-space: nowrap;
}
.nav-phone svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

/* Hamburger */
.nav-hamburger {
  display: none;
  flex-direction: column; gap: 5px;
  background: none; border: none; cursor: pointer;
  padding: 6px; border-radius: 8px;
  transition: background var(--transition);
}
.nav-hamburger:hover { background: var(--g50); }
.nav-hamburger span {
  width: 22px; height: 2px;
  background: var(--g900);
  border-radius: 2px; display: block;
  transition: all .3s;
}
.nav-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nav-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobile drawer */
.mobile-menu {
  display: none;
  position: fixed;
  top: var(--nav-h); left: 0; right: 0; bottom: 0;
  background: rgba(255,255,255,0.98);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  z-index: var(--gc-z-mobile);
  overflow-y: auto;
  flex-direction: column;
  padding: 24px 5% 40px;
}
.mobile-menu.open { display: flex; animation: menuSlide .3s ease both; }
@keyframes menuSlide { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: translateY(0); } }

/* Nav links */
.mm-links { list-style: none; margin: 0 0 20px; padding: 5px 0 0; display: flex; flex-direction: column; gap: 4px; }
.mm-link {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 18px; font-weight: 700; color: var(--ink);
  padding: 14px 16px; border-radius: 16px;
  text-decoration: none; transition: all var(--transition);
}
.mm-link svg { width: 18px; height: 18px; flex-shrink: 0; opacity: .45; }
.mm-link:hover { background: #EFF6FF; }
.mm-link-active { background: #EFF6FF; color: #00179e; }

/* Divider */
.mm-divider { height: 1px; background: var(--border); margin: 8px 0 20px; }

/* Controls */
.mm-controls { display: flex; flex-direction: column; gap: 14px; margin-bottom: 24px; }
.mm-ctrl-group { display: flex; align-items: center; gap: 10px; }
.mm-ctrl-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--g600); min-width: 72px; }
.mm-ctrl-row { display: flex; gap: 6px; flex-wrap: wrap; }
.mm-ctrl-btn {
  padding: 6px 12px; border-radius: 8px;
  font-size: 13px; font-weight: 600;
  background: var(--g50); color: var(--ink);
  border: 1px solid var(--border); cursor: pointer;
  transition: all var(--transition);
}
.mm-ctrl-btn.mm-ctrl-active { background: #00179e; color: #fff; border-color: #00179e; }

/* Action buttons */
.mm-btn-book {
  width: 100%; padding: 16px;
  background: #00179e; color: #fff;
  border: none; border-radius: 16px;
  font-size: 16px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  text-decoration: none; margin-bottom: 10px; cursor: pointer;
}
.mm-btn-book svg { width: 18px; height: 18px; flex-shrink: 0; }
.mm-btn-wa {
  width: 100%; padding: 14px;
  background: #25D366; color: #fff;
  border: none; border-radius: 16px;
  font-size: 15px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  text-decoration: none; margin-bottom: 10px; cursor: pointer;
}
.mm-btn-wa svg { width: 18px; height: 18px; flex-shrink: 0; }
.mm-btn-phone {
  width: 100%; padding: 12px;
  background: #EFF6FF; color: #00179e;
  border: 1px solid #BFDBFE; border-radius: 16px;
  font-size: 15px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  text-decoration: none; cursor: pointer;
}
.mm-btn-phone svg { width: 18px; height: 18px; flex-shrink: 0; }

/* ============================================================
   BOOKING CARD — new widget
   ============================================================ */
.booking-card { background:var(--white); border-radius:var(--rxl); border:1px solid var(--g200); padding:28px; box-shadow:0 4px 40px rgba(0,23,158,.08); }
.booking-card h3 { font-size:18px; font-weight:800; color:var(--g900); margin-bottom:4px; }
.booking-card > div > p { font-size:13px; color:var(--ink-light); margin-bottom:20px; }

/* Search-form labels */
.sf-label { font-size:11px; font-weight:700; color:var(--ink-light); text-transform:uppercase; letter-spacing:.06em; margin-bottom:6px; display:block; }

/* Icon-select input */
.sf-input-wrap { position:relative; }
.sf-icon { position:absolute; left:12px; top:50%; transform:translateY(-50%); width:15px; height:15px; color:var(--g400); pointer-events:none; }
.sf-select { width:100%; padding:11px 32px 11px 36px; border:1.5px solid var(--border); border-radius:var(--rmd); font-size:14px; font-family:var(--fbody); color:var(--ink); background-color:var(--g50); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%236B7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; background-size:12px; appearance:none; -webkit-appearance:none; outline:none; transition:border-color .2s,background-color .2s; height:44px; cursor:pointer; }
.sf-select:focus { border-color:var(--g900); background-color:var(--white); box-shadow:0 0 0 3px rgba(0,23,158,.08); }
.sf-select option { background:#fff; }

/* Same-location checkbox */
.sf-checkbox-row {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 8px 0 12px;
  cursor: pointer;
  user-select: none;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink-mid);
  line-height: 1;
}
.sf-checkbox-inp {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}
.sf-checkmark {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  border: 2px solid var(--g200);
  border-radius: 5px;
  background: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .16s, border-color .16s;
}
.sf-checkmark::after {
  content: '';
  display: block;
  width: 5px;
  height: 10px;
  border: 2.5px solid transparent;
  border-top: none;
  border-left: none;
  transform: rotate(45deg) translate(-1px, -1px);
  transition: border-color .16s;
}
.sf-checkbox-inp:checked ~ .sf-checkmark {
  background: #00179e;
  border-color: #00179e;
}
.sf-checkbox-inp:checked ~ .sf-checkmark::after {
  border-color: #fff;
}
.sf-checkbox-row:hover .sf-checkmark {
  border-color: #00179e;
}

/* Date-time picker trigger button */
.sf-dtp-btn { width:100%; height:44px; padding:0 14px 0 36px; border:1.5px solid var(--border); border-radius:var(--rmd); background:var(--g50); display:flex; align-items:center; gap:9px; cursor:pointer; text-align:left; font-size:14px; font-family:var(--fbody); color:var(--ink-light); transition:border-color .2s,background .2s; position:relative; }
.sf-dtp-btn:hover { border-color:var(--g900); background:var(--white); }
.sf-dtp-icon { position:absolute; left:12px; top:50%; transform:translateY(-50%); width:15px; height:15px; color:var(--g400); flex-shrink:0; transition:color .2s; pointer-events:none; }
.sf-dtp-btn:hover .sf-dtp-icon { color:var(--g900); }
.sf-dtp-btn span { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sf-dtp-btn span.dtp-val-filled { color:var(--ink); font-weight:600; }

/* Find Vehicle button */
.sf-find-btn { width:100%; padding:14px; background:var(--accent); color:var(--white); border:none; border-radius:var(--rmd); font-size:15px; font-weight:800; font-family:var(--fbody); cursor:pointer; transition:all .2s; display:flex; align-items:center; justify-content:center; gap:7px; letter-spacing:.04em; margin-top:4px; white-space:nowrap; }
.sf-find-btn:hover { background:var(--accent-dark); transform:translateY(-1px); box-shadow:0 6px 20px rgba(255,145,16,.35); }

/* Hero section — mobile peek into booking card, restored on desktop */
.gc-hero-section { padding-top: 88px; padding-bottom: 16px; }
@media(min-width: 768px) {
  .gc-hero-section { padding-top: 110px; padding-bottom: 60px; }
  .gc-hero { align-items: center; min-height: 65vh; }
  .hero-content { text-align: left; }
  .hero-eyebrow-badge { margin-left: 0; }
}

/* ── Hero eyebrow badge ── */
.hero-eyebrow-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.03));
  border: 1px solid rgba(255,255,255,.25);
  box-shadow: 0 4px 20px rgba(0,0,0,.15), inset 0 0 0 1px rgba(255,255,255,.05);
  padding: 5px 14px;
  border-radius: 100px;
  color: #ffffff;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 18px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.hero-eyebrow-badge svg {
  width: 13px;
  height: 13px;
  color: #FBBF24;
  filter: drop-shadow(0 2px 4px rgba(251,191,36,.4));
}

/* ── Date-Time Picker popup ── */
.gc-dtp-overlay { display:none; position:fixed; inset:0; z-index:899; }
.gc-dtp-overlay.gc-dtp-ov-open { display:block; }
.gc-dtp-popup { position:fixed; z-index:900; width:420px; background:var(--white); border:1.5px solid var(--g200); border-radius:var(--rlg); box-shadow:0 20px 60px rgba(0,23,158,.18); overflow:hidden; display:none; opacity:0; transform:translateY(-6px); transition:opacity .18s ease,transform .18s ease; }
.gc-dtp-popup.gc-dtp-open { opacity:1; transform:translateY(0); }
.gc-dtp-head { background:var(--g900); display:flex; align-items:center; justify-content:space-between; padding:16px 20px; }
.gc-dtp-nav-btn { background:rgba(255,255,255,.12); border:none; border-radius:10px; color:white; width:36px; height:36px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .15s; }
.gc-dtp-nav-btn:hover { background:rgba(255,255,255,.25); }
.gc-dtp-nav-btn svg { width:18px; height:18px; }
.gc-dtp-month-lbl { font-size:16px; font-weight:800; color:white; letter-spacing:.12em; }
.gc-dtp-body { display:grid; grid-template-columns:1fr 1px 96px; }
.gc-dtp-cal-wrap { padding:10px 12px 8px; }
.gc-dtp-weekdays { display:grid; grid-template-columns:repeat(7,1fr); margin-bottom:3px; }
.gc-dtp-weekdays span { text-align:center; font-size:9px; font-weight:700; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.04em; padding:3px 0; }
.gc-dtp-days-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:1px; }
.gc-dtp-day { width:100%; aspect-ratio:1; border:none; background:none; font-size:12px; font-weight:600; color:var(--g900); cursor:pointer; display:flex; align-items:center; justify-content:center; border-radius:7px; padding:0; transition:background .12s,color .12s; font-family:var(--fbody); }
.gc-dtp-day:hover:not(:disabled):not(.gc-dtp-day-sel) { background:var(--g50); }
.gc-dtp-day-sel { background:var(--accent) !important; color:white !important; }
.gc-dtp-day-today:not(.gc-dtp-day-sel) { background:var(--g50); font-weight:800; color:var(--g900); }
.gc-dtp-day-past { color:var(--ink-faint) !important; }
.gc-dtp-day-empty { background:none; cursor:default; }
.gc-dtp-day:disabled { opacity:.28; cursor:default; }
.gc-dtp-vdivider { background:var(--g100); width:1px; height:100%; }
.gc-dtp-time-wrap { display:flex; flex-direction:column; overflow:hidden; }
.gc-dtp-time-head { font-size:9px; font-weight:700; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.06em; padding:8px 10px 5px; border-bottom:1px solid var(--g100); flex-shrink:0; background:var(--g50); }
.gc-dtp-time-list { flex:1; overflow-y:auto; padding:3px 5px; scrollbar-width:thin; scrollbar-color:var(--g200) transparent; max-height:232px; }
.gc-dtp-time-list::-webkit-scrollbar { width:3px; }
.gc-dtp-time-list::-webkit-scrollbar-thumb { background:var(--g200); border-radius:2px; }
.gc-dtp-time-slot { width:100%; border:none; background:none; font-size:12px; font-weight:600; color:var(--g900); text-align:center; padding:6px 2px; border-radius:6px; cursor:pointer; transition:background .12s,color .12s; display:block; font-family:var(--fbody); }
.gc-dtp-time-slot:hover:not(.gc-dtp-time-sel) { background:var(--g50); }
.gc-dtp-time-sel { background:var(--g900) !important; color:white !important; }
@media(max-width:520px) {
  .gc-dtp-popup { width:calc(100vw - 16px); left:8px !important; }
  .gc-dtp-body { grid-template-columns:1fr 1px 80px; }
  .gc-dtp-time-slot { font-size:11px; padding:5px 2px; }
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn-primary {
  background: var(--accent); color: var(--white);
  padding: 14px 28px; border-radius: var(--rmd);
  font-size: 15px; font-weight: 700;
  display: inline-flex; align-items: center; gap: 8px;
  transition: all var(--transition); border: none; cursor: pointer;
}
.btn-primary:hover { background: var(--accent-dark); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(255,145,16,.30); }
.btn-secondary {
  background: var(--white); color: var(--g900);
  padding: 14px 24px; border-radius: var(--rmd);
  font-size: 15px; font-weight: 600;
  border: 1.5px solid var(--g200);
  display: inline-flex; align-items: center; gap: 8px;
  transition: all var(--transition); cursor: pointer;
}
.btn-secondary:hover { border-color: var(--g900); background: var(--g50); }
.btn-wa {
  background: #25D366; color: #fff;
  padding: 14px 24px; border-radius: var(--rmd);
  font-size: 15px; font-weight: 700;
  border: none;
  display: inline-flex; align-items: center; gap: 8px;
  transition: all var(--transition); cursor: pointer;
  text-decoration: none;
}
.btn-wa:hover { background: #1ebe5d; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(37,211,102,.35); color: #fff; }
.btn-white {
  background: var(--white); color: var(--g900);
  padding: 14px 28px; border-radius: var(--rmd);
  font-size: 15px; font-weight: 700;
  display: inline-flex; align-items: center; gap: 8px;
  transition: all var(--transition); border: none; cursor: pointer;
}
.btn-white:hover { background: var(--g50); transform: translateY(-1px); }
.btn-outline-w {
  background: transparent; color: var(--white);
  padding: 14px 22px; border-radius: var(--rmd);
  font-size: 15px; font-weight: 600;
  border: 1.5px solid rgba(255,255,255,.4);
  display: inline-flex; align-items: center; gap: 8px;
  transition: all var(--transition); cursor: pointer;
}
.btn-outline-w:hover { border-color: var(--white); background: rgba(255,255,255,.1); }

/* ============================================================
   PAGE HEADER (inner pages)
   ============================================================ */
.page-header {
  background: var(--g900);
  padding: 40px 0 48px;
  position: relative; z-index: 1; overflow: visible;
}
.page-header::after {
  content: '';
  position: absolute; inset: 0;
  background: repeating-linear-gradient(-45deg, rgba(255,255,255,.015) 0, rgba(255,255,255,.015) 1px, transparent 1px, transparent 12px);
}
.ph-inner { position: relative; z-index: 1; }
.ph-kicker {
  font-size: 11px; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--g400); margin-bottom: 8px;
  display: flex; align-items: center; gap: 10px;
}
.ph-kicker::before { content: ''; width: 24px; height: 2px; background: var(--g400); }
.ph-h {
  font-family: var(--fhead);
  font-size: clamp(28px,4vw,48px);
  font-weight: 800; color: var(--white);
  line-height: 1.05; letter-spacing: -1px; margin-bottom: 10px;
}
.ph-h em { font-style: italic; color: var(--g600); font-family: var(--fserif); font-weight: 600; }
.ph-p { font-size: 15px; color: rgba(255,255,255,.65); max-width: 520px; line-height: 1.7; margin-bottom: 0; }
.ph-breadcrumb,
.page-header nav,
.breadcrumb { margin-bottom: 12px; }
/* Prevent any auto-margin gap after page header — let each section keep its own padding */
.page-header + * {
  margin-top: 0;
}
/* Spacer divs */
.header-spacer,
.page-header-spacer,
.ph-spacer {
  display: none;
}
/* WordPress content wrapper reset */
.entry-content,
.page-content {
  margin-top: 0;
  padding-top: 0;
}

/* Breadcrumbs */
.gc-breadcrumbs {
  padding: 12px 0;
  font-size: 13px;
  color: rgba(255,255,255,.5);
}
.gc-breadcrumbs a { color: var(--g400); transition: color var(--transition); }
.gc-breadcrumbs a:hover { color: var(--white); }
.gc-breadcrumbs span { margin: 0 8px; }

/* ============================================================
   SECTION LABELS
   ============================================================ */
.sec-tag {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--g100); color: var(--g800);
  font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em;
  padding: 5px 12px; border-radius: 100px; margin-bottom: 12px;
}
.sec-h {
  font-family: var(--fhead);
  font-size: clamp(26px,3.5vw,42px);
  font-weight: 800; color: var(--g800);
  letter-spacing: -.6px; line-height: 1.1; margin-bottom: 10px;
}
.sec-h em { font-style: italic; color: #0369A1; font-family: var(--fserif); }
.sec-p { font-size: 16px; color: var(--ink-mid); max-width: 520px; line-height: 1.7; margin-bottom: 44px; }

/* ============================================================
   HERO
   ============================================================ */
.gc-hero {
  padding: 24px 0 60px;
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 48px;
  align-items: center;
  position: relative; z-index: 1;
}
.gc-section:has(.gc-hero) { padding-top: 0 !important; padding-bottom: 0 !important; }
.hero-badge {
  display: inline-flex; align-items: center; gap: 0;
  background: none; border: none; padding: 0;
  margin-bottom: 20px; animation: fadeUp .6s .1s ease both;
}
.hero-badge-item {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 0 16px; font-size: 13px; font-weight: 600; color: #1e3a5f;
}
.hero-badge-item:first-child { padding-left: 0; }
.hero-badge-item svg { color: #00179e; flex-shrink: 0; }
.hero-badge-sep { width: 1px; height: 16px; background: rgba(0,23,158,.2); flex-shrink: 0; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }

.gc-hero h1 {
  font-family: var(--fhead);
  font-size: clamp(36px,5vw,64px);
  font-weight: 800; line-height: 1.08;
  letter-spacing: -2px; color: #0D1B2E;
  margin-bottom: 18px;
  animation: fadeUp .6s .2s ease both;
}
.gc-hero h1 em { font-style: italic; color: #0EA5E9; font-family: var(--fserif); font-weight: 400; }
.hero-sub {
  font-size: 17px; color: var(--ink-mid);
  line-height: 1.65; max-width: 480px; margin-bottom: 28px;
  animation: fadeUp .6s .3s ease both;
}
.hero-pills {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-bottom: 32px; animation: fadeUp .6s .4s ease both;
}
.pill {
  display: flex; align-items: center; gap: 6px;
  background: var(--white); border: 1px solid var(--g200);
  border-radius: 100px; padding: 6px 14px;
  font-size: 13px; font-weight: 600; color: var(--g800);
}
.pill-check {
  width: 16px; height: 16px; border-radius: 50%;
  background: var(--g900);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.pill-check svg { width: 9px; height: 9px; }
.hero-actions {
  display: flex; gap: 12px; align-items: center;
  animation: fadeUp .6s .5s ease both; flex-wrap: wrap;
}
.hero-proof {
  display: flex; align-items: center; gap: 12px;
  margin-top: 28px; animation: fadeUp .6s .6s ease both;
}
.proof-avs { display: flex; }
.proof-av {
  width: 34px; height: 34px; border-radius: 50%;
  border: 2px solid var(--white); margin-left: -8px;
  font-size: 13px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  color: #fff; flex-shrink: 0;
}
.proof-av:first-child { margin-left: 0; }
.proof-stars { color: #F59E0B; font-size: 14px; letter-spacing: 1px; }
.proof-text { font-size: 13px; color: var(--ink-mid); font-weight: 500; }
.proof-text strong { color: var(--ink); }

/* ============================================================
   BOOKING CARD (hero widget)
   ============================================================ */
.booking-card {
  background: var(--white);
  border-radius: var(--rxl);
  border: 1px solid var(--g200);
  padding: 28px;
  box-shadow: var(--gc-shadow-lg);
  animation: fadeUp .6s .3s ease both;
}
/* ── Same-location checkbox component ── */
.gc-same-loc-row { margin: 14px 0; }
.gc-same-loc-label {
  display: inline-flex; align-items: center; gap: 9px;
  cursor: pointer; user-select: none;
  background: transparent; border: none;
  padding: 0; box-shadow: none;
  transition: opacity .15s;
}
.gc-same-loc-label:hover { opacity: .8; }
.gc-same-loc-check {
  width: 20px; height: 20px; flex-shrink: 0; border-radius: 5px;
  background: rgba(0,23,158,.18);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 1px 4px rgba(0,23,158,.15);
  transition: background .18s, box-shadow .18s;
}
.gc-same-loc-check.is-checked { background: #00179e; box-shadow: 0 2px 8px rgba(0,23,158,.32); }
.gc-same-loc-icon { width: 11px; height: 11px; transition: opacity .18s, transform .18s; transform-origin: center; opacity: 0; transform: scale(.4); }
.gc-same-loc-check.is-checked .gc-same-loc-icon { opacity: 1; transform: scale(1); }
.gc-same-loc-text { font-size: 12.5px; font-weight: 600; color: #475569; }
.gc-return-loc-wrap {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  margin-top: 0;
  pointer-events: none;
  transition: max-height 0.25s ease-out,
              opacity 0.2s ease-out,
              margin-top 0.25s ease-out;
}
.gc-return-loc-wrap.is-open {
  max-height: 300px;
  opacity: 1;
  margin-top: 8px;
  pointer-events: auto;
}
/* ── Field validation error ── */
.sf-field-error {
  border-color: #EF4444 !important;
  background-color: rgba(239,68,68,0.05) !important;
  box-shadow: 0 0 0 3px rgba(239,68,68,.12) !important;
  color: inherit !important;
}
@keyframes sfShake {
  0%, 100% { transform: translateX(0); }
  20%, 60%  { transform: translateX(-4px); }
  40%, 80%  { transform: translateX(4px); }
}
.sf-shake-anim { animation: sfShake .4s ease-in-out; }

/* Already have a reservation bar */
.bk-manage-bar { display:flex; justify-content:center; align-items:center; width:100%; background:transparent; border:none; box-shadow:none; padding:0; margin-top:18px; gap:6px; cursor:pointer; box-sizing:border-box; font-family:inherit; flex-wrap:wrap; }
.bk-manage-bar:hover { background:transparent; }
.bk-manage-bar span:first-child { font-size:13px; color:var(--ink-mid); white-space:normal; min-width:0; margin:0; }
.bk-manage-link { font-size:13px; font-weight:500; color:var(--ink); text-decoration:underline; text-underline-offset:4px; white-space:nowrap; display:inline-flex; align-items:center; gap:4px; transition:color .2s; }
.bk-manage-link:hover { color:var(--accent); }

/* ── Booking card header (kicker + title) — used in search & manage views ── */
.bk-card-kicker {
  font-size: 10px; font-weight: 700; letter-spacing: .10em;
  text-transform: uppercase; color: var(--g600); margin: 0 0 2px;
}
.bk-card-title {
  font-size: 17px; font-weight: 800; color: var(--g900);
  margin: 0 0 var(--gc-space-4); letter-spacing: -.3px;
}

/* ── Manage-booking view: class-based design tokens ── */
.gc-mb-back-btn {
  background: none; border: none; cursor: pointer;
  color: var(--g700); font-size: 13px; font-weight: 600;
  font-family: var(--fbody); padding: 0;
  margin-bottom: var(--gc-space-4);
  display: flex; align-items: center; gap: 5px;
  transition: color .15s;
}
.gc-mb-back-btn:hover { color: var(--g900); }
.gc-mb-title {
  font-size: 17px; font-weight: 800; color: var(--g900);
  margin: 0 0 var(--gc-space-1); letter-spacing: -.3px;
}
.gc-mb-subtitle {
  font-size: 13px; color: var(--ink-light);
  margin: 0 0 var(--gc-space-4); line-height: 1.5;
}
.gc-mb-field-group { margin-bottom: var(--gc-space-3); }
.gc-mb-input-wrap { position: relative; }
.gc-mb-input-icon {
  position: absolute; left: 13px; top: 50%; transform: translateY(-50%);
  width: 16px; height: 16px; color: var(--g500); pointer-events: none;
}
.gc-mb-input {
  width: 100%; height: 44px;
  padding: 0 14px 0 38px;
  border: 1.5px solid var(--border); border-radius: var(--rmd);
  font-size: 14px; font-family: var(--fbody); color: var(--ink);
  background: var(--g50);
  transition: border-color .2s, background .2s, box-shadow .2s;
  appearance: none; -webkit-appearance: none;
  outline: none; box-sizing: border-box;
}
.gc-mb-input:focus {
  border-color: var(--g900);
  background: var(--white);
  box-shadow: 0 0 0 3px rgba(0,23,158,.10);
}
.gc-mb-input::placeholder { color: var(--ink-faint); }

/* Booking widget tabs */
.bk-tabs { display:flex; gap:4px; background:#F0F9FF; border:1px solid #DBEAFE; border-radius:12px; padding:4px; margin-bottom:20px; }
.bk-tab { flex:1; display:flex; align-items:center; justify-content:center; gap:7px; padding:9px 14px; border:none; border-radius:10px; font-size:13px; font-weight:600; cursor:pointer; transition:all .18s; background:transparent; color:#6B7280; font-family:var(--fbody); }
.bk-tab.active { background:#00179e; color:var(--white); box-shadow:0 2px 8px rgba(0,23,158,.25); }
.bk-tab:not(.active):hover { background:rgba(0,23,158,.06); color:#00179e; }
.bk-tab svg { flex-shrink:0; }
#bk-mybooking-view h3 { font-size: 18px; font-weight: 800; color: var(--g900); margin-bottom: 4px; }
#bk-mybooking-view > p { font-size: 13px; color: var(--ink-light); margin-bottom: 0; }
.booking-card h3 { font-size: 18px; font-weight: 800; color: var(--g900); margin-bottom: 4px; }
.booking-card > p { font-size: 13px; color: var(--ink-light); margin-bottom: 20px; }
.form-group { margin-bottom: 14px; }
.gc-wiz-phone-note { font-size: 12px; color: var(--ink-light); margin-top: 6px; }
.form-label {
  font-size: 11px; font-weight: 700; color: var(--ink-light);
  text-transform: uppercase; letter-spacing: .06em;
  margin-bottom: 6px; display: block;
}
.form-input {
  width: 100%; padding: 11px 14px;
  border: 1.5px solid var(--border); border-radius: var(--rmd);
  font-size: 14px; font-family: var(--fbody); color: var(--ink);
  background: var(--g50); transition: border-color var(--transition);
  appearance: none; -webkit-appearance: none;
}
.form-input:focus { outline: none; border-color: var(--g600); background: var(--white); }
.form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }

/* ── Phone field: dial-code select + number input ── */
.gc-phone-field {
  display: flex;
  width: 100%;
  border: 1.5px solid #DBEAFE;
  border-radius: 10px;
  overflow: hidden;
  background: #F8FAFF;
  transition: border-color .2s;
}
.gc-phone-field:focus-within {
  border-color: #00179e;
  background: #fff;
}
.gc-dial-code {
  border: none;
  border-right: 1.5px solid #DBEAFE;
  background: transparent;
  padding: 12px 10px;
  font-size: 14px;
  font-family: inherit;
  font-weight: 600;
  color: #0D1F18;
  outline: none;
  cursor: pointer;
  min-width: 95px;
}
.gc-phone-number {
  flex: 1;
  border: none;
  background: transparent;
  padding: 12px 14px;
  font-size: 14px;
  font-family: inherit;
  color: #0D1F18;
  outline: none;
}
.gc-phone-number::placeholder {
  color: #9CA3AF;
}
.form-divider {
  display: flex; align-items: center; gap: 8px;
  margin: 4px 0 14px;
  font-size: 11px; color: var(--ink-faint); font-weight: 600;
  text-transform: uppercase; letter-spacing: .06em;
}
.form-divider::before, .form-divider::after { content: ''; flex: 1; height: 1px; background: var(--border); }
.btn-book {
  width: 100%; padding: 14px;
  background: var(--g900); color: var(--white);
  border: none; border-radius: var(--rmd);
  font-size: 15px; font-weight: 700; cursor: pointer;
  transition: all var(--transition);
  display: flex; align-items: center; justify-content: center; gap: 8px;
  margin-top: 6px;
}
.btn-book:hover { background: var(--g800); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(0,23,158,.3); }
.booking-footer {
  display: flex; justify-content: center; gap: 16px;
  margin-top: 16px; flex-wrap: wrap;
}
.booking-trust { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--ink-light); font-weight: 600; }
.booking-trust svg { width: 13px; height: 13px; color: var(--g600); }

/* ============================================================
   STATS BAND
   ============================================================ */
.stats-band {
  background: var(--g900);
  padding: 28px 0;
  position: relative; z-index: 1; overflow: hidden;
}
.stats-band::before {
  content: '';
  position: absolute; inset: 0;
  background: repeating-linear-gradient(-45deg, rgba(255,255,255,.015) 0, rgba(255,255,255,.015) 1px, transparent 1px, transparent 12px);
}
.stats-inner { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; position: relative; }
.stat-item { text-align: center; padding: 8px; }
.stat-num { font-size: 34px; font-weight: 800; color: var(--white); line-height: 1; margin-bottom: 6px; letter-spacing: -1px; }
.stat-num span { color: var(--g400); }
.stat-label { font-size: 13px; color: var(--g200); font-weight: 500; }

/* ============================================================
   TRUST BAR
   ============================================================ */
.trust-bar {
  background: var(--g50);
  border-top: 1px solid var(--g100);
  border-bottom: 1px solid var(--g100);
  padding: 20px 0;
  position: relative; z-index: 1;
}
.trust-inner {
  display: flex; align-items: center;
  justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.trust-item { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--g800); }
.trust-item svg { width: 18px; height: 18px; color: var(--g600); flex-shrink: 0; }

/* ============================================================
   VEHICLE CARDS (grid)
   ============================================================ */
.vehicles-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.vehicle-card {
  background: rgba(255,255,255,0.86);
  backdrop-filter: blur(14px) saturate(155%);
  -webkit-backdrop-filter: blur(14px) saturate(155%);
  border-radius: var(--rlg);
  border: 1px solid var(--gc-border);
  box-shadow: var(--gc-shadow-sm);
  overflow: hidden;
}
/* Higher specificity than .reveal so hover transitions are crisp (300ms) while
   the scroll-in opacity fade still uses .reveal's 600ms. */
.vehicles-grid .vehicle-card {
  transition: opacity var(--gc-dur-reveal) var(--gc-ease-out),
              transform var(--gc-dur-moderate) var(--gc-ease-out),
              box-shadow var(--gc-dur-moderate) var(--gc-ease-out),
              border-color var(--gc-dur-normal);
}
.vehicle-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 4px 16px rgba(0,23,158,0.18), 0 4px 24px rgba(0,23,158,0.08);
  border-color: rgba(0,23,158,0.25);
}
.vehicle-card.hidden { display: none; }

.vehicle-img {
  background: rgba(239,246,255,0.60);
  aspect-ratio: unset;
  height: 180px;
  display: flex; align-items: center; justify-content: center;
  position: relative;
  border-bottom: 1px solid var(--gc-border-light);
  overflow: hidden;
}
.vehicle-img img { width: 100%; height: 100%; object-fit: contain; padding: 8px; transition: transform .4s ease; }
.vehicle-card:hover .vehicle-img img { transform: scale(1.04); }
.vehicle-img svg { width: 140px; opacity: .85; transition: transform .3s; }
.vehicle-card:hover .vehicle-img svg { transform: scale(1.04) translateX(3px); }
.v-tag {
  position: absolute; top: 12px; left: 12px;
  background: #DBEAFE; color: #00179e;
  font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em;
  padding: 4px 10px; border-radius: 100px;
  z-index: 3;
  opacity: 1 !important;
  visibility: visible !important;
}
.v-hot {
  position: absolute; top: 12px; right: 12px;
  background: #00179e; color: white;
  font-size: 10px; font-weight: 700;
  padding: 4px 10px; border-radius: 100px;
  z-index: 3;
}

.vehicle-body { padding: 18px; }
.vehicle-name { font-size: 22px; font-weight: 700; color: #0f172a; margin: 0 0 3px; letter-spacing: -.3px; }
.gc-or-similar {
    font-weight: 400 !important;
    font-size: 0.7em !important;
    color: var(--gc-ink-faint) !important;
    font-style: italic;
    margin-left: 4px;
}
.vehicle-subtitle { font-size: 11px; color: #94a3b8; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; margin: 0 0 12px; }
.vehicle-specs { display: flex; gap: 4px 6px; margin-bottom: 14px; flex-wrap: wrap; }
.spec-pills-row { display: flex; gap: 4px 6px; flex-wrap: wrap; margin-top: 8px; }
.spec-pill {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11px; color: var(--gc-text-secondary, #64748b);
  background: var(--gc-bg-secondary, #f1f5f9);
  border: 1px solid var(--gc-border, #e2e8f0);
  border-radius: 20px; padding: 3px 6px;
  letter-spacing: -0.2px;
}
.vspec {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11px; color: #374151; font-weight: 600;
  background: #EFF6FF; padding: 3px 6px; border-radius: 20px;
  border: 1px solid #DBEAFE; letter-spacing: -0.2px;
}
.vspec svg { width: 12px; height: 12px; color: #0EA5E9; flex-shrink: 0; margin-right: 0; }
.vehicle-footer {
  display: flex; align-items: center; justify-content: space-between;
  padding-top: 12px; border-top: 1px solid var(--g100);
}
.price-from { font-size: 11px; color: var(--ink-faint); font-weight: 500; }
.price-num { font-size: 22px; font-weight: 800; color: var(--g900); letter-spacing: -.5px; }
.price-unit { font-size: 13px; color: var(--ink-light); font-weight: 500; }
.v-book {
  background: var(--g50); color: var(--g900);
  border: 1.5px solid var(--g200);
  padding: 8px 16px; border-radius: var(--rmd);
  font-size: 13px; font-weight: 700; cursor: pointer;
  transition: all var(--transition);
}
.v-book:hover { background: var(--g900); color: var(--white); border-color: var(--g900); }

/* ============================================================
   CAR CARD bk-car-card — booking step selected state
   ============================================================ */
.car-card {
  background: #fff;
  border: none;
  border-radius: 16px;
  display: grid;
  grid-template-columns: 4px 175px 1fr 185px;
  overflow: hidden;
  align-items: stretch;
  margin-bottom: 12px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.04), 0 1px 3px rgba(0,0,0,0.02);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.car-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.08);
}
.car-card-accent {
  background: linear-gradient(180deg, #00179e, #0EA5E9);
}
.car-card-image-col {
  background: #F0F9FF;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  position: relative;
  min-height: 150px;
}
.car-card-image-col img {
  max-width: 140px;
  height: auto;
  object-fit: contain;
  display: block;
  margin: auto;
  transition: transform .4s ease;
}
.car-card:hover .car-card-image-col img { transform: scale(1.05) translateX(3px); }
.car-card-image-col svg {
  width: 140px;
  margin-top: 18px;
  transition: transform .4s ease;
}
.car-card:hover .car-card-image-col svg { transform: scale(1.05) translateX(3px); }
.car-card-category-badge {
  position: absolute; top: 10px; left: 10px;
  font-size: 10px; font-weight: 600;
  padding: 3px 10px; border-radius: 20px;
  background: #E6F1FB; color: #0C447C;
  text-transform: uppercase; letter-spacing: .04em;
}
.car-card-info {
  padding: 1.25rem;
  display: flex; flex-direction: column; justify-content: center;
}
.car-card-badges {
  display: flex; gap: 6px; flex-wrap: wrap;
  min-height: 24px; margin-bottom: 6px; align-items: center;
}
.car-card-popular-badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 10px; font-weight: 600;
  padding: 3px 10px; border-radius: 20px;
  background: #ff9110; color: #fff;
}
.car-card-avail-badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 10px; font-weight: 600;
  padding: 3px 10px; border-radius: 20px;
  background: #ECFDF5; color: #065F46; border: 1px solid #6EE7B7;
}
.car-card-name {
  font-size: 20px; font-weight: 700; color: #0f172a; margin: 0 0 3px;
}
.car-card-subtitle {
  font-size: 11px; color: #64748b; font-style: normal;
  text-transform: uppercase; letter-spacing: 0.5px;
  font-weight: 600; margin: 0 0 12px;
}
.car-card-specs { display: flex; gap: 6px; flex-wrap: wrap; }
.spec-pill {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 12px; font-weight: 500; color: #475569;
  background: #F1F5F9; border: none;
  border-radius: 100px; padding: 4px 10px;
}
.car-card-price-panel {
  background: #F0F9FF;
  border-left: 1.5px solid #dbeafe;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  padding: 1.25rem; gap: 10px;
}
.car-card-duration-badge {
  font-size: 10px; font-weight: 700; color: #00179e;
  background: #dbeafe; border-radius: 20px;
  padding: 4px 14px; letter-spacing: .08em;
}
.car-card-price-block { text-align: center; }
.car-card-price-total {
  font-size: 28px; font-weight: 800; color: #00179e; margin: 0; line-height: 1;
}
.car-card-price-unit { font-size: 13px; font-weight: 400; color: #64748b; }
.car-card-price-day { font-size: 12px; color: #64748b; margin: 4px 0 0; }
.car-card-price-na { font-size: 13px; color: #64748b; text-align: center; }
.car-card-book-btn {
  background: #FF9110; color: #fff;
  border: none; border-radius: 8px;
  padding: 12px 24px; font-size: 15px; font-weight: 600; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  width: 100%; font-family: inherit; text-decoration: none;
  box-shadow: 0 4px 12px rgba(255,145,16,0.30);
  transition: all .2s ease;
}
.car-card-book-btn:hover {
  background: #e07d00;
  box-shadow: 0 8px 24px rgba(255,145,16,0.40);
  transform: translateY(-1px);
}
.car-card.bk-car-selected {
  border-color: #00179e !important;
  box-shadow: 0 0 0 2px #00179e, 0 6px 24px rgba(0,23,158,.15) !important;
}
@media (max-width: 768px) {
  .car-card { grid-template-columns: 4px 1fr; grid-template-rows: auto auto auto; }
  .car-card-accent { grid-row: 1 / -1; }
  .car-card-image-col { grid-column: 2; min-height: 120px; }
  .car-card-info { grid-column: 2; }
  .car-card-price-panel {
    grid-column: 2; flex-direction: row; flex-wrap: wrap;
    justify-content: space-between; align-items: center;
    padding: 1rem 1.25rem; border-left: none;
    border-top: 1.5px solid #dbeafe; gap: 8px;
  }
  .car-card-duration-badge { display: none; }
  .car-card-price-total { font-size: 24px; }
  .car-card-book-btn { width: auto; padding: 11px 20px; }
}
.car-card.bk-car-card { grid-template-columns: 4px 280px 1fr 185px; }
@media (max-width: 768px) { .car-card.bk-car-card { grid-template-columns: 4px 1fr; } }


/* ---- Car list filters ---- */
.fleet-filters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 28px; }
.filter-btn {
  padding: 8px 18px;
  border: 1.5px solid var(--border); border-radius: 25px;
  background: transparent; font-size: 13px; font-weight: 600;
  color: var(--ink-light); cursor: pointer; transition: all var(--transition);
}
.filter-btn:hover { border-color: var(--g600); color: var(--g700); }
.filter-btn.active { background: var(--g900); color: #fff; border-color: var(--g900); }

/* ============================================================
   WHY CARDS
   ============================================================ */
/* ── Why Choose Us — Glow Cards ── */
.why-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
/* ── Why Choose Us — Premium Unified Design ── */
.why-card {
  background: #fff;
  border: 1px solid #E2E8F0;
  border-radius: 16px;
  padding: 32px 28px;
  position: relative; overflow: hidden; cursor: default;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
/* Premium touch: animated brand-blue top border */
.why-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: #00179e;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
}
.why-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0,23,158,0.08);
  border-color: transparent;
}
.why-card:hover::before { transform: scaleX(1); }

/* Unified premium icon */
.wu-icon {
  width: 52px; height: 52px;
  border-radius: 14px;
  background: #EFF6FF;
  color: #00179e;
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 24px;
  transition: transform 0.3s ease;
}
.wu-icon svg { width: 24px; height: 24px; }
.why-card:hover .wu-icon { transform: scale(1.05); }

.why-card h3, .why-title {
  font-size: 18px; font-weight: 700; color: #0F172A;
  margin-bottom: 12px; letter-spacing: -.2px;
}
.why-card p, .why-desc { font-size: 14px; line-height: 1.6; color: #64748B; margin: 0; }

/* Why section heading — deep dark with brand-blue em */
.why-wrapper .sec-h { color: #0F172A; }
.why-wrapper .sec-h em { color: #00179e; }

/* ============================================================
   LOCATIONS
   ============================================================ */
/* ── High-Contrast Cards: light section, dark cards ─────── */
.locs-section {
  background: #f4f8fb;
  padding: 80px 0;
  position: relative; z-index: 1; overflow: hidden;
}
.locs-section .sec-tag { background: rgba(5,16,84,.08); color: #051054; }
.locs-section .sec-h { color: #0F172A; }
.locs-section .sec-h em { color: #20b2aa; font-style: italic; }
.locs-section .sec-p { color: #475569; }
.locs-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; margin-top: 36px; }
.loc-card {
  background: #051054;
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 16px; padding: 28px 22px;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer; display: block; text-decoration: none;
  box-shadow: 0 4px 20px rgba(5,16,84,.18);
}
.loc-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 40px rgba(5,16,84,.28), 0 0 0 1px rgba(32,178,170,.25), 0 0 24px rgba(32,178,170,.12);
}
.loc-icon {
  width: 40px; height: 40px;
  background: rgba(255,255,255,.06);
  border: none;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 18px;
  transition: background 0.3s ease;
}
.loc-card:hover .loc-icon { background: rgba(255,255,255,.1); }
.loc-icon svg { width: 32px; height: 32px; }
.loc-name { font-size: 16px; font-weight: 800; color: #fff; margin-bottom: 6px; }
.loc-desc { font-size: 12px; color: rgba(255,255,255,.65); line-height: 1.6; margin-bottom: 20px; flex-grow: 1; }
.loc-link {
  font-size: 12px; color: rgba(255,255,255,.5); font-weight: 600;
  display: inline-flex; align-items: center; gap: 6px;
  border-top: 1px solid rgba(255,255,255,.08);
  padding-top: 14px; width: 100%;
  transition: color 0.25s ease;
}
.loc-card:hover .loc-link { color: rgba(255,255,255,.85); }
.loc-link .loc-arrow {
  display: inline-block;
  transition: transform 0.3s ease;
}
.loc-card:hover .loc-link .loc-arrow { transform: translateX(5px); }

/* ============================================================
   REVIEWS
   ============================================================ */
.reviews-widget-wrap { width: 100%; margin: 0 auto; }
.reviews-widget-wrap > * { max-width: 100%; }

/* ============================================================
   CTA SECTION
   ============================================================ */
.gc-cta-section { background: var(--g900); padding: 80px 0; position: relative; z-index: 1; overflow: hidden; }
.gc-cta-section::before {
  content: '';
  position: absolute; top: -50%; left: -10%;
  width: 50%; height: 200%;
  background: rgba(255,255,255,.03); transform: rotate(15deg);
}
.cta-inner { display: flex; justify-content: space-between; align-items: center; gap: 40px; position: relative; z-index: 1; }
.cta-h { font-family: var(--fhead); font-size: clamp(26px,4vw,40px); font-weight: 800; color: var(--white); letter-spacing: -.5px; margin-bottom: 8px; }
.cta-p { font-size: 15px; color: var(--g200); }
.cta-btns { display: flex; gap: 12px; flex-shrink: 0; }

/* ============================================================
   SINGLE CAR PAGE
   ============================================================ */
.single-car-layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 40px;
  align-items: start;
}
.car-gallery { border-radius: var(--rlg); overflow: hidden; background: var(--g50); margin-bottom: 24px; }
.car-gallery img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.car-gallery-thumbs { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; padding: 8px; background: var(--g50); }
.car-gallery-thumbs img { border-radius: 6px; aspect-ratio: 16/9; object-fit: cover; cursor: pointer; opacity: .7; transition: opacity var(--transition); }
.car-gallery-thumbs img:hover, .car-gallery-thumbs img.active { opacity: 1; }

.car-meta { background: var(--white); border-radius: var(--rlg); border: 1px solid var(--g100); padding: 24px; margin-bottom: 20px; }
.car-specs-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; margin: 16px 0; }
.car-spec-item {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; background: var(--g50); border-radius: var(--rmd);
}
.car-spec-item svg { width: 16px; height: 16px; color: var(--g600); flex-shrink: 0; }
.car-spec-label { font-size: 11px; color: var(--ink-light); font-weight: 600; display: block; }
.car-spec-val { font-size: 14px; font-weight: 700; color: var(--ink); }

.car-includes { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.car-inc-item { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--ink-mid); }
.car-inc-item svg { width: 16px; height: 16px; color: var(--g600); flex-shrink: 0; }

/* Booking sidebar */
.booking-sidebar {
  background: var(--white);
  border-radius: var(--rlg);
  border: 1px solid var(--g200);
  padding: 24px;
  position: sticky; top: calc(var(--nav-h) + 20px);
  z-index: 10;
  box-shadow: 0 4px 40px rgba(0,23,158,.08);
}
.bs-price-row { display: flex; align-items: baseline; gap: 8px; margin-bottom: 4px; }
.bs-price { font-size: 36px; font-weight: 800; color: var(--g900); letter-spacing: -1px; line-height: 1; }
.bs-unit { font-size: 14px; color: var(--ink-light); line-height: 1; }
.bs-divider { height: 1px; background: var(--border); margin: 16px 0; }
.bs-total-row { display: flex; justify-content: space-between; align-items: center; font-size: 14px; margin-bottom: 8px; }
.bs-total-row.total { font-weight: 800; font-size: 16px; color: var(--g900); }
.bs-sb-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.bs-sb-lbl { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-light); }
.bs-book-btn {
  width: 100%; margin-top: 16px; padding: 14px 20px;
  background: var(--accent);
  color: var(--white); border: none; border-radius: var(--rmd);
  font-size: 15px; font-weight: 700; font-family: var(--fbody);
  display: flex; align-items: center; justify-content: center; gap: 8px;
  cursor: pointer; transition: all .2s;
  box-shadow: 0 4px 16px rgba(0,23,158,.20);
}
.bs-book-btn:hover { background: #001480; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,23,158,.28); }
.bs-trust { font-size: 11px; color: var(--ink-light); text-align: center; margin: 10px 0 0; display: flex; align-items: center; justify-content: center; gap: 5px; line-height: 1.5; }

/* ============================================================
   BOOKING FORM (WooCommerce override)
   ============================================================ */
.gc-booking-form .woocommerce-checkout { background: transparent; }
.gc-booking-form .form-row { margin-bottom: 14px; }
.gc-booking-form input, .gc-booking-form select, .gc-booking-form textarea {
  width: 100% !important; padding: 11px 14px !important;
  border: 1.5px solid var(--border) !important; border-radius: var(--rmd) !important;
  font-size: 14px !important; font-family: var(--fbody) !important;
  background: var(--g50) !important; color: var(--ink) !important;
  transition: border-color var(--transition) !important;
}
.gc-booking-form input:focus, .gc-booking-form select:focus {
  border-color: var(--g600) !important; background: var(--white) !important; outline: none !important;
}
.gc-booking-form .button#place_order {
  background: var(--g900) !important; color: var(--white) !important;
  border: none !important; border-radius: var(--rmd) !important;
  padding: 16px 32px !important; font-size: 16px !important; font-weight: 700 !important;
  width: 100% !important; cursor: pointer !important;
}
.gc-booking-form .button#place_order:hover { background: var(--g800) !important; }
.woocommerce-payment-methods li { list-style: none !important; }
#payment { background: var(--g50) !important; border-radius: var(--rmd) !important; padding: 16px !important; }

/* ============================================================
   BLOG
   ============================================================ */
.blog-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.blog-card {
  background: var(--white); border-radius: var(--rlg);
  border: 1px solid var(--g100); overflow: hidden;
  transition: all .25s;
}
.blog-card:hover { transform: translateY(-3px); box-shadow: 0 10px 30px rgba(0,23,158,.08); }
.blog-img { aspect-ratio: 16/9; overflow: hidden; background: var(--g50); }
.blog-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.blog-card:hover .blog-img img { transform: scale(1.04); }
.blog-body { padding: 20px; }
.blog-cat { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--g600); margin-bottom: 8px; }
.blog-title { font-size: 16px; font-weight: 700; color: var(--ink); line-height: 1.4; margin-bottom: 10px; }
.blog-title a:hover { color: var(--g900); }
.blog-excerpt { font-size: 13px; color: var(--ink-light); line-height: 1.6; margin-bottom: 14px; }
.blog-meta { font-size: 12px; color: var(--ink-faint); display: flex; gap: 12px; }

/* Blog card — new template classes */
.blog-card-img { aspect-ratio: 16/9; overflow: hidden; display: block; text-decoration: none; }
.blog-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.blog-card:hover .blog-card-img img { transform: scale(1.04); }
.blog-card-emoji {
  width: 100%; height: 100%; min-height: 160px;
  display: flex; align-items: center; justify-content: center;
  position: relative; font-size: 52px;
}
.bc-cat-badge {
  position: absolute; top: 12px; left: 12px;
  font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
  padding: 4px 10px; border-radius: 100px;
}
.blog-card-body { padding: 20px; }
.bc-meta { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--ink-faint); margin-bottom: 10px; flex-wrap: wrap; }
.bc-cat { font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: 11px; }
.bc-sep { opacity: .4; }
.bc-title { font-size: 16px; font-weight: 800; color: var(--ink); line-height: 1.4; margin-bottom: 10px; }
.bc-title a { color: inherit; text-decoration: none; }
.bc-title a:hover { color: var(--g900); }
.bc-excerpt { font-size: 13px; color: var(--ink-light); line-height: 1.65; margin-bottom: 14px; }
.bc-read-link { font-size: 13px; font-weight: 700; color: var(--g900); text-decoration: none; }
.bc-read-link:hover { text-decoration: underline; }
.bc-read-link--placeholder { color: var(--ink-faint); cursor: default; }

/* Single post */
.single-post-layout { display: grid; grid-template-columns: 1fr 320px; gap: 48px; align-items: start; }
.post-content { font-size: 16px; line-height: 1.8; color: var(--ink-mid); }
.post-content h2 { font-family: var(--fhead); font-size: 1.6rem; color: var(--ink); margin: 2rem 0 1rem; }
.post-content h3 { font-size: 1.2rem; color: var(--ink); margin: 1.5rem 0 .75rem; }
.post-content p { margin-bottom: 1.2rem; }
.post-content img { border-radius: var(--rlg); margin: 1.5rem 0; }
.post-content a { color: var(--g700); text-decoration: underline; }
.post-sidebar { position: sticky; top: calc(var(--nav-h) + 20px); }
.post-sidebar-card { background: var(--white); border: 1px solid var(--g100); border-radius: var(--rlg); padding: 20px; margin-bottom: 20px; }
.post-sidebar-title { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--g600); margin-bottom: 14px; }

/* ============================================================
   CONTACT PAGE
   ============================================================ */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 3.5vw, 48px); }
.contact-grid > * { min-width: 0; }
.contact-grid h2 { overflow-wrap: break-word; word-break: break-word; }
.contact-info-item { display: flex; gap: 14px; margin-bottom: 24px; }
.contact-info-item > div { min-width: 0; }
.ci-icon { width: 44px; height: 44px; background: var(--g100); border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ci-icon svg { width: 20px; height: 20px; color: var(--g900); }
.ci-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--g600); margin-bottom: 4px; }
.ci-val { font-size: 15px; font-weight: 600; color: var(--ink); overflow-wrap: break-word; word-break: break-word; }
.contact-form-box {
  background: var(--white);
  border: 1px solid var(--g100);
  border-radius: var(--rlg);
  padding: clamp(16px, 2.5vw, 32px);
}
.wa-box { background: var(--g50); border: 1px solid var(--g200); border-radius: var(--rlg); padding: 24px; text-align: center; }
.wa-box svg { width: 44px; height: 44px; margin: 0 auto 12px; }
.contact-form-submit {
  width: 100%; padding: 14px;
  background: var(--accent); color: #fff;
  border-radius: 10px;
  font-size: 15px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  border: none; cursor: pointer;
  transition: all var(--transition);
}
.contact-form-submit:hover { background: var(--accent-dark); transform: translateY(-1px); }
.contact-form-submit svg { width: 16px; height: 16px; flex-shrink: 0; }

/* ============================================================
   WHATSAPP FLOAT
   ============================================================ */
.wa-float {
  position: fixed; bottom: 24px; right: 24px; z-index: 999;
  width: 54px; height: 54px;
  background: #25D366; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 20px rgba(37,211,102,.4);
  text-decoration: none; transition: all var(--transition);
  animation: popIn .6s 1.2s ease both;
}
.wa-float:hover { transform: scale(1.1); }
.wa-float svg { width: 30px; height: 30px; }
@keyframes popIn { from { transform: scale(0); opacity: 0; } to { transform: scale(1); opacity: 1; } }

/* ============================================================
   FOOTER — Dark brand blue.
   Spacing and structure use --gc-space-* tokens.
   Font-family declarations are explicit for hierarchy clarity.
   ============================================================ */
#gc-footer {
  background: var(--g900);
  backdrop-filter: blur(24px) saturate(150%);
  -webkit-backdrop-filter: blur(24px) saturate(150%);
  border-top: 1px solid rgba(255,255,255,0.10);
  padding: var(--gc-space-20) 0 var(--gc-space-10);
  position: relative; z-index: 1;
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: var(--gc-space-16);
  padding-bottom: var(--gc-space-16);
  border-bottom: 1px solid rgba(255,255,255,0.07);
  margin-bottom: var(--gc-space-6);
}
.ft-logo {
  font-size: 18px;
  font-weight: 800;
  font-family: var(--gc-font-head);
  color: var(--white);
  display: block;
  margin-bottom: var(--gc-space-1);
}
.ft-tag-txt {
  font-size: 10px;
  font-weight: 700;
  font-family: var(--gc-font-head);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  display: block;
  margin-bottom: var(--gc-space-4);
}
.ft-about {
  font-size: 13px;
  color: rgba(255,255,255,0.55);
  line-height: 1.9;
  max-width: 280px;
  margin-bottom: var(--gc-space-5);
}
.ft-contact-row { display: flex; flex-direction: column; gap: var(--gc-space-2); }
.ft-ci {
  display: flex;
  align-items: center;
  gap: var(--gc-space-2);
  font-size: 12px;
  color: rgba(255,255,255,0.55);
  text-decoration: none;
  transition: color var(--gc-dur-normal);
}
.ft-ci:hover { color: var(--white); }
.ft-ci svg { width: 14px; height: 14px; color: rgba(255,255,255,0.75); flex-shrink: 0; fill: currentColor; }
.ft-col-h {
  font-size: 10px;
  font-weight: 700;
  font-family: var(--gc-font-head);
  letter-spacing: .20em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.50);
  margin-bottom: var(--gc-space-4);
  display: block;
  padding-bottom: var(--gc-space-2);
  border-bottom: 1px solid rgba(255,255,255,0.12);
}
.ft-list { display: flex; flex-direction: column; gap: var(--gc-space-3); }
.ft-list a {
  font-size: 13px;
  color: rgba(255,255,255,0.60);
  font-weight: 500;
  transition: color var(--gc-dur-normal);
  display: flex;
  align-items: center;
  gap: var(--gc-space-2);
  text-decoration: none;
}
/* Orange arrow — brand accent, consistent with all CTAs */
.ft-list a::before {
  content: '→';
  color: var(--accent);
  font-size: 11px;
  transition: transform var(--gc-dur-normal);
  flex-shrink: 0;
}
.ft-list a:hover { color: var(--white); }
.ft-list a:hover::before { transform: translateX(3px); }
.ft-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--gc-space-2);
}
.ft-copy, .ft-made {
  font-size: 12px;
  color: rgba(255,255,255,0.30);
  letter-spacing: .04em;
}
.ft-made span { color: var(--g400); }

/* ============================================================
   UTILITY BAR
   ============================================================ */
.gc-utility-bar {
  background: var(--g900);
  border-bottom: 1px solid rgba(255,255,255,.08);
  padding: 7px 0;
  position: relative; z-index: 201;
}
.utility-bar-inner {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.utility-bar-left {
  display: flex; align-items: center; gap: 8px;
  font-size: 12px; color: rgba(255,255,255,.8); font-weight: 500;
  flex: 1; min-width: 0; overflow: hidden;
}

/* ---- Top Bar Marquee ---- */
.gc-top-marquee-wrap {
  overflow: hidden;
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  mask-image: linear-gradient(to right, transparent 0%, black 4%, black 96%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 4%, black 96%, transparent 100%);
}
.gc-top-marquee-track {
  display: flex;
  gap: 3rem;
  animation: scrollMarquee 34s linear infinite;
  will-change: transform;
  flex-shrink: 0;
}
.gc-top-marquee-track:hover {
  animation-play-state: paused;
}
.marquee-content {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255,255,255,.82);
  letter-spacing: 0.3px;
}
@keyframes scrollMarquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(calc(-50% - 1.5rem)); }
}
.utility-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: #22c55e; flex-shrink: 0;
  box-shadow: 0 0 0 3px rgba(34,197,94,.25);
  animation: ub-pulse 2.2s ease-in-out infinite;
}
@keyframes ub-pulse {
  0%,100% { box-shadow: 0 0 0 3px rgba(34,197,94,.25); }
  50% { box-shadow: 0 0 0 5px rgba(34,197,94,.1); }
}
.utility-bar-sep { color: rgba(255,255,255,.25); flex-shrink: 0; }
.utility-bar-locs { color: rgba(255,255,255,.55); font-size: 11.5px; }
.utility-bar-right {
  display: flex; align-items: center; gap: 14px; flex-shrink: 0;
  font-size: 12px; color: rgba(255,255,255,.7);
}
.utility-bar-phone {
  display: flex; align-items: center; gap: 5px;
  color: rgba(255,255,255,.85); text-decoration: none;
  font-weight: 600; font-size: 12px; transition: color .15s;
}
.utility-bar-phone:hover { color: #fff; }
.utility-bar-lang, .utility-bar-cur {
  display: flex; align-items: center; gap: 4px;
  font-size: 11.5px; font-weight: 600; color: rgba(255,255,255,.7);
}

/* Utility bar interactive dropdowns */
.ub-dd { position: relative; }
.ub-dd-btn {
  display: flex; align-items: center; gap: 4px;
  background: none; border: none; cursor: pointer;
  font-size: 11.5px; font-weight: 600; color: rgba(255,255,255,.7);
  padding: 2px 5px; border-radius: 5px;
  transition: background .15s, color .15s;
  white-space: nowrap; line-height: 1;
}
.ub-dd-btn:hover,
.ub-dd.open .ub-dd-btn { background: rgba(255,255,255,.12); color: #fff; }
.ub-dd-chevron { transition: transform .2s; flex-shrink: 0; }
.ub-dd.open .ub-dd-chevron { transform: rotate(180deg); }
.ub-dd-menu {
  display: none;
  position: absolute; top: calc(100% + 6px); right: 0;
  min-width: 110px;
  background: #0f1f6e; border: 1px solid rgba(255,255,255,.15);
  border-radius: 10px; padding: 4px;
  box-shadow: 0 8px 24px rgba(0,0,0,.35);
  z-index: 500;
}
.ub-dd.open .ub-dd-menu { display: flex; flex-direction: column; gap: 1px; animation: dd-in .15s ease forwards; }
.ub-dd-item {
  display: flex !important; align-items: center !important; gap: 8px !important;
  width: 100%; text-align: left;
  font-size: 12px; font-weight: 600; color: rgba(255,255,255,.75);
  background: transparent; border: none; cursor: pointer;
  padding: 6px 10px; border-radius: 7px;
  text-decoration: none; white-space: nowrap; transition: all .12s;
}
.ub-dd-item:hover { background: rgba(255,255,255,.12); color: #fff; }
.ub-dd-item-active { background: rgba(255,255,255,.18) !important; color: #fff !important; }

/* Language flag icons */
.ub-dd-btn, .ub-cur-lang-btn, .nav-dd-item {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}
/* EMERGENCY FLAG SIZE FIX */
.ub-cur-lang-btn img,
.ub-dd-btn img,
.ub-dd-item img,
.nav-dd-item img,
img.lang-flag-icon {
  width: 16px !important;
  height: 12px !important;
  max-width: 16px !important;
  max-height: 12px !important;
  min-width: 16px !important;
  min-height: 12px !important;
  object-fit: cover !important;
  border-radius: 2px !important;
  box-shadow: 0 1px 3px rgba(0,0,0,.15) !important;
  flex-shrink: 0 !important;
  display: inline-block !important;
  vertical-align: middle !important;
  margin: 0 !important;
  padding: 0 !important;
  image-rendering: -webkit-optimize-contrast;
}
.lang-flag-icon {
  width: 16px !important;
  height: 12px !important;
  max-width: 16px !important;
  max-height: 12px !important;
  min-width: 16px !important;
  min-height: 12px !important;
  object-fit: cover !important;
  border-radius: 2px !important;
  box-shadow: 0 1px 3px rgba(0,0,0,.15) !important;
  flex-shrink: 0 !important;
  display: inline-block !important;
  vertical-align: middle !important;
  margin: 0 !important;
  padding: 0 !important;
  image-rendering: -webkit-optimize-contrast;
}

@media (max-width: 768px) {
  .utility-bar-phone { display: none; }
  .gc-top-marquee-track { animation-duration: 22s; }
}
@media (max-width: 480px) {
  .marquee-content { font-size: 11px; }
}

/* ============================================================
   FLEET AVAILABILITY BANNER
   ============================================================ */
.fleet-avail-bar {
  background: var(--g50); border-bottom: 1px solid var(--g100);
  padding: 10px 0;
}
.fleet-avail-bar ~ .gc-section { padding-top: 24px; }
.fleet-avail-inner {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  font-size: 13px; font-weight: 600; color: var(--g800);
}
/* pulsing dot badge */
.fleet-avail-badge {
  display: flex; align-items: center; gap: 8px;
}
.fleet-avail-dot {
  width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0;
  background: #16a34a;
  animation: gc-pulse-dot 2s ease-in-out infinite;
}
@keyframes gc-pulse-dot {
  0%,100% { box-shadow: 0 0 0 0 rgba(22,163,74,.55); }
  50%      { box-shadow: 0 0 0 5px rgba(22,163,74,0); }
}
.fleet-avail-count { font-weight: 600; }
.fleet-avail-count strong { font-weight: 800; color: var(--g900); font-variant-numeric: tabular-nums; }
.fleet-avail-check { color: #16a34a; font-size: 15px; font-weight: 800; flex-shrink: 0; }
.fleet-avail-sep { color: var(--g200); font-size: 16px; font-weight: 300; flex-shrink: 0; }
.fleet-avail-info { color: var(--ink-light); font-weight: 500; }
@media (max-width: 640px) {
  .fleet-avail-sep { display: none; }
  .fleet-avail-inner { justify-content: center; flex-direction: column; gap: 4px; text-align: center; }
  .fleet-avail-info { font-size: 12px; color: var(--ink-light); }
}

/* ============================================================
   FLEET FILTER REDESIGN
   ============================================================ */
.fleet-filter-bar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap; margin-bottom: 28px;
}
.fleet-filter-pills {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.fleet-filter-sort {
  display: flex; align-items: center; gap: 8px;
  font-size: 12px; color: var(--ink-light); font-weight: 500; flex-shrink: 0;
}
.fleet-sort-select {
  border: 1.5px solid var(--border); border-radius: var(--rmd);
  padding: 6px 28px 6px 10px; font-size: 12px; font-weight: 600;
  color: var(--ink); background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 8px center;
  -webkit-appearance: none; appearance: none; cursor: pointer;
}
.filter-pill {
  display: flex; align-items: center; gap: 6px;
  padding: 6px 14px; border-radius: 100px;
  border: 1.5px solid var(--border); background: var(--white);
  font-size: 13px; font-weight: 600; color: var(--ink-light);
  cursor: pointer; transition: all .15s; white-space: nowrap;
}
.filter-pill .pill-count {
  background: var(--g100); color: var(--g700);
  font-size: 11px; font-weight: 700; padding: 1px 7px;
  border-radius: 100px; transition: all .15s;
}
.filter-pill:hover { border-color: var(--g600); color: var(--g700); }
.filter-pill.active {
  background: var(--g900); color: #fff; border-color: var(--g900);
}
.filter-pill.active .pill-count { background: rgba(255,255,255,.2); color: #fff; }

/* ============================================================
   CAN'T DECIDE SECTION
   ============================================================ */
.gc-cant-decide {
  background: var(--g900);
  padding: 36px 0; margin-top: 56px; color: var(--white);
}
.gc-cant-decide h3 {
  font-size: 1.5rem; font-weight: 800; color: var(--white);
  margin-bottom: 8px; letter-spacing: -.3px;
}
.gc-cant-decide h3 em { font-style: italic; color: var(--g400); }
.gc-cant-decide p { font-size: 14px; color: rgba(255,255,255,.65); max-width: 420px; line-height: 1.7; }
.gc-cant-decide-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; flex-wrap: wrap; width: 100%;
}
.gc-cant-decide-btns { display: flex; gap: 12px; flex-wrap: wrap; flex-shrink: 0; }
.btn-wa-outline {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 20px; border-radius: var(--rmd);
  border: 2px solid #25D366; color: #25D366;
  font-weight: 700; font-size: 14px; text-decoration: none;
  transition: background .18s, color .18s;
}
.btn-wa-outline:hover { background: #25D366; color: #fff; }
.btn-call-outline {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 20px; border-radius: var(--rmd);
  border: 2px solid rgba(255,255,255,.3); color: rgba(255,255,255,.85);
  font-weight: 700; font-size: 14px; text-decoration: none;
  transition: border-color .18s, color .18s;
}
.btn-call-outline:hover { border-color: rgba(255,255,255,.8); color: #fff; }
@media (max-width: 640px) {
  .gc-cant-decide { padding: 28px 24px; }
  .gc-cant-decide-inner { text-align: center; justify-content: center; }
  .gc-cant-decide-btns { justify-content: center; }
}

/* ============================================================
   BLOG SIDEBAR – READY FOR THIS TRIP CARD
   ============================================================ */
.sidebar-trip-card {
  background: #0D1B2E; border-radius: var(--rlg);
  padding: 0; overflow: hidden; margin-bottom: 20px;
}
.stc-label {
  display: inline-block;
  font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: rgba(255,255,255,.55); background: rgba(255,255,255,.1);
  border-radius: 100px; padding: 5px 12px; margin: 16px 20px 0;
}
.stc-badge {
  display: inline-block; margin: 6px 20px 0;
  background: rgba(255,255,255,.1); color: rgba(255,255,255,.65);
  font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .08em; padding: 3px 10px; border-radius: 100px;
}
.stc-img-wrap {
  margin: 12px 14px 0; background: rgba(255,255,255,.07);
  border-radius: 12px; aspect-ratio: 16/9; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  position: relative;
}
.stc-img-wrap img { width: 100%; height: 100%; object-fit: contain; padding: 10px; }
.stc-img-badge {
  position: absolute; top: 8px; left: 8px;
  background: rgba(0,0,0,.5); backdrop-filter: blur(6px);
  color: #fff; font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .07em;
  padding: 4px 10px; border-radius: 6px;
}
.stc-img-placeholder {
  margin: 12px 14px 0; background: rgba(255,255,255,.07); border-radius: 12px;
  height: 100px; display: flex; align-items: center; justify-content: center;
}
.stc-title {
  font-size: 17px; font-weight: 800; color: #fff;
  padding: 14px 20px 2px; margin: 0;
}
.stc-price {
  font-size: 28px; font-weight: 800; color: #FF9110;
  padding: 8px 20px 4px; letter-spacing: -.5px; line-height: 1;
}
.stc-price span { font-size: 15px; font-weight: 500; color: rgba(255,255,255,.45); }
.stc-btn {
  display: block; margin: 14px 20px;
  background: #FF9110; color: #fff;
  padding: 13px 20px; border-radius: 100px;
  font-size: 14px; font-weight: 700; text-decoration: none;
  text-align: center; transition: background .15s, transform .15s;
}
.stc-btn:hover { background: #e07c00; transform: translateY(-1px); color: #fff; }
.stc-features {
  list-style: none; margin: 0; padding: 0 20px 18px; display: flex; flex-direction: column; gap: 7px;
}
.stc-features li {
  font-size: 12px; color: rgba(255,255,255,.6); padding-left: 18px; position: relative;
}
.stc-features li::before {
  content: '✓'; position: absolute; left: 0;
  color: #22c55e; font-weight: 800;
}

/* Carousel */
.stc-carousel-wrap { padding: 0; }
.stc-img-outer {
  position: relative; margin: 12px 14px 0;
  display: flex; align-items: center; gap: 0;
}
.stc-img-outer .stc-img-wrap { flex: 1; margin: 0; }
.stc-arrow {
  flex-shrink: 0; background: rgba(255,255,255,.15); border: none; color: #fff;
  width: 30px; height: 30px; border-radius: 50%; cursor: pointer;
  font-size: 14px; display: flex; align-items: center; justify-content: center;
  transition: background .15s; z-index: 2;
}
.stc-arrow:hover { background: rgba(255,255,255,.3); }
.stc-arrow:focus-visible { outline: 2px solid #FF9110; outline-offset: 2px; }
.stc-dots { display: flex; justify-content: center; gap: 6px; padding: 10px 0 4px; }
.stc-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: rgba(255,255,255,.25); border: none; cursor: pointer; padding: 0; transition: all .15s;
}
.stc-dot-active { background: #FF9110; width: 16px; border-radius: 3px; }

/* Share buttons */
.share-btns { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.share-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px; border-radius: var(--rmd);
  font-size: 12px; font-weight: 700; cursor: pointer;
  border: 1.5px solid var(--border); background: var(--white);
  color: var(--ink); text-decoration: none; transition: all .15s;
}
.share-btn:hover { border-color: var(--g600); color: var(--g900); }
.share-btn-wa { background: #25D366; color: #fff; border-color: #25D366; }
.share-btn-wa:hover { background: #1ebe5d; color: #fff; border-color: #1ebe5d; }
.share-btn-fb { background: #1877F2; color: #fff; border-color: #1877F2; }
.share-btn-fb:hover { background: #1565d8; color: #fff; border-color: #1565d8; }
.share-btn-copy { font-family: inherit; }

/* ============================================================
   404 PAGE
   ============================================================ */
.error-404-wrap { text-align: center; padding: 100px 24px 80px; }
.error-404-num {
  font-size: clamp(100px,22vw,200px); font-weight: 900;
  color: #0EA5E9; line-height: 1; margin-bottom: 0;
  font-style: italic; letter-spacing: -4px;
}
.error-404-title {
  font-size: clamp(1.5rem,4vw,2.2rem); font-weight: 800;
  color: var(--ink); margin: 12px 0 16px;
}
.error-404-title em { font-style: italic; color: #0EA5E9; }
.error-404-p {
  font-size: 15px; color: var(--ink-light); margin-bottom: 36px;
  max-width: 460px; margin-left: auto; margin-right: auto; line-height: 1.7;
}
.error-404-actions {
  display: flex; gap: 12px; justify-content: center; flex-wrap: wrap;
}

/* ============================================================
   ANIMATIONS / REVEAL
   ============================================================ */
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .6s ease, transform .6s ease; }
.reveal.visible { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: .1s; }
.reveal-delay-2 { transition-delay: .2s; }
.reveal-delay-3 { transition-delay: .3s; }

/* ============================================================
   CURRENCY VISIBILITY
   ============================================================ */
.price-usd, .price-mad { display: none; }
[data-currency="USD"] .price-eur, [data-currency="USD"] .price-mad { display: none; }
[data-currency="USD"] .price-usd { display: inline; }
[data-currency="MAD"] .price-eur, [data-currency="MAD"] .price-usd { display: none; }
[data-currency="MAD"] .price-mad { display: inline; }

/* ============================================================
   BOOKING PAGE
   ============================================================ */

/* Header */
.bk-header {
  background: #00179e;
  position: relative; z-index: 1; overflow: visible;
}
.bk-header::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(-45deg, rgba(255,255,255,.015) 0, rgba(255,255,255,.015) 1px, transparent 1px, transparent 12px);
}
.bk-header-inner {
  max-width: var(--container); margin: 0 auto;
  padding: 52px 5% 64px; position: relative; z-index: 1;
}
.bk-kicker {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
  color: #60A5FA; margin-bottom: 14px;
}
.bk-kicker::before { content: ''; width: 20px; height: 2px; background: #60A5FA; }
.bk-h1 {
  font-family: var(--fhead);
  font-size: clamp(30px, 4.5vw, 52px);
  font-weight: 800; color: var(--white);
  line-height: 1.06; letter-spacing: -1px; margin-bottom: 12px;
}
.bk-h1 em { font-style: italic; color: var(--g600); font-family: var(--fserif); font-weight: 600; }
.bk-sub { font-size: 15px; color: rgba(255,255,255,.65); line-height: 1.6; margin-bottom: 0; }

/* Search card — white card overlapping blue header */
.bk-search-card-wrap {
  max-width: 1200px; margin: -44px auto 0;
  padding: 0 24px; position: relative; z-index: 10;
}
.bk-search-card {
  background: #fff; border-radius: 16px;
  padding: 20px 24px;
  box-shadow: 0 4px 24px rgba(0,23,158,.10);
  border: 1px solid #DBEAFE;
}

/* Car selection banner */
.bk-car-banner {
  background: #EFF6FF; border-radius: 8px;
  padding: 8px 14px; font-size: 13px;
  color: #00179e; font-weight: 600;
  margin-bottom: 16px; display: flex; align-items: center; gap: 6px;
}

/* 4-column field grid: location-group | pickup | return | search */
.bk-fields-grid {
  display: grid;
  grid-template-columns: minmax(220px, 1.8fr) minmax(200px, 1.4fr) minmax(200px, 1.4fr) minmax(130px, auto);
  gap: 10px; align-items: start;
  padding-bottom: 20px;
}
.bk-field { display: flex; flex-direction: column; gap: 0; min-width: 0; position: relative; }
/* Location group: stacks pickup + return fields vertically in the left column */
.bk-loc-group { display: flex; flex-direction: column; gap: 0; min-width: 0; }
.bk-field-lbl {
  font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: #6B7280; margin-bottom: 4px; display: block;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Field inputs / selects */
.bk-select {
  width: 100%; padding: 12px 16px;
  border: 1.5px solid #DBEAFE; border-radius: 10px;
  font-size: 14px; font-family: inherit;
  background: #F8FAFF; color: #0D1F18;
  outline: none; transition: border-color .2s, background .2s;
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; padding-right: 36px;
}
.bk-select:focus { border-color: #00179e; background-color: #fff; }

/* DTP button — white card style */
.bk-dtp-btn {
  height: 42px; width: 100%;
  background: #F8FAFF; border: 1.5px solid #DBEAFE;
  border-radius: 10px; color: #0D1F18;
  display: flex; align-items: center; gap: 6px;
  padding: 0 14px; cursor: pointer; font-size: 13px; font-weight: 400;
  font-family: inherit; transition: border-color .2s, background .2s; text-align: left;
}
.bk-dtp-btn:hover { border-color: #00179e; background: #fff; }
.bk-dtp-btn .sf-dtp-icon { position: static; transform: none; width: 16px; height: 16px; flex-shrink: 0; color: #6B7280; }
.bk-dtp-btn span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #9CA3AF; }
.bk-dtp-btn span.dtp-val-filled { color: #0D1F18; font-weight: 600; }

/* Error state */
.bk-date-error .bk-dtp-btn { border-color: #FCA5A5; background: #FEF2F2; }
.bk-date-error-msg {
  position: absolute;
  bottom: -16px;
  left: 4px;
  font-size: 10px !important;
  line-height: 1;
  color: #DC2626;
  margin: 0 !important;
  padding: 0 !important;
  white-space: nowrap;
}

/* Meta row: toggle + currency */
.bk-meta-row {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 10px; margin-top: 0;
}

/* Toggle (legacy — superseded by .sf-checkbox-row) */
.bk-toggle-label, .bk-toggle-track, .bk-toggle-thumb { display: none; }

/* Currency inline */
.bk-currency-group { display: flex; align-items: center; gap: 8px; }
.bk-currency-group .bk-field-lbl { margin-bottom: 0; white-space: nowrap; }
.bk-currency-sel {
  width: auto; min-width: 110px;
  padding: 9px 36px 9px 14px;
  border-radius: 10px;
  font-size: 13px; font-weight: 600;
  color: var(--ink);
  background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 12px center;
  border: 1.5px solid var(--g200);
  cursor: pointer;
  appearance: none; -webkit-appearance: none;
  outline: none; transition: border-color .2s, box-shadow .2s;
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.bk-currency-sel:hover { border-color: var(--g400); box-shadow: 0 2px 8px rgba(0,0,0,.1); }
.bk-currency-sel:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(0,23,158,.1); }

/* Drop-off field (animated via JS gcToggleSameLoc) */
.bk-dropoff-wrap {
  width: 100%;
  max-width: 100%;
}

/* Search button — inline in grid */
.bk-field-btn { flex-shrink: 0; }
.bk-search-btn {
  height: 46px; padding: 0 22px; white-space: nowrap; min-width: 130px;
  background: linear-gradient(135deg, #00179e 0%, #0EA5E9 100%);
  color: #fff; border: none; border-radius: 10px;
  font-size: 14px; font-weight: 700; font-family: inherit;
  display: flex; align-items: center; justify-content: center; gap: 7px;
  cursor: pointer; transition: all .2s;
}
.bk-search-btn:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(0,23,158,.3); }

/* Results section */
.bk-results { background: var(--bg); padding-top: 32px; }
.bk-results-bar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; margin-bottom: 24px; flex-wrap: wrap;
  background: var(--white);
  border: 1px solid var(--g100);
  border-radius: var(--rlg);
  padding: 14px 20px;
  box-shadow: 0 1px 6px rgba(0,23,158,.06);
}
.bk-count {
  font-size: 14px; color: var(--ink-mid); font-weight: 500;
  display: flex; align-items: center; gap: 10px;
}
.bk-count strong {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 30px; height: 30px; padding: 0 9px;
  background: var(--g50); color: var(--g900);
  font-size: 14px; font-weight: 800;
  border-radius: 8px; border: 1px solid var(--g100);
}
.bk-sort { display: flex; align-items: center; gap: 8px; }
.bk-sort-lbl { font-size: 13px; color: var(--ink-light); font-weight: 600; white-space: nowrap; }
.bk-sort-sel {
  padding: 9px 36px 9px 14px;
  border-radius: 10px;
  font-size: 13px; font-weight: 600;
  color: var(--ink);
  background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 12px center;
  border: 1.5px solid var(--g200);
  cursor: pointer;
  appearance: none; -webkit-appearance: none;
  outline: none; transition: border-color .2s, box-shadow .2s;
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.bk-sort-sel:hover { border-color: var(--g400); box-shadow: 0 2px 8px rgba(0,0,0,.1); }
.bk-sort-sel:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(0,23,158,.1); }

/* Car list */
.bk-cars-list { display: flex; flex-direction: column; gap: 16px; }

/* Car card — horizontal 3-col */
.bk-car-card {
  display: grid; grid-template-columns: 240px 1fr auto;
  background: var(--white); border: none;
  border-radius: var(--rlg); overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,0.04), 0 1px 3px rgba(0,0,0,0.02);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.bk-car-card:hover { box-shadow: 0 12px 30px rgba(0,0,0,0.08); transform: translateY(-4px); }

/* Image col */
.bk-car-img {
  position: relative;
  background: #ffffff;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden; min-height: 220px;
}
.bk-car-img img {
  max-width: 100%;
  width: auto; height: auto;
  object-fit: contain;
  object-position: center;
  display: block;
  margin: auto;
  padding: 16px;
  box-sizing: border-box;
  transition: transform .4s;
  filter: drop-shadow(0 6px 14px rgba(0,23,158,.15));
}
.bk-car-card:hover .bk-car-img img { transform: scale(1.05); }
.bk-car-img svg { width: 150px; opacity: .85; }
.bk-cat-tag {
  position: absolute; top: 12px; left: 12px;
  background: var(--g100); color: var(--g800);
  font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; padding: 4px 10px; border-radius: 100px;
}

/* Info col */
.bk-car-info {
  padding: 22px 22px;
  display: flex; flex-direction: column; justify-content: space-between;
  border-right: 1px solid var(--g100);
}
.bk-car-meta { display: flex; flex-direction: column; gap: 4px; }
.bk-car-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.bk-badge { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 100px; font-size: 11px; font-weight: 700; letter-spacing: .03em; line-height: 1.6; }
.bk-badge-cat { background: #F1F5F9; color: #475569; border: 1px solid #E2E8F0; }
.bk-badge-sel { background: #ff9110; color: #fff; }
.bk-car-name { font-size: 22px; font-weight: 700; color: #0f172a; letter-spacing: -.3px; margin: 0 0 10px; }
.bk-car-desc { font-size: 12px; font-weight: 400; color: #6B7280; margin: 8px 0 0; font-style: italic; line-height: 1.4; display: block; }
.bk-perks-row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.bk-perk { display: inline-flex; align-items: center; gap: 4px; background: #F0FDF4; border: 1px solid #BBF7D0; border-radius: 100px; padding: 3px 10px; font-size: 11px; font-weight: 600; color: #16A34A; white-space: nowrap; }

/* Spec chips */
.bk-specs-row { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 8px; }
.bk-spec-chip {
  display: inline-flex; align-items: center; gap: 4px;
  background: #F1F5F9; border: none;
  border-radius: 100px; padding: 4px 10px;
  font-size: 12px; font-weight: 500; color: #475569; white-space: nowrap;
}
.bk-spec-icon {
  width: 24px; height: 24px; border-radius: 7px;
  background: #fff; border: 1px solid #DBEAFE;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.bk-spec-icon svg { width: 12px; height: 12px; stroke: #00179e; }

/* Price col */
.bk-car-price {
  padding: 24px 28px; min-width: 190px;
  background: #F6F9FF;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
}
.bk-day-price { display: flex; align-items: baseline; gap: 4px; }
.bk-price-num { font-size: 34px; font-weight: 800; color: var(--g900); letter-spacing: -1px; line-height: 1; }
.bk-price-unit { font-size: 13px; color: var(--ink-light); }
.bk-total {
  width: 100%; text-align: center;
  background: var(--g50); border-radius: 8px; padding: 8px 14px;
  display: flex; flex-direction: column; gap: 2px;
}
.bk-total-lbl { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-light); }
.bk-total-num { font-size: 18px; font-weight: 800; color: var(--g800); }
.bk-price-na { font-size: 14px; color: var(--ink-light); text-align: center; }
.bk-book-btn {
  width: 100%; padding: 12px 24px;
  background: #FF9110; color: var(--white);
  border: none; border-radius: 8px;
  font-size: 15px; font-weight: 600; font-family: inherit;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  text-decoration: none; cursor: pointer; transition: all .2s ease;
  box-shadow: 0 4px 12px rgba(255,145,16,0.30);
  -webkit-appearance: none;
}
.bk-book-btn:hover { background: #e07d00; transform: translateY(-1px); box-shadow: 0 8px 24px rgba(255,145,16,0.40); }

/* Selected car highlight */
.bk-car-selected { border-color: #00179e !important; box-shadow: 0 0 0 2px #00179e, 0 8px 32px rgba(0,23,158,.15); }
.bk-car-selected .bk-car-img { position: relative; }
.bk-selected-badge {
  position: absolute; bottom: 10px; left: 12px;
  background: #00179e; color: #fff;
  font-size: 10px; font-weight: 800; text-transform: uppercase;
  letter-spacing: .07em; padding: 4px 10px; border-radius: 100px;
}
.bk-book-btn--selected {
  background: #001480;
}
.bk-book-btn--selected:hover { background: #001269; box-shadow: 0 6px 20px rgba(0,23,158,.35); }

/* ============================================================
   PREMIUM CAR CARD v2 — 3-column grid (bk-img-zone / bk-info-col / bk-action-col)
   ============================================================ */

/* Theme palette — image zone bg */
.bk-theme-economy .bk-img-zone { background: linear-gradient(160deg,#dbeafe 0%,#eff6ff 50%,#f0f9ff 100%); }
.bk-theme-compact .bk-img-zone { background: linear-gradient(160deg,#fdf4ff 0%,#f5f3ff 100%); }
.bk-theme-premium .bk-img-zone { background: linear-gradient(160deg,#fff7ed 0%,#fef3c7 100%); }

/* Theme palette — category pill */
.bk-theme-economy .bk-cat-pill { background:rgba(255,255,255,.22); border-color:rgba(255,255,255,.35); }
.bk-theme-compact .bk-cat-pill { background:rgba(124,58,237,.28);  border-color:rgba(167,139,250,.40); }
.bk-theme-premium .bk-cat-pill { background:rgba(234,88,12,.28);   border-color:rgba(251,146,60,.40); }

/* Theme palette — total chip */
.bk-theme-economy .bk-total-chip { background:#eff6ff; }
.bk-theme-economy .bk-total-chip-num { color:#00179e; }
.bk-theme-compact .bk-total-chip { background:#f5f3ff; }
.bk-theme-compact .bk-total-chip-num { color:#6d28d9; }
.bk-theme-premium .bk-total-chip { background:#fff7ed; }
.bk-theme-premium .bk-total-chip-num { color:#ea580c; }

/* Theme palette — action column bg & button gradient */
.bk-theme-economy .bk-action-col { background:#f8fbff; }
.bk-theme-compact .bk-action-col { background:#faf9ff; }
.bk-theme-premium .bk-action-col { background:#fff9f5; }
.bk-theme-economy .bk-action-col .bk-book-btn { background: #FF9110; box-shadow: 0 4px 12px rgba(255,145,16,0.30); }
.bk-theme-compact .bk-action-col .bk-book-btn { background: #FF9110; box-shadow: 0 4px 12px rgba(255,145,16,0.30); }
.bk-theme-premium .bk-action-col .bk-book-btn { background: #FF9110; box-shadow: 0 4px 12px rgba(255,145,16,0.30); }
.bk-car-selected .bk-action-col .bk-book-btn { background: #00179e !important; box-shadow: 0 4px 12px rgba(0,23,158,0.30) !important; }

/* Image zone */
.bk-img-zone {
  position: relative;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden; min-height: 200px;
}
.bk-img-zone::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to top,rgba(0,0,0,.46) 0%,transparent 55%);
  pointer-events: none;
}
.bk-img-zone img {
  position: absolute; z-index: 1;
  top: 42%; left: 50%;
  transform: translate(-50%, -50%);
  max-width: 92%; max-height: 165px;
  height: auto; object-fit: contain;
  display: block;
  transition: transform .3s ease;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,.15));
}
.bk-car-card:hover .bk-img-zone img { transform: translate(-50%, -50%) scale(1.05); }
.bk-img-zone .bk-car-svg { position: relative; z-index: 1; width: 170px; height: auto; }

/* Floating tags on image */
.bk-cat-pill {
  position: absolute; top: 10px; left: 10px; z-index: 3;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  color: #fff; font-size: 9px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .08em;
  padding: 3px 10px; border-radius: 100px; border: 1px solid rgba(255,255,255,.35);
}
.bk-badge-pill {
  position: absolute; top: 10px; right: 10px; z-index: 3;
  background: rgba(255,145,16,.9); color: #fff;
  font-size: 8px; font-weight: 800;
  padding: 3px 9px; border-radius: 100px;
}

/* FROM price overlay — bottom-left of image zone */
.bk-img-price {
  position: absolute; bottom: 10px; left: 12px; z-index: 3;
  display: flex; flex-direction: column; gap: 1px;
}
.bk-img-price-lbl {
  font-size: 9px; font-weight: 700;
  color: rgba(255,255,255,.72); text-transform: uppercase; letter-spacing: .07em;
}
.bk-img-price-row { display: flex; align-items: baseline; gap: 3px; }
.bk-img-price-num {
  font-size: 26px; font-weight: 800; color: #fff;
  letter-spacing: -1px; line-height: 1;
  text-shadow: 0 2px 8px rgba(0,0,0,.3);
}
.bk-img-price-unit { font-size: 13px; font-weight: 600; color: rgba(255,255,255,.78); }

/* Center info column */
.bk-info-col {
  padding: 18px 22px;
  display: flex; flex-direction: column; justify-content: center;
  border-right: 1px solid #f1f5f9;
}
.bk-sel-badge {
  display: inline-flex; align-items: center; gap: 4px;
  background: #ff9110; color: #fff;
  font-size: 10px; font-weight: 800;
  padding: 3px 10px; border-radius: 100px;
  margin-bottom: 10px; align-self: flex-start;
}
.bk-name-row {
  display: flex; align-items: flex-start;
  justify-content: space-between; gap: 10px;
}
.bk-name-col { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.bk-meta-text {
  font-size: 11px; font-weight: 600; color: #94a3b8;
  text-transform: uppercase; letter-spacing: .06em; margin: 3px 0 10px;
}

/* Total price chip (right side of name-row) */
.bk-total-chip {
  border-radius: 12px; padding: 8px 14px;
  text-align: center; flex-shrink: 0;
  display: flex; flex-direction: column; align-items: center; align-self: flex-start;
}
.bk-total-chip-lbl {
  font-size: 9px; font-weight: 700; color: #64748b;
  text-transform: uppercase; letter-spacing: .07em;
  display: block; white-space: nowrap;
}
.bk-total-chip-num {
  font-size: 18px; font-weight: 800;
  letter-spacing: -.4px; display: block; white-space: nowrap;
}

/* Right action column */
.bk-action-col {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  padding: 22px 20px; min-width: 158px;
}
.bk-action-col .bk-book-btn {
  width: 100%; padding: 14px 16px;
  color: #fff; text-align: center;
  border-radius: 14px; font-size: 14px; font-weight: 800;
  letter-spacing: .01em; text-decoration: none;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  transition: filter .2s, transform .2s;
}
.bk-action-col .bk-book-btn:hover { filter: brightness(1.09); transform: translateY(-1px); }
.bk-action-col .bk-book-btn svg { width: 15px; height: 15px; flex-shrink: 0; }

/* Responsive overrides */
@media (max-width: 860px) {
  .bk-car-card:has(.bk-img-zone) { grid-template-columns: 190px 1fr; }
  .bk-car-card:has(.bk-img-zone) .bk-action-col { grid-column: span 2; padding: 14px 20px; flex-direction: row; border-top: 1px solid #f1f5f9; }
  .bk-car-card:has(.bk-img-zone) .bk-action-col .bk-book-btn { flex: 1; }
}
@media (max-width: 768px) {
  .bk-name-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; width: 100%; }
  .bk-name-col { flex: 1; min-width: 0; }
  .bk-car-name { font-size: 18px; margin: 0; }
  .bk-total-chip { display: flex; flex-shrink: 0; padding: 5px 10px; border-radius: 12px; align-self: flex-start; margin-top: -6px !important; }
  .bk-total-chip-num { font-size: 15px; }
  .bk-total-chip-lbl { font-size: 8px; }
  .bk-specs-row { display: flex; flex-wrap: nowrap !important; overflow-x: visible; gap: 6px; width: 100%; margin-top: 10px; }
  .bk-car-card .vspec { font-size: 10px; padding: 3px 6px; white-space: nowrap; }
}
@media (max-width: 560px) {
  .bk-car-card:has(.bk-img-zone) { grid-template-columns: 1fr; }
  .bk-img-zone { min-height: 160px; }
  .bk-info-col { padding: 14px 16px; border-right: none; border-top: 1px solid #f1f5f9; }
  .bk-car-card:has(.bk-img-zone) .bk-action-col { grid-column: 1; padding: 12px 16px; }
  .bk-img-price-num { font-size: 22px; }
}

/* ============================================================
   CAR CARD v3 — cc-left / cc-center / cc-right columns
   (Booking listing page — prototype pixel-perfect clone)
   ============================================================ */

/* Override grid: auto right column so "1750 MAD" never overflows */
.bk-car-card:has(.cc-left) {
  grid-template-columns: 240px 1fr auto;
  border: 1px solid rgba(0,23,158,.1);
  border-radius: 16px;
  box-shadow: 0 2px 18px rgba(0,23,158,.06);
  overflow: hidden;
  position: relative;
  transition: box-shadow .28s, border-color .28s, transform .28s;
}
.bk-car-card:has(.cc-left):hover {
  box-shadow: 0 10px 44px rgba(0,23,158,.13);
  border-color: rgba(0,23,158,.2);
  transform: translateY(-2px);
}

/* Title */
.bk-car-card:has(.cc-left) .bk-car-name {
  font-size: 22px !important;
  font-weight: 800 !important;
  color: #00179e;
  letter-spacing: -.5px;
  line-height: 1.1;
  margin: 0;
  font-family: var(--fhead);
}

/* 'Or Similar' secondary text inside the title */
.bk-car-name .cc-or-similar {
  font-size: 15px;
  font-weight: 500;
  color: #64748b;
  font-style: italic;
  letter-spacing: 0;
  margin-left: 4px;
  text-transform: none;
}

/* Subtitle */
.bk-car-card:has(.cc-left) .bk-meta-text {
  text-transform: none;
  font-size: 13px;
  font-style: italic;
  color: #6B7280;
  font-weight: 500;
  letter-spacing: .01em;
  margin: 0;
}

/* ── LEFT column (image zone) ── */
.cc-left {
  background: linear-gradient(140deg, #EFF6FF 0%, #EEF2FF 100%);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  padding: 24px 20px; position: relative;
  min-height: 185px;
  border-right: 1px solid #DBEAFE;
  overflow: hidden;
}
.cc-cat-badge {
  position: absolute; top: 12px; left: 12px;
  background: #fff; color: #00179e;
  font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .07em;
  padding: 4px 10px; border-radius: 100px;
  border: 1px solid rgba(0,23,158,.12);
  box-shadow: 0 1px 6px rgba(0,23,158,.08);
  white-space: nowrap; z-index: 2;
}
.cc-hot-badge {
  position: absolute; top: 12px; right: 12px;
  background: #FF9110; color: #fff;
  font-size: 10px; font-weight: 700;
  padding: 4px 10px; border-radius: 100px;
  white-space: nowrap; z-index: 2;
  box-shadow: 0 2px 8px rgba(255,145,16,.3);
}
.cc-left img {
  width: 100%; max-height: 155px;
  height: auto; object-fit: contain; display: block;
  filter: drop-shadow(0 4px 12px rgba(0,23,158,.12));
  transition: transform .45s cubic-bezier(.25,.46,.45,.94);
  position: relative; z-index: 1;
}
.bk-car-card:hover .cc-left img { transform: scale(1.08) translateX(5px); }

/* White bg, tighter padding, larger images */
.bk-car-card:has(.cc-left) .cc-left {
  background: #ffffff !important;
  padding: 10px 16px !important;
}
.bk-car-card:has(.cc-left) .cc-left img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  transform: scale(1) !important;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.bk-car-card:has(.cc-left):hover .cc-left img {
  transform: scale(1.06) translateX(3px) !important;
}

.cc-car-svg {
  width: 190px; height: auto; opacity: .85;
  transition: transform .45s cubic-bezier(.25,.46,.45,.94);
  filter: drop-shadow(0 4px 12px rgba(0,23,158,.12));
}
.bk-car-card:hover .cc-car-svg { transform: scale(1.08) translateX(5px); }

/* ── CENTER column (info zone) ── */
.cc-center {
  padding: 22px 24px;
  display: flex; flex-direction: column;
  justify-content: center; gap: 10px;
  min-width: 0;
}

/* Spec chips */
.bk-specs-row { display: flex; gap: 6px; flex-wrap: wrap; margin: 0; }
.vspec {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 12px; font-weight: 600; color: #374151;
  background: #EFF6FF; border: 1px solid #DBEAFE;
  padding: 4px 10px; border-radius: 100px;
}
.vspec svg { width: 12px; height: 12px; }

/* Feature / perk pills */
.cc-perks-row { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.cc-perk {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11px; font-weight: 700;
  border-radius: 100px; padding: 4px 10px;
  white-space: nowrap; letter-spacing: .01em; line-height: 1.5;
}
.cc-perk-green { background: #DCFCE7; color: #15803D; border: 1px solid #BBF7D0; }
.cc-perk-blue  { background: #EFF6FF; color: #00179e; border: 1px solid #DBEAFE; }

/* ── RIGHT column (pricing zone) ── */
.cc-right {
  display: flex; flex-direction: column;
  align-items: flex-end; justify-content: center;
  padding: 24px 22px; gap: 3px;
  text-align: right; min-width: 190px;
  background: #fff;
  border-left: 1px solid #DBEAFE;
}
.cc-from-block {
  display: flex; flex-direction: column;
  align-items: flex-end; gap: 3px;
  margin-bottom: 5px;
}
.cc-from-lbl {
  font-size: 10px; font-weight: 600; color: #9CA3AF;
  text-transform: uppercase; letter-spacing: .07em;
}
.cc-days-lbl {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 12px; font-weight: 700;
  background: #EFF6FF; color: #00179e;
  padding: 4px 10px; border-radius: 100px;
  border: 1px solid #DBEAFE; letter-spacing: .02em;
}
.cc-price-main {
  display: flex !important; align-items: baseline !important;
  justify-content: flex-end !important; line-height: 1 !important;
  gap: 3px;
}
.cc-price-total-num {
  font-size: 42px !important; font-weight: 800 !important; color: #00179e;
  letter-spacing: -2px !important; line-height: 1 !important;
  font-family: var(--fhead);
}
.cc-total-unit {
  font-size: 13px; font-weight: 500; color: #6B7280;
}
.cc-price-perday {
  font-size: 12px; color: #9CA3AF; font-weight: 500;
  text-align: right; margin-bottom: 8px; margin-top: 0;
}
.cc-price-perday .bk-img-price-num {
  font-size: 12px; font-weight: 600; color: #475569;
  text-shadow: none;
}

/* Right-col CTA button */
.cc-right .bk-book-btn {
  width: 100%; padding: 12px 16px; margin-top: 4px;
  background: #FF9110; color: #fff;
  border: none; border-radius: 10px;
  font-size: 14px; font-weight: 700; font-family: var(--fbody);
  text-decoration: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  gap: 7px; letter-spacing: .01em; white-space: nowrap;
  box-shadow: 0 4px 12px rgba(255,145,16,.30);
  transition: background .2s, transform .2s, box-shadow .2s;
}
.cc-right .bk-book-btn:hover {
  background: #e07800;
  box-shadow: 0 6px 20px rgba(255,145,16,.38);
  transform: translateY(-1px);
}
.cc-right .bk-book-btn--selected {
  background: #00179e;
  box-shadow: 0 4px 12px rgba(0,23,158,.30);
}
.cc-right .bk-book-btn--selected:hover {
  background: #001269;
  box-shadow: 0 6px 20px rgba(0,23,158,.35);
}

/* ── Responsive: tablet (≤ 1024px) ── */
@media (max-width: 1024px) {
  .bk-car-card:has(.cc-left) { grid-template-columns: 200px 1fr auto; }
}

/* ── Responsive: tablet (≤ 860px) — 2-col, pricing spans below ── */
@media (max-width: 860px) {
  .bk-car-card:has(.cc-left) { grid-template-columns: 180px 1fr; }
  .bk-car-card:has(.cc-left) .cc-right {
    grid-column: span 2;
    flex-direction: row; justify-content: space-between; align-items: center;
    padding: 12px 18px; border-top: 1px solid #DBEAFE;
    border-left: none; min-width: 0; text-align: left;
  }
  .bk-car-card:has(.cc-left) .cc-right .cc-from-block { align-items: flex-start; }
  .bk-car-card:has(.cc-left) .cc-right .bk-book-btn { flex: 0 0 auto; width: auto; padding: 10px 22px; }
}

/* ── Responsive: mobile (≤ 760px) — single column stack ── */
@media (max-width: 760px) {
  .bk-car-card:has(.cc-left) { grid-template-columns: 1fr; }
  .cc-left { min-height: 156px; border-right: none; border-bottom: 1px solid #DBEAFE; }
  .cc-center { padding: 14px 16px; }
  .bk-car-card:has(.cc-left) .cc-right {
    grid-column: 1;
    flex-direction: row; justify-content: space-between; align-items: center;
    padding: 16px 18px; border-left: none; border-top: 1px solid #DBEAFE;
    min-width: unset;
  }
  .cc-price-perday { display: none; }
  .cc-right .bk-book-btn { width: auto; margin-top: 0; }
  .cc-price-total-num { font-size: 32px !important; letter-spacing: -1px !important; }
}

/* ============================================================
   ABOUT PAGE
   ============================================================ */
.about-hero-section { background: var(--bg); }
.about-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  align-items: start;
}

/* Story column */
.about-story-col {
  background: #00179e;
  padding: 48px;
  border-radius: 16px;
}
.about-story-h {
  font-family: var(--fhead);
  font-size: clamp(22px, 2.6vw, 32px);
  font-weight: 800; color: var(--white);
  letter-spacing: -.4px; line-height: 1.15;
  margin: 14px 0 16px;
}
.about-story-p {
  font-size: 15px; color: rgba(255,255,255,.7);
  line-height: 1.75; margin-bottom: 14px;
}
.about-stats-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 12px; margin-top: 28px;
}
.about-stat-box {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 16px; padding: 28px 22px;
  display: flex; flex-direction: column; gap: 6px;
}
.about-stat-num {
  font-size: 44px; font-weight: 800;
  color: #60A5FA; line-height: 1; letter-spacing: -1.5px;
}
.about-stat-lbl {
  font-size: 12px; color: rgba(255,255,255,.5);
  font-weight: 600; text-transform: uppercase; letter-spacing: .08em;
}

/* Values column */
.about-values-col {
  background: #EFF6FF;
  padding: 40px;
  border-radius: 16px;
  border: 1px solid #DBEAFE;
}
.about-values-list { display: flex; flex-direction: column; gap: 20px; margin-top: 20px; }
.about-val-card { display: flex; gap: 16px; align-items: flex-start; }
.about-val-icon {
  width: 52px; height: 52px; flex-shrink: 0;
  background: #DBEAFE; border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  color: #00179e;
}
.about-val-icon svg { width: 22px; height: 22px; }
.about-val-title {
  font-size: 16px; font-weight: 800;
  color: #0D1F18; margin-bottom: 4px;
}
.about-val-text { font-size: 13px; color: #374151; line-height: 1.7; }

/* ── About page — Modern Grid (Example 2) ── */
.ab2-section { background: #f8faff; }
.ab2-row {
  display: grid; gap: 24px; margin-bottom: 24px; align-items: stretch;
}
.ab2-row-a { grid-template-columns: 1.15fr 0.85fr; }
.ab2-row-b { grid-template-columns: 0.85fr 1.15fr; }

/* Image blocks */
.ab2-img-wrap {
  border-radius: 18px; overflow: hidden;
  position: relative; min-height: 380px;
  display: flex; flex-direction: column;
}
.ab2-img-ph {
  flex: 1;
  background: linear-gradient(155deg, #1e3a8a 0%, #2563eb 60%, #60a5fa 100%);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 12px;
  color: rgba(255,255,255,.4); min-height: 340px;
}
.ab2-img-ph.ab2-img-dark {
  background: linear-gradient(155deg, #0f172a 0%, #1d4ed8 100%);
}
.ab2-img-ph svg { opacity: .4; }
.ab2-img-ph span {
  font-size: 11px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; opacity: .5;
}
.ab2-img-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.5) 0%, transparent 55%);
  pointer-events: none;
}
.ab2-img-caption {
  position: absolute; bottom: 18px; left: 18px; right: 18px; color: #fff;
}
.ab2-img-caption strong { display: block; font-size: 14px; font-weight: 800; }
.ab2-img-caption span { font-size: 12px; opacity: .65; }

/* Story / values card */
.ab2-card {
  background: #fff; border: 1px solid #e2e8f0; border-radius: 18px;
  padding: 44px 40px; display: flex; flex-direction: column;
}
.ab2-since {
  display: inline-block; font-size: 10px; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase;
  color: #00179e; background: #EFF6FF; border-radius: 20px;
  padding: 4px 12px; margin-bottom: 18px; width: fit-content;
}
.ab2-h2 {
  font-size: clamp(22px, 2.4vw, 32px); font-weight: 900; color: #0d172a;
  line-height: 1.15; letter-spacing: -.6px; margin-bottom: 18px;
}
.ab2-p { font-size: 15px; line-height: 1.8; color: #4b5563; margin-bottom: 12px; }
.ab2-p:last-child { margin-bottom: 0; }

/* Stats band */
.ab2-band {
  background: #00179e; border-radius: 16px;
  display: grid; grid-template-columns: repeat(4,1fr);
  overflow: hidden; margin-bottom: 24px;
}
.ab2-stat {
  padding: 28px 16px; text-align: center;
  border-right: 1px solid rgba(255,255,255,.12);
}
.ab2-stat:last-child { border-right: none; }
.ab2-stat-n {
  font-size: clamp(22px, 2.4vw, 30px); font-weight: 900;
  color: #fff; letter-spacing: -.5px; line-height: 1;
}
.ab2-stat-l {
  font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .1em; color: rgba(255,255,255,.5); margin-top: 6px;
}

/* Values 2×2 grid */
.ab2-vals-lbl {
  font-size: 10px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: #9ca3af; margin-bottom: 18px;
}
.ab2-vals-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ab2-vc {
  background: #f8faff; border: 1.5px solid #e2e8f0;
  border-radius: 14px; padding: 20px 16px;
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.ab2-vc:hover { border-color: #00179e; box-shadow: 0 6px 24px rgba(0,23,158,.1); transform: translateY(-2px); }
.ab2-vc-icon {
  width: 38px; height: 38px; border-radius: 10px; background: #EFF6FF;
  display: flex; align-items: center; justify-content: center; margin-bottom: 10px;
}
.ab2-vc-icon svg { width: 19px; height: 19px; }
.ab2-vc-name { font-size: 14px; font-weight: 800; color: #0d172a; margin-bottom: 4px; }
.ab2-vc-desc { font-size: 12px; color: #6b7280; line-height: 1.55; }

/* Responsive */
@media (max-width: 900px) {
  .ab2-row-a, .ab2-row-b { grid-template-columns: 1fr; }
  .ab2-img-wrap { min-height: 260px; }
  .ab2-img-ph { min-height: 240px; }
  .ab2-band { grid-template-columns: 1fr 1fr; }
  .ab2-stat { border-right: none; border-bottom: 1px solid rgba(255,255,255,.12); }
  .ab2-stat:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.12); }
  .ab2-stat:nth-last-child(-n+2) { border-bottom: none; }
  .ab2-card { padding: 28px 22px; }
}
@media (max-width: 600px) {
  .ab2-vals-grid { grid-template-columns: 1fr; }
  .ab2-stat-n { font-size: 22px; }
}

/* CTA WhatsApp button */
.btn-wa-cta {
  background: #25D366; color: #fff;
  padding: 14px 22px; border-radius: var(--rmd);
  font-size: 15px; font-weight: 700;
  border: none; display: inline-flex; align-items: center; gap: 8px;
  text-decoration: none; cursor: pointer; transition: all var(--transition);
}
.btn-wa-cta:hover { background: #1fba59; transform: translateY(-1px); }

/* ── Location trigger button ── */
.sf-loc-btn {
  width:100%; height:44px;
  padding:0 36px 0 38px;
  border:1.5px solid var(--border);
  border-radius:var(--rmd);
  background:var(--g50);
  display:flex; align-items:center;
  cursor:pointer; text-align:left;
  font-size:14px; font-family:var(--fbody);
  font-weight:600; color:var(--ink);
  position:relative;
  transition:border-color .2s, background .2s;
  -webkit-appearance:none; appearance:none;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.sf-loc-btn:hover { border-color:var(--g900); background:var(--white); }
.sf-loc-lbl { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sf-loc-pin { position:absolute; left:12px; top:50%; transform:translateY(-50%); width:15px; height:15px; color:#00179e; pointer-events:none; flex-shrink:0; }
.sf-loc-chevron { position:absolute; right:10px; top:50%; transform:translateY(-50%); width:14px; height:14px; color:#9CA3AF; pointer-events:none; transition:transform .2s,color .2s; }
.sf-loc-btn.gc-loc-btn-active .sf-loc-chevron { transform:translateY(-50%) rotate(180deg); color:#00179e; }
.sf-loc-btn.gc-loc-btn-active { border-color:#00179e; background:#fff; }

/* ── Inline location dropdown ── */
.gc-loc-wrap { position:relative; }
.gc-loc-dropdown {
  position:absolute; top:calc(100% + 5px); left:0; right:0; z-index:220;
  background:#fff;
  border:1.5px solid #e2e8f0;
  border-radius:14px;
  box-shadow:0 8px 30px rgba(0,0,0,0.12),0 2px 8px rgba(0,0,0,0.06);
  overflow:hidden;
  opacity:0; transform:translateY(-6px); pointer-events:none;
  transition:opacity .18s ease,transform .18s ease;
}
.gc-loc-dropdown.gc-loc-open { opacity:1; transform:translateY(0); pointer-events:auto; }
.gc-loc-opt {
  display:flex; align-items:center; gap:12px;
  padding:11px 14px; cursor:pointer;
  border-bottom:1px solid #f3f4f6;
  transition:background .12s;
  -webkit-tap-highlight-color:transparent;
}
.gc-loc-opt:last-child { border-bottom:none; }
.gc-loc-opt:hover { background:#f0f7ff; }
.gc-loc-opt.gc-loc-selected { background:#eff6ff; }
.gc-loc-opt-icon { width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.gc-loc-opt-body { flex:1; min-width:0; }
.gc-loc-opt-name { font-size:13px; font-weight:600; color:#0d172a; line-height:1.3; }
.gc-loc-opt-sub { font-size:11px; color:#9ca3af; margin-top:1px; }
.gc-loc-opt-check {
  width:20px; height:20px; border-radius:50%; background:#00179e;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; opacity:0; transition:opacity .15s;
}
.gc-loc-opt.gc-loc-selected .gc-loc-opt-check { opacity:1; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 932px) {
  .nav-links, .nav-dd { display: none; }
  .nav-hamburger { display: flex; }
  .logo-sub { display: none; }
  .nav-inner { padding: 0; }
}
@media (max-width: 1024px) {
  .about-hero-grid { grid-template-columns: 1fr; }
  .bk-fields-grid { grid-template-columns: 1fr 1fr; }
  .bk-fields-grid .bk-loc-group { grid-column: span 2; }
  .bk-field-btn { grid-column: span 2; }
  .bk-search-btn { width: 100%; }
  .bk-car-card { grid-template-columns: 200px 1fr; }
  .bk-car-price { grid-column: span 2; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: center; padding: 16px 22px; border-top: 1px solid var(--g100); }
  .bk-car-price .bk-total { width: auto; flex: 1; min-width: 120px; }
  .bk-book-btn { width: auto; flex: 1; }
  .gc-hero { grid-template-columns: 1fr; }
  .booking-card { max-width: 560px; margin-left: auto; margin-right: auto; }
  .vehicles-grid { grid-template-columns: repeat(2,1fr); }
  .why-grid { grid-template-columns: repeat(2,1fr); }
  .locs-grid { grid-template-columns: repeat(2,1fr); }
  .stats-inner { grid-template-columns: repeat(2,1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
  .blog-grid { grid-template-columns: 1fr 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .single-car-layout { grid-template-columns: 1fr; }
  .booking-sidebar { position: static; }
  .single-post-layout { grid-template-columns: 1fr; }
  .cta-inner { flex-direction: column; text-align: center; }
  .cta-btns { justify-content: center; }
}

/* ============================================================
   BOOKING CAR CARD — mobile horizontal split layout
   Image left (42%) · Info+Price right (58%)
   Desktop 3-column layout is fully untouched above 768px
   ============================================================ */
@media (max-width: 768px) {
  .bk-car-card {
    grid-template-columns: 42% 58%;
    grid-template-rows: 1fr auto;
    border-radius: 16px;
    box-shadow: 0 2px 16px rgba(0,23,158,.07);
  }
  .bk-car-img {
    grid-column: 1;
    grid-row: 1 / 3;
    min-height: 160px;
    height: auto;
    border-right: 1px solid var(--g100);
  }
  .bk-car-img img {
    max-height: 100%;
    padding: 10px;
  }
  .bk-car-info {
    grid-column: 2;
    grid-row: 1;
    padding: 12px 13px 8px;
    border-right: none;
    border-bottom: 1px solid var(--g100);
    justify-content: flex-start;
    gap: 4px;
  }
  .bk-car-price {
    grid-column: 2;
    grid-row: 2;
    padding: 10px 13px;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: 6px;
    background: #F6F9FF;
  }
  .bk-car-name { font-size: 14px; letter-spacing: -.2px; margin: 0 0 2px; }
  .bk-car-desc { font-size: 10px; margin: 6px 0 0; }
  .bk-specs-row { gap: 4px; margin-top: 6px; flex-wrap: wrap; }
  .bk-perks-row { gap: 4px; margin-top: 4px; }
  .bk-perk { padding: 2px 7px; font-size: 9.5px; }
  .bk-car-card .vspec { font-size: 9.5px; padding: 2px 6px; }
  .bk-car-card .vspec svg { width: 11px; height: 11px; }
  .bk-day-price { justify-content: flex-start; }
  .bk-price-num { font-size: 22px; }
  .bk-price-unit { font-size: 11px; }
  .bk-total {
    padding: 4px 8px;
    text-align: left;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
  .bk-total-lbl { font-size: 9px; }
  .bk-total-num { font-size: 14px; }
  .bk-book-btn { padding: 9px 12px; font-size: 12px; border-radius: 10px; width: 100%; flex: none; }
  .bk-car-price .bk-total { width: auto; flex: none; min-width: 0; }
}

@media (max-width: 640px) {
  :root { --nav-h: 60px; }
  .gc-container { padding: 0 16px; }
  .gc-hero { padding: 36px 0 40px; gap: 28px; }
  .gc-hero h1 { font-size: 36px; letter-spacing: -1.5px; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .btn-primary, .hero-actions .btn-secondary, .hero-actions .btn-wa { justify-content: center; }
  .vehicles-grid { grid-template-columns: 1fr; }
  .why-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .why-card { padding: 16px; border-radius: 16px; }
  .why-icon { width: 40px; height: 40px; border-radius: 10px; margin-bottom: 12px; }
  .why-icon svg { width: 18px; height: 18px; }
  .why-title { font-size: 14px; margin-bottom: 5px; }
  .why-desc { font-size: 12px; line-height: 1.6; }
  .locs-grid { grid-template-columns: 1fr 1fr; }
  .blog-grid { grid-template-columns: 1fr; }
  .stats-inner { grid-template-columns: repeat(2,1fr); }
  .footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .form-row { grid-template-columns: 1fr; }
  .cta-btns { flex-wrap: wrap; justify-content: center; }
  .car-specs-grid { grid-template-columns: 1fr; }
  .ft-bottom { flex-direction: column; text-align: center; }
  .logo-sub { display: none; }
  .nav-cta { display: none; }
  .nav-phone { font-size: 0; }
  .nav-phone svg { width: 20px; height: 20px; }
  .gc-section { padding: 56px 0; }
  .about-story-col { padding: 28px 22px; }
  .about-values-col { padding: 28px 22px; }
  .bk-header-inner { padding-bottom: 80px; }
  .bk-search-card-wrap { margin-top: -56px; padding: 0 16px; }
  .bk-search-card { border-radius: 16px; padding: 20px 18px; }
  .bk-fields-grid { grid-template-columns: 1fr; }
  .bk-fields-grid .bk-loc-group { grid-column: auto; }
  .bk-field-btn { grid-column: auto; }
  .bk-search-btn { width: 100%; }
  .bk-dropoff-wrap { width: 100%; }
  .bk-currency-group { width: 100%; }
  .bk-currency-sel { flex: 1; }
  .about-stat-num { font-size: 34px; }
  .about-stat-box { padding: 20px 16px; }
  .team-grid { grid-template-columns: 1fr; }
  .contact-qa-row { flex-direction: column; align-items: stretch; }
  .contact-qa-btn { justify-content: center; white-space: normal; word-break: break-word; }
  .faq-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   MY BOOKING NAV LINK
   ============================================================ */
.nav-links a.nav-my-booking { color: var(--accent) !important; font-weight: 700; }
.nav-links a.nav-my-booking:hover { color: var(--accent) !important; background: rgba(255,145,16,.07); }
.mm-links .mm-link.nav-my-booking { color: var(--accent); }
.mm-links .mm-link.nav-my-booking span { color: var(--accent); }

/* ============================================================
   FRENCH NAV — prevent overflow from longer labels
   ============================================================ */
html[lang^="fr"] .nav-links a { font-size: 14px; padding: 6px 10px; white-space: nowrap; }
html[lang^="fr"] .nav-inner { overflow: visible; }

/* ============================================================
   CONTACT PAGE — QUICK ACTIONS BAR
   ============================================================ */
.contact-qa-bar { background: var(--g50); border-bottom: 1px solid var(--g100); padding: 14px 0; }
.contact-qa-row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.contact-qa-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 20px; border-radius: var(--rmd);
  font-size: 14px; font-weight: 700;
  text-decoration: none; border: none; cursor: pointer;
  transition: all .15s; white-space: nowrap;
  max-width: 100%;
}
.contact-qa-btn--wa { background: #25D366; color: var(--white); }
.contact-qa-btn--wa:hover { background: #1da851; }
.contact-qa-btn--sec { background: var(--white); color: var(--g900); border: 1.5px solid var(--g200); }
.contact-qa-btn--sec:hover { border-color: var(--g900); background: var(--g50); }
.contact-qa-btn svg { width: 17px; height: 17px; flex-shrink: 0; }

/* ============================================================
   CONTACT PAGE — WHATSAPP CTA BLOCK (in left panel)
   ============================================================ */
.wa-cta-block {
  background: #25D366; border-radius: 16px;
  padding: 16px 20px; margin-top: 32px;
  display: flex; align-items: center; gap: 14px;
  text-decoration: none;
}
.wa-cta-block svg { flex-shrink: 0; }
.wa-cta-block-title { font-size: 13px; font-weight: 800; color: var(--white); display: block; line-height: 1.3; }
.wa-cta-block-sub   { font-size: 12px; color: rgba(255,255,255,.75); display: block; margin-top: 2px; }

/* ============================================================
   CONTACT PAGE — MAPS SECTION
   ============================================================ */
.contact-maps-section { padding: 60px 0 0; }
.contact-maps-title { font-size: 26px; font-weight: 800; color: var(--ink); margin-bottom: 10px; }
.contact-maps-sub { font-size: 15px; color: var(--ink-light); margin-bottom: 28px; max-width: 520px; }
.contact-maps-frame { border-radius: 16px; overflow: hidden; border: none; display: block; width: 100%; height: 420px; }

/* ============================================================
   CONTACT PAGE — FAQ SECTION
   ============================================================ */
.contact-faq-section { background: var(--g50); border-top: 1px solid var(--g100); padding: 60px 0; margin-top: 60px; }
.contact-faq-title { font-size: 26px; font-weight: 800; color: var(--ink); margin-bottom: 32px; }
.faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.faq-card {
  background: var(--white); border: 1px solid var(--g100);
  border-radius: 16px; padding: 24px;
}
.faq-q { font-size: 15px; font-weight: 800; color: var(--ink); margin-bottom: 10px; }
.faq-a { font-size: 14px; color: var(--ink-light); line-height: 1.7; }

/* ============================================================
   ABOUT PAGE — TEAM SECTION
   ============================================================ */
.team-section { background: var(--white); padding: 80px 0; border-top: 1px solid var(--g100); }
.team-section-tag { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--g900); background: var(--g50); border: 1px solid var(--g100); padding: 5px 14px; border-radius: 100px; margin-bottom: 14px; }
.team-section-h { font-size: 30px; font-weight: 800; color: var(--ink); margin-bottom: 8px; }
.team-section-p { font-size: 15px; color: var(--ink-light); max-width: 500px; }
.team-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; margin-top: 40px; }
.team-card { background: var(--g50); border: 1px solid var(--g100); border-radius: 24px; padding: 32px 24px; text-align: center; }
.team-avatar {
  width: 72px; height: 72px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 28px; font-weight: 800; color: var(--white);
  margin: 0 auto 16px; flex-shrink: 0;
}
.team-name { font-size: 17px; font-weight: 800; color: var(--ink); margin-bottom: 3px; }
.team-role { font-size: 13px; color: var(--ink-light); font-weight: 600; margin-bottom: 12px; }
.team-bio  { font-size: 14px; color: var(--ink-mid); line-height: 1.65; margin-bottom: 16px; }
.team-tags { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.team-tag  { background: var(--g100); color: var(--g900); font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 100px; }

/* ============================================================
   FOOTER — GOOGLE LOCAL GUIDE BADGE
   ============================================================ */
.ft-guide-badge {
  display: inline-flex; align-items: center; gap: 9px;
  background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.12);
  border-radius: 100px; padding: 8px 14px; margin-top: var(--gc-space-4);
}
.ft-guide-g {
  width: 22px; height: 22px; background: var(--white); color: var(--g900);
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 800; flex-shrink: 0; font-family: var(--gc-font-head);
}
.ft-guide-text { font-size: 12px; font-weight: 600; color: rgba(255,255,255,0.55); }

/* ============================================================
   RTL OVERRIDES
   ============================================================ */
@media (max-width: 640px) {
  html[dir="rtl"] .ft-list a::before { content: '←'; }
}
html[dir="rtl"] .booking-card { direction: rtl; }
html[dir="rtl"] .ph-kicker::before { display: none; }

/* ── Date validation: shake + error state ── */
@keyframes gc-shake {
  0%,100% { transform: translateX(0); }
  20%     { transform: translateX(-8px); }
  40%     { transform: translateX(8px); }
  60%     { transform: translateX(-6px); }
  80%     { transform: translateX(6px); }
}
.gc-shake { animation: gc-shake 0.5s ease; }
.bk-date-error input.form-input {
  border-color: #EF4444 !important;
  box-shadow: 0 0 0 3px rgba(239,68,68,.15) !important;
}
.bk-date-error-msg {
  font-size: 12px;
  color: #EF4444;
  margin-top: 4px;
  display: block;
}

html[dir="rtl"] .ph-kicker::after { content: ''; width: 24px; height: 2px; background: var(--g400); }

/* ============================================================
   FIX 1 — TRUST BAR: 2-COLUMN GRID ON MOBILE
   ============================================================ */
@media (max-width: 768px) {
  .trust-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 8px;
    padding: 0;
  }
  .trust-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
  }
  .trust-item:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    justify-content: center;
  }
}

/* ============================================================
   FIX 3 — REDUCE GAP BETWEEN FLEET AND WHY-US SECTIONS
   ============================================================ */
section[aria-labelledby="fleet-heading"] { padding-bottom: 40px; }
section[aria-labelledby="why-heading"]   { padding-top: 40px; }

/* ============================================================
   FIX 4 — GOOGLE REVIEWS BUTTON
   ============================================================ */
.btn-reviews-google {
  display: inline-flex;
  align-items: center;
  background: #fff;
  color: #00179e;
  border: 2px solid #00179e;
  padding: 12px 28px;
  border-radius: 8px;
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  transition: all 0.2s ease;
}
.btn-reviews-google:hover {
  background: #00179e;
  color: #fff;
}

/* ============================================================
   CONFIRM BUTTON — SLIDE SWEEP ANIMATION
   ============================================================ */
.btn-confirm-booking { position: relative; overflow: hidden; cursor: pointer; transition: transform 0.1s ease; }
.btn-confirm-booking:active { transform: scale(0.98); }
.btn-sweep { position: absolute; left: -100%; top: 0; width: 100%; height: 100%; background: rgba(255,255,255,0.25); pointer-events: none; }
.btn-confirm-booking.is-animating .btn-sweep { transition: left 1.8s cubic-bezier(0.4,0,0.2,1); left: 100%; }
.btn-main-text { position: relative; z-index: 1; display: flex; align-items: center; gap: 8px; transition: opacity 0.2s ease; }
.btn-sending-text { position: absolute; z-index: 1; opacity: 0; display: flex; align-items: center; gap: 8px; font-size: 14px; transition: opacity 0.2s ease 0.25s; }
.btn-done-text { position: absolute; z-index: 1; opacity: 0; display: flex; align-items: center; gap: 8px; transition: opacity 0.2s ease; }
.btn-confirm-booking.is-animating .btn-main-text { opacity: 0; }
.btn-confirm-booking.is-animating .btn-sending-text { opacity: 1; }
.btn-confirm-booking.is-done .btn-sending-text { opacity: 0; transition: opacity 0.2s ease; }
.btn-confirm-booking.is-done .btn-done-text { opacity: 1; }
.btn-confirm-booking.is-done { background: #22c55e !important; }
.btn-dots { display: flex; align-items: center; gap: 3px; }
.btn-dots span { display: inline-block; width: 5px; height: 5px; background: #fff; border-radius: 50%; animation: dotBounce 1s infinite ease-in-out; }
.btn-dots span:nth-child(2) { animation-delay: 0.15s; }
.btn-dots span:nth-child(3) { animation-delay: 0.3s; }
@keyframes dotBounce { 0%,80%,100% { transform: scale(0.6); opacity: 0.5; } 40% { transform: scale(1); opacity: 1; } }

/* ============================================================
   ARTICLE BOOKING BAR (blog single pages — FR first)
   ============================================================ */
.article-booking-bar {
  background: var(--g900);
  position: relative;
  z-index: 2;
  padding: 9px 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
  transition: transform .3s ease;
}
.article-booking-bar.abb-hidden {
  transform: translateY(calc(-100% - var(--nav-h)));
}
.abb-inner {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
}
.abb-avail {
  display: flex; align-items: center; gap: 8px;
  color: rgba(255,255,255,.8); font-size: 13px; font-weight: 500; flex-shrink: 0;
}
.abb-avail strong { color: #fff; font-variant-numeric: tabular-nums; }
.abb-avail-text { font-weight: 600; }
.abb-dot {
  width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0;
  background: #4ade80;
  animation: gc-pulse-dot 2s ease-in-out infinite;
}
.abb-check { color: #4ade80; font-weight: 800; font-size: 14px; }
.abb-sep { color: rgba(255,255,255,.25); font-size: 16px; font-weight: 300; }
.abb-info { color: rgba(255,255,255,.65); font-size: 12px; }
.abb-info strong { color: rgba(255,255,255,.9); }
.abb-widget {
  display: flex; align-items: center; gap: 6px; margin-left: auto; flex-wrap: wrap;
}
.abb-field {
  display: flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.15);
  border-radius: var(--rmd); padding: 6px 12px;
  color: rgba(255,255,255,.65); font-size: 12px; font-weight: 500;
  cursor: default; white-space: nowrap; font-family: var(--fbody);
}
button.abb-field { cursor: pointer; transition: background .15s, color .15s; }
button.abb-field:hover { background: rgba(255,255,255,.18); color: #fff; }
button.abb-field .dtp-val-filled,
.abb-field-val.dtp-val-filled { color: #fff; font-weight: 600; }
.abb-search {
  background: var(--accent); color: #fff; border: none;
  border-radius: var(--rmd); padding: 7px 16px;
  font-size: 13px; font-weight: 700; cursor: pointer;
  white-space: nowrap; font-family: var(--fbody);
  transition: background .15s, transform .1s;
}
.abb-search:hover { background: var(--accent-dark); transform: translateY(-1px); }

/* ── Clean article header (replaces navy page-header on FR single posts) ── */
.article-header {
  background: var(--bg); padding: 36px 0 28px;
  border-bottom: 1px solid var(--border);
  position: relative; z-index: 1;
}
.ah-meta {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 16px;
}
.ah-cat {
  background: var(--white); color: var(--g700);
  font-size: 11px; font-weight: 700; padding: 4px 14px;
  border-radius: 100px; text-transform: uppercase; letter-spacing: .08em;
  border: 1px solid var(--g200); text-decoration: none;
  transition: background .15s, color .15s;
}
.ah-cat:hover { background: var(--g900); color: var(--white); border-color: var(--g900); }
.ah-sep { color: var(--g200); }
.ah-read-time { font-size: 12px; color: var(--ink-faint); font-weight: 500; }
.article-header h1 {
  font-family: var(--fhead);
  font-size: clamp(26px, 4vw, 46px);
  font-weight: 800; line-height: 1.08; letter-spacing: -0.5px;
  color: var(--ink); margin: 0 0 16px;
}
.ah-date { font-size: 13px; color: var(--ink-light); font-weight: 500; }

/* ── Recent Articles sidebar items ── */
.rc-article-item {
  display: flex; gap: 10px; align-items: start;
  padding: 10px 0; border-bottom: 1px solid var(--g100);
}
.rc-article-item:first-child { padding-top: 0; }
.rc-article-item:last-child { border-bottom: none; padding-bottom: 0; }
.rc-article-thumb {
  flex-shrink: 0; width: 58px; height: 42px;
  border-radius: var(--rsm); overflow: hidden; background: var(--g100);
}
.rc-article-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rc-article-info { flex: 1; min-width: 0; }
.rc-article-title {
  font-size: 13px; font-weight: 700; color: var(--ink);
  line-height: 1.4; display: block; margin-bottom: 4px;
  text-decoration: none; transition: color .15s;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.rc-article-title:hover { color: var(--g700); }
.rc-article-date { font-size: 11px; color: var(--ink-faint); font-weight: 500; }

@media (max-width: 767px) {
  .article-booking-bar { position: static; }
  .abb-avail { font-size: 12px; }
  .abb-info { display: none; }
  .abb-sep { display: none; }
  .abb-widget { margin-left: 0; width: 100%; flex-wrap: wrap; gap: 6px; }
  .abb-inner { gap: 8px; }
  .article-header { padding: 24px 0 20px; }
  /* Location full width, dates side-by-side, search full width */
  .abb-field-loc { width: 100%; justify-content: center; }
  button.abb-field:not(.abb-field-loc) { flex: 1; min-width: 120px; justify-content: center; }
  .abb-search { width: 100%; text-align: center; justify-content: center; }
  /* Logo on mobile */
  .gc-logo-svg { height: 30px; }
}

/* Landscape mobile — phone only: 932px covers iPhone Pro Max, 500px excludes desktop windows */
@media (orientation: landscape) and (max-width: 932px) and (max-height: 500px) {
  :root { --nav-h: 52px; }
  .nav-inner { padding: 0 16px; }
  .nav-logo-img, .gc-logo-svg { height: 28px; }
  .logo-sub { display: block; font-size: 9px; }
  /* Mobile menu — 2-column grid for landscape phone */
  .mobile-menu.open   { display: grid !important; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto auto auto; column-gap: 16px; align-items: start; padding: 8px 5% 12px; overflow-y: auto; }
  .mm-links           { grid-column: 1; grid-row: 1 / 5; gap: 1px; margin-bottom: 0; }
  .mm-link            { font-size: 14px; font-weight: 600; padding: 7px 12px; border-radius: 10px; }
  .mm-link svg        { width: 14px; height: 14px; }
  .mm-divider         { display: none; }
  .mm-controls        { grid-column: 2; grid-row: 1; gap: 8px; margin-bottom: 8px; }
  .mm-ctrl-label      { font-size: 10px; min-width: 56px; }
  .mm-ctrl-btn        { padding: 4px 8px; font-size: 11px; }
  .mm-btn-book        { grid-column: 2; grid-row: 2; padding: 10px 14px; font-size: 13px; border-radius: 12px; margin-bottom: 0; }
  .mm-btn-wa          { grid-column: 2; grid-row: 3; padding: 9px 14px; font-size: 13px; border-radius: 12px; margin-bottom: 0; }
  .mm-btn-phone       { grid-column: 2; grid-row: 4; padding: 8px 14px; font-size: 13px; border-radius: 12px; }
  .mm-btn-book svg, .mm-btn-wa svg, .mm-btn-phone svg { width: 14px; height: 14px; }
  .gc-section { padding: 36px 0; }
  .gc-hero { padding: 28px 0 32px; gap: 20px; }
  .gc-hero h1 { font-size: 28px; }
  .stats-inner { grid-template-columns: repeat(4,1fr); gap: 12px; }
  .stat-item { padding: 4px; }
  /* Fleet page — car cards */
  .vehicles-grid { grid-template-columns: repeat(2,1fr); gap: 12px; }
  .vehicle-img { aspect-ratio: unset; height: 140px; }
  .vehicle-img img { object-fit: contain; padding: 6px; }
  .vehicle-body { padding: 10px 12px; }
  .vehicle-name { font-size: 15px; margin-bottom: 5px; }
  .vehicle-subtitle { font-size: 11px; margin-bottom: 5px; }
  .vehicle-specs { gap: 4px; margin-bottom: 8px; }
  .vspec { font-size: 10px; padding: 3px 7px; }
  .vehicle-footer { padding-top: 8px; }
  .price-from { font-size: 10px; }
  .price-num { font-size: 17px; }
  .price-unit { font-size: 11px; }
  .v-book { padding: 6px 12px; font-size: 12px; }
  /* Single car page */
  .single-car-layout { grid-template-columns: 1fr; gap: 16px; }
  .car-gallery img { aspect-ratio: unset; height: 200px; object-fit: contain; padding: 8px; }
  .car-gallery-thumbs { display: none; }
  .car-meta { padding: 14px; margin-bottom: 12px; }
  .car-specs-grid { grid-template-columns: repeat(4,1fr); gap: 8px; margin: 10px 0; }
  .car-spec-item { padding: 7px 8px; }
  .car-spec-label { font-size: 9px; }
  .car-spec-val { font-size: 12px; }
  .car-inc-item { font-size: 12px; }
  .car-includes { gap: 5px; margin-top: 10px; }
  .booking-sidebar { padding: 14px; position: static; }
  .bs-price { font-size: 26px; }
  .bs-unit { font-size: 12px; }
  .bs-divider { margin: 10px 0; }
  .bs-total-row { font-size: 12px; margin-bottom: 5px; }
  .bs-book-btn { padding: 10px 16px; font-size: 13px; margin-top: 10px; }
  /* Article page — compact for landscape phone */
  .article-booking-bar { padding: 6px 0; }
  .abb-inner { gap: 8px; flex-wrap: nowrap; }
  .abb-avail { font-size: 11px; gap: 5px; }
  .abb-info { font-size: 11px; }
  .abb-field { padding: 5px 10px; font-size: 11px; height: 32px; }
  .abb-search { padding: 6px 14px; font-size: 12px; }
  .article-header { padding: 16px 0 12px; }
  .article-header h1 { font-size: 22px !important; line-height: 1.1; margin-bottom: 8px; }
  .ah-meta { margin-bottom: 8px; }
  .ah-date { font-size: 11px; }
  .single-post-layout { gap: 20px; }
  .post-content img { max-height: 200px; object-fit: cover; }
  /* Sidebar trip card — compact for landscape phone */
  .sidebar-trip-card { display: grid; grid-template-columns: 160px 1fr; grid-template-rows: auto; margin-bottom: 12px; }
  .stc-label { margin: 10px 12px 0; font-size: 9px; grid-column: 1 / -1; }
  .stc-img-wrap { margin: 8px 10px; aspect-ratio: unset; height: 120px; grid-column: 1; grid-row: 2 / 5; }
  .stc-badge { margin: 4px 12px 0; grid-column: 2; }
  .stc-title { font-size: 13px; padding: 4px 12px 2px; grid-column: 2; }
  .stc-price { font-size: 20px; padding: 2px 12px; grid-column: 2; }
  .stc-price span { font-size: 12px; }
  .stc-btn { display: inline-block; margin: 6px 12px 6px 0; padding: 8px 14px; font-size: 12px; grid-column: 2; width: auto; align-self: start; }
  .stc-features { padding: 0 12px 10px; gap: 3px; grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; }
  .stc-features li { font-size: 11px; flex: 0 0 48%; }
  /* Booking card — compact for landscape phone */
  .booking-card { padding: 12px 14px !important; }
  .bk-tabs { padding: 3px; margin-bottom: 8px; }
  .bk-tab { padding: 5px 10px; font-size: 11px; }
  .booking-card h3,
  #bk-search-view h3,
  #bk-mybooking-view h3 { font-size: 13px !important; margin-bottom: 2px !important; }
  .booking-card > p,
  #bk-search-view > p,
  #bk-mybooking-view > p { font-size: 11px; margin-bottom: 6px !important; }
  .sf-label { font-size: 10px; margin-bottom: 3px !important; }
  .form-group { margin-bottom: 8px; }
  .sf-loc-btn { height:36px; padding:0 32px 0 34px; font-size:12px; }
  .gc-loc-dropdown { border-radius:12px; }
  .gc-loc-opt { padding:10px 12px; gap:10px; }
  .gc-loc-opt-icon { width:32px; height:32px; border-radius:8px; }
  .gc-loc-opt-name { font-size:12px; }
  .gc-loc-opt-sub { font-size:10px; }
  .sf-dtp-btn { height: 36px; font-size: 12px; padding: 0 12px 0 32px; }
  .sf-toggle-row { margin: 4px 0 8px; }
  .sf-toggle-lbl { font-size: 11px; }
  .sf-find-btn { padding: 9px; font-size: 13px; margin-top: 2px; }
  /* CTA section — compact for landscape phone */
  .gc-cta-section { padding: 20px 0; }
  .cta-inner { gap: 16px; }
  .cta-h { font-size: 18px; margin-bottom: 4px; }
  .cta-p { font-size: 12px; }
  .cta-btns { gap: 8px; }
  .cta-btns .btn-white,
  .cta-btns .btn-wa { padding: 9px 16px; font-size: 12px; }
  .cta-btns .btn-wa svg { width: 14px; height: 14px; }
}

/* ============================================================
   BOOKING PAGE — WIZARD & LISTING STYLES
   Moved from inline <style> blocks in booking templates
   ============================================================ */

/* Overflow containment */
.gc-wiz-page { overflow-x: hidden; min-height: auto; background: #F0F9FF; padding-bottom: 48px; }
.gc-wiz-body { overflow-x: clip; }
.gc-wiz-body > * { min-width: 0; }
.gc-wiz-main { overflow-x: hidden; }
.bk-car-card { overflow: hidden; }
.bk-car-card > * { min-width: 0; }

/* Progress bar */
.gc-wiz-bar { background: #00179e; height: 72px; padding: 0 28px; display: flex; align-items: center; gap: 16px; width: 100%; box-sizing: border-box; }
.gc-wiz-bar-car { display: flex; align-items: center; gap: 8px; color: #fff; font-weight: 700; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: 0 0 auto; max-width: 220px; }
.gc-wiz-bar-car svg { flex-shrink: 0; }
.gc-wiz-steps-row { display: flex; align-items: center; flex: 1; justify-content: center; }
.gc-wiz-step-item { display: flex; flex-direction: column; align-items: center; gap: 5px; }
.gc-wiz-step-dot { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 13px; background: rgba(255,255,255,.2); color: rgba(255,255,255,.5); border: 2px solid rgba(255,255,255,.25); transition: all .3s; }
.gc-wiz-step-item.active .gc-wiz-step-dot { background: #ff9110; color: #fff; border-color: #ff9110; box-shadow: 0 0 0 4px rgba(255,145,16,.3); }
.gc-wiz-step-item.done .gc-wiz-step-dot { background: #0EA5E9; color: #fff; border-color: #0EA5E9; }
.gc-wiz-step-lbl { font-size: 9px; letter-spacing: .1em; font-weight: 700; color: rgba(255,255,255,.35); text-transform: uppercase; transition: color .3s; white-space: nowrap; }
.gc-wiz-step-item.active .gc-wiz-step-lbl, .gc-wiz-step-item.done .gc-wiz-step-lbl { color: rgba(255,255,255,.85); }
.gc-wiz-step-connector { width: 80px; height: 2px; margin: 0 6px; margin-bottom: 20px; background: rgba(255,255,255,.2); transition: background .3s; flex-shrink: 0; }
.gc-wiz-step-connector.done { background: #0EA5E9; }
.gc-wiz-close-btn { background: none; border: 2px solid rgba(255,255,255,.3); color: rgba(255,255,255,.7); width: 36px; height: 36px; border-radius: 50%; font-size: 18px; line-height: 1; display: flex; align-items: center; justify-content: center; transition: all .2s; flex-shrink: 0; margin-left: auto; text-decoration: none; cursor: pointer; }
.gc-wiz-close-btn:hover { background: rgba(255,255,255,.15); color: #fff; border-color: rgba(255,255,255,.6); }

/* Grid body */
.gc-wiz-body { display: grid; grid-template-columns: 1fr 360px; max-width: 1100px; margin: 48px auto; gap: 32px; padding: 0 24px; box-sizing: border-box; align-items: start; }
.gc-wiz-main { background: #fff; border-radius: 16px; padding: 36px 40px; border: 1px solid #DBEAFE; box-shadow: 0 4px 24px rgba(0,23,158,.06); }
.gc-wiz-sidebar { background: #fff; border-radius: 16px; padding: 18px; border: 1px solid #DBEAFE; box-shadow: 0 4px 24px rgba(0,23,158,.06); position: sticky; top: 16px; align-self: start; }

/* Step panels */
.gc-wiz-panel { display: none; }
.gc-wiz-panel.active { display: block; animation: wiz-slide-in .25s ease; }
@keyframes wiz-slide-in { from { opacity: 0; transform: translateX(12px); } to { opacity: 1; transform: none; } }
.gc-wiz-panel-title { font-size: 1.6rem; font-weight: 800; color: var(--ink); margin: 0 0 4px; }
.gc-wiz-panel-sub { font-size: 13px; color: var(--ink-light); margin: 0 0 28px; line-height: 1.6; }

/* ── Extras grid: vertical luxury list ── */
.gc-extras-grid { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; width: 100%; }

/* Card shell */
.gc-extra-card { display: flex !important; flex-direction: column !important; align-items: stretch !important; position: relative !important; background: #ffffff !important; border: 1.5px solid #e5e7eb !important; border-radius: 14px !important; padding: 0 !important; height: auto !important; overflow: hidden !important; cursor: pointer !important; transition: border-color .2s, box-shadow .2s !important; user-select: none; }
.gc-extra-card:hover { border-color: #93C5FD !important; box-shadow: 0 4px 18px rgba(0,23,158,.07) !important; }
.gc-extra-card.selected { border-color: #00179e !important; }

/* Horizontal row: badge + content + button — vertically centers Add button against full content height */
.gc-extra-main-row { display: flex; align-items: center; justify-content: space-between; }

/* Left colored icon badge block */
.gc-extra-left-badge { width: 80px; min-width: 80px; align-self: stretch; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gc-extra-left-badge svg { width: 36px; height: 36px; }

/* Center content area */
.gc-extra-content-block { flex: 1; padding: 14px 16px; display: flex; flex-direction: column; justify-content: center; gap: 4px; min-width: 0; }

/* Title + price on the same inline row */
.gc-extra-title-inline { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.gc-extra-title { font-size: 14px; font-weight: 700; color: #111827; line-height: 1.3; margin: 0; }

/* Inline price badge */
.gc-extra-price { display: inline-flex; align-items: center; font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 100px; background: rgba(255,145,16,.14); color: #c2700a; white-space: nowrap; flex-shrink: 0; }
.gc-extra-price.free { background: #DCFCE7; color: #16A34A; }

/* Static description — always visible below the title row */
.gc-extra-desc { font-size: 13px; color: #667085; line-height: 1.4; margin: 4px 0 0; }

/* Right action button */
.gc-extra-action-btn { margin-right: 20px; padding: 8px 18px; border: 1.5px solid #00179e; border-radius: 9px; background: transparent; color: #00179e; font-size: 13px; font-weight: 700; font-family: inherit; display: inline-flex; align-items: center; gap: 4px; cursor: pointer; transition: all .2s; white-space: nowrap; flex-shrink: 0; }
.gc-extra-action-btn:hover { background: #eff6ff; }
.gc-extra-card.selected .gc-extra-action-btn { background: #00179e; color: #fff; border-color: #00179e; }
.gc-extra-card.selected .gc-extra-action-btn:hover { background: #0033cc; }

/* Legacy elements suppressed */
.gc-extra-check { display: none; }
.gc-extra-icon  { display: none; }

/* Nav buttons */
.gc-wiz-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 32px; padding-top: 20px; border-top: 1px solid #DBEAFE; flex-wrap: wrap; }
.gc-wiz-btn-next { order: 2; background: #ff9110; color: #fff; border: none; border-radius: 10px; padding: 14px 28px; font-size: 15px; font-weight: 700; font-family: inherit; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; transition: background .2s; text-decoration: none; }
.gc-wiz-btn-next:hover { background: #e07800; color: #fff; }
.gc-wiz-btn-back { order: 1; background: #fff; color: #00179e; border: 1.5px solid #DBEAFE; border-radius: 10px; padding: 14px 20px; font-size: 14px; font-weight: 600; font-family: inherit; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; transition: all .2s; text-decoration: none; }
.gc-wiz-btn-back:hover { border-color: #93C5FD; }

/* Details form */
.gc-wiz-form .form-group { margin-bottom: 18px; }
.gc-wiz-form .form-label { display: block; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6B7280; margin-bottom: 6px; }
.gc-wiz-form .form-label em { color: #EF4444; font-style: normal; margin-left: 2px; }
.gc-wiz-form .form-input { width: 100%; border: 1.5px solid #DBEAFE; border-radius: 10px; padding: 12px 16px; font-size: 14px; color: var(--ink); background: #F8FAFF; transition: border-color .2s, box-shadow .2s, background .2s; box-sizing: border-box; font-family: inherit; }
.gc-wiz-form .form-input:focus { outline: none; border-color: #00179e; box-shadow: 0 0 0 3px rgba(0,23,158,.1); background: #fff; }
.gc-wiz-form textarea.form-input { resize: vertical; min-height: 90px; }
.gc-wiz-phone-note { font-size: 12px; color: var(--ink-light); margin-top: 6px; }
.gc-wiz-flight-note { font-size: 12px; color: var(--ink-light); margin-top: 6px; display: flex; align-items: flex-start; gap: 5px; line-height: 1.4; }
.gc-wiz-flight-note svg { flex-shrink: 0; margin-top: 1px; }

/* Confirm / review */
.gc-wiz-review-card { border: 1px solid #DBEAFE; border-radius: 16px; overflow: hidden; margin-bottom: 20px; }
.gc-wiz-review-section { padding: 18px 22px; border-bottom: 1px solid #DBEAFE; }
.gc-wiz-review-section:last-child { border-bottom: none; }
.gc-wiz-review-section-title { font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #0EA5E9; margin: 0 0 12px; }
.gc-wiz-review-row { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 13px; padding: 3px 0; }
.gc-wiz-review-row span { color: var(--ink-light); white-space: nowrap; }
.gc-wiz-review-row strong { color: var(--ink); text-align: right; }
.gc-wiz-total-row { display: flex; justify-content: space-between; align-items: center; background: #00179e; padding: 16px 22px; border-radius: 12px; margin-bottom: 20px; }
.gc-wiz-total-row span { color: rgba(255,255,255,.75); font-size: 13px; font-weight: 600; }
.gc-wiz-total-row strong { color: #fff; font-size: 1.5rem; font-weight: 800; }
.gc-wiz-confirm-btn { width: 100%; background: #ff9110; color: #fff; border: none; border-radius: 12px; padding: 16px 24px; font-size: 17px; font-weight: 800; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 10px; transition: background .2s; margin-bottom: 16px; font-family: inherit; }
.gc-wiz-confirm-btn:hover { background: #e07800; }
.gc-wiz-trust-pills { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; margin-bottom: 14px; }
.gc-wiz-trust-pill { font-size: 12px; font-weight: 600; color: #374151; display: inline-flex; align-items: center; gap: 5px; }
.gc-wiz-trust-pill svg { width: 13px; height: 13px; color: #0EA5E9; flex-shrink: 0; }
.gc-wiz-edit-link { display: block; text-align: center; font-size: 13px; color: var(--ink-light); cursor: pointer; text-decoration: underline; background: none; border: none; font-family: inherit; width: 100%; }
.gc-wiz-edit-link:hover { color: var(--ink); }

/* Sidebar */
/* Header row */
.gc-wiz-sb-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.gc-wiz-sb-badge { font-size: 10px; font-weight: 700; letter-spacing: .05em; background: #DBEAFE; color: #0EA5E9; padding: 4px 11px; border-radius: 100px; }
.gc-wiz-sb-days-top { font-size: 12px; font-weight: 700; color: #00179e; background: #EFF6FF; border: 1px solid #DBEAFE; padding: 4px 11px; border-radius: 100px; }

/* Executive Car Zone */
.gc-wiz-sb-car-zone { position: relative; background: linear-gradient(145deg, #dbeafe 0%, #eff6ff 60%, #f0f9ff 100%); border-radius: 14px; padding: 12px 12px 14px; margin-bottom: 12px; }
.gc-wiz-sb-selected { position: absolute; top: 8px; left: 8px; z-index: 2; font-size: 9px; font-weight: 700; letter-spacing: .04em; background: #fff; color: #0D1F18; padding: 3px 10px; border-radius: 100px; box-shadow: 0 2px 8px rgba(0,0,0,.12); }
.gc-wiz-sb-car { margin-bottom: 8px; }
.gc-wiz-sb-car svg { width: 100%; max-height: 95px; height: auto; display: block; margin: 0 auto; }
.gc-wiz-sb-car img { width: 100%; height: 118px; object-fit: contain; display: block; }

/* Category + name inside car zone */
.gc-wiz-sb-cat-top { font-size: 10px; font-weight: 600; color: #64748b; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 2px; }
.gc-wiz-sb-name { font-size: 16px; font-weight: 800; color: #0D1F18; margin: 0; letter-spacing: -.3px; }

/* Calendar Routing Box */
.gc-wiz-sb-date-box { background: #f3f4f6; border-radius: 12px; padding: 10px 12px; margin-bottom: 12px; }
.gc-wiz-sb-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; padding: 5px 0; font-size: 12px; }
.gc-wiz-sb-row--sep { border-top: 1px solid #e5e7eb; margin-top: 4px; padding-top: 9px; }
.gc-wiz-sb-row span { color: #6B7280; flex-shrink: 0; display: flex; align-items: center; gap: 4px; font-weight: 600; }
.gc-wiz-sb-row span svg { flex-shrink: 0; }
.gc-wiz-sb-row strong { color: #0D1F18; font-weight: 700; text-align: right; font-size: 11px; }

/* Invoice Grid */
.gc-wiz-sb-invoice { display: flex; flex-direction: column; }
.gc-wiz-sb-inv-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 12.5px; padding: 10px 0; border-bottom: 1px solid #e5e7eb; }
.gc-wiz-sb-inv-row:last-child { border-bottom: none; }
.gc-wiz-sb-inv-row span:first-child { color: #6B7280; }
.gc-wiz-sb-inv-row span:last-child { color: #0D1F18; font-weight: 700; white-space: nowrap; }
.gc-wiz-sb-inv-row.green span { color: #16A34A; font-weight: 700; }

/* Grand Total Block */
.gc-wiz-sb-total-block { background: #ffffff; box-shadow: 0 4px 20px rgba(0,0,0,.05); border-radius: 16px; padding: 18px; text-align: center; margin-top: 12px; border: 1px solid #f1f5f9; }
.gc-wiz-sb-total-lbl { font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #94A3B8; margin-bottom: 6px; }
.gc-wiz-sb-total-num { font-size: 32px; font-weight: 800; color: #0022a1; line-height: 1.1; display: block; margin-bottom: 6px; }
.gc-wiz-sb-deposit { font-size: 11px; color: #9CA3AF; }

/* ── Invoice Widget Sidebar ── */
.gc-wiz-sidebar { padding: 0 !important; border: none !important; background: transparent !important; box-shadow: none !important; }
.bk-invoice-widget { background: #fff; border: 1.5px solid #e0e7ff; border-radius: 24px; overflow: hidden; }
/* Header */
.bk-inv-header { text-align: center; padding: 24px 20px 18px; background: #f8faff; border-bottom: 1px solid #e8edf8; }
.bk-inv-car-img { width: 100%; max-height: 110px; object-fit: contain; display: block; margin: 0 auto 14px; }
.bk-inv-car-svg { width: 100%; max-height: 90px; display: block; margin: 0 auto 14px; }
.bk-inv-car-name { font-size: 17px; font-weight: 800; color: #0D1F18; margin: 0 0 4px; letter-spacing: -.3px; }
.bk-inv-car-cat { font-size: 13px; font-weight: 600; color: #0077cc; }
/* Detail rows */
.bk-inv-details { padding: 0 20px; }
.bk-inv-row { display: flex; justify-content: space-between; align-items: center; padding: 11px 0; border-bottom: 1px solid #f1f5f9; gap: 8px; }
.bk-inv-row:last-child { border-bottom: none; }
.bk-inv-label { display: flex; align-items: center; gap: 6px; font-size: 13px; color: #6B7280; font-weight: 500; flex-shrink: 0; white-space: nowrap; }
.bk-inv-value { font-size: 13px; color: #111827; font-weight: 700; text-align: right; }
.dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; display: inline-block; }
.dot-green { background: #22C55E; }
.dot-orange { background: #F97316; }
/* Extras zone */
.bk-inv-extras-zone { padding: 14px 20px; background: #fafbff; border-top: 1px solid #f1f5f9; }
.bk-inv-extras-title { font-size: 10px; font-weight: 700; letter-spacing: .1em; color: #94A3B8; text-transform: uppercase; margin: 0 0 10px; }
.bk-inv-extras-list { display: flex; flex-direction: column; gap: 6px; }
.bk-inv-no-extras { font-size: 13px; color: #9CA3AF; font-style: italic; }

/* Extra row slide-in animation */
@keyframes slideInFade {
    0%   { opacity: 0; transform: translateY(-8px); }
    100% { opacity: 1; transform: translateY(0); }
}
.bk-inv-extra-row { display: flex; justify-content: space-between; align-items: center; font-size: 13px; gap: 8px; animation: slideInFade 0.3s cubic-bezier(0.25, 1, 0.5, 1) both; }
.bk-inv-extra-row span:first-child { color: #374151; }
.bk-inv-extra-row span:last-child { font-weight: 700; color: #c2700a; white-space: nowrap; }
.bk-inv-extra-row span.free { color: #16A34A; }

/* Total price pulse animation */
@keyframes pricePulseHighlight {
    0%   { transform: scale(1);    text-shadow: none;                          color: #ffffff; }
    50%  { transform: scale(1.08); text-shadow: 0 0 15px rgba(255,255,255,.8); color: #a5b4fc; }
    100% { transform: scale(1);    text-shadow: none;                          color: #ffffff; }
}
.bk-sidebar-total-animated { animation: pricePulseHighlight 0.4s cubic-bezier(0.25, 1, 0.5, 1); display: inline-block; }

/* Total block */
.bk-inv-total-block { display: flex; justify-content: space-between; align-items: center; background: #00179e; padding: 18px 20px; gap: 12px; }
.bk-inv-total-left { display: flex; flex-direction: column; gap: 2px; }
.bk-inv-total-title { font-size: 10px; font-weight: 700; letter-spacing: .1em; color: rgba(255,255,255,.7); text-transform: uppercase; }
.bk-inv-total-sub { font-size: 11px; color: rgba(255,255,255,.55); }
.bk-inv-total-price { font-size: 28px; font-weight: 800; color: #fff; letter-spacing: -.5px; white-space: nowrap; }
/* Trust footer */
.bk-inv-trust-footer { padding: 14px 20px; background: #f4f7ff; display: flex; flex-direction: column; gap: 8px; }
.bk-inv-trust-item { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: #4b5563; font-weight: 500; }
.bk-inv-trust-item svg { flex-shrink: 0; stroke: #6366f1; }

/* ============================================================
   BOOKING WIZARD — 3 PREMIUM THEME CONCEPTS
   Apply one class to .gc-wiz-page to switch the full aesthetic:
     theme-glassmorphic | theme-executive-dark | theme-neo-brutalism
   ============================================================ */

/* ──────────────────────────────────────────────────────────
   THEME 1 · Ultra-Modern Glassmorphism
   ────────────────────────────────────────────────────────── */
.theme-glassmorphic { background: linear-gradient(135deg, #e0e7ff 0%, #dbeafe 40%, #ede9fe 100%); }

.theme-glassmorphic .gc-wiz-main { background: rgba(255,255,255,.45); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid rgba(255,255,255,.6); box-shadow: 0 8px 32px rgba(0,23,158,.08); }
.theme-glassmorphic .gc-wiz-panel-title { color: #0d1b2e; }
.theme-glassmorphic .gc-wiz-panel-sub { color: rgba(13,27,46,.55); }

.theme-glassmorphic .gc-wiz-sidebar { background: rgba(255,255,255,.4); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid rgba(255,255,255,.5); box-shadow: 0 8px 32px rgba(0,0,0,.03); }

.theme-glassmorphic .gc-wiz-sb-badge { background: rgba(14,165,233,.15); color: #0369a1; border: 1px solid rgba(14,165,233,.3); }
.theme-glassmorphic .gc-wiz-sb-days-top { background: rgba(0,23,158,.1); border-color: rgba(0,23,158,.2); }

.theme-glassmorphic .gc-wiz-sb-car-zone { background: rgba(255,255,255,.35); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.6); }
.theme-glassmorphic .gc-wiz-sb-selected { background: rgba(255,255,255,.85); box-shadow: 0 2px 12px rgba(0,0,0,.1); }
.theme-glassmorphic .gc-wiz-sb-cat-top { color: #475569; }
.theme-glassmorphic .gc-wiz-sb-name { color: #0d1b2e; }

.theme-glassmorphic .gc-wiz-sb-date-box { background: rgba(255,255,255,.3); border: 1px solid rgba(255,255,255,.5); }
.theme-glassmorphic .gc-wiz-sb-row--sep { border-top-color: rgba(255,255,255,.4); }
.theme-glassmorphic .gc-wiz-sb-row span { color: #475569; }
.theme-glassmorphic .gc-wiz-sb-row strong { color: #0d1b2e; }

.theme-glassmorphic .gc-wiz-sb-inv-row { border-bottom-color: rgba(0,23,158,.07); }
.theme-glassmorphic .gc-wiz-sb-inv-row span:first-child { color: #64748b; }
.theme-glassmorphic .gc-wiz-sb-inv-row span:last-child { color: #0d1b2e; }

.theme-glassmorphic .gc-wiz-sb-total-block { background: rgba(255,255,255,.85); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid rgba(255,255,255,.9); box-shadow: 0 8px 32px rgba(0,23,158,.12), 0 0 0 1px rgba(255,255,255,.5); }
.theme-glassmorphic .gc-wiz-sb-total-num { color: #0022a1; text-shadow: 0 2px 12px rgba(0,34,161,.18); }
.theme-glassmorphic .gc-wiz-sb-total-lbl { color: #94a3b8; }
.theme-glassmorphic .gc-wiz-sb-deposit { color: #94a3b8; }

.theme-glassmorphic .gc-extra-card { background: rgba(255,255,255,.45); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-color: rgba(255,255,255,.6); }
.theme-glassmorphic .gc-extra-card:hover { background: rgba(255,255,255,.62); box-shadow: 0 8px 24px rgba(0,23,158,.1); }
.theme-glassmorphic .gc-extra-card.selected { background: rgba(0,23,158,.07); border-color: #00179e; box-shadow: 0 4px 20px rgba(0,23,158,.14); }
.theme-glassmorphic .gc-extra-icon { background: rgba(255,255,255,.6); }
.theme-glassmorphic .gc-extra-title { color: #0d1b2e; }
.theme-glassmorphic .gc-extra-desc { color: #475569; }

.theme-glassmorphic .gc-wiz-btn-next { background: linear-gradient(135deg,#ff9110,#e07800); box-shadow: 0 4px 16px rgba(255,145,16,.35); }
.theme-glassmorphic .gc-wiz-btn-back { background: rgba(255,255,255,.5); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-color: rgba(255,255,255,.7); }
.theme-glassmorphic .gc-wiz-nav { border-top-color: rgba(255,255,255,.4); }

.theme-glassmorphic .gc-wiz-form .form-input { background: rgba(255,255,255,.5); border-color: rgba(255,255,255,.7); }
.theme-glassmorphic .gc-wiz-form .form-input:focus { background: rgba(255,255,255,.75); border-color: #00179e; }

/* ──────────────────────────────────────────────────────────
   THEME 2 · Premium Executive Luxury Dark Mode
   ────────────────────────────────────────────────────────── */
.theme-executive-dark { background: #0d1117; }

.theme-executive-dark .gc-wiz-bar { background: #111827; border-bottom: 1px solid rgba(255,255,255,.06); }
.theme-executive-dark .gc-wiz-bar-car { color: rgba(255,255,255,.6); }
.theme-executive-dark .gc-wiz-bar-car svg { stroke: rgba(255,255,255,.4); }
.theme-executive-dark .gc-wiz-step-lbl { color: rgba(255,255,255,.45); }
.theme-executive-dark .gc-wiz-step-dot { background: #1f2937; border-color: rgba(255,255,255,.12); color: rgba(255,255,255,.5); }
.theme-executive-dark .gc-wiz-step-item.active .gc-wiz-step-dot { background: #06b6d4; border-color: #06b6d4; color: #fff; box-shadow: 0 0 0 4px rgba(6,182,212,.2); }
.theme-executive-dark .gc-wiz-step-item.done .gc-wiz-step-dot { background: rgba(6,182,212,.15); border-color: rgba(6,182,212,.3); }
.theme-executive-dark .gc-wiz-step-connector { background: rgba(255,255,255,.06); }
.theme-executive-dark .gc-wiz-step-connector.done { background: #06b6d4; }
.theme-executive-dark .gc-wiz-close-btn { color: rgba(255,255,255,.4); border-color: rgba(255,255,255,.08); }

.theme-executive-dark .gc-wiz-main { background: #111827; border: 1px solid rgba(255,255,255,.06); box-shadow: 0 4px 32px rgba(0,0,0,.5); }
.theme-executive-dark .gc-wiz-panel-title { color: #f9fafb; }
.theme-executive-dark .gc-wiz-panel-sub { color: rgba(255,255,255,.4); }

.theme-executive-dark .gc-wiz-sidebar { background: #111827; border: 1px solid rgba(255,255,255,.06); box-shadow: 0 4px 32px rgba(0,0,0,.5); }

.theme-executive-dark .gc-wiz-sb-badge { background: rgba(6,182,212,.1); color: #06b6d4; border: 1px solid rgba(6,182,212,.22); }
.theme-executive-dark .gc-wiz-sb-days-top { background: rgba(6,182,212,.08); color: #06b6d4; border-color: rgba(6,182,212,.18); }

.theme-executive-dark .gc-wiz-sb-car-zone { background: linear-gradient(145deg,#1a2744 0%,#1f2937 60%,#162032 100%); border: 1px solid rgba(255,255,255,.06); }
.theme-executive-dark .gc-wiz-sb-selected { background: rgba(255,255,255,.06); color: rgba(255,255,255,.65); box-shadow: none; border: 1px solid rgba(255,255,255,.1); }
.theme-executive-dark .gc-wiz-sb-cat-top { color: rgba(255,255,255,.35); }
.theme-executive-dark .gc-wiz-sb-name { color: #f9fafb; }

.theme-executive-dark .gc-wiz-sb-date-box { background: #1f2937; border: 1px solid rgba(255,255,255,.06); }
.theme-executive-dark .gc-wiz-sb-row span { color: rgba(255,255,255,.4); }
.theme-executive-dark .gc-wiz-sb-row strong { color: #e2e8f0; }
.theme-executive-dark .gc-wiz-sb-row--sep { border-top-color: rgba(255,255,255,.06); }

.theme-executive-dark .gc-wiz-sb-inv-row { border-bottom-color: rgba(255,255,255,.06); }
.theme-executive-dark .gc-wiz-sb-inv-row span:first-child { color: rgba(255,255,255,.4); }
.theme-executive-dark .gc-wiz-sb-inv-row span:last-child { color: #f9fafb; }
.theme-executive-dark .gc-wiz-sb-inv-row.green span { color: #34d399; }

.theme-executive-dark .gc-wiz-sb-total-block { background: #1f2937; border: 1px solid rgba(255,255,255,.06); box-shadow: 0 4px 24px rgba(0,0,0,.35); }
.theme-executive-dark .gc-wiz-sb-total-lbl { color: rgba(255,255,255,.3); }
.theme-executive-dark .gc-wiz-sb-total-num { color: #06b6d4; text-shadow: 0 0 20px rgba(6,182,212,.25); }
.theme-executive-dark .gc-wiz-sb-deposit { color: rgba(255,255,255,.25); }

.theme-executive-dark .gc-extra-card { background: #1f2937; border-color: rgba(255,255,255,.06); }
.theme-executive-dark .gc-extra-card:hover { border-color: rgba(6,182,212,.28); box-shadow: 0 4px 20px rgba(6,182,212,.07); }
.theme-executive-dark .gc-extra-card.selected { background: rgba(6,182,212,.07); border-color: #06b6d4; box-shadow: 0 4px 20px rgba(6,182,212,.12); }
.theme-executive-dark .gc-extra-check { background: #111827; border-color: rgba(255,255,255,.1); }
.theme-executive-dark .gc-extra-card.selected .gc-extra-check { background: #06b6d4; border-color: #06b6d4; }
.theme-executive-dark .gc-extra-icon { background: rgba(255,255,255,.04); }
.theme-executive-dark .gc-extra-title { color: #f9fafb; }
.theme-executive-dark .gc-extra-desc { color: rgba(255,255,255,.38); }
.theme-executive-dark .gc-extra-price { background: #b45309; }
.theme-executive-dark .gc-extra-price.free { background: rgba(52,211,153,.12); color: #34d399; }

.theme-executive-dark .gc-wiz-nav { border-top-color: rgba(255,255,255,.06); }
.theme-executive-dark .gc-wiz-btn-next { background: #06b6d4; box-shadow: 0 4px 16px rgba(6,182,212,.3); }
.theme-executive-dark .gc-wiz-btn-next:hover { background: #0891b2; }
.theme-executive-dark .gc-wiz-btn-back { background: #1f2937; color: #06b6d4; border-color: rgba(255,255,255,.08); }
.theme-executive-dark .gc-wiz-btn-back:hover { border-color: rgba(6,182,212,.3); background: #1f2937; }

.theme-executive-dark .gc-wiz-form .form-label { color: rgba(255,255,255,.45); }
.theme-executive-dark .gc-wiz-form .form-input { background: #1f2937; border-color: rgba(255,255,255,.08); color: #f9fafb; }
.theme-executive-dark .gc-wiz-form .form-input:focus { border-color: #06b6d4; box-shadow: 0 0 0 3px rgba(6,182,212,.15); background: #1f2937; }
.theme-executive-dark .gc-wiz-form .form-input::placeholder { color: rgba(255,255,255,.2); }
.theme-executive-dark .gc-dial-code { background: #1f2937; border-color: rgba(255,255,255,.08) !important; color: #f9fafb; }
.theme-executive-dark .gc-wiz-flight-note { color: rgba(255,255,255,.3); }

/* ──────────────────────────────────────────────────────────
   THEME 3 · Clean Neo-Brutalist Minimalism
   ────────────────────────────────────────────────────────── */
.theme-neo-brutalism { background: #f5f5f0; }

.theme-neo-brutalism .gc-wiz-bar { background: #fff; border-bottom: 2px solid #000; box-shadow: none; }
.theme-neo-brutalism .gc-wiz-step-lbl { color: #555; font-weight: 700; }
.theme-neo-brutalism .gc-wiz-step-dot { border: 2px solid #000; border-radius: 0; font-weight: 800; background: #fff; color: #000; }
.theme-neo-brutalism .gc-wiz-step-item.active .gc-wiz-step-dot { background: #facc15; border-color: #000; box-shadow: 2px 2px 0 #000; color: #000; }
.theme-neo-brutalism .gc-wiz-step-item.done .gc-wiz-step-dot { background: #000; color: #fff; }
.theme-neo-brutalism .gc-wiz-step-connector { background: #000; height: 2px; border-radius: 0; }
.theme-neo-brutalism .gc-wiz-close-btn { border: 2px solid #000; border-radius: 0; }

.theme-neo-brutalism .gc-wiz-main { background: #fff; border: 2px solid #000; border-radius: 0; box-shadow: 6px 6px 0 #000; }
.theme-neo-brutalism .gc-wiz-panel-title { color: #000; font-size: 1.75rem; }
.theme-neo-brutalism .gc-wiz-panel-sub { color: #444; }

.theme-neo-brutalism .gc-wiz-sidebar { background: #fff; border: 2px solid #000; border-radius: 0; box-shadow: 6px 6px 0 #000; }

.theme-neo-brutalism .gc-wiz-sb-badge { background: #000; color: #fff; border-radius: 0; letter-spacing: .08em; }
.theme-neo-brutalism .gc-wiz-sb-days-top { background: #facc15; color: #000; border: 2px solid #000; border-radius: 0; font-weight: 800; }

.theme-neo-brutalism .gc-wiz-sb-car-zone { background: #fef9c3; border: 2px solid #000; border-radius: 0; }
.theme-neo-brutalism .gc-wiz-sb-selected { background: #facc15; color: #000; border-radius: 0; box-shadow: 2px 2px 0 #000; border: 1.5px solid #000; font-weight: 800; }
.theme-neo-brutalism .gc-wiz-sb-cat-top { color: #555; letter-spacing: .1em; }
.theme-neo-brutalism .gc-wiz-sb-name { color: #000; }

.theme-neo-brutalism .gc-wiz-sb-date-box { background: #f5f5f0; border: 2px solid #000; border-radius: 0; }
.theme-neo-brutalism .gc-wiz-sb-row span { color: #222; font-weight: 700; }
.theme-neo-brutalism .gc-wiz-sb-row strong { color: #000; }
.theme-neo-brutalism .gc-wiz-sb-row--sep { border-top: 2px solid #000; margin-top: 4px; padding-top: 9px; }

.theme-neo-brutalism .gc-wiz-sb-inv-row { border-bottom: 1.5px solid #000; padding: 11px 0; }
.theme-neo-brutalism .gc-wiz-sb-inv-row:last-child { border-bottom: none; }
.theme-neo-brutalism .gc-wiz-sb-inv-row span:first-child { color: #444; font-weight: 600; }
.theme-neo-brutalism .gc-wiz-sb-inv-row span:last-child { color: #000; font-weight: 800; }
.theme-neo-brutalism .gc-wiz-sb-inv-row.green span { color: #15803d; font-weight: 800; }

.theme-neo-brutalism .gc-wiz-sb-total-block { background: #facc15; border: 2px solid #000; border-radius: 0; box-shadow: 4px 4px 0 #000; margin-top: 14px; }
.theme-neo-brutalism .gc-wiz-sb-total-lbl { color: #555; letter-spacing: .12em; }
.theme-neo-brutalism .gc-wiz-sb-total-num { color: #000; font-size: 34px; text-shadow: none; }
.theme-neo-brutalism .gc-wiz-sb-deposit { color: #555; }

.theme-neo-brutalism .gc-extra-card { background: #fff; border: 2px solid #000; border-radius: 0; box-shadow: 4px 4px 0 #000; transition: box-shadow .12s, transform .12s; }
.theme-neo-brutalism .gc-extra-card:hover { box-shadow: 6px 6px 0 #000; transform: translate(-1px,-1px); border-color: #000; }
.theme-neo-brutalism .gc-extra-card.selected { background: #fef9c3; border-color: #000; box-shadow: 4px 4px 0 #000; }
.theme-neo-brutalism .gc-extra-check { border: 2px solid #000; border-radius: 0; background: #fff; }
.theme-neo-brutalism .gc-extra-card.selected .gc-extra-check { background: #000; border-color: #000; }
.theme-neo-brutalism .gc-extra-icon { background: #f5f5f0; border-radius: 0; border: 1.5px solid #ddd; }
.theme-neo-brutalism .gc-extra-title { color: #000; }
.theme-neo-brutalism .gc-extra-desc { color: #444; }
.theme-neo-brutalism .gc-extra-price { background: #000; color: #fff; border-radius: 0; font-weight: 800; letter-spacing: .04em; }
.theme-neo-brutalism .gc-extra-price.free { background: #15803d; color: #fff; }

.theme-neo-brutalism .gc-wiz-nav { border-top: 2px solid #000; }
.theme-neo-brutalism .gc-wiz-btn-next { background: #000; border-radius: 0; box-shadow: 4px 4px 0 #ff9110; letter-spacing: .04em; }
.theme-neo-brutalism .gc-wiz-btn-next:hover { background: #111; box-shadow: 6px 6px 0 #ff9110; color: #fff; }
.theme-neo-brutalism .gc-wiz-btn-back { background: #fff; color: #000; border: 2px solid #000; border-radius: 0; box-shadow: 3px 3px 0 #000; }
.theme-neo-brutalism .gc-wiz-btn-back:hover { box-shadow: 5px 5px 0 #000; border-color: #000; }

.theme-neo-brutalism .gc-wiz-form .form-label { color: #000; font-weight: 800; }
.theme-neo-brutalism .gc-wiz-form .form-input { border: 2px solid #000; border-radius: 0; background: #fff; }
.theme-neo-brutalism .gc-wiz-form .form-input:focus { border-color: #000; box-shadow: 3px 3px 0 #000; background: #fff; }
.theme-neo-brutalism .gc-dial-code { border: 2px solid #000 !important; border-radius: 0; }

/* Sticky search bar */
.bk-sticky-bar { position: fixed; top: 0; left: 0; right: 0; z-index: 9998; background: #fff; border-bottom: 1px solid #E2E8F0; box-shadow: 0 2px 20px rgba(0,0,0,.1); transform: translateY(-110%); transition: transform .3s cubic-bezier(.4,0,.2,1); will-change: transform; }
.admin-bar .bk-sticky-bar { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar .bk-sticky-bar { top: 46px; } }
.bk-sticky-inner { max-width: 1200px; margin: 0 auto; padding: 10px 28px; display: flex; align-items: center; gap: 0; }
.bk-sticky-leg { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
.bk-sticky-leg-body { min-width: 0; }
.bk-sticky-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.bk-sticky-dot--green { background: #22C55E; }
.bk-sticky-dot--orange { background: #F97316; }
.bk-sticky-lbl { font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #94A3B8; margin-bottom: 1px; }
.bk-sticky-val { font-size: 13px; font-weight: 600; color: #0D1F18; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bk-sticky-sep { color: #CBD5E1; }
.bk-sticky-divider { width: 1px; height: 34px; background: #E2E8F0; margin: 0 24px; flex-shrink: 0; }
.bk-sticky-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; margin-left: 16px; }
.bk-sticky-days { background: #00179e; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .04em; padding: 5px 14px; border-radius: 100px; white-space: nowrap; display: none; }
.bk-sticky-edit { background: #fff; color: #00179e; border: 1.5px solid #DBEAFE; border-radius: 8px; padding: 7px 14px; font-size: 13px; font-weight: 700; font-family: inherit; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; transition: background .18s, border-color .18s; white-space: nowrap; }
.bk-sticky-edit:hover { background: #EFF6FF; border-color: #93C5FD; }
@media (max-width: 700px) { .bk-sticky-bar { display: none !important; } }

/* Car card compact overrides */
.bk-car-img { min-height: 190px; max-height: 190px; }
.bk-car-img img { max-height: 170px; padding: 10px; object-fit: contain; }
.bk-car-info { padding: 14px 18px; gap: 4px; justify-content: center; }
.bk-car-price { padding: 16px 20px; gap: 6px; }
.bk-car-name { font-size: 26px; margin: 0 0 4px; }
.bk-car-desc { margin: 8px 0 0; font-size: 11px; }
.bk-specs-row { gap: 5px; margin-top: 8px; }
.bk-perks-row { margin-top: 6px; gap: 5px; }
.bk-perk { padding: 2px 8px; font-size: 10px; font-weight: 700; }
@media (max-width: 768px) {
  /* Reset global compact overrides for horizontal card layout */
  .bk-car-img { min-height: 0; max-height: none; }
  .bk-car-img img { max-height: none; max-width: 100%; padding: 8px; }
  .bk-car-info { padding: 12px 13px 8px; gap: 4px; justify-content: flex-start; }
  .bk-car-price { padding: 10px 13px; gap: 6px; }
  .bk-car-name { font-size: 14px; margin: 0 0 2px; }
  .bk-car-desc { margin: 6px 0 0; font-size: 10px; }
  .bk-specs-row { gap: 4px; margin-top: 6px; }
  .bk-perks-row { margin-top: 4px; gap: 4px; }
  .bk-perk { padding: 2px 7px; font-size: 9.5px; }
  .bk-car-card .vspec { font-size: 9.5px; padding: 2px 6px; }
  /* Booking wizard UI */
  .gc-wiz-bar { padding: 0 16px; gap: 8px; }
  .gc-wiz-bar-car { display: none; }
  .gc-wiz-close-btn { display: none; }
  .gc-wiz-step-connector { width: 32px; }
  .gc-wiz-body { grid-template-columns: 1fr; margin: 24px auto; gap: 20px; }
  .gc-wiz-main { padding: 24px 20px; }
  .gc-wiz-sidebar { position: static; }
}

/* ============================================================
   CONTACT PAGE V2 — UNIFIED CARD LAYOUT
   ============================================================ */

/* Quick actions bar — centred row */
.contact-qa-bar { background: var(--white); border-bottom: 1px solid var(--g100); padding: 16px 0; }
.contact-qa-row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; justify-content: center; }

/* Unified card section */
.contact-card-section { padding: 48px 0 80px; }
.contact-card {
  display: grid;
  grid-template-columns: 2fr 3fr;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0,23,158,.14);
}

/* LEFT — dark blue info panel */
.contact-card-left {
  background: #00179e;
  padding: 52px 44px;
  display: flex;
  flex-direction: column;
}
.cc-kicker {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .12em; color: rgba(255,255,255,.5);
  margin-bottom: 24px;
}
.cc-title {
  font-size: 38px; font-weight: 900; color: #fff;
  line-height: 1.1; margin-bottom: 16px; letter-spacing: -.5px;
}
.cc-body {
  font-size: 14px; color: rgba(255,255,255,.72);
  line-height: 1.75; margin-bottom: 36px;
}
.cci-rows { flex: 1; display: flex; flex-direction: column; gap: 22px; margin-bottom: 36px; }
.cci-row { display: flex; gap: 14px; align-items: flex-start; }
.cci-icon-wrap {
  width: 38px; height: 38px; flex-shrink: 0;
  background: rgba(255,255,255,.15);
  border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
}
.cci-icon-wrap svg { width: 17px; height: 17px; color: #fff; }
.cci-label {
  font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .1em; color: rgba(255,255,255,.48);
  margin-bottom: 3px;
}
.cci-val { font-size: 13px; font-weight: 600; color: #fff; line-height: 1.45; display: block; }
a.cci-val { text-decoration: none; }
a.cci-val:hover { text-decoration: underline; }
.cc-wa-btn {
  display: flex; align-items: center; gap: 12px;
  background: #25D366; color: #fff;
  padding: 14px 18px; border-radius: 12px;
  text-decoration: none;
  transition: background .18s;
}
.cc-wa-btn:hover { background: #1db954; }
.cc-wa-btn svg { flex-shrink: 0; }
.cc-wa-btn-sub { font-size: 12px; font-weight: 400; color: rgba(255,255,255,.8); display: block; margin-top: 2px; }

/* RIGHT — white form panel */
.contact-card-right { background: #fff; padding: 52px 44px; display: flex; flex-direction: column; justify-content: center; }
.cf-title { font-size: 22px; font-weight: 800; color: var(--ink); margin-bottom: 6px; }
.cf-subtitle { font-size: 14px; color: var(--ink-light); line-height: 1.65; margin-bottom: 28px; }

/* Form success state */
.contact-form-success { text-align: center; padding: 40px 20px; }
.contact-form-success-icon { font-size: 3rem; color: #16a34a; margin-bottom: 12px; }
.contact-form-success h3 { font-size: 22px; font-weight: 800; color: var(--ink); margin-bottom: 8px; }
.contact-form-success p { color: var(--ink-light); font-size: 15px; }

/* Form error alert */
.contact-form-alert {
  background: #FEF2F2; border: 1px solid #FECACA;
  border-radius: var(--rmd); padding: 12px 16px;
  margin-bottom: 16px; color: #B91C1C; font-size: 14px;
}

/* Prefer WhatsApp hint */
.cf-wa-hint {
  display: flex; align-items: flex-start; gap: 10px;
  margin-top: 16px;
  background: #f0fdf4; border: 1px solid #bbf7d0;
  border-radius: 10px; padding: 12px 14px;
  font-size: 13px; color: #166534; line-height: 1.5;
}
.cf-wa-hint svg { width: 18px; height: 18px; flex-shrink: 0; color: #16a34a; margin-top: 2px; }
.cf-wa-hint a { color: #15803d; font-weight: 700; }

/* MAP SECTION V2 */
.contact-map-section { background: var(--g50); padding: 72px 0 0; }
.contact-map-tag {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .12em; color: var(--accent); margin-bottom: 10px;
}
.contact-map-h {
  font-size: 32px; font-weight: 900; color: var(--ink);
  letter-spacing: -.5px; margin-bottom: 10px;
}
.contact-map-h em { color: var(--accent); font-style: normal; }
.contact-map-sub { font-size: 15px; color: var(--ink-light); margin-bottom: 36px; max-width: 620px; line-height: 1.65; }
.contact-map-frame { width: 100%; height: 480px; display: block; border: none; }

/* FAQ SECTION V2 */
.contact-faq-v2 { background: #fff; padding: 72px 0; }
.contact-faq-tag {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .12em; color: var(--accent); margin-bottom: 10px;
}
.contact-faq-h {
  font-size: 32px; font-weight: 900; color: var(--ink);
  letter-spacing: -.5px; margin-bottom: 36px;
}
.contact-faq-h em { color: var(--accent); font-style: normal; }

/* Responsive — contact card */
@media (max-width: 960px) {
  .contact-card { grid-template-columns: 1fr; }
  .contact-card-left { padding: 40px 32px; }
  .cc-title { font-size: 30px; }
  .contact-card-right { padding: 40px 32px; }
  .contact-map-h, .contact-faq-h { font-size: 26px; }
}
@media (max-width: 600px) {
  .contact-card-section { padding: 24px 0 48px; }
  .contact-card-left, .contact-card-right { padding: 32px 24px; }
  .cc-title { font-size: 26px; }
  .cf-title { font-size: 19px; }
  .contact-map-section { padding: 48px 0 0; }
  .contact-map-frame { height: 340px; }
  .contact-faq-v2 { padding: 48px 0; }
}

/* Location picker placeholder state */
.sf-loc-placeholder { color: #9ca3af; font-weight: 400; }

/* =========================================
   ULTRA-PREMIUM MOBILE OPTIMIZATION (Max 768px)
   ========================================= */
@media (max-width: 768px) {
  /* 1. Extras cards */
  .gc-extra-card { min-height: 70px !important; }
  .gc-extra-left-badge { width: 60px !important; min-width: 60px !important; height: auto !important; min-height: 100% !important; }
  .gc-extra-left-badge svg { width: 26px !important; height: 26px !important; }
  .gc-extra-content-block { padding: 12px 10px !important; }
  .gc-extra-title { font-size: 13px !important; }
  .gc-extra-price { font-size: 10px !important; padding: 3px 8px !important; }
  .gc-extra-desc { font-size: 12px !important; }
  .gc-extra-action-btn { margin-right: 12px !important; padding: 6px 12px !important; font-size: 12px !important; }

  /* 2. Invoice widget */
  .bk-invoice-widget { border-radius: 16px !important; margin-top: 24px !important; }
  .bk-inv-header { padding: 16px !important; }
  .bk-inv-car-name { font-size: 18px !important; }
  .bk-inv-details { padding: 16px !important; }
  .bk-inv-row { font-size: 13px !important; padding: 10px 0 !important; }
  .bk-inv-extras-zone { padding: 16px !important; }
  .bk-inv-total-block { padding: 16px !important; flex-direction: column !important; align-items: center !important; text-align: center !important; gap: 8px !important; }
  .bk-inv-total-left, .bk-inv-total-right { align-items: center !important; }
  .bk-inv-total-price { font-size: 28px !important; }
  .bk-inv-trust-footer { padding: 16px !important; flex-direction: column !important; align-items: flex-start !important; gap: 12px !important; }
  .bk-inv-trust-item { font-size: 12px !important; }
}

/* ============================================================
   SINGLE CAR — BOOKING SIDEBAR EXTRA FIELDS
   ============================================================ */

/* ── Custom Location Dropdown ── */
.gc-loc-select {
  position: relative;
}
.gc-loc-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: var(--rmd);
  cursor: pointer;
  font-family: var(--fbody);
  text-align: left;
  transition: border-color .2s, box-shadow .2s;
}
.gc-loc-trigger:hover { border-color: var(--g500); }
.gc-loc-select[aria-expanded="true"] .gc-loc-trigger {
  border-color: var(--g700);
  box-shadow: 0 0 0 3px rgba(0,23,158,.10);
}
.gc-loc-trigger-icon {
  flex-shrink: 0;
  width: 36px; height: 36px;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s, color .2s;
}
.gc-loc-trigger-text {
  flex: 1; min-width: 0;
  display: flex; flex-direction: column; gap: 1px;
}
.gc-loc-trigger-name {
  font-size: 13.5px; font-weight: 700; color: var(--ink);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  display: block;
}
.gc-loc-trigger-sub {
  font-size: 11px; color: var(--ink-light); font-weight: 500;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  display: block;
}
.gc-loc-chevron {
  flex-shrink: 0;
  color: var(--ink-faint);
  transition: transform .22s ease;
}

/* Dropdown menu */
.gc-loc-menu {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  left: 0; right: 0;
  background: var(--white);
  border: 1.5px solid var(--g200);
  border-radius: var(--rlg);
  box-shadow: 0 10px 40px rgba(0,23,158,.12), 0 2px 8px rgba(0,0,0,.06);
  list-style: none;
  padding: 6px;
  z-index: 999;
}
.gc-loc-menu.gc-loc-menu-open {
  display: block;
  animation: gcLocIn .15s ease forwards;
}
@keyframes gcLocIn {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Option rows */
.gc-loc-opt {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 10px;
  border-radius: var(--rmd);
  cursor: pointer;
  transition: background .12s;
  border-bottom: 1px solid var(--g100);
}
.gc-loc-opt:last-child { border-bottom: none; }
.gc-loc-opt:hover { background: var(--g50); }
.gc-loc-opt[aria-selected="true"] { background: var(--g50); }
.gc-loc-opt-icon {
  flex-shrink: 0;
  width: 38px; height: 38px;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
}
.gc-loc-opt-text {
  display: flex; flex-direction: column; gap: 2px;
}
.gc-loc-opt-name {
  font-size: 14px; font-weight: 700; color: var(--ink);
}
.gc-loc-opt-sub {
  font-size: 12px; color: var(--ink-light); font-weight: 500;
}

/* Return to different location toggle */
.bs-return-toggle-row {
  margin: 2px 0 6px;
}
.bs-toggle-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  user-select: none;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-mid);
  line-height: 1.3;
}
.bs-toggle-inp {
  position: absolute;
  opacity: 0;
  width: 0; height: 0;
  pointer-events: none;
}
.bs-toggle-switch {
  position: relative;
  flex-shrink: 0;
  width: 38px; height: 22px;
  background: var(--g200);
  border-radius: 100px;
  transition: background .22s ease;
}
.bs-toggle-switch::after {
  content: '';
  position: absolute;
  top: 3px; left: 3px;
  width: 16px; height: 16px;
  background: var(--white);
  border-radius: 50%;
  box-shadow: 0 1px 4px rgba(0,0,0,.2);
  transition: transform .22s ease;
}
.bs-toggle-inp:checked ~ .bs-toggle-switch {
  background: var(--g900);
}
.bs-toggle-inp:checked ~ .bs-toggle-switch::after {
  transform: translateX(16px);
}
.bs-toggle-label:hover .bs-toggle-switch {
  background: var(--g400);
}
.bs-toggle-inp:checked ~ .bs-toggle-switch:hover {
  background: var(--g700);
}

/* Drop-off wrapper — collapsed by default, smooth reveal */
.bs-dropoff-wrap {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  overflow: hidden;
  transition: grid-template-rows .3s ease, opacity .3s ease, margin .3s ease;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.bs-dropoff-wrap > * { min-height: 0; }
.bs-dropoff-wrap.bs-dropoff-visible {
  grid-template-rows: 1fr;
  opacity: 1;
  overflow: visible; /* CRITICAL: let the absolute dropdown menu escape the container */
  margin-top: 0 !important;
  margin-bottom: 14px !important;
}

/* Placeholder trigger state */
.gc-loc-trigger.gc-loc-is-placeholder .gc-loc-trigger-name,
.gc-loc-placeholder-text {
  color: var(--ink-faint) !important;
  font-weight: 500 !important;
}


/* ============================================================
   404 PAGE STYLES
   ============================================================ */
.error-404-section {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: 80px 0;
  background: linear-gradient(135deg, #00053a 0%, #00179e 55%, #0033cc 100%);
}

/* Ambient orbs */
.e404-orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(80px);
  opacity: .18;
}
.e404-orb-1 {
  width: 520px; height: 520px;
  background: radial-gradient(circle, #60a5fa, transparent 70%);
  top: -140px; right: -100px;
}
.e404-orb-2 {
  width: 400px; height: 400px;
  background: radial-gradient(circle, #ff9110, transparent 70%);
  bottom: -120px; left: -80px;
}

/* Content wrapper */
.error-404-wrap {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 60px 24px;
  z-index: 2;
}

/* Giant ghost "404" */
.error-404-num {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: clamp(180px, 22vw, 340px);
  font-weight: 900;
  letter-spacing: -12px;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 2px rgba(255,255,255,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.12) 0%, rgba(255,255,255,.03) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  user-select: none;
  white-space: nowrap;
  pointer-events: none;
  z-index: 0;
}

/* Kicker badge */
.e404-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #93c5fd;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .2em;
  padding: 7px 18px;
  border-radius: 100px;
  margin-bottom: 28px;
  position: relative;
  z-index: 1;
  animation: fadeUp .55s .1s ease both;
}

/* Heading */
.error-404-title {
  font-family: var(--fhead);
  font-size: clamp(30px, 5vw, 60px);
  font-weight: 800;
  color: #ffffff;
  line-height: 1.1;
  letter-spacing: -1.5px;
  margin-bottom: 20px;
  max-width: 680px;
  position: relative;
  z-index: 1;
  animation: fadeUp .55s .2s ease both;
}
.error-404-title em {
  font-style: italic;
  color: #60a5fa;
  font-family: var(--fserif);
  font-weight: 600;
}

/* Body copy */
.error-404-p {
  font-size: 17px;
  color: rgba(255,255,255,.65);
  line-height: 1.7;
  max-width: 520px;
  margin-bottom: 44px;
  position: relative;
  z-index: 1;
  animation: fadeUp .55s .3s ease both;
}

/* Actions row */
.error-404-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
  position: relative;
  z-index: 1;
  animation: fadeUp .55s .4s ease both;
}

/* Primary CTA — glowing accent */
.e404-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: var(--accent);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  padding: 15px 30px;
  border-radius: var(--rmd);
  border: none;
  cursor: pointer;
  text-decoration: none;
  box-shadow: 0 6px 28px rgba(255,145,16,.40);
  transition: transform .25s cubic-bezier(.34,1.56,.64,1),
              box-shadow .25s ease,
              background .2s ease;
}
.e404-btn-primary:hover {
  background: var(--accent-dark);
  transform: scale(1.06) translateY(-2px);
  box-shadow: 0 12px 40px rgba(255,145,16,.60);
  color: #fff;
}

/* Secondary — glass outline */
.e404-btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  padding: 15px 26px;
  border-radius: var(--rmd);
  border: 1.5px solid rgba(255,255,255,.22);
  text-decoration: none;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.e404-btn-secondary:hover {
  background: rgba(255,255,255,.15);
  border-color: rgba(255,255,255,.45);
  transform: translateY(-2px);
  color: #fff;
}

/* WhatsApp button */
.e404-btn-wa {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: #25D366;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  padding: 15px 26px;
  border-radius: var(--rmd);
  border: none;
  text-decoration: none;
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
  box-shadow: 0 4px 16px rgba(37,211,102,.30);
}
.e404-btn-wa:hover {
  background: #1ebe5d;
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(37,211,102,.50);
  color: #fff;
}

/* Mobile adjustments */
@media (max-width: 600px) {
  .error-404-section { min-height: 80vh; }
  .error-404-num { font-size: clamp(120px, 30vw, 180px); letter-spacing: -6px; }
  .error-404-title { font-size: clamp(26px, 7vw, 36px); }
  .error-404-p { font-size: 15px; margin-bottom: 32px; }
  .error-404-actions { flex-direction: column; align-items: stretch; }
  .e404-btn-primary,
  .e404-btn-secondary,
  .e404-btn-wa { justify-content: center; }
}

/* ============================================================
   BOOKING CONFIRMATION — STEP 4 (Premium)
   ============================================================ */

/* Outer wrapper — vertically centred in the page */
.gc-conf-wrap {
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  max-width: 1020px;
  margin: 0 auto;
}

/* Two-column body */
.gc-conf-body {
  display: flex;
  align-items: flex-start;
  gap: 52px;
  width: 100%;
}

/* ── LEFT column ── */
.gc-conf-l {
  flex: 1;
  text-align: left;
  animation: gcConfFadeLeft .55s .05s ease both;
}

/* Animated checkmark */
.gc-conf-check-ring {
  position: relative;
  width: 88px; height: 88px;
  margin: 0 0 28px;
}
.gc-conf-check-ring::before,
.gc-conf-check-ring::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: rgba(34,197,94,.15);
  animation: gcConfPulse 2.2s ease-in-out infinite;
}
.gc-conf-check-ring::after {
  inset: -10px;
  background: rgba(34,197,94,.07);
  animation-delay: .4s;
}
.gc-conf-check-circle {
  position: relative;
  z-index: 1;
  width: 88px; height: 88px;
  background: #22C55E;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 12px 32px rgba(34,197,94,.35);
  animation: gcConfCheckPop .5s cubic-bezier(.34,1.56,.64,1) both;
}

@keyframes gcConfCheckPop {
  from { transform: scale(0.4); opacity: 0; }
  to   { transform: scale(1);   opacity: 1; }
}
@keyframes gcConfPulse {
  0%, 100% { transform: scale(1);   opacity: .8; }
  50%       { transform: scale(1.18); opacity: 0; }
}
@keyframes gcConfFadeLeft {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes gcConfFadeRight {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

.gc-conf-h {
  font-family: var(--fhead);
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 800;
  color: #0D1B2E;
  line-height: 1.15;
  letter-spacing: -.8px;
  margin: 0 0 14px;
}
.gc-conf-h em {
  font-style: italic;
  font-family: var(--fserif);
  font-weight: 400;
  color: #0EA5E9;
}
.gc-conf-sub {
  font-size: 15px;
  color: #6B7280;
  line-height: 1.65;
  margin: 0 0 28px;
}
.gc-conf-sub strong { color: #0D1B2E; }

/* "What happens next?" steps */
.gc-conf-steps-box {
  background: #F8FAFF;
  border: 1px solid #DBEAFE;
  border-radius: 14px;
  padding: 20px 22px;
}
.gc-conf-steps-title {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: #00179e;
  margin: 0 0 14px;
}
.gc-conf-step {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 14px;
}
.gc-conf-step:last-child { margin-bottom: 0; }
.gc-conf-step-n {
  flex-shrink: 0;
  width: 26px; height: 26px;
  background: #00179e;
  color: #fff;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  margin-top: 1px;
}
.gc-conf-step-body { flex: 1; }
.gc-conf-step-body strong { display: block; font-size: 13.5px; font-weight: 700; color: #0D1B2E; margin-bottom: 2px; }
.gc-conf-step-body p { font-size: 12.5px; color: #6B7280; line-height: 1.55; margin: 0; }

/* ── RIGHT column — receipt card ── */
.gc-conf-r {
  flex: 0 0 400px;
  background: #ffffff;
  border-radius: 18px;
  box-shadow: 0 20px 60px rgba(0,23,158,.10), 0 4px 16px rgba(0,0,0,.05);
  overflow: hidden;
  animation: gcConfFadeRight .55s .15s ease both;
}

/* Blue gradient top bar */
.gc-conf-r-accent {
  height: 5px;
  background: linear-gradient(90deg, #00179e 0%, #0EA5E9 100%);
}

.gc-conf-r-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 18px 24px 14px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: #94A3B8;
  border-bottom: 1px solid #F1F5F9;
}

/* Receipt rows */
.gc-conf-rows { padding: 0 24px; }
.gc-conf-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 13px 0;
  border-bottom: 1px solid #F1F5F9;
  gap: 12px;
}
.gc-conf-row:last-child { border-bottom: none; }
.gc-conf-row-lbl {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  color: #94A3B8;
  font-weight: 500;
  white-space: nowrap;
  flex-shrink: 0;
}
.gc-conf-row-lbl svg { color: #CBD5E1; }
.gc-conf-row-val {
  font-size: 13.5px;
  font-weight: 600;
  color: #0D1B2E;
  text-align: right;
}
.gc-conf-ref-val {
  font-family: 'SF Mono', 'Fira Code', monospace;
  color: #00179e;
  font-weight: 700;
  letter-spacing: .04em;
}

/* Clean receipt divider */
.bk-receipt-divider {
  border-top: 1px dashed #CBD5E1;
  margin: 16px 24px;
  width: calc(100% - 48px);
}

/* Total row */
.gc-conf-total-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 13px 24px 18px;
  gap: 12px;
}
.gc-conf-total-val {
  font-size: 17px;
  font-weight: 800;
  color: #00179e;
  letter-spacing: -.3px;
}

/* Buttons */
.gc-conf-btns {
  padding: 0 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.gc-conf-btn-home {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #00179e;
  color: #fff;
  padding: 14px 20px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: background .2s, transform .2s, box-shadow .2s;
}
.gc-conf-btn-home:hover {
  background: #0033cc;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0,23,158,.30);
  color: #fff;
}
.gc-conf-btn-wa {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: transparent;
  color: #25D366;
  border: 1.5px solid #25D366;
  padding: 12px 20px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: background .2s, color .2s, transform .2s;
}
.gc-conf-btn-wa:hover {
  background: #25D366;
  color: #fff;
  transform: translateY(-1px);
}

/* Receipt row — used in FR/ES/DE inline-style receipts */
.bk-receipt-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  color: #475569;
  font-size: 0.95rem;
}
.bk-receipt-row strong {
  color: #0f172a;
  font-weight: 600;
}

/* Detached / zoomed receipt — solid white so overlay doesn't bleed through */
.gc-conf-r.is-detached,
.gc-suc-r.is-detached,
.bk-receipt-card.is-detached {
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) scale(1.1) !important;
  z-index: 9999 !important;
  background-color: #ffffff !important;
  color: #111827 !important;
  box-shadow: 0 25px 50px -12px rgba(0,0,0,.5) !important;
  margin: 0 !important;
  border: none !important;
  border-radius: 12px !important;
  transition: all .5s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Ensure inner elements inherit the dark text */
.gc-conf-r.is-detached *,
.gc-suc-r.is-detached *,
.bk-receipt-card.is-detached * {
  color: inherit;
}

/* Keep the accent blue on the reference value */
.is-detached .gc-conf-ref-val,
.is-detached .bk-receipt-ref {
  color: #2563EB !important;
}

/* Dark backdrop — strictly behind the white card */
.gc-conf-r.is-detached::before,
.gc-suc-r.is-detached::before,
.bk-receipt-card.is-detached::before {
  content: '';
  position: fixed;
  top: -100vh; left: -100vw; right: -100vw; bottom: -100vh;
  background: rgba(15, 23, 42, .70);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  z-index: -1;
}

/* Hide everything below the divider and the action buttons once detached */
.is-detached .bk-receipt-divider ~ *,
.is-detached .gc-conf-btns {
  display: none !important;
}

/* Show the download icon with a pop-in */
.gc-dl-icon {
  animation: none;
}
.is-detached .gc-dl-icon {
  display: block !important;
  animation: popIn .45s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
@keyframes popIn {
  0%   { transform: scale(0); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}

/* Print: clean receipt only */
@media print {
  body * { visibility: hidden; }
  .is-detached, .is-detached * { visibility: visible; }
  .is-detached {
    position: absolute !important;
    left: 50% !important;
    top: 20px !important;
    transform: translateX(-50%) scale(1) !important;
    width: 400px !important;
    box-shadow: none !important;
    border: 1px solid #ccc;
  }
  .is-detached::before,
  .gc-dl-icon { display: none !important; }
}

/* ── Responsive ── */
@media (max-width: 820px) {
  .gc-conf-body { flex-direction: column; align-items: center; }
  .gc-conf-l { text-align: center; }
  .gc-conf-check-ring { margin: 0 auto 28px; }
  .gc-conf-r { flex: none; width: 100%; max-width: 480px; }
}
@media (max-width: 480px) {
  .gc-conf-wrap { padding: 32px 16px; min-height: 50vh; }
  .gc-conf-h { font-size: 26px; }
}

/* ============================================================
   LIGHT GLASS SYSTEM (MASTER.md §6)
   Glass works on --gc-bg (light blue) and --g900 (brand blue)
   backgrounds. Never nest backdrop-filter elements.
   ============================================================ */

/* Layer 1 — Subtle: utility bar, secondary chrome */
.gc-glass-1 {
  background: rgba(255,255,255,0.70);
  backdrop-filter: blur(10px) saturate(150%);
  -webkit-backdrop-filter: blur(10px) saturate(150%);
  border: 1px solid rgba(255,255,255,0.80);
  border-bottom: 1px solid var(--gc-border-light);
}

/* Layer 2 — Standard: booking card, vehicle cards, panels */
.gc-glass-2 {
  background: rgba(255,255,255,0.82);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid var(--gc-border);
  box-shadow: var(--gc-shadow-md), inset 0 1px 0 rgba(255,255,255,0.90);
  border-radius: var(--gc-radius-xl);
}

/* Layer 3 — Elevated: modals, popovers, date picker */
.gc-glass-3 {
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  border: 1px solid rgba(0,23,158,0.12);
  box-shadow: var(--gc-shadow-xl), inset 0 1px 0 rgba(255,255,255,1);
  border-radius: var(--gc-radius-xl);
}

/* On-blue glass: stats band, locations, CTA sections on --g900 bg */
.gc-glass-on-blue {
  background: rgba(255,255,255,0.10);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(255,255,255,0.18);
  box-shadow: 0 4px 24px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.15);
  border-radius: var(--gc-radius-xl);
}

/* Nav scrolled-state: slightly more opaque with a subtle shadow */
#gc-nav.nav-scrolled {
  background: rgba(255,255,255,0.98);
  box-shadow: var(--gc-shadow-sm);
}

/* ── Input error state (replaces JS inline borderColor) ── */
.form-input.is-error,
.sf-select.is-error,
.sf-dtp-btn.is-error,
.sf-loc-btn.is-error,
.gc-phone-field.is-error {
  border-color: #EF4444 !important;
  background-color: rgba(239,68,68,0.05) !important;
  box-shadow: 0 0 0 3px rgba(239,68,68,0.10) !important;
  color: inherit !important;
}

/* ── Field-level error message (replaces inline styles on age error etc.) ── */
.gc-field-error-msg {
  display: none;
  color: var(--gc-error);
  font-size: 12px;
  font-weight: 500;
  margin-top: var(--gc-space-1);
}
.gc-field-error-msg.is-visible { display: block; }

/* ── Staggered reveal delays for fleet grid ──
   Cards sit inside data-attribute wrapper divs, so nth-child targets
   the direct child <div> of .vehicles-grid, not .vehicle-card itself. ── */
.vehicles-grid > div:nth-child(1) .vehicle-card { transition-delay: calc(var(--gc-dur-stagger) * 0); }
.vehicles-grid > div:nth-child(2) .vehicle-card { transition-delay: calc(var(--gc-dur-stagger) * 1); }
.vehicles-grid > div:nth-child(3) .vehicle-card { transition-delay: calc(var(--gc-dur-stagger) * 2); }
.vehicles-grid > div:nth-child(4) .vehicle-card { transition-delay: calc(var(--gc-dur-stagger) * 3); }
.vehicles-grid > div:nth-child(5) .vehicle-card { transition-delay: calc(var(--gc-dur-stagger) * 4); }
.vehicles-grid > div:nth-child(6) .vehicle-card { transition-delay: calc(var(--gc-dur-stagger) * 5); }

/* ============================================================
   ACCESSIBILITY — REDUCED MOTION (MASTER.md §8.3)
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ============================================================
   COMPONENT CLASSES — BATCH 2 (MASTER.md §9)
   Replaces all inline styles in booking.php / home.php
   ============================================================ */

/* ── JS-toggled price currency spans (replaces inline style="display:none") ── */
.price-hidden { display: none; }

/* ── Fleet date-filter bar (replaces inline styles in fleet.php) ── */
.fleet-date-filter-bar {
  background: var(--g50);
  border: 1px solid var(--g200);
  border-radius: var(--rmd);
  padding: 12px 16px;
  margin-bottom: 20px;
  font-size: 14px;
  color: var(--g800, var(--g900));
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}
.fleet-date-filter-clear {
  margin-left: 12px;
  color: var(--gc-ink-light);
  font-weight: 400;
  text-decoration: none;
  transition: color var(--gc-dur-normal);
}
.fleet-date-filter-clear:hover { color: var(--gc-ink); }

/* ── Fleet empty state (replaces inline styles in fleet.php) ── */
.fleet-empty-state {
  text-align: center;
  padding: 80px 24px;
}
.fleet-empty-state p {
  font-size: 18px;
  color: var(--gc-ink-light);
}

/* ── Booking card field wrapper (replaces anonymous <div style="margin-bottom:8px">) ── */
.sf-field-group { margin-bottom: var(--gc-space-3); }

/* ── Extra badge background variants (replaces inline style="background:#hex") ── */
.gc-extra-badge--warm   { background: #fff7ed; }
.gc-extra-badge--green  { background: #f0fdf4; }
.gc-extra-badge--blue   { background: #eff6ff; }
.gc-extra-badge--purple { background: #f5f3ff; }
.gc-extra-badge--yellow { background: #fefce8; }

/* ── Extra-card select dropdowns (replaces 120-char inline style) ── */
.gc-lateret-select-wrap { margin-top: var(--gc-space-2); }

.gc-lateret-select {
  width: 100%;
  padding: 7px 10px;
  border: 1.5px solid var(--border);
  border-radius: var(--rmd);
  font-size: 12px;
  font-family: var(--fbody);
  color: var(--ink);
  background: var(--white);
  cursor: pointer;
  outline: none;
  transition: border-color var(--gc-dur-normal);
}
.gc-lateret-select:focus { border-color: var(--g900); }

/* ── Manage-booking find button: brand blue gradient ── */
.sf-find-btn--manage {
  background: linear-gradient(135deg, #00179e, #0EA5E9);
  border-color: transparent;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.sf-find-btn--manage:hover {
  background: linear-gradient(135deg, #001480, #0284c7);
  box-shadow: 0 6px 20px rgba(0,23,158,.30);
}

/* ── Proof avatar color variants (replaces inline style="background:#hex") ── */
.proof-av--brand  { background: var(--g900); }
.proof-av--sky    { background: #0EA5E9; }
.proof-av--light  { background: #38BDF8; }
.proof-av--pale   { background: #60A5FA; color: var(--g900); }

/* ── Booking Widget (bw-*) ── */
.bw-widget { width: 100%; max-width: 420px; }
.bw-form {
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.1);
    border-radius: 24px;
    padding: 32px 28px;
    font-family: 'Poppins', sans-serif;
}
.bw-section { display: flex; flex-direction: column; gap: 8px; margin-bottom: 22px; }
.bw-section__title { font-size: 12px; font-weight: 800; color: rgba(255, 255, 255, 0.85); letter-spacing: 0.1em; text-transform: uppercase; margin: 0 0 4px; }
.bw-field { position: relative; display: flex; align-items: center; }
.bw-field__icon { position: absolute; left: 12px; color: rgba(0, 0, 0, 0.45); font-size: 14px; z-index: 1; }
.bw-select, .bw-input {
    width: 100%;
    height: 44px;
    padding: 0 16px 0 36px;
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: var(--rmd);
    font-size: 14px;
    color: #1a2a2f;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    transition: background 0.2s, border-color 0.2s;
    appearance: none;
    -webkit-appearance: none;
}
.bw-select:focus, .bw-input:focus {
    outline: none;
    background: rgba(255, 255, 255, 0.82);
    border-color: rgba(255, 255, 255, 0.8);
}
.bw-checkbox { display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: 13px; color: rgba(255, 255, 255, 0.85); }
.bw-checkbox__input { display: none; }
.bw-checkbox__custom { width: 16px; height: 16px; border: 2px solid rgba(255, 255, 255, 0.7); border-radius: 4px; display: inline-block; flex-shrink: 0; }
.bw-btn--submit {
    width: 100%;
    height: 50px;
    background: #e87722;
    color: #fff;
    border: none;
    border-radius: var(--rmd);
    font-weight: 800;
    cursor: pointer;
    letter-spacing: 0.05em;
    box-shadow: 0 4px 16px rgba(232, 119, 34, 0.35);
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.bw-btn--submit:hover {
    transform: translateY(-3px);
    background: #d4691a;
    box-shadow: 0 8px 24px rgba(232, 119, 34, 0.45);
}
.bw-btn--submit:active { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(232, 119, 34, 0.3); }


/* ============================================================
   ZERO DEPOSIT PROMISE PAGE  (page-zero-deposit.php)
   ============================================================ */

/* ── Shared utilities ─────────────────────────────────────── */
.zdp-page { background: var(--white); }

.zdp-section-header {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 64px;
}
.zdp-section-header--light { /* used on white bg sections */ }

.zdp-section-header__eyebrow {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 12px;
}
.zdp-section-header__eyebrow--light { color: var(--accent); }

.zdp-section-header__title {
  font-family: var(--fhead);
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 800;
  line-height: 1.2;
  color: var(--white);
  margin-bottom: 16px;
}
.zdp-section-header__title--light { color: var(--ink); }

.zdp-section-header__sub {
  font-size: 1.0625rem;
  line-height: 1.7;
  color: rgba(255,255,255,0.7);
}
.zdp-section-header__sub--light { color: var(--ink-light); }

/* ── Shared buttons ───────────────────────────────────────── */
.zdp-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  background: var(--accent);
  color: #fff;
  font-family: var(--fhead);
  font-size: 0.9375rem;
  font-weight: 700;
  border-radius: 100px;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--gc-dur-normal) ease,
              box-shadow var(--gc-dur-normal) ease,
              transform var(--gc-dur-normal) ease;
  box-shadow: 0 4px 20px rgba(255,145,16,0.3);
}
.zdp-btn-primary:hover {
  background: var(--accent-dark);
  box-shadow: 0 8px 32px rgba(255,145,16,0.45);
  transform: translateY(-2px);
}
.zdp-btn-primary:active { transform: translateY(0); }
.zdp-btn-primary--lg {
  padding: 18px 36px;
  font-size: 1.0625rem;
}

.zdp-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  background: transparent;
  color: rgba(255,255,255,0.85);
  font-family: var(--fhead);
  font-size: 0.9375rem;
  font-weight: 600;
  border-radius: 100px;
  border: 1.5px solid rgba(255,255,255,0.2);
  text-decoration: none;
  cursor: pointer;
  transition: border-color var(--gc-dur-normal) ease,
              color var(--gc-dur-normal) ease,
              background var(--gc-dur-normal) ease;
}
.zdp-btn-ghost:hover {
  border-color: rgba(255,255,255,0.5);
  color: #fff;
  background: rgba(255,255,255,0.07);
}


/* ══════════════════════════════════════════════
   HERO
   ══════════════════════════════════════════════ */
.zdp-hero {
  position: relative;
  background: var(--g900);
  overflow: hidden;
  padding: 100px 0 80px;
}

.zdp-hero__glow-1,
.zdp-hero__glow-2 {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(80px);
  opacity: 0.4;
}
.zdp-hero__glow-1 {
  width: 600px;
  height: 600px;
  top: -200px;
  left: -150px;
  background: radial-gradient(circle, rgba(255,145,16,0.18) 0%, transparent 70%);
}
.zdp-hero__glow-2 {
  width: 500px;
  height: 500px;
  bottom: -150px;
  right: -100px;
  background: radial-gradient(circle, rgba(60,165,250,0.12) 0%, transparent 70%);
}

.zdp-hero__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
  position: relative;
  z-index: 2;
}

/* Content side */
.zdp-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 16px;
  background: rgba(255,145,16,0.12);
  border: 1px solid rgba(255,145,16,0.3);
  border-radius: 100px;
  color: var(--accent);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 28px;
}

.zdp-hero__headline {
  font-family: var(--fhead);
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800;
  line-height: 1.13;
  color: #fff;
  letter-spacing: -0.02em;
  margin-bottom: 24px;
}
.zdp-hero__headline-accent { color: var(--accent); }

.zdp-hero__subtitle {
  font-size: 1.125rem;
  line-height: 1.75;
  color: rgba(255,255,255,0.72);
  margin-bottom: 40px;
  max-width: 480px;
}

.zdp-hero__actions {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 40px;
  flex-wrap: wrap;
}

.zdp-hero__trust {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
.zdp-hero__trust-item {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 0.875rem;
  font-weight: 600;
  color: rgba(255,255,255,0.65);
}
.zdp-hero__trust-item svg { color: var(--accent); flex-shrink: 0; }

/* Image side */
.zdp-hero__image-wrap {
  position: relative;
}

.zdp-hero__image-frame {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  max-height: 560px;
  box-shadow: 0 24px 64px rgba(0,0,0,0.4);
}
.zdp-hero__image-frame--fallback {
  background: linear-gradient(135deg, #001060 0%, #0033cc 50%, #001060 100%);
  min-height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.zdp-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
.zdp-hero__image-frame:hover .zdp-hero__img { transform: scale(1.03); }

.zdp-hero__img-overlay-left {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    var(--g900) 0%,
    rgba(0,23,158,0.25) 40%,
    transparent 70%
  );
  pointer-events: none;
}
.zdp-hero__img-overlay-bottom {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    transparent 50%,
    rgba(0,23,158,0.6) 100%
  );
  pointer-events: none;
}

/* Floating badge on image */
.zdp-hero__floating-badge {
  position: absolute;
  bottom: -20px;
  left: -24px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 16px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.25);
  color: #fff;
}
.zdp-hero__floating-badge svg {
  flex-shrink: 0;
  color: var(--accent);
}
.zdp-hero__floating-badge strong {
  display: block;
  font-size: 1.375rem;
  font-weight: 800;
  color: var(--accent);
  line-height: 1;
}
.zdp-hero__floating-badge span {
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  color: rgba(255,255,255,0.65);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-top: 3px;
}


/* ══════════════════════════════════════════════
   US VS THEM — COMPARISON
   ══════════════════════════════════════════════ */
.zdp-compare {
  position: relative;
  padding: 96px 0;
  background: linear-gradient(
    170deg,
    #00105a 0%,
    var(--g900) 45%,
    #001a80 100%
  );
  overflow: hidden;
}

.zdp-compare__bg-mesh {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 15% 50%, rgba(255,145,16,0.06) 0%, transparent 50%),
    radial-gradient(circle at 85% 20%, rgba(96,165,250,0.08) 0%, transparent 50%);
  pointer-events: none;
}

.zdp-compare__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  max-width: 860px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

/* Both columns base */
.zdp-compare__col {
  border-radius: 24px;
  padding: 40px 36px;
  position: relative;
}

/* Traditional column — muted, faded */
.zdp-compare__col--traditional {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
}
.zdp-compare__col--traditional .zdp-compare__col-label {
  color: rgba(255,255,255,0.4);
}
.zdp-compare__col--traditional .zdp-compare__list {
  opacity: 0.5;
}

/* GC column — full glassmorphism */
.zdp-compare__col--gc {
  background: rgba(255,255,255,0.05);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,0.1);
  box-shadow: 0 8px 32px rgba(0,0,0,0.1),
              0 0 0 1px rgba(255,145,16,0.12) inset;
  outline: 1.5px solid rgba(255,145,16,0.2);
  outline-offset: -1.5px;
}

.zdp-compare__col-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8125rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  margin-bottom: 28px;
}
.zdp-compare__col--gc .zdp-compare__col-label {
  color: var(--accent);
}

.zdp-compare__col-badge {
  position: absolute;
  top: -12px;
  right: 24px;
  padding: 4px 14px;
  background: var(--accent);
  color: #fff;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: 100px;
  box-shadow: 0 4px 12px rgba(255,145,16,0.4);
}

.zdp-compare__list {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.zdp-compare__item {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 1rem;
  font-weight: 500;
  color: rgba(255,255,255,0.85);
  line-height: 1.5;
}
.zdp-compare__col--gc .zdp-compare__item {
  color: #fff;
}

.zdp-compare__item-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
}
.zdp-compare__item-icon--bad {
  background: rgba(239,68,68,0.12);
  color: #f87171;
}
.zdp-compare__item-icon--good {
  background: rgba(255,145,16,0.15);
  color: var(--accent);
}


/* ══════════════════════════════════════════════
   3-STEP HOW IT WORKS
   ══════════════════════════════════════════════ */
.zdp-steps {
  padding: 96px 0;
  background: var(--white);
}

.zdp-steps__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  position: relative;
}

.zdp-steps__card {
  position: relative;
  display: flex;
  flex-direction: column;
}

.zdp-steps__card-inner {
  flex: 1;
  padding: 40px 32px 36px;
  background: var(--white);
  border: 1px solid rgba(0,23,158,0.09);
  border-radius: 20px;
  box-shadow: 0 2px 12px rgba(0,23,158,0.06),
              0 1px 3px rgba(0,23,158,0.04);
  transition: transform var(--gc-dur-moderate) var(--gc-ease-smooth),
              box-shadow var(--gc-dur-moderate) var(--gc-ease-smooth);
  cursor: default;
}

.zdp-steps__card:hover .zdp-steps__card-inner {
  transform: translateY(-8px);
  box-shadow: 0 20px 48px rgba(0,23,158,0.12),
              0 6px 16px rgba(0,23,158,0.07);
}

.zdp-steps__num {
  font-family: var(--fserif);
  font-size: 3.5rem;
  font-weight: 700;
  line-height: 1;
  color: rgba(0,23,158,0.06);
  margin-bottom: -8px;
  letter-spacing: -0.03em;
}

.zdp-steps__icon {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,145,16,0.08);
  border-radius: 16px;
  color: var(--accent);
  margin-bottom: 20px;
  transition: background var(--gc-dur-normal) ease;
}
.zdp-steps__card:hover .zdp-steps__icon {
  background: rgba(255,145,16,0.15);
}

.zdp-steps__card-title {
  font-family: var(--fhead);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 12px;
  line-height: 1.3;
}

.zdp-steps__card-desc {
  font-size: 0.9375rem;
  line-height: 1.7;
  color: var(--ink-light);
}

/* Arrow connector between cards */
.zdp-steps__connector {
  position: absolute;
  top: 50%;
  right: -28px;
  transform: translateY(-50%);
  width: 24px;
  color: rgba(0,23,158,0.2);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
}
.zdp-steps__card--last .zdp-steps__connector { display: none; }


/* ══════════════════════════════════════════════
   FINAL CTA
   ══════════════════════════════════════════════ */
.zdp-cta {
  position: relative;
  background: var(--g900);
  padding: 96px 0;
  overflow: hidden;
  text-align: center;
}

.zdp-cta__bg-glow {
  position: absolute;
  width: 700px;
  height: 400px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse at center, rgba(255,145,16,0.12) 0%, transparent 65%);
  pointer-events: none;
  filter: blur(30px);
}

.zdp-cta__inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.zdp-cta__eyebrow {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--accent);
}

.zdp-cta__title {
  font-family: var(--fhead);
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.02em;
  line-height: 1.2;
  max-width: 600px;
  margin-bottom: 4px;
}

.zdp-cta__sub {
  font-size: 1.0625rem;
  color: rgba(255,255,255,0.6);
  margin-bottom: 16px;
}


/* ══════════════════════════════════════════════
   RESPONSIVE — Mobile
   ══════════════════════════════════════════════ */
@media (max-width: 768px) {
  .zdp-hero { padding: 72px 0 60px; }
  .zdp-hero__inner {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .zdp-hero__image-wrap { order: -1; }
  .zdp-hero__image-frame { max-height: 300px; aspect-ratio: 16/9; }
  .zdp-hero__floating-badge { bottom: -16px; left: 16px; }
  .zdp-hero__img-overlay-left {
    background: linear-gradient(
      180deg,
      rgba(0,23,158,0.4) 0%,
      transparent 40%
    );
  }
  .zdp-hero__subtitle { max-width: 100%; }

  .zdp-compare { padding: 64px 0; }
  .zdp-compare__grid {
    grid-template-columns: 1fr;
    max-width: 480px;
  }

  .zdp-steps { padding: 64px 0; }
  .zdp-steps__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .zdp-steps__connector { display: none; }

  .zdp-cta { padding: 64px 0; }
}

@media (max-width: 480px) {
  .zdp-hero__actions { flex-direction: column; align-items: flex-start; }
  .zdp-btn-primary, .zdp-btn-ghost { width: 100%; justify-content: center; }
  .zdp-hero__trust { flex-direction: column; gap: 12px; }

  .zdp-compare__col { padding: 28px 24px; }
  .zdp-steps__card-inner { padding: 28px 24px; }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .zdp-steps__card:hover .zdp-steps__card-inner { transform: none; }
  .zdp-hero__img { transition: none; }
  .zdp-btn-primary, .zdp-btn-ghost { transition: none; }
}
/* ── End Zero Deposit Promise Page ───────────────────────── */
/* Drop-off location — smooth grid-row reveal */
.bw-drop-location-wrapper {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.bw-drop-location-wrapper.is-open {
  grid-template-rows: 1fr;
}
.bw-drop-location-wrapper > .bw-field {
  overflow: hidden;
  min-height: 0;
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity 0.25s ease 0.05s, transform 0.25s ease 0.05s;
}
.bw-drop-location-wrapper.is-open > .bw-field {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .bw-drop-location-wrapper,
  .bw-drop-location-wrapper > .bw-field { transition: none; }
}

/* ── External city drop-off fee notice ── */
.bw-dropoff-fee-notice {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin-top: 8px;
  padding: 9px 12px;
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.35);
  border-radius: 9px;
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.45;
  animation: bw-dur-in 0.2s ease both;
}
.bw-dropoff-fee-notice svg { flex-shrink: 0; margin-top: 1px; color: #F59E0B; }


/* ============================================================
   HOMEPAGE HERO — PREMIUM DARK UPGRADE
   Scoped under .gc-hero-section so other pages are untouched.
   ============================================================ */

/* ── 1. Brand blue base + subtle diagonal pinstripes ── */
.gc-hero-section {
  position: relative;
  background-color: #00179e;
  background-image: repeating-linear-gradient(
    -45deg,
    rgba(0,0,0,0.05),
    rgba(0,0,0,0.05) 1px,
    transparent 1px,
    transparent 24px
  );
  overflow: hidden;
  z-index: 1;
}
/* Grid overlay removed — disabled */
.gc-hero-section::before {
  display: none !important;
}
/* Orb 2: bottom-edge fade to page background for smooth section blend */
.gc-hero-section::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 100px;
  background: linear-gradient(to bottom, transparent 0%, rgba(0,23,158,0.0) 100%);
  pointer-events: none;
  z-index: 0;
}
/* Keep container content above the pseudo-element layers */
.gc-hero-section > .gc-container,
.gc-hero-section > .gc-hero { position: relative; z-index: 2; }

/* ── 2. Hero headline & body text — white on dark ── */
.gc-hero-section .gc-hero h1 {
  color: #ffffff;
}
/* 'freely' italic word gets the vibrant orange accent */
.gc-hero-section .gc-hero h1 em {
  color: var(--accent);
  font-family: var(--fserif);
  font-style: italic;
  font-weight: 400;
}
.gc-hero-section .hero-sub {
  color: rgba(255, 255, 255, 0.72);
}

/* ── 3. Trust pills — sleek glassmorphism ── */
.gc-hero-section .pill {
  background: rgba(255, 255, 255, 0.07);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.14);
  color: rgba(255, 255, 255, 0.88);
}
.gc-hero-section .pill-check {
  background: rgba(255, 145, 16, 0.9);
}

/* ── 4. Social proof row — readable on dark ── */
.gc-hero-section .proof-text        { color: rgba(255,255,255,0.6); }
.gc-hero-section .proof-text strong { color: #ffffff; }
.gc-hero-section .proof-stars       { color: #F59E0B; }

/* ── 5. Hero booking card — full dark glassmorphism ── */
.gc-hero-section .booking-card {
  background: rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  box-shadow: 0 32px 64px rgba(0,0,0,0.30),
              inset 0 1px 0 rgba(255,255,255,0.10);
  max-width: 420px;
  padding: 24px;
}

/* Card header */
.gc-hero-section .bk-card-kicker { color: rgba(255,255,255,0.5); }
.gc-hero-section .bk-card-title  { color: #ffffff; }

/* Field labels */
.gc-hero-section .sf-label {
  color: rgba(255,255,255,0.50);
  font-size: 11px;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
/* Tighter field spacing */
.gc-hero-section .form-group { margin-bottom: 14px; }

/* ── Location selector buttons ── */
.gc-hero-section .sf-loc-btn {
  background: rgba(0,0,0,0.22);
  border-color: rgba(255,255,255,0.10);
  color: rgba(255,255,255,0.88);
  height: 48px;
}
.gc-hero-section .sf-loc-btn:hover {
  background: rgba(0,0,0,0.32);
  border-color: rgba(255,255,255,0.30);
}
.gc-hero-section .sf-loc-btn.gc-loc-btn-active {
  background: rgba(0,0,0,0.28);
  border-color: rgba(255,255,255,0.45);
}
.gc-hero-section .sf-loc-pin                             { color: rgba(255,255,255,0.45); }
.gc-hero-section .sf-loc-chevron                         { color: rgba(255,255,255,0.30); }
.gc-hero-section .sf-loc-btn.gc-loc-btn-active .sf-loc-chevron { color: #fff; }
.gc-hero-section .sf-loc-placeholder                     { color: rgba(255,255,255,0.38); }

/* ── Date-time buttons ── */
.gc-hero-section .sf-dtp-btn {
  background: rgba(0,0,0,0.22);
  border-color: rgba(255,255,255,0.10);
  color: rgba(255,255,255,0.42);
  height: 48px;
}
.gc-hero-section .sf-dtp-btn:hover {
  background: rgba(0,0,0,0.32);
  border-color: rgba(255,255,255,0.28);
}
.gc-hero-section .sf-dtp-icon                        { color: rgba(255,255,255,0.38); }
.gc-hero-section .sf-dtp-btn:hover .sf-dtp-icon      { color: rgba(255,255,255,0.65); }
.gc-hero-section .sf-dtp-btn span.dtp-val-filled     { color: #ffffff; }

/* ── Same-location checkbox ── */
.gc-hero-section .gc-same-loc-text { color: rgba(255,255,255,0.62); }
.gc-hero-section .gc-same-loc-check {
  background: rgba(255,255,255,0.12);
  box-shadow: none;
}
.gc-hero-section .gc-same-loc-check.is-checked {
  background: var(--accent);
  box-shadow: 0 2px 8px rgba(255,145,16,0.45);
}

/* ── Find vehicle CTA ── */
.gc-hero-section .sf-find-btn {
  background: var(--accent);
  box-shadow: 0 8px 24px rgba(255,145,16,0.42);
  border-radius: var(--rlg);
  height: 50px;
  padding: 0 20px;
  font-size: 15px;
  font-weight: 600;
}
.gc-hero-section .sf-find-btn:hover {
  background: var(--accent-dark);
  transform: translateY(-2px) scale(1.01);
  box-shadow: 0 14px 36px rgba(255,145,16,0.52);
}
.gc-hero-section .sf-find-btn:active {
  transform: translateY(0) scale(1);
}
.gc-hero-section .sf-find-btn:focus-visible {
  outline: 2px solid rgba(255,138,0,0.5);
  outline-offset: 2px;
}
/* Error fields in dark hero stay readable — keep dark bg, show red border */
.gc-hero-section .sf-field-error,
.gc-hero-section .sf-dtp-btn.is-error,
.gc-hero-section .sf-loc-btn.is-error {
  background: rgba(239,68,68,0.08) !important;
  border-color: #EF4444 !important;
  color: rgba(255,255,255,0.88) !important;
  box-shadow: 0 0 0 3px rgba(239,68,68,0.18) !important;
}

/* ── "Manage booking" bar ── */
.gc-hero-section .bk-manage-bar { background: transparent; border: none; box-shadow: none; padding: 0; margin-top: 18px; }
.gc-hero-section .bk-manage-bar:hover { background: transparent; }
.gc-hero-section .bk-manage-bar span:first-child { color: rgba(255,255,255,0.50); }
.gc-hero-section .bk-manage-link { color: rgba(255,255,255,0.90); text-decoration: underline; text-underline-offset: 4px; font-weight: 500; }
.gc-hero-section .bk-manage-link:hover { color: #ffffff; }

/* ── Manage-booking view (email + ref inputs) ── */
.gc-hero-section .gc-mb-back-btn       { color: rgba(255,255,255,0.60); }
.gc-hero-section .gc-mb-back-btn:hover { color: #ffffff; }
.gc-hero-section .gc-mb-title          { color: #ffffff; }
.gc-hero-section .gc-mb-subtitle       { color: rgba(255,255,255,0.52); }
.gc-hero-section .gc-mb-input-icon     { color: rgba(255,255,255,0.40); }
.gc-hero-section .gc-mb-input {
  background: rgba(0,0,0,0.22);
  border-color: rgba(255,255,255,0.10);
  color: #ffffff;
}
.gc-hero-section .gc-mb-input:focus {
  border-color: rgba(255,255,255,0.48);
  background: rgba(0,0,0,0.30);
  box-shadow: 0 0 0 3px rgba(255,255,255,0.07);
}
.gc-hero-section .gc-mb-input::placeholder { color: rgba(255,255,255,0.28); }

/* ── Responsive: hero still stacks cleanly at mobile ── */
@media (max-width: 768px) {
  .gc-hero-section .booking-card {
    /* Lighter blur on mobile for performance */
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .gc-hero-section .sf-find-btn:hover { transform: none; }
}


/* ============================================================
   BOOKING WIDGET (bw-*) — UPGRADED DARK GLASSMORPHISM
   Matches the GC-column card from the Zero Deposit page.
   ============================================================ */
.bw-form {
  background: rgba(255, 255, 255, 0.05) !important;
  backdrop-filter: blur(24px) !important;
  -webkit-backdrop-filter: blur(24px) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  box-shadow: 0 32px 64px rgba(0,0,0,0.30),
              inset 0 1px 0 rgba(255,255,255,0.10) !important;
}
.bw-section__title { color: rgba(255,255,255,0.88); }

.bw-select,
.bw-input {
  background: rgba(0,0,0,0.22) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  color: #ffffff !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  transition: background var(--gc-dur-normal) ease,
              border-color var(--gc-dur-normal) ease,
              box-shadow var(--gc-dur-normal) ease;
}
.bw-select:focus,
.bw-input:focus {
  outline: none !important;
  background: rgba(0,0,0,0.32) !important;
  border-color: rgba(255,255,255,0.45) !important;
  box-shadow: 0 0 0 3px rgba(255,255,255,0.07) !important;
}
/* Placeholder text */
.bw-input::placeholder { color: rgba(255,255,255,0.30); }
/* Select option text (falls back to OS styling in most browsers) */
.bw-select option { background: #001060; color: #fff; }

/* Icons inside fields */
.bw-field__icon { color: rgba(255,255,255,0.45) !important; }

/* Same-return checkbox */
.bw-checkbox { color: rgba(255,255,255,0.78); }
.bw-checkbox__custom {
  border-color: rgba(255,255,255,0.35) !important;
  background: rgba(255,255,255,0.05);
}

/* Submit button — vibrant orange with outer glow */
.bw-btn--submit {
  background: var(--accent) !important;
  border-radius: var(--rlg) !important;
  font-family: var(--fhead) !important;
  box-shadow: 0 8px 24px rgba(255,145,16,0.42) !important;
  letter-spacing: 0.06em;
  transition: background var(--gc-dur-normal) ease,
              box-shadow var(--gc-dur-normal) ease,
              transform var(--gc-dur-normal) ease !important;
}
.bw-btn--submit:hover {
  background: var(--accent-dark) !important;
  transform: translateY(-2px) scale(1.01) !important;
  box-shadow: 0 14px 36px rgba(255,145,16,0.52) !important;
}
.bw-btn--submit:active {
  transform: translateY(0) scale(1) !important;
  box-shadow: 0 4px 14px rgba(255,145,16,0.35) !important;
}
/* ── End Homepage Hero & Widget Upgrade ───────────────────── */

/* ============================================================
   BOOKING WIDGET — FLATPICKR RANGE CALENDAR
   Premium overrides: dark header, orange range, clean layout
   ============================================================ */

/* ── Calendar container ── */
.flatpickr-calendar {
  border: none !important;
  border-radius: 16px !important;
  box-shadow: 0 24px 64px rgba(0, 23, 80, 0.22), 0 2px 8px rgba(0, 0, 0, 0.08) !important;
  overflow: hidden;
  font-family: var(--fbody) !important;
  background: #fff !important;
  padding: 0 !important;
  width: auto !important;
}
.flatpickr-calendar.multiMonth { width: auto !important; }

/* ── Dark month header ── */
.flatpickr-months {
  background: var(--g900) !important;
  padding: 12px 16px 10px !important;
  border-radius: 16px 16px 0 0 !important;
}
.flatpickr-month {
  background: transparent !important;
  color: #fff !important;
  fill: #fff !important;
  height: 40px !important;
}
.flatpickr-current-month {
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  padding: 0 !important;
}
.flatpickr-current-month select,
.flatpickr-current-month .numInputWrapper,
.flatpickr-current-month input.cur-year {
  font-weight: 800 !important;
  color: #fff !important;
  background: transparent !important;
  font-size: 13px !important;
  letter-spacing: 0.08em !important;
}
.flatpickr-current-month .numInputWrapper span { opacity: 0.6; }
.flatpickr-prev-month,
.flatpickr-next-month { color: #fff !important; fill: #fff !important; padding: 8px 12px !important; }
.flatpickr-prev-month:hover,
.flatpickr-next-month:hover { color: var(--accent) !important; fill: var(--accent) !important; background: rgba(255,255,255,.08) !important; border-radius: 8px; }
.flatpickr-prev-month svg,
.flatpickr-next-month svg { width: 16px; height: 16px; }

/* ── Weekday row ── */
.flatpickr-weekdays { background: var(--g900) !important; padding: 0 8px 8px !important; }
span.flatpickr-weekday {
  background: transparent !important;
  color: rgba(255, 255, 255, 0.55) !important;
  font-weight: 700 !important;
  font-size: 10px !important;
  letter-spacing: 0.06em !important;
}

/* ── Day grid ── */
.flatpickr-innerContainer { padding: 10px 12px 14px !important; }
.flatpickr-days { width: auto !important; }
.dayContainer { width: auto !important; min-width: 0 !important; max-width: none !important; padding: 0 !important; }
.flatpickr-day {
  border: none !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--g900) !important;
  height: 36px !important;
  line-height: 36px !important;
  max-width: 38px !important;
  transition: background 0.12s, color 0.12s !important;
}
.flatpickr-day:hover:not(.selected):not(.inRange):not(.flatpickr-disabled) {
  background: var(--g50) !important;
  color: var(--g900) !important;
}

/* ── Today ── */
.flatpickr-day.today:not(.selected) {
  background: var(--g50) !important;
  font-weight: 800 !important;
  border: none !important;
  color: var(--g900) !important;
}

/* ── Start & End dates — solid orange ── */
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
  background: var(--accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  font-weight: 800 !important;
}
.flatpickr-day.startRange { border-radius: 8px 0 0 8px !important; }
.flatpickr-day.endRange   { border-radius: 0 8px 8px 0 !important; }
.flatpickr-day.startRange.endRange { border-radius: 8px !important; }

/* ── In-range days — transparent orange ribbon ──
   The box-shadow bleeds the fill 5 px left & right so adjacent
   inRange cells connect into one seamless strip, even with the
   border-radius on each cell zeroed out.                        */
.flatpickr-day.inRange {
  background: rgba(255, 145, 16, 0.15) !important;
  color: var(--g900) !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: -5px 0 0 rgba(255, 145, 16, 0.15),
               5px 0 0 rgba(255, 145, 16, 0.15) !important;
}
/* Hover state on an already-in-range day brightens slightly */
.flatpickr-day.inRange:hover {
  background: rgba(255, 145, 16, 0.28) !important;
  box-shadow: -5px 0 0 rgba(255, 145, 16, 0.28),
               5px 0 0 rgba(255, 145, 16, 0.28) !important;
}

/* ── Disabled / past dates ── */
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
  color: rgba(0, 0, 0, 0.2) !important;
  background: transparent !important;
  cursor: default !important;
}
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay { color: rgba(0,0,0,.22) !important; }

/* ── Minimum-days blocked visual hint ── */
.flatpickr-day.bw-fp-blocked {
  background: rgba(255, 145, 16, 0.06) !important;
  color: rgba(0, 0, 0, 0.3) !important;
  cursor: not-allowed !important;
  pointer-events: none;
}

/* ── Duration summary bar ── */
.bw-duration {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  margin-bottom: 8px;
  background: rgba(255, 145, 16, 0.14);
  border: 1px solid rgba(255, 145, 16, 0.3);
  border-radius: 10px;
  font-size: 13px;
  color: #fff;
  font-weight: 600;
  animation: bw-dur-in 0.25s cubic-bezier(0.4, 0, 0.2, 1) both;
}
.bw-duration__icon { color: var(--accent); flex-shrink: 0; display: flex; }
.bw-duration__text strong { color: var(--accent); margin-left: 4px; }
@keyframes bw-dur-in {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Multi-month separator ── */
.flatpickr-calendar.multiMonth .flatpickr-rContainer + .flatpickr-rContainer {
  border-left: 1px solid var(--g100);
}

/* ── Live hover duration tooltip ── */
.gc-hover-tooltip {
  position: fixed;
  z-index: 9999;
  background: var(--g900);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 4px 9px;
  border-radius: 7px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3);
  pointer-events: none;
  white-space: nowrap;
  /* centres horizontally over the day cell and lifts above it */
  transform: translate(-50%, calc(-100% - 8px));
  opacity: 0;
  transition: opacity 0.1s ease;
}
.gc-hover-tooltip.is-visible { opacity: 1; }
/* Small arrow pointing down */
.gc-hover-tooltip::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
  border: 4px solid transparent;
  border-bottom-width: 0;
  border-top-color: var(--g900);
}

@media (prefers-reduced-motion: reduce) {
  .bw-duration { animation: none; }
  .flatpickr-day { transition: none !important; }
  .gc-hover-tooltip { transition: none; }
}
/* ── End Flatpickr Range ───────────────────────────────────── */


/* ============================================================
   STATS BAND — PREMIUM SEPARATION FROM HERO
   Dark overlay + border-top creates a crisp anchor line
   between the hero section and the stats numbers.
   ============================================================ */
.stats-band {
  /* Dark tint layered over var(--g900) makes it noticeably
     deeper than the hero while staying in-palette */
  background: linear-gradient(
    rgba(0, 0, 0, 0.22),
    rgba(0, 0, 0, 0.22)
  ) var(--g900);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid rgba(255, 255, 255, 0.10);
  padding: 24px 0;
}
/* ── End Stats Band Upgrade ───────────────────────────────── */


/* ============================================================
   PERFORMANCE OPTIMISATIONS
   GPU-compositing for backdrop-filter elements + will-change
   for hover-animated cards. Keeps scroll smooth by preventing
   repaint storms on the main thread.
   ============================================================ */

/*
 * Force GPU layer on elements with heavy backdrop-filter.
 * translateZ(0) promotes each element to its own compositor
 * layer so a scroll repaint can't invalidate it.
 * will-change: transform tells the browser to allocate the
 * layer in advance rather than on first scroll.
 *
 * Kept to the elements the user confirmed cause jank:
 * nav, hero booking card, booking widget, Zero Deposit table
 * GC column, hero floating badge, and footer glass.
 */
#gc-nav,
.gc-hero-section .booking-card,
.bw-form,
.zdp-compare__col--gc,
.zdp-hero__floating-badge,
#gc-footer {
  transform: translateZ(0);
  will-change: transform;
}

/*
 * Hover-animated cards: pre-allocate a compositor layer so the
 * translateY lift doesn't trigger a full page repaint.
 * Limit to cards that demonstrably animate (not every element).
 */
.loc-card,
.zdp-steps__card-inner,
.why-card {
  will-change: transform;
}

/* ── End Performance Optimisations ───────────────────────── */


/* ============================================================
   FAQ PAGE  (page-faq.php)
   ============================================================ */

/* ── Page base ─────────────────────────────────────────────── */
.faq-page { background: var(--bg); }

/* ── Hero — matches .page-header pattern from About Us ─────── */
.faq-hero {
  background: var(--g900);
  padding: 40px 0 52px;
  position: relative;
  overflow: hidden;
}

/* Diagonal line pattern — identical to .page-header::after */
.hero-pattern-bg {
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    -45deg,
    rgba(255,255,255,0.015) 0,
    rgba(255,255,255,0.015) 1px,
    transparent 1px,
    transparent 12px
  );
  pointer-events: none;
  z-index: 0;
}

/* Left-aligned inner container */
.faq-hero__inner { position: relative; z-index: 1; }
.faq-hero__inner.left-aligned { text-align: left; }

/* Breadcrumb nav */
.hero-breadcrumbs {
  display: flex;
  align-items: center;
  gap: 0;
  font-size: 13px;
  color: rgba(255,255,255,0.50);
  margin-bottom: 16px;
}
.hero-breadcrumbs a {
  color: var(--g400);
  text-decoration: none;
  transition: color 0.2s ease;
}
.hero-breadcrumbs a:hover { color: #fff; }
.hero-breadcrumbs .sep {
  margin: 0 8px;
  color: rgba(255,255,255,0.30);
}
.hero-breadcrumbs .current { color: rgba(255,255,255,0.50); }

/* Eyebrow with leading horizontal line — mirrors .ph-kicker::before */
.hero-eyebrow-line {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--g400);
  margin-bottom: 12px;
}
.hero-eyebrow-line .line {
  display: block;
  width: 24px;
  height: 2px;
  background: #0EA5E9;
  flex-shrink: 0;
}

/* Title — mirrors .ph-h */
.faq-hero__title {
  font-family: var(--fhead);
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 800;
  color: #fff;
  letter-spacing: -1px;
  line-height: 1.05;
  margin-bottom: 14px;
}
.faq-hero__title em {
  font-style: italic;
  color: var(--g600, #60A5FA);
  font-family: var(--fserif);
  font-weight: 600;
}

/* Subtitle — mirrors .ph-p */
.faq-hero__sub {
  font-size: 15px;
  color: rgba(255,255,255,0.65);
  max-width: 520px;
  line-height: 1.7;
  margin: 0;
}

/* ── Category navigation strip ────────────────────────────── */
.faq-cat-nav {
  position: sticky;
  top: var(--nav-h, 72px);
  z-index: 40;
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border-light, rgba(0,0,0,0.07));
  padding: 14px 0;
  will-change: transform;
  transform: translateZ(0);
}
.faq-cat-nav__inner {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.faq-cat-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 18px;
  border-radius: 100px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ink-mid, #4b5563);
  text-decoration: none;
  border: 1.5px solid transparent;
  transition:
    background 0.2s ease,
    color      0.2s ease,
    border-color 0.2s ease;
  cursor: pointer;
}
.faq-cat-pill:hover {
  background: var(--g50, #f0f4ff);
  color: var(--g900);
  border-color: var(--border, rgba(0,0,0,0.10));
}
.faq-cat-pill--active {
  background: var(--g900);
  color: #fff;
  border-color: var(--g900);
}
.faq-cat-pill--active:hover { background: var(--g700, #0021c4); border-color: var(--g700, #0021c4); color: #fff; }

/* ── FAQ body ──────────────────────────────────────────────── */
.faq-body { padding: 64px 0 80px; }

.faq-body__inner {
  max-width: 820px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 72px;
}

/* ── Category section ──────────────────────────────────────── */
.faq-category { scroll-margin-top: calc(var(--nav-h, 72px) + 68px); }

.faq-cat-header {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 28px;
}
.faq-cat-icon {
  width: 48px; height: 48px;
  flex-shrink: 0;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(96,165,250,0.10);
  border: 1px solid rgba(96,165,250,0.18);
}
.faq-cat-title {
  font-family: var(--fhead);
  font-size: 1.375rem;
  font-weight: 800;
  color: var(--ink, #0d1b2e);
  letter-spacing: -0.02em;
  margin-bottom: 4px;
}
.faq-cat-desc {
  font-size: 0.9375rem;
  color: var(--ink-light, #6b7280);
  line-height: 1.6;
}

/* ── Accordion list ────────────────────────────────────────── */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* ── Single accordion item ─────────────────────────────────── */
.faq-item {
  background: #fff;
  border: 1.5px solid rgba(0,23,158,0.09);
  border-radius: 16px;
  overflow: hidden;
  transition:
    border-color 0.22s ease,
    box-shadow   0.22s ease;
  will-change: transform;
  transform: translateZ(0);
}
.faq-item:hover {
  border-color: rgba(0,23,158,0.18);
  box-shadow: 0 4px 16px rgba(0,23,158,0.06);
}
.faq-item.is-open {
  border-color: rgba(255,145,16,0.30);
  box-shadow: 0 4px 24px rgba(255,145,16,0.08);
}

/* Question button */
.faq-btn {
  width: 100%;
  padding: 22px 24px;
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  text-align: left;
  font-family: var(--fhead);
  font-size: 1rem;
  font-weight: 700;
  color: var(--ink, #0d1b2e);
  line-height: 1.4;
  transition: color 0.2s ease;
}
.faq-btn:hover .faq-question { color: var(--g900); }
.faq-item.is-open .faq-btn .faq-question { color: var(--accent, #ff9110); }

/* Plus / × icon circle */
.faq-icon {
  flex-shrink: 0;
  width: 30px; height: 30px;
  border-radius: 50%;
  background: var(--g50, #f0f4ff);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--g700, #0021c4);
  transition:
    background  0.22s ease,
    color       0.22s ease,
    transform   0.38s cubic-bezier(0.34,1.56,0.64,1);
}
.faq-item.is-open .faq-icon {
  background: rgba(255,145,16,0.12);
  color: var(--accent, #ff9110);
  transform: rotate(45deg);
}

/* CSS grid height animation — 0fr → 1fr */
.faq-answer-wrap {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.38s cubic-bezier(0.4, 0, 0.2, 1);
}
.faq-item.is-open .faq-answer-wrap { grid-template-rows: 1fr; }
.faq-answer-inner { overflow: hidden; }
.faq-answer-inner p {
  padding: 0 24px 22px;
  font-size: 0.9375rem;
  color: var(--ink-mid, #4b5563);
  line-height: 1.8;
  margin: 0;
}

/* ── CTA strip ─────────────────────────────────────────────── */
.faq-cta {
  background: var(--g900);
  padding: 80px 0;
  position: relative;
  overflow: hidden;
  text-align: center;
}
.faq-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,145,16,0.14) 0%, transparent 65%);
  pointer-events: none;
}
.faq-cta__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.faq-cta__title {
  font-family: var(--fhead);
  font-size: clamp(1.625rem, 4vw, 2.25rem);
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.02em;
}
.faq-cta__sub {
  font-size: 1.0625rem;
  color: rgba(255,255,255,0.62);
  margin-bottom: 10px;
}
.faq-cta__actions {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
}

/* ── Responsive ────────────────────────────────────────────── */
@media (max-width: 768px) {
  .faq-hero { padding: 64px 0 52px; }
  .faq-body { padding: 40px 0 60px; }
  .faq-body__inner { gap: 52px; }
  .faq-btn { padding: 18px; font-size: 0.9375rem; }
  .faq-answer-inner p { padding: 0 18px 18px; }
  .faq-cta { padding: 60px 0; }
  .faq-cta__actions { flex-direction: column; align-items: stretch; }
}
@media (max-width: 480px) {
  .faq-cat-nav__inner { gap: 8px; }
  .faq-cat-pill { padding: 7px 14px; font-size: 0.8125rem; }
  .faq-cat-header { flex-direction: column; gap: 12px; }
  .faq-icon { width: 26px; height: 26px; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .faq-answer-wrap { transition: none; }
  .faq-icon        { transition: none; }
  .faq-item        { transition: none; }
}
/* ── End FAQ Page ─────────────────────────────────────────── */


/* ============================================================
   WHY CHOOSE US — LAYOUT FIXES
   ============================================================ */

/* Desktop: remove excessive whitespace around the card grid */
.why-wrapper {
  padding: 40px 36px;
}

/* Tablet (1024px already drops to 2-col via existing rule) */
@media (max-width: 1024px) {
  .why-wrapper { padding: 32px 28px; }
}

/* Mobile: tighter wrapper padding to match compact 2-col grid */
@media (max-width: 768px) {
  .why-wrapper { padding: 24px 16px; }
  /* Single-column layout — overrides the 640px repeat(2,1fr) rule */
  .why-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .why-card {
    padding: 20px 18px;
    width: 100%;
  }
  .wu-icon { margin-bottom: 16px; }
  .why-title { font-size: 15px; }
  .why-desc  { font-size: 13px; }
}

/* Prevent hover lift on touch devices (no real hover) */
@media (hover: none) {
  .why-card:hover { transform: none; }
}
/* ── End Why Choose Us Fixes ──────────────────────────────── */




/* ============================================================
   FOOTER — Premium Upgrade
   ============================================================ */

/* Top glow edge — orange warmth bleeds upward */
#gc-footer {
  border-top: 1px solid rgba(255,255,255,0.07);
  background:
    linear-gradient(180deg, rgba(255,145,16,0.04) 0%, transparent 80px),
    var(--g900);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
}

/* Brand column */
.ft-logo {
  font-size: 20px;
  font-family: var(--fhead);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: #fff;
}
.ft-logo::after {
  content: '.';
  color: var(--accent);
}
.ft-tag-txt {
  font-size: 9.5px;
  letter-spacing: 0.22em;
  color: rgba(255,255,255,0.38);
  margin-bottom: 18px;
}
.ft-about {
  font-size: 13px;
  color: rgba(255,255,255,0.50);
  line-height: 1.85;
  max-width: 260px;
  margin-bottom: 24px;
}

/* Contact items */
.ft-contact-row { gap: 10px; }
.ft-ci {
  font-size: 12.5px;
  color: rgba(255,255,255,0.52);
  gap: 9px;
}
.ft-ci svg {
  color: var(--accent) !important;
  opacity: 0.85;
  width: 13px;
  height: 13px;
}
.ft-ci:hover { color: #fff; }
.ft-ci:hover svg { opacity: 1; }

/* Column headers — orange accent rule */
.ft-col-h {
  font-size: 9.5px;
  letter-spacing: 0.22em;
  color: rgba(255,255,255,0.40);
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 18px;
  position: relative;
  padding-left: 12px;
}
.ft-col-h::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 14px;
  background: var(--accent);
  border-radius: 2px;
}

/* Link list */
.ft-list { gap: 9px; }
.ft-list a {
  font-size: 13px;
  color: rgba(255,255,255,0.52);
  gap: 8px;
  transition: color 0.2s ease, gap 0.2s ease;
}
.ft-list a::before {
  content: '→';
  color: var(--accent);
  font-size: 10px;
  opacity: 0.5;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.ft-list a:hover {
  color: #fff;
  gap: 11px;
}
.ft-list a:hover::before {
  opacity: 1;
  transform: translateX(3px);
}

/* Bottom bar */
.ft-bottom {
  border-top: 1px solid rgba(255,255,255,0.06);
  padding-top: 20px;
  margin-top: 4px;
}
.ft-copy {
  font-size: 12px;
  color: rgba(255,255,255,0.28);
  letter-spacing: 0.02em;
}
.ft-made {
  font-size: 12px;
  color: rgba(255,255,255,0.28);
  letter-spacing: 0.02em;
}

/* Grid column proportions */
.footer-grid {
  grid-template-columns: 1.8fr 1fr 1fr 0.9fr;
  gap: 56px;
  padding-bottom: 40px;
  margin-bottom: 0;
  border-bottom: none;
}

/* ── End Footer Premium Upgrade ───────────────────────────── */


/* ============================================================
   LEGAL PAGE — Premium Documentation / Notion-Style Layout
   ============================================================ */

.legal-page { background: var(--bg, #EFF6FF); }

.legal-body { padding: 48px 0 96px; }

/* ── Two-column CSS Grid ──────────────────────────────────── */
.legal-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 40px;
  align-items: start;
}

/* ══════════════════════════════════════════════════════════
   LEFT SIDEBAR
   ══════════════════════════════════════════════════════════ */
.legal-sidebar {
  position: sticky;
  top: 120px;
  height: max-content;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* — TOC box — */
.legal-toc {
  background: var(--g900);
  border-radius: 16px;
  padding: 24px;
}
.legal-toc__title {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.35);
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255,255,255,0.07);
}
.legal-toc__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.legal-toc__list a {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12.5px;
  font-weight: 500;
  color: rgba(255,255,255,0.55);
  text-decoration: none;
  padding: 8px 10px;
  border-radius: 8px;
  border-left: 2px solid transparent;
  transition: color 0.18s, background 0.18s, border-color 0.18s;
  line-height: 1.4;
}
.legal-toc__list a:hover {
  color: #fff;
  background: rgba(255,255,255,0.07);
}
.legal-toc__list a.is-active {
  color: var(--accent);
  background: rgba(255,145,16,0.10);
  border-left-color: var(--accent);
  font-weight: 600;
}
.legal-toc__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 4px;
  background: rgba(255,255,255,0.07);
  font-size: 10px;
  font-weight: 800;
  color: rgba(255,255,255,0.45);
  flex-shrink: 0;
  transition: background 0.18s, color 0.18s;
}
.legal-toc__list a.is-active .legal-toc__num {
  background: rgba(255,145,16,0.20);
  color: var(--accent);
}

/* — Contact box — */
.legal-contact-box {
  background: var(--g900);
  border-radius: 16px;
  padding: 22px 24px;
  border: 1px solid rgba(255,255,255,0.05);
}
.legal-contact-box__eyebrow {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 8px;
}
.legal-contact-box__title {
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  line-height: 1.3;
  margin-bottom: 6px;
}
.legal-contact-box__sub {
  font-size: 12px;
  color: rgba(255,255,255,0.45);
  line-height: 1.55;
  margin-bottom: 16px;
}
.legal-contact-box .btn-wa {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 11px 16px;
  background: #25D366;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  border-radius: 10px;
  text-decoration: none;
  transition: background 0.2s, transform 0.15s;
}
.legal-contact-box .btn-wa:hover {
  background: #1dbc58;
  transform: translateY(-1px);
}

/* ══════════════════════════════════════════════════════════
   RIGHT CONTENT
   ══════════════════════════════════════════════════════════ */
.legal-content { min-width: 0; }

/* — Dark header card — */
.legal-content__header {
  background: var(--g900);
  border-radius: 20px 20px 0 0;
  padding: 48px 52px 40px;
}
.legal-content__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 16px;
}
.legal-content__eyebrow::before {
  content: '';
  display: block;
  width: 22px;
  height: 2px;
  background: var(--accent);
  border-radius: 2px;
}
.legal-content__title {
  font-family: var(--fhead);
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.03em;
  line-height: 1.1;
  margin-bottom: 0;
}
.legal-content__title em {
  font-style: normal;
  color: var(--accent);
}
.legal-content__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.30);
  margin-top: 18px;
}
.legal-content__meta svg { color: rgba(255,145,16,0.70); }
/* — Header callout — */
.legal-content__callout {
  margin-top: 28px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,145,16,0.22);
  border-left: 4px solid var(--accent);
  border-radius: 10px;
  padding: 16px 20px;
  display: flex;
  gap: 14px;
  align-items: flex-start;
}
.legal-content__callout-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  background: rgba(255,145,16,0.18);
  color: var(--accent);
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: 20px;
  white-space: nowrap;
  flex-shrink: 0;
  margin-top: 3px;
}
.legal-content__callout-text {
  font-size: 13.5px;
  color: rgba(255,255,255,0.70);
  line-height: 1.65;
  margin: 0;
}
.legal-content__callout-text strong { color: rgba(255,255,255,0.95); }

/* — White prose card — */
.legal-prose {
  background: #fff;
  border-radius: 0 0 20px 20px;
  box-shadow: 0 8px 40px rgba(0,23,158,0.07), 0 1px 3px rgba(0,0,0,0.04);
  border: 1px solid rgba(0,23,158,0.06);
  border-top: none;
  overflow: hidden;
}

/* Meta bar */
.legal-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(0,23,158,0.35);
  padding: 16px 52px;
  background: rgba(0,23,158,0.02);
  border-bottom: 1px solid rgba(0,23,158,0.05);
}
.legal-meta svg { color: var(--accent); }

/* Section block */
.legal-section {
  padding: 36px 52px;
  border-bottom: 1px solid rgba(0,23,158,0.05);
}
.legal-section:last-child { border-bottom: none; }

/* H2 heading with number badge */
.legal-prose h2 {
  font-family: var(--fhead);
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--g900);
  letter-spacing: -0.02em;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.legal-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: rgba(255,145,16,0.09);
  color: var(--accent);
  font-size: 12px;
  font-weight: 800;
  flex-shrink: 0;
  border: 1px solid rgba(255,145,16,0.18);
}

/* H3 sub-heading */
.legal-prose h3 {
  font-family: var(--fhead);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--g900);
  letter-spacing: 0.09em;
  text-transform: uppercase;
  margin: 22px 0 10px;
}

/* Paragraph */
.legal-prose p {
  font-size: 0.9375rem;
  color: #4b5563;
  line-height: 1.85;
  margin-bottom: 12px;
}
.legal-prose p:last-child { margin-bottom: 0; }

/* List with SVG checkmark bullets */
.legal-prose ul {
  list-style: none;
  padding: 0;
  margin: 12px 0 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.legal-prose ul li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.9375rem;
  color: #4b5563;
  line-height: 1.7;
}
.li-check {
  flex-shrink: 0;
  width: 17px;
  height: 17px;
  margin-top: 3px;
  color: #34D399;
}

/* Inline callout */
.legal-callout {
  background: rgba(255,145,16,0.04);
  border: 1px solid rgba(255,145,16,0.14);
  border-left: 4px solid var(--accent);
  border-radius: 10px;
  padding: 14px 18px;
  margin: 16px 0;
  font-size: 0.9rem;
  color: #374151;
  line-height: 1.7;
}
.legal-callout strong { color: var(--g900); }

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 1100px) {
  .legal-layout { grid-template-columns: 240px 1fr; gap: 28px; }
  .legal-content__header { padding: 36px 36px 32px; }
  .legal-section { padding: 30px 36px; }
  .legal-meta { padding: 14px 36px; }
}
@media (max-width: 860px) {
  .legal-layout { grid-template-columns: 1fr; }
  .legal-sidebar {
    position: static;
    flex-direction: row;
    flex-wrap: wrap;
  }
  .legal-toc { flex: 1; min-width: 260px; }
  .legal-contact-box { flex: 1; min-width: 220px; }
  .legal-toc__list { flex-direction: row; flex-wrap: wrap; gap: 4px; }
  .legal-toc__list a { padding: 6px 10px; font-size: 12px; border-left: none; border-bottom: 2px solid transparent; }
  .legal-toc__list a.is-active { border-bottom-color: var(--accent); background: rgba(255,145,16,0.10); }
}
@media (max-width: 600px) {
  .legal-body { padding: 32px 0 64px; }
  .legal-sidebar { flex-direction: column; }
  .legal-content__header { padding: 28px 24px 24px; }
  .legal-section { padding: 24px 20px; }
  .legal-meta { padding: 14px 20px; }
  .legal-content__callout { flex-direction: column; gap: 10px; }
}
@media (max-width: 900px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
}
@media (max-width: 480px) {
  .footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .ft-bottom { flex-direction: column; text-align: center; gap: 6px; }
}
/* ── End Legal Page ───────────────────────────────────────── */

/* Dynamically style 'Or Similar' in car titles (all contexts) */
.bk-or-similar,
.cc-or-similar {
  font-size: 0.65em !important;
  font-weight: 400 !important;
  font-style: italic !important;
  color: #64748B !important;
  text-transform: none !important;
  margin-left: 6px !important;
  letter-spacing: 0 !important;
}

/* ── Car card typography overrides ── */
.bk-car-card .cc-price-total-num,
.bk-car-card .bk-total-chip-num {
  color: #00179e !important;
}
.bk-car-card .cc-price-perday .bk-img-price-num {
  color: #94A3B8 !important;
  font-weight: 500 !important;
}
.bk-car-card .cc-price-perday {
  color: #94A3B8 !important;
}

/* ── Mobile days badge: hidden on desktop, overlaid on image on mobile ── */
.mobile-days-badge {
  display: none !important;
}

@media (max-width: 900px) {
  .bk-car-card:has(.cc-left) .cc-left {
    position: relative !important;
  }
  .mobile-days-badge {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    position: absolute !important;
    bottom: 12px !important;
    left: 16px !important;
    z-index: 10 !important;
    margin: 0 !important;
  }
  .bk-car-card:has(.cc-left) .cc-right .cc-from-block {
    display: none !important;
  }
  .bk-car-card:has(.cc-left) .cc-right {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    align-items: flex-end !important;
    padding: 16px 20px !important;
  }
  .bk-car-card:has(.cc-left) .cc-price-main {
    display: flex !important;
    flex-direction: row !important;
    align-items: baseline !important;
  }

  /* Spec pills: single scrollable row, sized to match feature pills */
  .bk-car-card:has(.cc-left) .bk-specs-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    gap: 6px !important;
    padding-bottom: 2px !important;
    -ms-overflow-style: none;
    scrollbar-width: none;
  }
  .bk-car-card:has(.cc-left) .bk-specs-row::-webkit-scrollbar {
    display: none !important;
  }
  .bk-car-card:has(.cc-left) .vspec {
    font-size: 12px !important;
    padding: 4px 10px !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    display: flex !important;
    align-items: center !important;
  }
  .bk-car-card:has(.cc-left) .vspec svg {
    width: 14px !important;
    height: 14px !important;
    margin-right: 4px !important;
  }
}

/* ============================================================
   BOOKING WIDGET — PREMIUM UI UPGRADE
   Targets: inputs, checkbox, CTA button, widget container.
   Appended after all existing bw-* rules so no !important
   needed except where the glassmorphism block forced them.
   ============================================================ */

/* ── 1. WIDGET CONTAINER — elevated depth ─────────────────── */
.bw-form {
  box-shadow:
    0 2px 2px  rgba(0, 0, 0, 0.20),
    0 8px 16px rgba(0, 0, 0, 0.28),
    0 32px 64px rgba(0, 0, 0, 0.40),
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    inset 0 -1px 0 rgba(0, 0, 0, 0.20) !important;
}

/* ── 2. INPUTS & SELECTS — glassmorphism + orange focus ring ─ */
.bw-select,
.bw-input {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  transition:
    background   0.2s ease,
    border-color 0.2s ease,
    box-shadow   0.2s ease !important;
}

.bw-select:hover,
.bw-input:hover {
  background: rgba(255, 255, 255, 0.10) !important;
  border-color: rgba(255, 255, 255, 0.22) !important;
}

.bw-select:focus,
.bw-input:focus {
  background: rgba(255, 255, 255, 0.10) !important;
  border-color: var(--accent) !important;
  box-shadow:
    0 0 0 3px rgba(255, 145, 16, 0.28),
    0 0 12px rgba(255, 145, 16, 0.14) !important;
}

/* ── 3. CHECKBOX — custom orange with animated checkmark ───── */
.bw-checkbox__custom {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 6px;
  border: 1.5px solid rgba(255, 255, 255, 0.30) !important;
  background: rgba(255, 255, 255, 0.06);
  flex-shrink: 0;
  transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
  cursor: pointer;
}

/* Checkmark drawn via ::after */
.bw-checkbox__custom::after {
  content: '';
  position: absolute;
  width: 5px;
  height: 9px;
  border: 2px solid #fff;
  border-top: none;
  border-left: none;
  transform: rotate(45deg) translate(0px, -1px);
  opacity: 0;
  transition: opacity 0.15s ease, transform 0.15s ease;
  transform-origin: center;
}

/* Checked state — orange fill + glow */
.bw-checkbox__input:checked + .bw-checkbox__custom {
  background: var(--accent);
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 3px rgba(255, 145, 16, 0.25), 0 2px 8px rgba(255, 145, 16, 0.30);
}

.bw-checkbox__input:checked + .bw-checkbox__custom::after {
  opacity: 1;
}

/* Hover on the label — subtle brighten */
.bw-checkbox:hover .bw-checkbox__custom {
  border-color: rgba(255, 255, 255, 0.50) !important;
  background: rgba(255, 255, 255, 0.10);
}
.bw-checkbox__input:checked ~ .bw-checkbox__label {
  color: rgba(255, 255, 255, 0.92);
}

/* ── 4. CTA BUTTON — enhanced lift, glow, and press ────────── */
.bw-btn--submit {
  position: relative;
  overflow: hidden;
  background: var(--accent) !important;
  box-shadow:
    0 4px 12px rgba(255, 145, 16, 0.35),
    0 1px 2px  rgba(0, 0, 0, 0.20) !important;
  transition:
    transform   0.22s cubic-bezier(0.34, 1.56, 0.64, 1),
    box-shadow  0.22s ease,
    background  0.18s ease !important;
}

/* Gloss shimmer layer */
.bw-btn--submit::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0.18) 0%,
    rgba(255, 255, 255, 0.00) 60%
  );
  border-radius: inherit;
  pointer-events: none;
}

.bw-btn--submit:hover {
  background: var(--accent-dark) !important;
  transform: translateY(-4px) scale(1.015) !important;
  box-shadow:
    0 10px 28px rgba(255, 145, 16, 0.55),
    0 4px 8px   rgba(0, 0, 0, 0.20),
    0 0 0 1px   rgba(255, 145, 16, 0.20) !important;
}

/* Press — snaps back down to simulate a physical click */
.bw-btn--submit:active {
  transform: translateY(1px) scale(0.99) !important;
  box-shadow:
    0 2px 8px rgba(255, 145, 16, 0.40),
    0 1px 2px rgba(0, 0, 0, 0.25) !important;
  transition-duration: 0.08s !important;
}
/* ── End Premium Widget Upgrade ───────────────────────────── */


/* ============================================================
   CUSTOM FIXES — migrated from WordPress Additional CSS
   Conflict-checked against main.css before insertion.
   ============================================================ */

/* ── WCAG AA CONTRAST — .sec-h em ──────────────────────────────
   Fix already applied at line 711:
     .sec-h em { color: #0369A1; }   ← 5.45:1 on #EFF6FF ✅
   Targets: "adventure" (fleet heading) + "say" (reviews heading).
   No duplicate rule needed here.
   ─────────────────────────────────────────────────────────── */


/* ── TABLET HERO LAYOUT — 769px to 1024px ──────────────────────
   At ≤1024px the hero grid collapses to single-column (line 3158).
   This bounded range tightens padding, gap, and H1 font-size so
   the stacked hero does not consume the full tablet viewport.
   Existing ≤1024px and ≤640px rules are untouched; this only
   fires in the 769–1024px window where neither applied before.
   ─────────────────────────────────────────────────────────── */
@media (min-width: 769px) and (max-width: 1024px) {
  /* Reduce the 60px desktop bottom-pad + 48px gap in stacked mode */
  .gc-hero      { padding: 20px 0 28px; gap: 22px; }
  /* clamp(30px,4vw,42px): at 769px≈31px, 900px≈36px, 1024px≈41px */
  .gc-hero h1   { font-size: clamp(30px, 4vw, 42px); letter-spacing: -1.5px; margin-bottom: 12px; line-height: 1.1; }
  .hero-sub     { font-size: 15px; line-height: 1.6; margin-bottom: 16px; }
  .hero-pills   { gap: 6px; margin-bottom: 16px; }
  .hero-actions { gap: 10px; }
  .hero-proof   { margin-top: 14px; }
}


/* ── WHY CHOOSE US — MOBILE RESPONSIVE + RTL ───────────────────

   A. Overflow protection — all viewports.
      Prevents long words (French, German, Arabic) from breaking
      out of card borders at any width.
   ─────────────────────────────────────────────────────────── */
.why-card  { min-width: 0; }
.why-title,
.why-desc  {
  overflow-wrap:   break-word;
  word-break:      break-word;
  hyphens:         auto;
  -webkit-hyphens: auto;
}

/* B. wu-icon resize at ≤640px.
      Bug: existing rule at line 3249 targets .why-icon (stale class
      from an earlier template revision). The template renders .wu-icon,
      so the icon was never shrinking on small screens. This corrects it.
   ─────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
  .wu-icon     { width: 40px; height: 40px; border-radius: 10px; margin-bottom: 12px; }
  .wu-icon svg { width: 18px; height: 18px; }
}

/* C. Small mobile ≤480px — single column + compact spacing.
      The ≤768px rule (line 6963) already forces 1-column, but this
      adds the finer-grained compression needed for phones ≤480px.
   ─────────────────────────────────────────────────────────── */
@media (max-width: 480px) {
  .why-grid           { grid-template-columns: 1fr; gap: 10px; }
  .why-wrapper        { padding: 18px 12px; border-radius: 16px; }
  .why-card           { padding: 16px 14px; border-radius: 14px; }
  .wu-icon            { width: 40px; height: 40px; border-radius: 10px; margin-bottom: 10px; }
  .wu-icon svg        { width: 18px; height: 18px; }
  .why-title          { font-size: 15px; margin-bottom: 6px; }
  .why-desc           { font-size: 13px; line-height: 1.55; }
  .why-wrapper .sec-h { font-size: clamp(20px, 5.5vw, 26px); line-height: 1.2; }
  .why-wrapper .sec-p { font-size: 14px; margin-bottom: 24px; }
}

/* D. Arabic RTL — follows the html[dir="rtl"] convention already
      used in this file at lines 163-166 and 3395-3418.
      Three selectors in priority order:
        1. html[dir="rtl"]  — Polylang/WordPress sets this on <html>
        2. :lang(ar)        — fires when <html lang="ar"> is set
        3. .why-card.rtl    — manual class fallback
   ─────────────────────────────────────────────────────────── */
html[dir="rtl"] .why-card,
:lang(ar)       .why-card,
.why-card.rtl {
  direction:  rtl;
  text-align: start; /* resolves to right in RTL, left in LTR */
}

/* Flip the animated brand-blue top-border to grow from the right */
html[dir="rtl"] .why-card::before,
:lang(ar)       .why-card::before,
.why-card.rtl::before {
  transform-origin: right;
}

/* Section heading + description — centred text works in both directions */
html[dir="rtl"] .why-wrapper .sec-h,
html[dir="rtl"] .why-wrapper .sec-p,
:lang(ar)       .why-wrapper .sec-h,
:lang(ar)       .why-wrapper .sec-p {
  text-align: center;
}

/* ── End Custom Fixes ─────────────────────────────────────── */
