

:root {
  /* grounds */
  --black:      var(--c-paper);
  --dark:       var(--c-paper);
  --dark2:      var(--c-surf2);
  --dark3:      var(--c-surf3);
  --mid:        var(--c-line);

  /* ink — anything the old theme painted white is now espresso */
  --white:      var(--c-ink);
  --off-white:  var(--c-ink2);
  --light-grey: var(--c-ink2);
  --grey:       var(--c-ink3);

  /* brass */
  --gold:       var(--c-acc);
  --gold-light: var(--c-acc-l);
  --gold-dark:  var(--c-acc-d);

  --font-serif: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --font-sans:  'Atkinson Hyperlegible', system-ui, -apple-system, sans-serif;

  --shadow-gold: none;
  --shadow-card: none;
  --radius: 12px;

  --paper: var(--c-paper);
  --ink:   var(--c-ink);
  --rule:  var(--c-line);
}

html, body { background: var(--paper); color: var(--ink); }
body { font-family: var(--font-sans); -webkit-font-smoothing: antialiased; }


/* --- rescue text the old theme hardcoded to white -------------------- */
[style*="color:#fff"], [style*="color: #fff"],
[style*="color:#ffffff"], [style*="color: #ffffff"],
[style*="rgba(255,255,255"], [style*="rgba(255, 255, 255"] {
  color: var(--ink) !important;
}
[style*="background:rgba(255,255,255"], [style*="background: rgba(255, 255, 255"] {
  background: transparent !important;
}

/* --- kill the dark-theme atmospherics ------------------------------- */
.page-loader { display: none !important; }
.hero-orb, .hero-grid, .hero-overlay { display: none !important; }
.hero-bg { background: var(--paper) !important; }
#hero { background: var(--paper) !important; }
#hero::before, #hero::after { display: none !important; }

/* --- typography ----------------------------------------------------- */
h1, h2, h3, .hero-title, .section-title, .stat-num, .pricing-price, .logo, .loader-logo {
  font-family: var(--font-serif) !important;
  font-weight: 500 !important;
  letter-spacing: -0.012em;
  font-optical-sizing: auto;
}
/* Newsreader reads calm and even at display size, so the big headline
   can carry a little more weight without turning heavy. */
h1, .hero-title, .bi-h1, .logo { font-weight: 600 !important; }
h1 em, h2 em, .hero-title em, .section-title em { font-style: italic; color: var(--gold) !important; }
p, li, label, input, select, textarea, .btn, .nav-links a, .mobile-nav a { font-family: var(--font-sans); }

.hero-title { line-height: 1.02 !important; text-wrap: balance; }
.hero-sub, .section-sub { color: var(--grey) !important; }

.label, .faq-eyebrow, .pricing-tier, .pricing-from {
  font-size: 14px !important;
  letter-spacing: 0.22em !important;
  text-transform: none;
  font-weight: 600 !important;
  color: var(--gold) !important;
}

.divider { background: var(--gold) !important; height: 1px !important; box-shadow: none !important; }

/* --- header --------------------------------------------------------- */
#header {
  background: var(--paper) !important;
  border-bottom: 1px solid var(--ink) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
#header.scrolled { background: var(--paper) !important; box-shadow: none !important; }
.logo { color: var(--ink) !important; letter-spacing: 0.08em; }
.logo span { color: var(--gold) !important; }
.nav-links a {
  color: var(--c-ink2) !important;
  font-size: 14px !important;
  letter-spacing: 0.14em;
  text-transform: none;
  font-weight: 600;
}
.nav-links a:hover { color: var(--gold) !important; }
.nav-phone { color: var(--ink) !important; font-weight: 700; font-variant-numeric: tabular-nums; }
.nav-toggle span { background: var(--c-acc) !important; }
.mobile-nav { background: var(--paper) !important; border-top: 1px solid var(--rule); }
.mobile-nav a { color: var(--ink) !important; border-bottom: 1px solid var(--rule); }

/* --- buttons -------------------------------------------------------- */
.btn {
  border-radius: 12px !important;
  box-shadow: none !important;
  text-transform: none;
  letter-spacing: 0.08em;
  font-weight: 600;
  font-size: 14px !important;
  transition: opacity .15s ease;
}
.btn:hover { transform: none !important; box-shadow: none !important; opacity: .86; }
.btn-gold, .nav-book {
  background: var(--c-acc) !important;
  color: var(--c-on-acc) !important;
  border: 1px solid var(--c-acc) !important;
}
.btn-outline, .btn-whatsapp {
  background: transparent !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
}
.btn-outline:hover, .btn-whatsapp:hover { border-color: var(--gold) !important; }
.btn-dark { background: var(--c-acc) !important; color: var(--c-on-acc) !important; border: 1px solid var(--c-acc) !important; }

/* --- panels: no cards floating on cards ----------------------------- */
.why-card, .pricing-card, .booking-form-card, .book-option, .faq-item {
  background: transparent !important;
  border-radius: 12px !important;
  box-shadow: none !important;
}
.why-card, .book-option, .booking-form-card, .pricing-card {
  border: 1px solid var(--rule) !important;
}
.why-card:hover, .book-option:hover, .pricing-card:hover {
  transform: none !important;
  border-color: var(--gold) !important;
  box-shadow: none !important;
}
.pricing-card.featured {
  border: 1px solid var(--c-acc) !important;
  border-left: 2px solid var(--gold) !important;
  transform: none !important;
}
.why-card h3, .pricing-card h3, .book-option h3, .booking-form-card h3 { color: var(--ink) !important; }
.why-card p, .pricing-card li, .book-option p { color: var(--grey) !important; }
.why-icon, .book-option-icon, .pricing-icon, .service-icon { filter: grayscale(1) opacity(.75); }

.pricing-price { color: var(--ink) !important; font-variant-numeric: tabular-nums; }
.pricing-price sup { color: var(--gold) !important; }
.pricing-list li { border-bottom: 1px solid var(--rule) !important; }

/* --- service cards keep their photographs --------------------------- */
.service-card { border: 1px solid var(--rule) !important; overflow: hidden; }
.service-card img { filter: none; }
.service-card-overlay {
  background: linear-gradient(to top, rgba(20,24,27,.92) 0%, rgba(20,24,27,.62) 55%, rgba(20,24,27,0) 100%) !important;
}
.service-card-overlay h3, .service-card-overlay p { color: #F4F1EA !important; }
.service-card-link { color: var(--c-acc) !important; }

/* --- forms ---------------------------------------------------------- */
.form-group label { color: var(--gold) !important; font-size: 14px !important; letter-spacing: .01em; text-transform: none; font-weight: 600; }
.form-group input, .form-group select, .form-group textarea {
  background: transparent !important;
  color: var(--ink) !important;
  border: none !important;
  border-bottom: 1px solid var(--rule) !important;
  border-radius: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
  border-bottom-color: var(--c-acc) !important;
  outline: none;
  box-shadow: none !important;
}
.form-group input::placeholder, .form-group textarea::placeholder { color: var(--c-ph) !important; }
.terms-consent { color: var(--grey) !important; }
.terms-consent a { color: var(--gold) !important; }

/* --- marquee becomes a ruled band ----------------------------------- */
.marquee-section {
  background: var(--paper) !important;
  border-top: 1px solid var(--rule) !important;
  border-bottom: 1px solid var(--rule) !important;
}
.marquee-track span {
  color: var(--grey) !important;
  font-size: 14px !important;
  letter-spacing: .01em;
  text-transform: none;
  font-weight: 600;
}
.marquee-track span::after { color: var(--gold-light) !important; }

/* --- stats ---------------------------------------------------------- */
.hero-stats { border-top: 1px solid var(--rule); padding-top: 26px; }
.stat-num { color: var(--ink) !important; font-variant-numeric: tabular-nums; }
.stat-label { color: var(--grey) !important; font-size: 14px !important; letter-spacing: .01em; text-transform: none; font-weight: 600; }

.hero-badge {
  background: transparent !important;
  border: 1px solid var(--rule) !important;
  color: var(--gold) !important;
  border-radius: 12px !important;
  font-size: 14px !important;
  letter-spacing: .01em;
  text-transform: none;
  font-weight: 600;
}
.hero-badge-dot { background: var(--gold) !important; box-shadow: none !important; }

/* --- CTA band ------------------------------------------------------- */
.cta-band {
  background: var(--c-acc) !important;
  border: none !important;
}
.cta-band h2, .cta-band .section-title { color: var(--paper) !important; }
.cta-band .section-sub { color: rgba(244,241,234,.72) !important; }
.cta-band .label { color: var(--gold-light) !important; }
.cta-band .btn-gold { background: var(--paper) !important; color: var(--ink) !important; border-color: var(--paper) !important; }
.cta-band .btn-outline, .cta-band .btn-whatsapp { color: var(--paper) !important; border-color: rgba(244,241,234,.34) !important; }

/* --- footer --------------------------------------------------------- */
#footer, footer {
  background: var(--paper) !important;
  border-top: 1px solid var(--ink) !important;
  color: var(--grey) !important;
}
#footer a, footer a { color: var(--c-ink2) !important; }
#footer a:hover, footer a:hover { color: var(--gold) !important; }
#footer h3, #footer h4, footer h3, footer h4 { color: var(--ink) !important; font-family: var(--font-serif) !important; }

/* --- reviews -------------------------------------------------------- */
.ecz-review {
  background: transparent !important;
  border: 1px solid var(--rule) !important;
  border-left: 2px solid var(--gold) !important;
  border-radius: 12px;
  padding: 26px;
}
.ecz-review p { color: var(--ink) !important; }
.ecz-review .stars { color: var(--gold) !important; }
.ecz-review .who strong { color: var(--ink) !important; }
.ecz-review .avatar { background: var(--c-acc) !important; color: var(--c-on-acc) !important; }

/* --- reduced motion & focus ----------------------------------------- */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
  outline: 2px solid var(--gold); outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* --- the brass "custom journey" card inside the services grid -------- */
.service-card[style*="var(--gold)"] { background: var(--gold) !important; }
.service-card[style*="var(--gold)"] h3,
.service-card[style*="var(--gold)"] p { color: #F4F1EA !important; }
.service-card[style*="var(--gold)"] .btn-dark {
  background: var(--c-paper) !important; color: var(--ink) !important; border-color: var(--c-paper) !important;
}

/* --- decorative emoji do not belong in this typeface ---------------- */
.btn .emoji, .hero-btns .btn img.emoji, .nav-phone img.emoji { display: none; }

/* --- specificity corrections ---------------------------------------- */

/* .nav-links a was beating .nav-book, leaving the Book Now label
   espresso on espresso. */
.nav-links a.nav-book {
  background: var(--c-acc) !important;
  color: var(--c-on-acc) !important;
  border: 1px solid var(--c-acc) !important;
}
.nav-links a.nav-book:hover { color: var(--c-on-acc) !important; opacity: .86; }

/* The footer set its own faded whites in the stylesheet rather than
   inline, so the rescue rule above could not reach them. */
#footer, #footer p, #footer li, #footer span, #footer div,
footer, footer p, footer li, footer span {
  color: var(--grey) !important;
}
#footer small, footer small,
#footer .footer-legal, footer .footer-legal,
#footer .footer-bottom, footer .footer-bottom,
#footer .footer-bottom *, footer .footer-bottom * {
  color: var(--c-ink3) !important;
}
#footer a, footer a { color: var(--c-ink2) !important; }
#footer a:hover, footer a:hover { color: var(--gold) !important; }
#footer strong, footer strong { color: var(--ink) !important; }

/* =====================================================================
   Brass & Ivory — homepage arrangement (bi-*)
   ===================================================================== */

.bi-hero { padding: 0 !important; min-height: 0 !important; display: block !important; }
.bi-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1px 480px;
  gap: 0;
  align-items: stretch;
  max-width: var(--max);
  margin: 0 auto;
}
.bi-hero-copy { padding: 64px 56px 64px 0; display: flex; flex-direction: column; gap: 32px; }
.bi-hero-rule { background: var(--ink); }
.bi-hero-calc { padding: 64px 0 64px 48px; display: flex; flex-direction: column; gap: 22px; }

.bi-h1 {
  font-size: clamp(38px, 5.2vw, 68px) !important;
  line-height: .96 !important;
  letter-spacing: -.015em;
  margin: 0 !important;
  text-wrap: balance;
}
.bi-sub { max-width: 48ch; font-size: 15.5px; line-height: 1.7; margin: 0 !important; }

.bi-marks { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); max-width: 560px; }
.bi-marks li {
  display: flex; align-items: baseline; gap: 18px;
  padding: 14px 0; border-bottom: 1px solid var(--rule);
  font-size: 14px; color: var(--ink-2, var(--c-ink2));
}
.bi-marks .n, .bi-row .n {
  font-size: 14px; letter-spacing: .01em; font-weight: 600;
  color: var(--gold-light); flex-shrink: 0; width: 26px;
  font-variant-numeric: tabular-nums;
}

.bi-stats { display: flex; gap: 48px; flex-wrap: wrap; }
.bi-stats .big { display: block; font-family: var(--font-serif); font-size: 32px; line-height: 1; font-variant-numeric: tabular-nums; }
.bi-stats .cap { display: block; margin-top: 4px; font-size: 14px; letter-spacing: .01em; text-transform: none; font-weight: 600; color: var(--grey); }

.bi-hero-btns { display: flex; gap: 10px; flex-wrap: wrap; }
.bi-hero-btns .btn { min-width: 150px; justify-content: center; }

.bi-fineprint { font-size: 14px; color: var(--grey); line-height: 1.6; margin: 0; }
.bi-fineprint a { color: var(--gold); }

/* --- ruled lists (fares, why) --------------------------------------- */
.bi-section { padding: 76px 0 !important; background: var(--paper) !important; }
.bi-head { display: flex; flex-direction: column; gap: 12px; margin-bottom: 34px; max-width: 62ch; }
.bi-head .section-title { margin: 0 !important; }

.bi-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
.bi-row {
  display: flex; align-items: baseline; gap: 20px;
  padding: 20px 0 20px 14px;
  border-bottom: 1px solid var(--rule);
  border-left: 2px solid transparent;
}
.bi-row:hover { border-left-color: var(--gold); }
.bi-row-main { display: flex; flex-direction: column; gap: 4px; flex-grow: 1; }
.bi-row-title { font-family: var(--font-serif); font-size: 22px; line-height: 1.1; }
.bi-row-sub { font-size: 14px; color: var(--grey); line-height: 1.55; }
.bi-row-price {
  font-family: var(--font-serif); font-size: 34px; line-height: 1;
  flex-shrink: 0; margin-left: auto; color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.bi-row-price sup { font-size: .5em; top: -.6em; color: var(--gold); }

/* --- services ------------------------------------------------------- */
.bi-services { margin-top: 40px !important; gap: 1px !important; background: var(--rule); }
.bi-service-cta {
  background: var(--gold) !important;
  display: flex; align-items: center; justify-content: center;
  text-align: center; padding: 48px;
}
.bi-service-cta h3 { color: #F4F1EA !important; font-size: 24px; margin-bottom: 12px; }
.bi-service-cta p { color: rgba(244,241,234,.82) !important; margin-bottom: 24px; font-size: 14px; }
.bi-service-cta .btn-dark { background: #F4F1EA !important; color: var(--ink) !important; border-color: #F4F1EA !important; }

/* --- reviews -------------------------------------------------------- */
.bi-reviews { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
.ecz-review .stars { color: var(--gold); font-size: 15px; margin-bottom: 12px; letter-spacing: .01em; }
.ecz-review p { font-style: italic; margin: 0 0 20px; line-height: 1.7; }
.ecz-review .who { display: flex; align-items: center; gap: 12px; }
.ecz-review .avatar { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; }
.bi-review-cta { margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--rule); display: flex; flex-direction: column; gap: 18px; align-items: flex-start; }

/* --- areas ---------------------------------------------------------- */
.bi-areas { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 30px; max-width: 1080px; margin: 0 auto; }
.bi-areas > div { border-top: 1px solid var(--rule); padding-top: 16px; }
.bi-area-h { font-size: 14px !important; letter-spacing: .01em; text-transform: none; font-weight: 600 !important; color: var(--gold) !important; margin-bottom: 12px; font-family: var(--font-sans) !important; }
.bi-areas p { line-height: 1.9; font-size: 14px; color: var(--ink-2, var(--c-ink2)); }
.bi-areas a { color: var(--ink-2, var(--c-ink2)) !important; text-decoration: underline; text-decoration-color: rgba(var(--c-acc-rgb),.35); text-underline-offset: 3px; }
.bi-areas a:hover { color: var(--gold) !important; }

/* --- faq ------------------------------------------------------------ */
.bi-faq-wrap { max-width: 880px; }
.bi-faqs { border-top: 1px solid var(--ink); }
.bi-faqs .faq-item { border-bottom: 1px solid var(--rule); padding: 24px 0; }
.bi-faqs .faq-item h3 { font-family: var(--font-serif); font-size: 21px; font-weight: 400; color: var(--ink); margin: 0 0 8px; }
.bi-faqs .faq-item p { margin: 0; line-height: 1.75; color: var(--grey); font-size: 14.5px; }

/* --- the live calculator, dressed for this page --------------------- */
.bi-hero-calc .ecz-dirs { display: flex; border-bottom: 1px solid var(--ink); margin-bottom: 24px; }
.bi-hero-calc .ecz-dir {
  flex: 1 1 0; height: 50px; background: transparent; border: none; cursor: pointer;
  font-size: 14px; letter-spacing: .01em; text-transform: none; font-weight: 500; color: var(--c-ph);
}
.bi-hero-calc .ecz-dir + .ecz-dir { border-left: 1px solid var(--rule); }
.bi-hero-calc .ecz-dir.is-on { color: var(--ink); font-weight: 700; }
.bi-hero-calc .ecz-label { display: block; font-size: 14px !important; letter-spacing: .01em; text-transform: none; font-weight: 600; color: var(--gold) !important; margin-bottom: 6px; }
.bi-hero-calc .ecz-input {
  width: 100%; height: 48px; background: transparent !important;
  border: none !important; border-bottom: 1px solid var(--rule) !important; border-radius: 0 !important;
  padding: 0 !important; color: var(--ink) !important;
  font-family: var(--font-serif); font-size: 24px;
}
.bi-hero-calc select.ecz-input { font-size: 18px; }
.bi-hero-calc .ecz-input:focus { outline: none; border-bottom-color: var(--c-acc) !important; }
.bi-hero-calc .ecz-row { display: flex; flex-direction: column; gap: 22px; }
.bi-hero-calc #ecz-go { width: 100%; margin-top: 22px; }
.bi-hero-calc #ecz-summary { font-size: 14px; color: var(--grey); margin: 18px 0 0; }
.bi-hero-calc #ecz-cars { list-style: none; margin: 14px 0 0; padding: 0; border-top: 1px solid var(--ink); }
.bi-hero-calc #ecz-cars li { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--rule); }
.bi-hero-calc .ecz-name { font-family: var(--font-serif); font-size: 18px; }
.bi-hero-calc .ecz-seats { font-size: 14px; color: var(--grey); }
.bi-hero-calc .ecz-price { font-family: var(--font-serif); font-size: 30px; color: var(--gold); font-variant-numeric: tabular-nums; }
.bi-hero-calc #ecz-msg { font-size: 14px; color: var(--grey); }

/* --- responsive ----------------------------------------------------- */
@media (max-width: 1040px) {
  .bi-hero-grid { grid-template-columns: 1fr; }
  .bi-hero-rule { display: none; }
  .bi-hero-copy { padding: 48px 0 40px; }
  .bi-hero-calc { padding: 32px 0 56px; border-top: 1px solid var(--ink); }
}
@media (max-width: 640px) {
  .bi-row { flex-wrap: wrap; }
  .bi-row-price { margin-left: 46px; font-size: 28px; }
  .bi-stats { gap: 30px; }
  .bi-section { padding: 52px 0 !important; }
}

/* =====================================================================
   The fare calculator, dressed for Brass & Ivory.
   It carries its own four custom properties, so redefining those does
   most of the work — and it does it on all 115 pages, not just home.
   No markup and no behaviour is touched.
   ===================================================================== */

.ecz-quote {
  --ecz-gold: var(--c-acc);
  --ecz-ink:  var(--c-paper);
  --ecz-line: var(--c-line);
  --ecz-dim:  var(--c-ink3);
  background: transparent !important;
  color: var(--ink) !important;
  border-radius: 0 !important;
  padding: 0 !important;
  max-width: none !important;
  margin: 0 !important;
}

/* labels — the pattern uses .ecz-label, the source uses .ecz-field > span */
.ecz-quote .ecz-label,
.ecz-quote .ecz-field > span {
  font-size: 14px !important;
  letter-spacing: .01em !important;
  text-transform: none;
  font-weight: 600 !important;
  color: var(--gold) !important;
  margin-bottom: 6px !important;
}

.ecz-quote input,
.ecz-quote select {
  background: transparent !important;
  color: var(--ink) !important;
  border: none !important;
  border-bottom: 1px solid var(--rule) !important;
  border-radius: 0 !important;
  padding: 0 !important;
  height: 48px;
  font-family: var(--font-serif) !important;
  font-size: 23px !important;
}
.ecz-quote select { font-size: 18px !important; }
.ecz-quote input::placeholder { color: var(--c-ph) !important; }
.ecz-quote input:focus,
.ecz-quote select:focus { border-bottom-color: var(--c-acc) !important; outline: none; }

.ecz-quote .ecz-row { gap: 24px !important; }
.ecz-quote .ecz-field { flex: 1 1 100% !important; }

/* direction toggle — two halves of one ruled bar, not two pills */
.ecz-quote .ecz-dirs {
  display: flex !important;
  gap: 0 !important;
  border: none !important;
  border-bottom: 1px solid var(--ink) !important;
  border-radius: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  margin-bottom: 26px !important;
}
.ecz-quote .ecz-dir {
  flex: 1 1 0 !important;
  height: 50px !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  color: var(--c-ph) !important;
  font-size: 14px !important;
  letter-spacing: .01em !important;
  text-transform: none;
  font-weight: 500 !important;
  cursor: pointer;
}
.ecz-quote .ecz-dir + .ecz-dir { border-left: 1px solid var(--rule) !important; }
.ecz-quote .ecz-dir.is-on {
  background: transparent !important;
  color: var(--ink) !important;
  font-weight: 700 !important;
  box-shadow: inset 0 -3px 0 var(--c-acc);
}

.ecz-quote .ecz-go {
  width: 100% !important;
  height: 54px !important;
  background: var(--c-acc) !important;
  color: var(--c-on-acc) !important;
  border: 1px solid var(--c-acc) !important;
  border-radius: 12px !important;
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: .01em !important;
  text-transform: none;
  margin-top: 26px !important;
}
.ecz-quote .ecz-go[disabled] { opacity: .35 !important; }

.ecz-quote .ecz-msg { color: var(--grey) !important; font-size: 14px !important; }
.ecz-quote .ecz-msg.is-bad { color: var(--c-bad) !important; }
.ecz-quote .ecz-summary { color: var(--grey) !important; font-size: 14px !important; }
.ecz-quote .ecz-summary b { color: var(--ink) !important; font-weight: 600 !important; }

.ecz-quote .ecz-cars { border-top: 1px solid var(--ink) !important; margin-top: 16px !important; }
.ecz-quote .ecz-cars li {
  border-bottom: 1px solid var(--rule) !important;
  border-top: none !important;
  padding: 14px 0 !important;
  background: transparent !important;
}
.ecz-quote .ecz-cars .ecz-name { font-family: var(--font-serif) !important; font-size: 19px !important; color: var(--ink) !important; }
.ecz-quote .ecz-cars .ecz-seats { color: var(--grey) !important; font-size: 14px !important; }
.ecz-quote .ecz-cars .ecz-price {
  font-family: var(--font-serif) !important;
  font-size: 30px !important;
  color: var(--gold) !important;
  font-variant-numeric: tabular-nums;
}
.ecz-quote .ecz-note { color: var(--grey) !important; font-size: 14px !important; }

/* --- the live pattern's own result classes -------------------------- */
.ecz-quote .ecz-results { background: transparent !important; border: none !important; padding: 0 !important; }
.ecz-quote .ecz-cars {
  display: flex !important; flex-direction: column !important; gap: 0 !important;
  border-top: 1px solid var(--ink) !important; margin-top: 14px !important; padding: 0 !important;
}
.ecz-quote .ecz-car {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid var(--rule) !important;
  border-left: 2px solid transparent !important;
  border-radius: 0 !important;
  padding: 14px 0 14px 12px !important;
  display: flex !important; align-items: center !important; justify-content: space-between !important;
  gap: 16px !important;
}
.ecz-quote .ecz-car:hover { border-left-color: var(--gold) !important; }
.ecz-quote .ecz-car-txt { display: flex !important; flex-direction: column !important; gap: 2px !important; }
.ecz-quote .ecz-name  { font-family: var(--font-serif) !important; font-size: 19px !important; color: var(--ink) !important; }
.ecz-quote .ecz-seats { color: var(--grey) !important; font-size: 14px !important; }
.ecz-quote .ecz-price {
  font-family: var(--font-serif) !important; font-size: 30px !important;
  color: var(--gold) !important; font-variant-numeric: tabular-nums; flex-shrink: 0;
}

.ecz-quote .ecz-cta { display: flex !important; gap: 10px !important; margin-top: 18px !important; }
.ecz-quote .ecz-btn {
  flex: 1 1 0 !important;
  height: 48px !important;
  background: transparent !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 12px !important;
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: .01em !important;
  text-transform: none;
  display: flex !important; align-items: center !important; justify-content: center !important;
  text-decoration: none !important;
  box-shadow: none !important;
}
.ecz-quote .ecz-btn-wa {
  background: var(--c-acc) !important;
  color: var(--c-on-acc) !important;
  border-color: var(--c-acc) !important;
}
.ecz-quote .ecz-btn:hover { opacity: .88; }

/* =====================================================================
   Inner page banners.
   .page-hero painted itself with a hardcoded gradient instead of the
   colour variables, so the site-wide re-skin never reached it and every
   inner heading ended up espresso-on-black. It appears on nine
   templates: page, single, pricing, services, contact, driver, fleet,
   booking and booking-backup.
   ===================================================================== */

.page-hero {
  background: var(--paper) !important;
  background-image: none !important;
  border-bottom: 1px solid var(--ink) !important;
  color: var(--ink) !important;
  min-height: 0 !important;
  padding: 72px 0 56px !important;
  box-shadow: none !important;
}
.page-hero::before,
.page-hero::after { display: none !important; content: none !important; }

.page-hero h1,
.page-hero .page-title {
  color: var(--ink) !important;
  font-family: var(--font-serif) !important;
  font-weight: 600 !important;
  font-size: clamp(34px, 5vw, 56px) !important;
  line-height: 1.06 !important;
  letter-spacing: -.012em;
  margin: 0 0 14px !important;
  text-wrap: balance;
}
.page-hero h1 em, .page-hero .page-title em { color: var(--gold) !important; font-style: italic; }
.page-hero p, .page-hero .page-sub, .page-hero .section-sub { color: var(--grey) !important; }
.page-hero .label { color: var(--gold) !important; }

/* the buttons sitting in that band were dark on dark too */
.page-hero .btn-outline,
.page-hero .btn-whatsapp {
  background: transparent !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
}
.page-hero .btn-gold { background: var(--c-acc) !important; color: var(--c-on-acc) !important; border-color: var(--c-acc) !important; }
.page-hero .btn-outline:hover, .page-hero .btn-whatsapp:hover { border-color: var(--gold) !important; }

/* the featured price card carried its own dark gradient as well */
.pricing-card.featured { background: transparent !important; background-image: none !important; }

/* breadcrumbs and scroll cue that assumed a dark ground */
.page-hero .breadcrumb, .page-hero .breadcrumb a { color: var(--grey) !important; }
.page-hero .breadcrumb a:hover { color: var(--gold) !important; }
.scroll-line { background: linear-gradient(to bottom, var(--gold), transparent) !important; }

/* =====================================================================
   Homepage headline — Newsreader at 600 needs room to breathe.
   .96 line-height was set for Bodoni and left the four lines colliding.
   ===================================================================== */
.bi-h1 {
  font-size: clamp(32px, 4.4vw, 54px) !important;
  line-height: 1.12 !important;
  letter-spacing: -.01em;
  max-width: 15ch;
}
.bi-h1 em { display: inline; }
.bi-hero-copy { gap: 28px; }
@media (max-width: 640px) {
  .bi-h1 { font-size: clamp(28px, 8vw, 36px) !important; line-height: 1.15 !important; max-width: none; }
}

/* --- headline: more air, fewer collisions --------------------------- */
.bi-h1 {
  font-size: clamp(31px, 4vw, 50px) !important;
  line-height: 1.16 !important;
  max-width: 16ch;
}
.bi-hero-grid { grid-template-columns: 1fr 1px 440px; }
.bi-hero-copy { padding-right: 64px; gap: 30px; }
.bi-hero-calc { padding-left: 44px; }
@media (max-width: 1040px) {
  .bi-hero-grid { grid-template-columns: 1fr; }
  .bi-hero-copy { padding-right: 0; }
  .bi-hero-calc { padding-left: 0; }
}

/* --- two things were too faint to read ------------------------------ */

/* the unselected half of the to/from toggle: it is still a control,
   so it has to be legible, not just present */
.ecz-quote .ecz-dir { color: var(--c-ink3) !important; }
.ecz-quote .ecz-dir.is-on { color: var(--ink) !important; }

/* the 01 / 02 / 03 markers were sitting at light brass on ivory */
.bi-marks .n, .bi-row .n, .bi-list .n { color: var(--gold) !important; }

/* =====================================================================
   The last of the hardcoded whites.
   These were set in style.css rules (not inline), so the earlier rescue
   rule could not reach them. .service-card p is deliberately left alone
   — it sits on the dark photo gradient, where white is correct.
   ===================================================================== */

.breadcrumb, .breadcrumb span, .breadcrumb a { color: var(--grey) !important; }
.breadcrumb a:hover { color: var(--gold) !important; }

.t-text { color: var(--ink-2, var(--c-ink2)) !important; }

.footer-bottom p, .footer-bottom a { color: var(--grey) !important; }
.footer-bottom a:hover { color: var(--gold) !important; }

.licence {
  color: var(--muted, var(--c-ink3)) !important;
  background: transparent !important;
  border: 1px solid var(--rule) !important;
  border-radius: 12px !important;
}

.faq-section h2 {
  font-family: var(--font-serif) !important;
  color: var(--ink) !important;
  font-weight: 600 !important;
}
.faq-section h3 { color: var(--ink) !important; }
.faq-section p  { color: var(--grey) !important; }
.faq-section .faq-item { border-color: var(--rule) !important; }

/* =====================================================================
   Two pages carry their own private stylesheets, written for the old
   dark theme. The contact page's styles live in the page content itself
   and use !important, so these selectors double the class to outrank
   them rather than fight at equal specificity.
   ===================================================================== */

/* --- /contact/ ------------------------------------------------------ */
.ec-ct-intro.ec-ct-intro { color: var(--grey) !important; border-left-color: var(--gold) !important; }
.ec-ct-card.ec-ct-card,
.ec-ct-detail-box.ec-ct-detail-box {
  background: transparent !important;
  border: 1px solid var(--rule) !important;
  border-top: 2px solid var(--gold) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
}
.ec-ct-detail-box.ec-ct-detail-box { border-top: 1px solid var(--rule) !important; }
.ec-ct-card-label.ec-ct-card-label,
.ec-ct-detail-box h3 { color: var(--gold) !important; }
.ec-ct-card-value.ec-ct-card-value { color: var(--ink) !important; }
.ec-ct-card-note.ec-ct-card-note { color: var(--grey) !important; }
.ec-ct-detail-box p, .ec-ct-detail-box li, .ec-ct-detail-box span { color: var(--ink-2, var(--c-ink2)) !important; }

.ec-btn-outline.ec-btn-outline {
  background: transparent !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
  border-radius: 12px !important;
}
.ec-btn-gold.ec-btn-gold,
.ec-btn-wa.ec-btn-wa {
  background: var(--c-acc) !important;
  color: var(--c-on-acc) !important;
  border: 1px solid var(--c-acc) !important;
  border-radius: 12px !important;
}
.ec-btn-outline.ec-btn-outline:hover { border-color: var(--gold) !important; }

/* --- /driver-application/ ------------------------------------------- */
.ecd { color: var(--ink-2, var(--c-ink2)) !important; }
.ecd h1, .ecd h2, .ecd h3, .ecd .ref .big {
  color: var(--ink) !important;
  font-family: var(--font-serif) !important;
  font-weight: 600 !important;
  letter-spacing: -.012em !important;
}
.ecd p, .ecd li { color: var(--ink-2, var(--c-ink2)) !important; }
.ecd .bx {
  background: transparent !important;
  border: 1px solid var(--rule) !important;
  border-radius: 12px !important;
}
.ecd table { border-collapse: collapse !important; }
.ecd th {
  color: var(--gold) !important;
  border-bottom: 1px solid var(--ink) !important;
  font-size: 14px !important;
  letter-spacing: .01em !important;
}
.ecd td {
  background: transparent !important;
  color: var(--ink-2, var(--c-ink2)) !important;
  border-top: 1px solid var(--rule) !important;
}
.ecd td:first-child { color: var(--ink) !important; font-weight: 700 !important; }
.ecd td:last-child {
  color: var(--gold) !important;
  font-family: var(--font-serif) !important;
  font-variant-numeric: tabular-nums;
}
.ecd .b2, .ecd a.b2 {
  background: var(--c-acc) !important;
  color: var(--c-on-acc) !important;
  border: 1px solid var(--c-acc) !important;
  border-radius: 12px !important;
}

/* --- /contact/ : the last three ------------------------------------- */
.ec-sec-label.ec-sec-label { color: var(--gold) !important; }
.ec-ct-cta.ec-ct-cta {
  background: transparent !important;
  border: 1px solid var(--rule) !important;
  border-left: 2px solid var(--gold) !important;
  border-radius: 12px !important;
}
.ec-ct-cta h2, .ec-ct-cta h3 {
  color: var(--ink) !important;
  font-family: var(--font-serif) !important;
  font-weight: 600 !important;
}
.ec-ct-cta p, .ec-ct-cta span { color: var(--grey) !important; }

/* =====================================================================
   Calculator spacing.
   The widget was built as a dark card: a 1px #2A2A2A box, padding for
   the card, and generous gaps sized for that box. On ivory the box
   became a visible rectangle and the gaps read as holes. This strips
   the card and sets an even rhythm instead.
   ===================================================================== */

.ecz-quote {
  border: none !important;
  box-shadow: none !important;
}

/* one consistent step between every stacked control */
.ecz-quote .ecz-form { display: flex !important; flex-direction: column !important; gap: 0 !important; }
.ecz-quote .ecz-dirs { margin: 0 0 22px !important; }
.ecz-quote .ecz-row  { margin: 0 !important; gap: 20px !important; }
.ecz-quote .ecz-field { margin: 0 !important; }

/* label sits close to its own field, not floating between two */
.ecz-quote .ecz-label,
.ecz-quote .ecz-field > span { margin: 0 0 4px !important; line-height: 1.2 !important; }

/* the value text was sitting hard on the rule with a gap above it */
.ecz-quote input,
.ecz-quote select {
  height: 42px !important;
  line-height: 42px !important;
  padding: 0 0 2px !important;
}
.ecz-quote select { height: 42px !important; }

.ecz-quote .ecz-go { margin: 22px 0 0 !important; }
.ecz-quote .ecz-msg:empty { display: none !important; }
.ecz-quote .ecz-msg { margin: 12px 0 0 !important; }
.ecz-quote .ecz-results:empty { display: none !important; }
.ecz-quote .ecz-summary { margin: 16px 0 0 !important; }
.ecz-quote .ecz-note { margin: 14px 0 0 !important; }

/* the widget sat flush against whatever followed it */
.ecz-quote { margin: 0 0 34px !important; }
.bi-hero-calc .ecz-quote { margin-bottom: 0 !important; }

/* =====================================================================
   Airport / Local tab bar.
   Wraps the existing widget rather than replacing it.
   ===================================================================== */
.ecz-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--rule);
  margin-bottom: 22px;
}
.ecz-tab {
  flex: 1 1 0;
  height: 46px;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  cursor: pointer;
  font-family: var(--font-sans);
  font-size: 14px;
  letter-spacing: .01em;
  text-transform: none;
  font-weight: 600;
  color: var(--c-ink3);
}
.ecz-tab.is-on { color: var(--ink); font-weight: 700; border-bottom-color: var(--c-acc); }
.ecz-tab:hover { color: var(--ink); }

/* the local panel reuses every airport class, so it inherits the styling */
.ecz-local .ecz-row { flex-direction: column !important; }

/* --- address autocomplete ------------------------------------------- */
.ecz-ac { position: relative; }
.ecz-ac__list {
  position: absolute; z-index: 60; left: 0; right: 0; top: 100%;
  margin: 0; padding: 0; list-style: none;
  max-height: 300px; overflow-y: auto;
  background: var(--paper);
  border: 1px solid var(--ink); border-top: none;
  box-shadow: 0 12px 26px rgba(20,24,27,.10);
}
.ecz-ac__item {
  display: flex; flex-direction: column; gap: 2px;
  padding: 11px 14px; cursor: pointer;
  border-bottom: 1px solid var(--rule);
  border-left: 2px solid transparent;
}
.ecz-ac__item:last-child { border-bottom: none; }
.ecz-ac__item:hover, .ecz-ac__item.is-active { background: var(--c-surf2); border-left-color: var(--gold); }
.ecz-ac__l1 { font-size: 14px; font-weight: 600; color: var(--ink); }
.ecz-ac__l2 { font-size: 14px; color: var(--grey); }
.ecz-ac__chosen { margin: 6px 0 0; font-size: 14px; color: var(--gold); line-height: 1.45; }

/* --- terminal picker ------------------------------------------------ */
.ecz-term { margin-top: 20px; }
.ecz-term-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.ecz-term-chips .ecz-chip { height: 38px; padding: 0 13px; font-size: 14px; }
.ecz-term-note { color: var(--gold); font-weight: 600; }

/* =====================================================================
   Terminal chips — base appearance and, crucially, the selected state.
   Only the sizing made it into this file first time round, so a chip
   looked identical before and after you clicked it. It was registering
   the choice; it just never said so.
   ===================================================================== */
.ecz-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 38px;
  padding: 0 14px;
  background: transparent;
  color: var(--ink-2, var(--c-ink2));
  border: 1px solid var(--rule);
  border-radius: 12px;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  transition: background .12s ease, color .12s ease, border-color .12s ease;
  -webkit-appearance: none;
  appearance: none;
}
.ecz-chip:hover { border-color: var(--gold); color: var(--ink); }
.ecz-chip.is-on {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--paper);
  font-weight: 600;
}
.ecz-chip.is-on:hover { color: var(--paper); border-color: var(--ink); opacity: .9; }
.ecz-chip:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

/* keep the row clear of the results panel and clickable in every context */
.ecz-term { position: relative; z-index: 3; margin-top: 20px; }
.ecz-term-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 6px; pointer-events: auto; }

/* the hero clipped anything taller than itself once results appeared */
#hero.bi-hero { overflow: visible !important; }

/* =====================================================================
   V2 · Calm & readable — colour tokens, day + night
   ===================================================================== */
:root {
  color-scheme: light;
  --c-paper:#F4F1EA; --c-paper-rgb:244,241,234;
  --c-surf:#FBFAF6;  --c-surf2:#ECE8DF; --c-surf3:#E7E2D7;
  --c-line:#DDD7CB;  --c-line2:#B9B2A3;
  --c-ink:#23272B;   --c-ink2:#3C4247;  --c-ink3:#555B62; --c-ph:#6B7178;
  --c-acc:#2F5D56;   --c-acc-rgb:47,93,86; --c-acc-l:#3E7369; --c-acc-d:#1F433D;
  --c-acc-soft:#E3ECE8; --c-on-acc:#FBFAF6; --c-bad:#9B2C1F;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-ecz-theme="day"]) {
    color-scheme: dark;
    --c-paper:#1A1E21; --c-paper-rgb:26,30,33;
    --c-surf:#232829;  --c-surf2:#1F2427; --c-surf3:#2A3032;
    --c-line:#3A4245;  --c-line2:#4A5256;
    --c-ink:#E4E0D6;   --c-ink2:#CFCBC1;  --c-ink3:#A9AEA8; --c-ph:#8A918C;
    --c-acc:#8CC2B4;   --c-acc-rgb:140,194,180; --c-acc-l:#A9D6CA; --c-acc-d:#6FA99A;
    --c-acc-soft:#22352F; --c-on-acc:#10201C; --c-bad:#F08A7A;
  }
}
:root[data-ecz-theme="night"] {
  color-scheme: dark;
  --c-paper:#1A1E21; --c-paper-rgb:26,30,33;
  --c-surf:#232829;  --c-surf2:#1F2427; --c-surf3:#2A3032;
  --c-line:#3A4245;  --c-line2:#4A5256;
  --c-ink:#E4E0D6;   --c-ink2:#CFCBC1;  --c-ink3:#A9AEA8; --c-ph:#8A918C;
  --c-acc:#8CC2B4;   --c-acc-rgb:140,194,180; --c-acc-l:#A9D6CA; --c-acc-d:#6FA99A;
  --c-acc-soft:#22352F; --c-on-acc:#10201C; --c-bad:#F08A7A;
}
:root[data-ecz-contrast="high"] { --c-ink2: var(--c-ink); --c-ink3: var(--c-ink2); --c-line: var(--c-line2); }

/* =====================================================================
   Readable type: 17px body, no tiny spaced-out labels
   ===================================================================== */
html { -webkit-text-size-adjust: 100%; }
body { font-size: 17px; line-height: 1.6; }
p, li { font-size: max(1em, 16px); }
.label, .faq-eyebrow, .pricing-tier, .pricing-from, .bi-eyebrow, .section-label {
  font-size: 14px !important; letter-spacing: .04em !important; text-transform: none !important;
  font-weight: 700 !important; color: var(--c-acc) !important;
}
.hero-sub, .section-sub, .bi-sub { font-size: 19px !important; line-height: 1.65 !important; color: var(--c-ink3) !important; }
.nav-links a { font-size: 15px !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--c-ink) !important; }
h1 em, h2 em, .hero-title em, .section-title em { font-style: normal !important; color: var(--c-acc) !important; }
.logo span { color: var(--c-acc) !important; }

/* Buttons: calm green, 48px+ targets */
.btn, .nav-book, .ecz-btn, .ecz-cta a, .ecz-cta button {
  min-height: 48px; border-radius: 12px !important; font-size: 16px !important;
  letter-spacing: 0 !important; text-transform: none !important; font-weight: 700 !important;
}
.btn-gold, .nav-book, .btn-primary, .btn-dark {
  background: var(--c-acc) !important; color: var(--c-on-acc) !important; border-color: var(--c-acc) !important;
}
.btn-gold:hover, .nav-book:hover, .btn-primary:hover, .btn-dark:hover { background: var(--c-acc-d) !important; border-color: var(--c-acc-d) !important; }
.btn-outline { border: 1.5px solid var(--c-line2) !important; color: var(--c-ink) !important; background: transparent !important; }

/* Inputs: 54px, soft paper */
input:not([type=checkbox]):not([type=radio]), select, textarea {
  min-height: 50px; border-radius: 12px !important; font-size: 17px !important;
  background: var(--c-surf) !important; color: var(--c-ink) !important; border: 1.5px solid var(--c-line2) !important;
}
input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible, button:focus-visible {
  outline: 3px solid var(--c-acc) !important; outline-offset: 2px;
}

/* Cards and panels get the soft surface */
.bi-hero-calc, .ecz-quote, .ecz-review, .faq-item, .pricing-card, .ec-ct-detail-box {
  border-radius: 16px !important;
}
.bi-hero-calc, .ecz-quote { background: var(--c-surf) !important; border: 1px solid var(--c-line) !important; box-shadow: 0 12px 32px rgba(35,39,43,.06) !important; }
.ecz-review { background: var(--c-surf) !important; }

/* Header + footer */
#header, #header.scrolled { background: rgba(var(--c-paper-rgb), .96) !important; border-bottom: 1px solid var(--c-line) !important; }
.mobile-nav { background: var(--c-paper) !important; }
.mobile-nav a { color: var(--c-ink) !important; font-size: 19px !important; }
.nav-toggle span { background: var(--c-ink) !important; }
.nav-phone { color: var(--c-ink) !important; }

/* Motion */
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
:root[data-ecz-motion="reduce"] *, :root[data-ecz-motion="reduce"] *::before, :root[data-ecz-motion="reduce"] *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
:root[data-ecz-motion="reduce"] .marquee-track, :root[data-ecz-motion="reduce"] .marquee-inner { transform: none !important; }

/* Text size levels */
:root[data-ecz-size="l"] body > :not(#header):not(.ecz-comfort):not(#ec-cc):not(.wa-float):not(script):not(style) { zoom: 1.1; }
:root[data-ecz-size="xl"] body > :not(#header):not(.ecz-comfort):not(#ec-cc):not(.wa-float):not(script):not(style) { zoom: 1.22; }
@media (max-width: 420px) {
  #header .logo { font-size: 22px !important; }
  #header .nav-phone { font-size: 14px !important; }
  .ecz-comfort-btn { min-width: 42px; padding: 0 8px; margin-right: 4px; }
}

/* =====================================================================
   Display & comfort panel
   ===================================================================== */
.ecz-comfort-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-width: 44px; height: 44px; padding: 0 12px; margin-left: 10px;
  border: 1.5px solid var(--c-line2); border-radius: 12px; background: transparent;
  color: var(--c-ink); font: 700 16px/1 var(--font-sans); cursor: pointer;
}
.ecz-comfort-btn svg { width: 20px; height: 20px; }
.ecz-comfort {
  position: fixed; z-index: 100000; right: 16px; top: 84px; width: min(360px, calc(100vw - 32px));
  max-height: calc(100vh - 100px); overflow: auto;
  background: var(--c-surf); color: var(--c-ink); border: 1px solid var(--c-line); border-radius: 18px;
  box-shadow: 0 18px 48px rgba(0,0,0,.18); padding: 20px; font-family: var(--font-sans);
}
.ecz-comfort[hidden] { display: none; }
.ecz-comfort h2 { font-size: 22px !important; margin: 0 0 14px; color: var(--c-ink) !important; }
.ecz-comfort fieldset { border: 0; padding: 0; margin: 0 0 16px; }
.ecz-comfort legend { font-weight: 700; font-size: 16px; margin-bottom: 8px; padding: 0; color: var(--c-ink); }
.ecz-seg { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 6px; }
.ecz-seg button {
  min-height: 48px; border-radius: 12px; border: 1.5px solid var(--c-line2); background: var(--c-paper);
  color: var(--c-ink); font: 400 15px/1.2 var(--font-sans); cursor: pointer; padding: 4px;
}
.ecz-seg button[aria-pressed="true"] { border: 2px solid var(--c-acc); background: var(--c-acc-soft); font-weight: 700; }
.ecz-sw { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 60px; padding: 10px 14px; margin-bottom: 8px;
  border: 1.5px solid var(--c-line); border-radius: 14px; background: var(--c-paper); color: var(--c-ink); cursor: pointer; text-align: left; font-family: var(--font-sans); }
.ecz-sw b { display: block; font-size: 16px; }
.ecz-sw small { display: block; font-size: 14px; color: var(--c-ink3); margin-top: 2px; }
.ecz-sw .t { margin-left: auto; flex-shrink: 0; width: 50px; height: 30px; border-radius: 999px; background: var(--c-line2); position: relative; }
.ecz-sw .t::after { content: ""; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 999px; background: var(--c-surf); transition: left .15s; }
.ecz-sw[aria-checked="true"] .t { background: var(--c-acc); }
.ecz-sw[aria-checked="true"] .t::after { left: 23px; }
.ecz-comfort .ecz-close { position: absolute; top: 10px; right: 10px; width: 44px; height: 44px; border: 0; background: transparent; color: var(--c-ink); font-size: 26px; cursor: pointer; border-radius: 10px; }
@media (max-width: 900px) { .ecz-comfort-btn { margin-left: auto; margin-right: 8px; } .ecz-comfort-btn .lbl { display: none; } }

/* --- pieces with their own hard-coded colours -------------------------- */
#ecwa-block { background: var(--c-paper) !important; }
#ecwa-block > div { background: var(--c-surf) !important; border-color: var(--c-line) !important; box-shadow: none !important; }
#ecwa-block h2 { color: var(--c-ink) !important; }
#ecwa-block p { color: var(--c-ink2) !important; }
#ecwa-block label { font-size: 15px !important; letter-spacing: 0 !important; text-transform: none !important; font-weight: 700; color: var(--c-ink2) !important; }
.ec-cc-box { background: var(--c-surf) !important; color: var(--c-ink) !important; border-color: var(--c-line2) !important; box-shadow: 0 12px 40px rgba(0,0,0,.18) !important; }
.ec-cc-h { color: var(--c-ink) !important; }
.ec-cc-t a, .ec-cc-b.ec-cc-link { color: var(--c-acc) !important; }
.ec-cc-b { background: var(--c-acc) !important; border-color: var(--c-acc) !important; color: var(--c-on-acc) !important; border-radius: 12px !important; }
.ec-cc-b.ec-cc-link { background: transparent !important; border-color: var(--c-line2) !important; }
.ec-cc-opts input { accent-color: var(--c-acc) !important; }
.cta-band { background: #23272B !important; }
.cta-band h2, .cta-band .section-title, .cta-band .label { color: #F4F1EA !important; }
.cta-band .section-title em { color: #A9D6CA !important; }
.cta-band .section-sub { color: rgba(244,241,234,.78) !important; }
.cta-band .btn-gold { background: #8CC2B4 !important; border-color: #8CC2B4 !important; color: #10201C !important; }
.cta-band .btn-outline, .cta-band .btn-whatsapp { color: #F4F1EA !important; border-color: rgba(244,241,234,.4) !important; background: transparent !important; }
.bi-service-cta { background: #2F5D56 !important; }
.bi-service-cta .btn-dark { background: #F4F1EA !important; color: #23272B !important; border-color: #F4F1EA !important; }

/* Airport fare table */
.ecz-ft { background: var(--c-surf) !important; border: 1px solid var(--c-line) !important; border-radius: 16px !important; overflow: hidden; }
.ecz-ft table { background: transparent !important; color: var(--c-ink) !important; }
.ecz-ft th, .ecz-ft td { background: transparent !important; color: var(--c-ink) !important; border-color: var(--c-line) !important; font-size: 16px !important; }
.ecz-ft thead th { color: var(--c-ink3) !important; font-size: 14px !important; }
.ecz-ft .ecz-ft-p { color: var(--c-acc-d) !important; font-weight: 700 !important; }
:root[data-ecz-theme="night"] .ecz-ft .ecz-ft-p { color: var(--c-acc) !important; }
@media (prefers-color-scheme: dark) { :root:not([data-ecz-theme="day"]) .ecz-ft .ecz-ft-p { color: var(--c-acc) !important; } }

/* =====================================================================
   V2 homepage + site-wide polish
   ===================================================================== */
.v2 { font-family: var(--font-sans); color: var(--c-ink); }
.v2 h1, .v2 h2, .v2 h3 { font-family: var(--font-serif) !important; color: var(--c-ink) !important; margin: 0; letter-spacing: -0.01em; }
.v2 p { margin: 0; }
.v2-wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
.v2-narrow { max-width: 860px; }
.v2-ic { width: 24px; height: 24px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.v2-eyebrow { font-size: 15px !important; font-weight: 700; color: var(--c-acc) !important; margin-bottom: 12px !important; letter-spacing: 0; text-transform: none; }
.v2-h1 { font-size: clamp(36px, 4.6vw, 60px) !important; line-height: 1.08 !important; font-weight: 600 !important; text-wrap: balance; }
.v2-h2 { font-size: clamp(28px, 3.2vw, 42px) !important; line-height: 1.15 !important; font-weight: 600 !important; text-wrap: balance; }
.v2 h3 { font-size: 21px !important; font-weight: 600 !important; line-height: 1.3 !important; }
.v2-lead { font-size: 20px !important; line-height: 1.6 !important; color: var(--c-ink3) !important; margin-top: 20px !important; max-width: 560px; }
.v2-sub { font-size: 18px !important; line-height: 1.6 !important; color: var(--c-ink3) !important; margin-top: 14px !important; max-width: 640px; }
.v2-small { font-size: 15px !important; color: var(--c-ink3) !important; line-height: 1.5 !important; margin-top: 14px !important; }
.v2-center { text-align: center; justify-content: center; margin-left: auto; margin-right: auto; }
.v2 a:not(.v2-btn):not(.v2-card-link):not(.v2-opt) { color: var(--c-acc); text-underline-offset: 3px; }

/* buttons */
.v2-btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.v2-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 22px;
  border-radius: 12px; font: 700 17px/1 var(--font-sans); text-decoration: none !important; cursor: pointer; box-sizing: border-box; border: 1.5px solid transparent; }
.v2-btn .v2-ic { width: 20px; height: 20px; }
.v2-btn-main { background: var(--c-acc); color: var(--c-on-acc) !important; border-color: var(--c-acc); }
.v2-btn-main:hover { background: var(--c-acc-d); border-color: var(--c-acc-d); }
.v2-btn-quiet { background: var(--c-surf); color: var(--c-ink) !important; border-color: var(--c-line2); }
.v2-btn-quiet:hover { border-color: var(--c-acc); }
.v2-full { width: 100%; }

/* hero */
.v2-hero { padding: 132px 0 56px; }
.v2-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 500px); gap: 64px; align-items: start; }
.v2-hero-copy { padding-top: 24px; }
.v2-ticks { list-style: none; padding: 0; margin: 26px 0 0; display: grid; gap: 12px; }
.v2-ticks li { display: flex; gap: 12px; align-items: center; font-size: 18px !important; color: var(--c-ink2); }
.v2-ticks .v2-ic, .v2-fare li .v2-ic { color: var(--c-acc); width: 22px; height: 22px; stroke-width: 2.4; }
.v2-quote { background: var(--c-surf); border: 1px solid var(--c-line); border-radius: 20px; padding: 28px; box-shadow: 0 16px 40px rgba(35,39,43,.07); scroll-margin-top: 100px; }
.v2-quote-h { font-size: 26px !important; margin-bottom: 18px !important; }
.v2-quote .ecz-quote { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; }

/* trust strip */
.v2-trust { border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); background: var(--c-surf); }
.v2-trust-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; padding-top: 24px; padding-bottom: 24px; }
.v2-trust-grid > div { display: flex; gap: 14px; align-items: center; }
.v2-trust-grid .v2-ic { width: 30px; height: 30px; color: var(--c-acc); }
.v2-trust-grid span { font-size: 15px; color: var(--c-ink3); line-height: 1.4; }
.v2-trust-grid b { display: block; font-size: 17px; color: var(--c-ink); }

/* sections */
.v2-sec { padding: 88px 0; }
.v2-sec-tint { background: var(--c-surf2); }
.v2-head { margin-bottom: 40px; }

/* fares */
.v2-fares { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.v2-fare { background: var(--c-surf); border: 1px solid var(--c-line); border-radius: 18px; padding: 28px; display: flex; flex-direction: column; gap: 16px; }
.v2-fare-top span { display: block; font-size: 15px; color: var(--c-ink3); margin-top: 4px; }
.v2-fare-price { font-family: var(--font-serif); font-size: 48px; font-weight: 600; line-height: 1; color: var(--c-ink); }
.v2-fare-price small { display: block; font-family: var(--font-sans); font-size: 14px; font-weight: 700; color: var(--c-ink3); margin-bottom: 6px; }
.v2-fare ul { list-style: none; padding: 16px 0 0; margin: 0; border-top: 1px solid var(--c-line); display: grid; gap: 10px; }
.v2-fare li { display: flex; gap: 10px; align-items: center; font-size: 16px !important; color: var(--c-ink2); }
.v2-fares + .v2-small { margin-top: 24px !important; }

/* cards */
.v2-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.v2-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.v2-card { background: var(--c-surf); border: 1px solid var(--c-line); border-radius: 18px; padding: 28px; display: flex; flex-direction: column; gap: 12px; color: var(--c-ink); text-decoration: none !important; }
.v2-card > .v2-ic { width: 34px; height: 34px; color: var(--c-acc); margin-bottom: 4px; }
.v2-card p { font-size: 16px !important; line-height: 1.6 !important; color: var(--c-ink3) !important; }
.v2-card .v2-tag { margin-top: auto !important; padding-top: 8px; font-size: 15px !important; font-weight: 700; color: var(--c-acc-d) !important; }
.v2-card-link { transition: border-color .15s, transform .15s; }
.v2-card-link:hover { border-color: var(--c-acc); transform: translateY(-2px); }
.v2-more { margin-top: auto; font-weight: 700; font-size: 16px; color: var(--c-acc); }

/* why */
.v2-why { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 40px; }
.v2-why-item { display: flex; gap: 16px; }
.v2-why-item .v2-ic { width: 28px; height: 28px; color: var(--c-acc); margin-top: 2px; }
.v2-why-item p { font-size: 16px !important; line-height: 1.6 !important; color: var(--c-ink3) !important; margin-top: 6px !important; }

/* reviews */
.v2-reviews .ecz-rating-line { margin: 0 0 24px !important; font-size: 18px !important; color: var(--c-ink2) !important; }
.v2-reviews .ecz-rating-line span, .v2-reviews .stars { color: #B7791F !important; }
.v2-reviews .bi-reviews { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 20px !important; }
.v2-reviews .ecz-review { background: var(--c-surf) !important; border: 1px solid var(--c-line) !important; border-left: 1px solid var(--c-line) !important; border-radius: 18px !important; padding: 24px !important; margin: 0 !important; display: flex; flex-direction: column; }
.v2-reviews .ecz-review p { font-style: normal !important; font-size: 16px !important; line-height: 1.65 !important; color: var(--c-ink2) !important; flex-grow: 1; }
.v2-reviews .ecz-review .bi-row-sub { font-size: 14px !important; color: var(--c-ink3) !important; }
.v2-reviews .ecz-reviews-note { font-size: 14px !important; color: var(--c-ink3) !important; opacity: 1 !important; margin-top: 20px !important; }

/* book */
.v2-book { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 540px); gap: 64px; align-items: start; }
.v2-book-opts { display: grid; gap: 12px; margin-top: 28px; }
.v2-opt { display: flex; gap: 16px; align-items: center; padding: 18px 20px; background: var(--c-surf); border: 1px solid var(--c-line); border-radius: 16px; color: var(--c-ink) !important; text-decoration: none !important; }
.v2-opt:hover { border-color: var(--c-acc); }
.v2-opt .v2-ic { width: 28px; height: 28px; color: var(--c-acc); }
.v2-opt span { font-size: 15px; color: var(--c-ink3); line-height: 1.4; }
.v2-opt b { display: block; font-size: 17px; color: var(--c-ink); }
.v2-form-card { background: var(--c-surf); border: 1px solid var(--c-line); border-radius: 20px; padding: 28px; }
.v2-form-card h3 { font-size: 24px !important; margin-bottom: 18px !important; }
.v2-form-card form { display: grid; gap: 16px; }
.v2-form-card label { display: grid; gap: 6px; font-size: 15px; font-weight: 700; color: var(--c-ink2); }
.v2-form-card input:not([type=checkbox]), .v2-form-card select { width: 100%; height: 52px; padding: 0 14px !important; box-sizing: border-box; font-weight: 400; }
.v2-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.v2-check { display: flex !important; grid-template-columns: none !important; gap: 12px !important; align-items: flex-start; font-weight: 400 !important; line-height: 1.5; }
.v2-check input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--c-acc); flex-shrink: 0; }
.v2-form-card .form-success, .v2-form-card .form-error { display: none; padding: 14px 16px; border-radius: 12px; margin-bottom: 14px; font-size: 16px; }
.v2-form-card .form-success { background: var(--c-acc-soft); color: var(--c-ink); }
.v2-form-card .form-error { background: rgba(155,44,31,.1); color: var(--c-bad); }

/* comfort */
.v2-comfort { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; padding: 44px; border-radius: 24px; background: var(--c-acc-soft); }
.v2-comfort .v2-btn { margin-top: 24px; }
.v2-comfort-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.v2-comfort-list li { background: var(--c-surf); border-radius: 16px; padding: 18px; font-size: 15px !important; color: var(--c-ink3); line-height: 1.45; }
.v2-comfort-list b { display: block; font-size: 17px; color: var(--c-ink); margin-bottom: 4px; }

/* areas */
.v2-areas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 40px; }
.v2-areas h3 { font-size: 19px !important; margin-bottom: 8px !important; }
.v2-areas p, .v2-villages p { font-size: 16px !important; line-height: 1.7 !important; color: var(--c-ink2) !important; }
.v2-areas p span { display: block; margin-top: 6px; font-size: 14px; font-weight: 700; color: var(--c-ink3); }
.v2-villages { margin-top: 36px; border-top: 1px solid var(--c-line); padding-top: 20px; }
.v2-villages summary, .v2-faq summary { cursor: pointer; font-weight: 700; font-size: 18px; color: var(--c-ink); list-style-position: outside; }
.v2-villages p { margin-top: 14px !important; }

/* faq */
.v2-faq details { border-bottom: 1px solid var(--c-line); padding: 20px 0; }
.v2-faq details:first-child { border-top: 1px solid var(--c-line); }
.v2-faq summary { font-family: var(--font-serif); font-size: 21px; font-weight: 600; padding-right: 8px; }
.v2-faq p { font-size: 17px !important; line-height: 1.65 !important; color: var(--c-ink3) !important; margin-top: 12px !important; }

/* final */
.v2-final { background: #23272B; padding: 64px 0; }
.v2-final-in { display: flex; justify-content: space-between; align-items: center; gap: 32px; flex-wrap: wrap; }
.v2-final h2 { font-family: var(--font-serif); font-size: 36px; color: #F4F1EA !important; margin: 0; }
.v2-final p { font-size: 18px; color: #C9C5BB; margin-top: 8px; }
.v2-final .v2-btns { margin-top: 0; }
.v2-btn-light { background: #8CC2B4; color: #10201C !important; border-color: #8CC2B4; }
.v2-btn-ghost { background: transparent; color: #F4F1EA !important; border-color: rgba(244,241,234,.45); }

/* calculator fields: one consistent boxed style everywhere */
.ecz-quote input, .ecz-quote select, .bi-hero-calc .ecz-input {
  height: 52px !important; line-height: normal !important; padding: 0 14px !important;
  border: 1.5px solid var(--c-line2) !important; border-radius: 12px !important; background: var(--c-paper) !important; margin-bottom: 16px !important;
}
.ecz-quote .ecz-label, .ecz-quote .ecz-field > span { font-size: 15px !important; color: var(--c-ink2) !important; font-weight: 700 !important; margin: 0 0 6px !important; }
.ecz-tabs { border-bottom: 0 !important; background: var(--c-surf2); padding: 4px; border-radius: 12px; gap: 4px !important; margin-bottom: 18px !important; }
.ecz-tab { height: 44px !important; border: 0 !important; border-radius: 9px; margin: 0 !important; font-size: 16px !important; color: var(--c-ink3) !important; }
.ecz-tab.is-on { background: var(--c-surf) !important; color: var(--c-ink) !important; box-shadow: 0 1px 3px rgba(0,0,0,.1); }
.ecz-quote .ecz-dirs { border: 1.5px solid var(--c-line2) !important; border-radius: 12px !important; overflow: hidden; }
.ecz-quote .ecz-dir { height: 46px !important; font-size: 15px !important; }
.ecz-quote .ecz-dir.is-on { background: var(--c-acc-soft) !important; box-shadow: none !important; }
.ecz-term-chips .ecz-chip { min-height: 40px !important; font-size: 15px !important; border-radius: 10px !important; }
.ecz-quote .ecz-go { height: 54px !important; border-radius: 12px !important; font-size: 17px !important; }

/* small text floors site-wide */
.bi-row-sub, .bi-fineprint, .bi-areas p, .footer-links a, .footer-contact-item, .footer-tagline, .footer-bottom p, .t-text, .service-card p { font-size: 15px !important; }
.footer-company { font-size: 14px !important; }
.footer-contact-item .icon, .footer-social { display: none !important; }
#footer, footer#footer { background: var(--c-surf2) !important; }
.footer-logo span { color: var(--c-acc) !important; }
.wa-float { font-size: 0 !important; }
.wa-float::before { content: ""; width: 28px; height: 28px; background: #fff; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 00-8.6 15.1L2 22l5-1.3A10 10 0 1012 2zm5.3 14.2c-.2.6-1.3 1.2-1.8 1.2-.5.1-1 .2-3.3-.7-2.8-1.1-4.5-4-4.7-4.2-.1-.2-1.1-1.5-1.1-2.9s.7-2 1-2.3c.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.2.1.3 0 .5l-.4.6-.3.4c-.1.1-.3.3-.1.6.2.3.7 1.2 1.6 1.9 1.1.9 2 1.2 2.3 1.4.3.1.4.1.6-.1l.8-1c.2-.3.4-.2.6-.1l1.9.9c.3.1.4.2.5.3.1.2.1.7-.1 1.3z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 00-8.6 15.1L2 22l5-1.3A10 10 0 1012 2zm5.3 14.2c-.2.6-1.3 1.2-1.8 1.2-.5.1-1 .2-3.3-.7-2.8-1.1-4.5-4-4.7-4.2-.1-.2-1.1-1.5-1.1-2.9s.7-2 1-2.3c.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.2.1.3 0 .5l-.4.6-.3.4c-.1.1-.3.3-.1.6.2.3.7 1.2 1.6 1.9 1.1.9 2 1.2 2.3 1.4.3.1.4.1.6-.1l.8-1c.2-.3.4-.2.6-.1l1.9.9c.3.1.4.2.5.3.1.2.1.7-.1 1.3z'/%3E%3C/svg%3E") center/contain no-repeat; display: block; }
.wa-float { display: flex !important; align-items: center; justify-content: center; }
.nav-phone { display: inline-flex !important; align-items: center; gap: 8px; font-weight: 700 !important; }
.nav-phone svg { width: 18px; height: 18px; fill: none; stroke: var(--c-acc); stroke-width: 2; }

/* home: hide the generic footer WhatsApp form (the page has its own booking section) */
.home #ecwa-block[hidden] { display: none !important; }

/* responsive */
@media (max-width: 1100px) {
  .v2-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v2-trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .v2-hero { padding: 96px 0 40px; }
  .v2-hero-grid, .v2-book, .v2-comfort { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .v2-hero-copy { padding-top: 0; }
  .v2-fares, .v2-two, .v2-why, .v2-areas, .v2-reviews .bi-reviews { grid-template-columns: minmax(0, 1fr) !important; }
  .v2-sec { padding: 64px 0; }
  .v2-comfort { padding: 28px; }
}
@media (max-width: 560px) {
  .v2-wrap { padding: 0 18px; }
  .v2-cards, .v2-comfort-list { grid-template-columns: minmax(0, 1fr); }
  .v2-trust-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .v2-quote, .v2-form-card { padding: 20px; border-radius: 18px; }
  .v2-row { grid-template-columns: minmax(0, 1fr); }
  .v2-lead { font-size: 18px !important; }
  .v2-ticks li { font-size: 17px !important; }
  .v2-final h2 { font-size: 30px; }
  .v2-btns .v2-btn { flex: 1 1 auto; }
}
@media (max-width: 900px) { .v2-hero .v2-btns { display: none; } .v2-ticks { margin-top: 20px; } }
.v2 #booking-form { display: grid !important; gap: 16px !important; }
.v2 #booking-form > * { order: 0 !important; }
.v2 section::before, .v2 section::after, .v2 .v2-sec + .v2-sec::before { display: none !important; content: none !important; }
.v2 .v2-sec { border: 0 !important; background-image: none !important; }
@media (max-width: 420px) {
  #header .nav-phone .num { display: none; }
  #header .nav-phone { width: 42px; height: 42px; justify-content: center; border: 1.5px solid var(--c-line2); border-radius: 12px; }
}
@media (min-width: 901px) {
  #header .nav-wrap { gap: 16px; }
  #header .nav-links { margin-left: auto; }
  #header .nav-phone { margin-left: 8px; }
}
:root[data-ecz-theme="night"] .ecz-tab.is-on { background: var(--c-surf3) !important; }
@media (prefers-color-scheme: dark) { :root:not([data-ecz-theme="day"]) .ecz-tab.is-on { background: var(--c-surf3) !important; } }
/* let the form hide itself after a successful send */
.v2 #booking-form[style*="none"] { display: none !important; }
.v2-form-card .form-success { font-size: 17px; line-height: 1.5; }
.v2-form-card .ec-handoff div { color: var(--c-ink3) !important; font-size: 15px !important; }

/* =====================================================================
   V2 inner pages (page.php)
   ===================================================================== */
.v2-phero { padding: 124px 0 48px; background: var(--c-surf2); border-bottom: 1px solid var(--c-line); }
.v2-crumbs { display: flex; gap: 10px; font-size: 15px; color: var(--c-ink3); margin-bottom: 18px; flex-wrap: wrap; }
.v2-crumbs a { color: var(--c-ink3) !important; text-decoration: none; }
.v2-crumbs a:hover { color: var(--c-acc) !important; text-decoration: underline; }
.v2-ph1 { max-width: 900px; font-size: clamp(34px, 4.2vw, 54px) !important; }
.v2-phero .v2-lead { max-width: 760px; }
.v2-phero .v2-lead strong { color: var(--c-ink); }
.v2-mini { list-style: none; padding: 0; margin: 24px 0 0; display: flex; flex-wrap: wrap; gap: 10px 26px; }
.v2-mini li { display: flex; align-items: center; gap: 8px; font-size: 15px !important; color: var(--c-ink2); }
.v2-mini .v2-ic { width: 18px; height: 18px; color: var(--c-acc); stroke-width: 2.4; }

.v2-pbody { padding: 56px 0 88px; }
.v2-pgrid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 56px; align-items: start; }
.v2-side { position: sticky; top: 100px; }
.v2-side-card { background: var(--c-surf); border: 1px solid var(--c-line); border-radius: 20px; padding: 24px; display: grid; gap: 12px; }
.v2-side-card h2 { font-size: 22px !important; margin: 0 0 4px !important; }
.v2-side-card ul { list-style: none; margin: 0 0 6px; padding: 0; display: grid; gap: 10px; }
.v2-side-card li { display: flex; gap: 10px; font-size: 15px !important; line-height: 1.45; color: var(--c-ink2); }
.v2-side-card li .v2-ic { width: 20px; height: 20px; color: var(--c-acc); stroke-width: 2.4; margin-top: 1px; }
.v2-side-card p { font-size: 14px !important; color: var(--c-ink3) !important; margin-top: 4px !important; line-height: 1.5; }
.v2-side-card .v2-btn { min-height: 48px; font-size: 16px; }

/* readable article column */
.v2-prose { max-width: 760px; min-width: 0; font-size: 18px; line-height: 1.75; color: var(--c-ink2); }
.v2-prose > *:first-child { margin-top: 0 !important; }
.v2-prose p, .v2-prose li { font-size: 18px !important; line-height: 1.75 !important; color: var(--c-ink2) !important; }
.v2-prose p { margin: 0 0 20px !important; }
.v2-prose strong, .v2-prose b { color: var(--c-ink) !important; }
.v2-prose h2 { font-family: var(--font-serif) !important; font-size: clamp(26px, 2.6vw, 32px) !important; line-height: 1.2 !important; font-weight: 600 !important;
  color: var(--c-ink) !important; margin: 56px 0 16px !important; letter-spacing: -0.01em; text-transform: none !important; }
.v2-prose h3 { font-family: var(--font-serif) !important; font-size: 21px !important; line-height: 1.35 !important; font-weight: 600 !important;
  color: var(--c-ink) !important; margin: 32px 0 8px !important; text-transform: none !important; letter-spacing: 0 !important; }
.v2-prose h4 { font-size: 18px !important; color: var(--c-ink) !important; margin: 24px 0 8px !important; }
.v2-prose a:not(.v2-btn):not(.btn):not(.ecz-btn) { color: var(--c-acc) !important; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.v2-prose ul, .v2-prose ol { margin: 0 0 24px !important; padding-left: 0 !important; }
.v2-prose ul { list-style: none !important; }
.v2-prose ul > li { position: relative; padding-left: 30px !important; margin: 0 0 10px !important; }
.v2-prose ul > li::before { content: ""; position: absolute; left: 4px; top: .55em; width: 14px; height: 8px; border-left: 2.5px solid var(--c-acc); border-bottom: 2.5px solid var(--c-acc); transform: rotate(-45deg); }
.v2-prose ol { padding-left: 24px !important; }
.v2-prose ol > li { margin: 0 0 10px !important; padding-left: 4px; }
.v2-prose hr { border: 0; border-top: 1px solid var(--c-line); margin: 40px 0; }
.v2-prose blockquote { margin: 28px 0; padding: 20px 24px; background: var(--c-surf); border: 1px solid var(--c-line); border-radius: 16px; font-style: normal; }
.v2-prose img { max-width: 100%; height: auto; border-radius: 16px; }
.v2-prose .has-medium-font-size { font-size: 20px !important; }

/* tables (including the airport fare tables) */
.v2-prose figure.wp-block-table { margin: 0 0 28px !important; overflow-x: auto; }
.v2-prose table { width: 100%; border-collapse: separate !important; border-spacing: 0; background: var(--c-surf) !important;
  border: 1px solid var(--c-line) !important; border-radius: 16px; overflow: hidden; margin: 0 0 28px; font-size: 16px; }
.v2-prose th, .v2-prose td { padding: 14px 16px !important; text-align: left; border: 0 !important; border-bottom: 1px solid var(--c-line) !important;
  color: var(--c-ink2) !important; background: transparent !important; font-size: 16px !important; line-height: 1.45 !important; vertical-align: top; }
.v2-prose tr:last-child > * { border-bottom: 0 !important; }
.v2-prose thead th { background: var(--c-surf2) !important; color: var(--c-ink3) !important; font-size: 14px !important; font-weight: 700 !important;
  text-transform: none !important; letter-spacing: 0 !important; }
.v2-prose tbody th { color: var(--c-ink) !important; font-weight: 700 !important; }
.v2-prose .ecz-ft { border: 0 !important; background: transparent !important; margin: 0 0 12px !important; }
.v2-prose .ecz-ft table { margin: 0 !important; }
.v2-prose .ecz-ft caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.v2-prose .ecz-ft-note, .v2-prose .ecz-ft + p { font-size: 15px !important; color: var(--c-ink3) !important; }

/* the calculator when it sits inside an article */
.v2-prose .ecz-quote { max-width: none !important; margin: 8px 0 32px !important; padding: 24px !important; border-radius: 20px !important;
  scroll-margin-top: 110px; }
.v2-prose .ecz-quote h2, .v2-prose .ecz-quote h3 { margin-top: 0 !important; }
.v2-prose .ecz-quote .ecz-cars, .v2-prose .ecz-quote .ecz-car { background: transparent !important; }
.ecz-quote .ecz-car { border: 1.5px solid var(--c-line) !important; border-radius: 14px !important; background: var(--c-paper) !important; color: var(--c-ink) !important; }
.ecz-quote .ecz-car.is-on, .ecz-quote .ecz-car[aria-pressed="true"] { border-color: var(--c-acc) !important; background: var(--c-acc-soft) !important; }
.ecz-quote .ecz-price, .ecz-quote .ecz-name { color: var(--c-ink) !important; }
.ecz-quote .ecz-summary, .ecz-quote .ecz-note, .ecz-quote .ecz-seats { color: var(--c-ink3) !important; }
#ecz-form { scroll-margin-top: 110px; }

/* contact page content cards (built with their own dark styles) */
.v2-prose .ec-ct-intro { color: var(--c-ink2) !important; border-left: 0 !important; padding-left: 0 !important; font-size: 18px !important; }
.v2-prose .ec-ct-card { background: var(--c-surf) !important; border: 1px solid var(--c-line) !important; border-top: 1px solid var(--c-line) !important; border-radius: 16px !important; }
.v2-prose .ec-ct-card-label { color: var(--c-acc) !important; font-size: 14px !important; letter-spacing: 0 !important; text-transform: none !important; }
.v2-prose .ec-ct-card-value, .v2-prose .ec-ct-card strong { color: var(--c-ink) !important; }
.v2-prose .ec-ct-card-icon { display: none !important; }

/* anything left in the content with a dark theme background */
.v2-prose [style*="background:#0"], .v2-prose [style*="background: #0"], .v2-prose [style*="background:#1"], .v2-prose [style*="background: #1"],
.v2-prose [style*="background:#2"], .v2-prose [style*="background-color:#1"] { background: var(--c-surf) !important; color: var(--c-ink2) !important; }

@media (max-width: 1000px) {
  .v2-pgrid { grid-template-columns: minmax(0, 1fr); }
  .v2-side { position: static; }
  .v2-side { display: none; }
}
@media (max-width: 560px) {
  .v2-phero { padding: 96px 0 32px; }
  .v2-pbody { padding: 36px 0 56px; }
  .v2-prose, .v2-prose p, .v2-prose li { font-size: 17px !important; }
  .v2-prose h2 { margin-top: 44px !important; }
  .v2-prose th, .v2-prose td { padding: 11px 10px !important; font-size: 15px !important; }
  .v2-prose .ecz-quote { padding: 18px !important; }
  .v2-phero .v2-btns .v2-btn { flex: 1 1 100%; }
  .v2-mini { gap: 8px 18px; }
}

.v2-dl { margin: 12px 0 0; display: grid; gap: 14px; }
.v2-dl div { display: grid; gap: 2px; }
.v2-dl dt { font-size: 14px; font-weight: 700; color: var(--c-ink3); }
.v2-dl dd { margin: 0; font-size: 17px; color: var(--c-ink); }
.v2-dl a, .v2-card p a { color: var(--c-acc) !important; }

/* ---- legacy content blocks built for the old dark design ---- */
.ecz-cta-panel { background: var(--c-surf) !important; border: 1px solid var(--c-line) !important; border-radius: 18px !important; color: var(--c-ink) !important; }
.ecz-cta-title { color: var(--c-ink) !important; font-family: var(--font-serif) !important; }
.ecz-cta-sub { color: var(--c-ink3) !important; }
.ecz-btn { border-radius: 12px !important; min-height: 48px; font-weight: 700 !important; }
.ecz-btn-wa, .ecz-cta-row .ecz-btn:first-child { background: var(--c-acc) !important; color: var(--c-on-acc) !important; border-color: var(--c-acc) !important; }
.ecz-btn-tel, .ecz-cta-row .ecz-btn + .ecz-btn { background: var(--c-surf) !important; color: var(--c-ink) !important; border: 1.5px solid var(--c-line2) !important; }
.v2-prose .ec-about-intro { color: var(--c-ink2) !important; border-left: 0 !important; padding-left: 0 !important; font-size: 18px !important; }
.v2-prose .ec-about-card, .v2-prose .ec-review-card, .v2-prose .ec-sec-block { background: var(--c-surf) !important; border: 1px solid var(--c-line) !important; border-top: 1px solid var(--c-line) !important; border-radius: 16px !important; }
.v2-prose .ec-about-card h3 { color: var(--c-acc) !important; font-family: var(--font-sans) !important; font-size: 15px !important; letter-spacing: 0 !important; text-transform: none !important; margin: 0 0 8px !important; }
.v2-prose .ec-about-card p, .v2-prose .ec-about-card li, .v2-prose .ec-review-text, .v2-prose .ec-review-author { color: var(--c-ink2) !important; font-size: 16px !important; }
.v2-prose .ec-about-card ul li { padding-left: 0 !important; border-bottom-color: var(--c-line) !important; }
.v2-prose .ec-about-card ul li::before { display: none !important; }
.v2-prose .ec-review-stars { color: #B7791F !important; }
.v2-prose .ec-sec-label { color: var(--c-acc) !important; font-size: 15px !important; letter-spacing: 0 !important; text-transform: none !important; font-weight: 700; }
.v2-prose .ec-sec-title { font-family: var(--font-serif) !important; color: var(--c-ink) !important; }
.v2-prose .ec-price-row { border-bottom: 1px solid var(--c-line) !important; color: var(--c-ink2) !important; }
.v2-prose .ec-price-row .price, .v2-prose [style*="color:#c9a84c"], .v2-prose [style*="color: #c9a84c"], .v2-prose [style*="color:#C9A84C"] { color: var(--c-acc-d) !important; font-weight: 700; }
.v2-prose [style*="rgba(255,255,255"] { color: var(--c-ink3) !important; }
/* driver application page */
.page-template-template-driver .kick, .page-template-template-driver .eye, .page-template-template-driver .n,
.page-template-template-driver [style*="#C8A44B"], .page-template-template-driver [style*="#c8a44b"] { color: var(--c-acc) !important; }
.page-template-template-driver .b1 { background: var(--c-acc) !important; color: var(--c-on-acc) !important; border-color: var(--c-acc) !important; border-radius: 12px !important; }
.v2-svc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.v2-svc h2 { font-size: 24px !important; margin: 0 !important; }
.v2-svc ul { list-style: none; margin: 4px 0 8px; padding: 0; display: grid; gap: 8px; }
.v2-svc li { display: flex; gap: 10px; font-size: 16px !important; color: var(--c-ink2); line-height: 1.45; }
.v2-svc li .v2-ic { width: 20px; height: 20px; color: var(--c-acc); stroke-width: 2.4; margin: 1px 0 0; }
.v2-svc .v2-more { text-decoration: none; }
@media (max-width: 1000px) { .v2-svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .v2-svc-grid { grid-template-columns: minmax(0, 1fr); } }
