/* ==========================================================================
   MyUpcomingTrip — v6 form chrome.

   The search dock, passenger picker, date picker and enquiry form keep their
   established markup, field names, ids and submit behaviour. This file is the
   presentation layer for them inside the v6 layout, which loads no Bootstrap
   and none of the legacy theme CSS.

   Palette (from the v6 design system):
     brand  #F0531C   brand-deep #D2410E
     ink    #0F1D2C   ink-soft   #3D5368   ink-faint #7B95A8
     line   rgba(15,29,44,.12)
   ========================================================================== */

:root {
  --v6-brand: #F0531C;
  --v6-brand-deep: #D2410E;
  --v6-ink: #0F1D2C;
  --v6-ink-soft: #3D5368;
  --v6-ink-faint: #7B95A8;
  --v6-line: #D9E3EC;
  --v6-field: #FFFFFF;
  --v6-panel: #FFFFFF;
  --v6-radius: 12px;

  /* Shared enquiry chrome tokens (muct-enquiry.css) mapped to the v6 palette. */
  --muctq-navy: #0F1D2C;
  --muctq-accent: #F0531C;
  --muctq-line: #D9E3EC;
  --muctq-soft: #3D5368;
  --muctq-err: #C0261B;
  --muctq-err-bg: #FDF1EF;
  --muctq-radius: 12px;
  --muctq-gap: 0.75rem;
}

[data-theme="midnight"] {
  --v6-line: rgba(255, 255, 255, 0.14);
  --v6-field: #0B1522;
  --v6-panel: #0B1522;
  --v6-ink: #F8FAFC;
  --v6-ink-soft: #94A3B8;
  --muctq-navy: #F8FAFC;
  --muctq-line: rgba(255, 255, 255, 0.14);
  --muctq-soft: #94A3B8;
}

/* ==========================================================================
   1. Search dock — hero console
   ========================================================================== */

.v6-dock .dock-wrap { margin: 0; }
.v6-dock .dock-wrap > .container { width: 100%; max-width: none; padding: 0; margin: 0; }

.v6-dock .dock {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
  position: relative;
  z-index: 1;
  color: #fff;
  font-family: var(--body, 'Hanken Grotesk', system-ui, sans-serif);
}

/* -- top row: trip segments + passengers ---------------------------------- */
.v6-dock .dock-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 0.85rem;
}

.v6-dock .seg {
  display: inline-flex;
  gap: 0.25rem;
  padding: 4px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 12px;
}
.v6-dock .seg button {
  min-height: 34px;
  padding: 0.35rem 0.9rem;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #CBD5E1;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, box-shadow 0.2s;
}
.v6-dock .seg button:hover { color: #fff; }
.v6-dock .seg button.on {
  background: var(--v6-brand);
  color: #fff;
  box-shadow: 0 6px 16px -8px rgba(240, 83, 28, 0.9);
}

.v6-dock .dock-pax { position: relative; margin-left: auto; z-index: 90; }
.v6-dock .pax-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 36px;
  padding: 0.4rem 0.9rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  transition: border-color 0.25s, background 0.25s;
}
.v6-dock .pax-btn:hover { border-color: var(--v6-brand); background: rgba(255, 255, 255, 0.12); }
.v6-dock .pax-btn svg { width: 15px; height: 15px; color: #94A3B8; }

.v6-dock .pax-pop {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: 320px;
  max-width: calc(100vw - 2rem);
  padding: 1.1rem;
  background: #0F1D2C;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 18px;
  box-shadow: 0 26px 60px -20px rgba(0, 0, 0, 0.85);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.25s, transform 0.25s, visibility 0.25s;
  z-index: 120;
  pointer-events: none;
  color: #E2E8F0;
}
.v6-dock .pax-pop.open { opacity: 1; visibility: visible; transform: none; pointer-events: auto; }
.v6-dock .pax-row { display: flex; align-items: center; justify-content: space-between; padding: 0.6rem 0; }
.v6-dock .pax-row + .pax-row { border-top: 1px solid rgba(255, 255, 255, 0.08); }
.v6-dock .pax-row .lbl b { display: block; font-size: 0.9rem; font-weight: 700; color: #fff; }
.v6-dock .pax-row .lbl small { font-size: 0.74rem; color: #94A3B8; }
.v6-dock .stepper { display: flex; align-items: center; gap: 0.7rem; }
.v6-dock .stepper button {
  width: 32px; height: 32px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.06);
  color: var(--v6-brand);
  display: grid; place-items: center;
  font-size: 1.05rem; line-height: 1; cursor: pointer;
  transition: background 0.2s, border-color 0.2s;
}
.v6-dock .stepper button:hover { border-color: var(--v6-brand); background: rgba(240, 83, 28, 0.18); }
.v6-dock .stepper span {
  min-width: 18px; text-align: center;
  font-family: var(--mono, 'Space Mono', monospace);
  font-weight: 700; color: #fff;
}
.v6-dock .pax-cabins {
  margin-top: 0.9rem; padding-top: 0.9rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: grid; grid-template-columns: 1fr 1fr; gap: 0.45rem;
}
.v6-dock .pax-cabins label {
  padding: 0.55rem 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 10px;
  font-size: 0.8rem; text-align: center; cursor: pointer;
  color: #CBD5E1; transition: 0.22s;
}
.v6-dock .pax-cabins input { display: none; }
.v6-dock .pax-cabins label:has(input:checked) {
  border-color: var(--v6-brand);
  background: rgba(240, 83, 28, 0.18);
  color: #fff; font-weight: 700;
}

/* -- field grid ----------------------------------------------------------- */
.v6-dock .dock-fields {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) auto minmax(0, 1.25fr) minmax(220px, 1.7fr) auto;
  gap: 0.55rem;
  align-items: stretch;
}
.v6-dock .dock-dates { display: grid; grid-template-columns: 1fr 1fr; gap: 0.55rem; min-width: 0; }
.v6-dock .dock-dates .field { min-width: 0; }

.v6-dock .field {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  padding: 0.6rem 0.9rem;
  transition: background 0.25s, border-color 0.25s, box-shadow 0.25s;
}
.v6-dock .field:hover { background: rgba(255, 255, 255, 0.1); }
.v6-dock .field:focus-within { border-color: var(--v6-brand); box-shadow: 0 0 0 3px rgba(240, 83, 28, 0.22); }
.v6-dock .field label {
  display: block;
  font-family: var(--mono, 'Space Mono', monospace);
  font-size: 0.6rem; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: #94A3B8; margin-bottom: 0.1rem; line-height: 1.2;
}
.v6-dock .field input {
  width: 100%; background: none; border: 0; outline: none;
  color: #fff; font: inherit; font-size: 0.95rem; font-weight: 700;
  line-height: 1.3; min-height: 1.5rem; padding: 0;
}
.v6-dock .field input::placeholder { color: #64748B; font-weight: 500; }
.v6-dock .field .ico {
  position: absolute; right: 0.75rem; top: 50%; transform: translateY(-50%);
  width: 15px; height: 15px; color: #64748B; pointer-events: none;
}
.v6-dock .field input[type="date"] { color-scheme: dark; }
.v6-dock .field input[type="date"]::-webkit-calendar-picker-indicator {
  filter: invert(1) sepia(1) saturate(6) hue-rotate(340deg); cursor: pointer;
}

.v6-dock .swap {
  align-self: center;
  width: 38px; height: 38px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  display: grid; place-items: center; cursor: pointer;
  transition: background 0.22s, transform 0.22s, border-color 0.22s;
}
.v6-dock .swap:hover { background: var(--v6-brand); border-color: var(--v6-brand); transform: rotate(180deg); }
.v6-dock .swap svg { width: 16px; height: 16px; }

.v6-dock .suggest {
  position: absolute;
  top: calc(100% + 8px); left: 0; right: 0;
  background: #0F1D2C;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 24px 56px -18px rgba(0, 0, 0, 0.85);
  z-index: 60;
  display: none;
}
.v6-dock .suggest.open { display: block; }
.v6-dock .suggest button {
  display: flex; align-items: center; gap: 0.7rem;
  width: 100%; padding: 0.65rem 0.95rem;
  border: 0; background: transparent; text-align: left; cursor: pointer;
  transition: background 0.2s;
}
.v6-dock .suggest button:hover { background: rgba(240, 83, 28, 0.2); }
.v6-dock .suggest .ap-code {
  font-family: var(--mono, 'Space Mono', monospace);
  font-weight: 700; font-size: 0.8rem; color: var(--v6-brand); width: 42px;
}
.v6-dock .suggest .ap-name { font-size: 0.86rem; color: #E2E8F0; }

.v6-dock .dock-search,
.v6-dock .btn-gold {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.55rem;
  align-self: stretch;
  min-height: 48px;
  padding: 0 1.4rem;
  border: 0; border-radius: 14px;
  background: var(--v6-brand);
  color: #fff;
  font: inherit; font-size: 0.92rem; font-weight: 700;
  cursor: pointer;
  box-shadow: 0 14px 30px -14px rgba(240, 83, 28, 0.9);
  transition: background 0.22s, box-shadow 0.22s, transform 0.22s;
  white-space: nowrap;
}
.v6-dock .dock-search:hover { background: var(--v6-brand-deep); box-shadow: 0 18px 36px -14px rgba(240, 83, 28, 1); }
.v6-dock .dock-search .plane { width: 16px; height: 16px; transition: transform 0.4s ease; }
.v6-dock .dock-search:hover .plane { transform: translateX(5px) translateY(-3px); }

/* -- multi-city legs ------------------------------------------------------ */
.v6-dock .dock-multicity { display: flex; flex-direction: column; gap: 0.65rem; }
.v6-dock .dock-multicity[hidden], .v6-dock #dockSimpleFields[hidden] { display: none !important; }
.v6-dock .mc-legs { display: flex; flex-direction: column; gap: 0.55rem; }
.v6-dock .mc-leg__label {
  font-family: var(--mono, 'Space Mono', monospace);
  font-size: 0.6rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: #94A3B8; margin-bottom: 0.3rem;
}
.v6-dock .mc-leg__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) minmax(150px, 0.8fr) auto;
  gap: 0.55rem; align-items: stretch;
}
.v6-dock .mc-remove {
  align-self: center; width: 32px; height: 32px;
  border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.06); color: #F87171;
  font-size: 1.15rem; line-height: 1; cursor: pointer;
}
.v6-dock .mc-remove[hidden] { display: none !important; }
.v6-dock .mc-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; flex-wrap: wrap; }
.v6-dock .mc-add {
  border: 1px dashed rgba(255, 255, 255, 0.28);
  border-radius: 12px; background: transparent; color: #E2E8F0;
  padding: 0.55rem 1rem; font: inherit; font-size: 0.85rem; font-weight: 600; cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
}
.v6-dock .mc-add:hover { border-color: var(--v6-brand); color: #fff; }

/* -- extras + reassurance ------------------------------------------------- */
.v6-dock .dock-extras {
  display: flex; gap: 1.1rem; flex-wrap: wrap;
  margin-top: 0.9rem; padding-top: 0.9rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.v6-dock .dock-extras label {
  display: inline-flex; align-items: center; gap: 0.45rem;
  font-size: 0.82rem; color: #CBD5E1; cursor: pointer;
}
.v6-dock .dock-extras input { accent-color: var(--v6-brand); width: 15px; height: 15px; }

.v6-dock .muct-dock-trust {
  display: flex; flex-wrap: wrap; gap: 0.5rem 1.15rem;
  margin-top: 0.85rem; padding-top: 0.85rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  font-family: var(--mono, 'Space Mono', monospace);
  font-size: 0.68rem; letter-spacing: 0.04em; text-transform: uppercase; color: #94A3B8;
}
.v6-dock .muct-dock-trust span { display: inline-flex; align-items: center; gap: 0.4rem; }
.v6-dock .muct-dock-trust svg { width: 14px; height: 14px; color: var(--v6-brand); }

@media (max-width: 1023px) {
  .v6-dock .dock-fields { grid-template-columns: 1fr; }
  .v6-dock .swap { justify-self: center; transform: rotate(90deg); }
  .v6-dock .swap:hover { transform: rotate(270deg); }
  .v6-dock .mc-leg__row { grid-template-columns: 1fr; }
  .v6-dock .pax-pop { right: auto; left: 0; }
}
@media (max-width: 640px) {
  .v6-dock .field input { font-size: 16px; }
  .v6-dock .dock-top { gap: 0.5rem; }
  .v6-dock .dock-pax { margin-left: 0; width: 100%; }
  .v6-dock .pax-btn { width: 100%; justify-content: space-between; }
}

/* ==========================================================================
   2. Passenger picker (shared component, v6 palette)
   ========================================================================== */

html.tbf-pax-open, html.tbf-pax-open body, body.tbf-pax-open { overflow: hidden !important; }

.tbf-pax { position: relative; width: 100%; min-width: 0; }
.tbf-pax__trigger {
  width: 100%; display: flex; align-items: center; gap: 0.45rem;
  padding: 0.55rem 0.7rem;
  border: 1.5px solid var(--v6-line); border-radius: 10px;
  background: var(--v6-field); color: var(--v6-ink);
  font: inherit; font-size: 0.88rem; font-weight: 600;
  cursor: pointer; text-align: left; line-height: 1.25; box-sizing: border-box;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.tbf-pax__trigger:focus-visible { outline: none; border-color: var(--v6-brand); box-shadow: 0 0 0 3px rgba(240, 83, 28, 0.16); }
.tbf-pax__trigger-ico { display: grid; place-items: center; flex-shrink: 0; color: var(--v6-brand); }
.tbf-pax__trigger-ico svg { width: 16px; height: 16px; }
.tbf-pax__trigger-label { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tbf-pax__trigger-chev { color: var(--v6-ink-faint); font-size: 0.75rem; flex-shrink: 0; }

.tbf-pax__backdrop {
  position: fixed; inset: 0; z-index: 2147483000;
  background: rgba(15, 29, 44, 0.5);
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
}
.tbf-pax__panel[hidden], .tbf-pax__backdrop[hidden] { display: none !important; }
.tbf-pax__panel {
  position: fixed; z-index: 2147483001;
  display: flex; flex-direction: column;
  background: var(--v6-panel); color: var(--v6-ink);
  border: 1.5px solid var(--v6-line); border-radius: 16px;
  box-shadow: 0 22px 55px -18px rgba(15, 29, 44, 0.45);
  max-height: min(70vh, 380px); overflow: hidden; box-sizing: border-box;
}
.tbf-pax__panel--sheet {
  max-height: min(70vh, 420px) !important;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important;
  left: 12px !important; right: 12px !important;
  width: auto !important; max-width: 420px !important; margin: 0 auto !important;
}
.tbf-pax__sheet-head {
  display: none; align-items: center; justify-content: space-between;
  gap: 0.5rem; padding: 0.6rem 0.85rem 0.4rem; flex-shrink: 0;
  border-bottom: 1px solid var(--v6-line);
}
.tbf-pax__panel--sheet .tbf-pax__sheet-head { display: flex; }
.tbf-pax__sheet-title { font-size: 0.86rem; font-weight: 700; }
.tbf-pax__sheet-close {
  width: 30px; height: 30px; border: 0; border-radius: 50%;
  background: rgba(15, 29, 44, 0.06); color: var(--v6-ink);
  font-size: 1.15rem; line-height: 1; cursor: pointer; display: grid; place-items: center;
}
.tbf-pax__scroll { padding: 0.3rem 0.8rem 0.15rem; overflow-y: auto; flex: 0 1 auto; min-height: 0; }
.tbf-pax__row { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0.35rem 0; }
.tbf-pax__row + .tbf-pax__row { border-top: 1px solid var(--v6-line); }
.tbf-pax__lbl { min-width: 0; padding-right: 0.35rem; }
.tbf-pax__lbl b { display: block; font-size: 0.84rem; font-weight: 700; line-height: 1.2; }
.tbf-pax__lbl small { display: block; font-size: 0.68rem; color: var(--v6-ink-soft); margin-top: 0.06rem; font-weight: 500; }
.tbf-pax__stepper { display: flex; align-items: center; gap: 0.4rem; flex-shrink: 0; }
.tbf-pax__stepper span { min-width: 1.05rem; text-align: center; font-weight: 700; font-size: 0.9rem; font-variant-numeric: tabular-nums; }
.tbf-pax__btn {
  width: 28px; height: 28px; border-radius: 50%;
  border: 1.5px solid var(--v6-brand); background: transparent; color: var(--v6-brand);
  display: grid; place-items: center; font-size: 0.95rem; line-height: 1; cursor: pointer; padding: 0;
  transition: background 0.2s, color 0.2s;
}
.tbf-pax__btn:hover { background: var(--v6-brand); color: #fff; }
.tbf-pax__cabin { padding: 0.5rem 0; }
.tbf-pax__cabin label { display: block; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--v6-ink-soft); margin-bottom: 0.3rem; }
.tbf-pax__cabin select {
  width: 100%; min-height: 40px; border: 1.5px solid var(--v6-line); border-radius: 10px;
  padding: 0.35rem 0.6rem; font: inherit; background: var(--v6-field); color: var(--v6-ink);
}
.tbf-pax__ages { display: grid; grid-template-columns: 1fr 1fr; gap: 0.35rem; padding: 0.15rem 0 0.5rem 0.15rem; }
.tbf-pax__ages[hidden] { display: none !important; }
.tbf-pax__ages-lbl { grid-column: 1 / -1; margin: 0; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--v6-ink-soft); }
.tbf-pax__ages select { min-height: 40px; width: 100%; border: 1.5px solid var(--v6-line); border-radius: 8px; padding: 0.35rem 0.5rem; font: inherit; background: var(--v6-field); color: var(--v6-ink); }
.tbf-pax__footer { display: flex; justify-content: flex-end; flex-shrink: 0; padding: 0.45rem 0.8rem 0.55rem; border-top: 1px solid var(--v6-line); background: var(--v6-panel); }
.tbf-pax__done {
  border: none; border-radius: 10px; padding: 0.5rem 1rem;
  background: var(--v6-brand); color: #fff; font-weight: 800; font-size: 0.84rem; cursor: pointer; min-width: 5.25rem;
}
.tbf-pax__done:hover { background: var(--v6-brand-deep); }
.tbf-pax__panel--sheet .tbf-pax__done { width: 100%; padding: 0.65rem 1rem; font-size: 0.9rem; }

/* The dock's own passenger trigger inherits the dark console styling. */
.v6-dock .tbf-pax__trigger { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.16); color: #fff; }

/* ==========================================================================
   3. Date picker (shared component, v6 palette)
   ========================================================================== */

.muct-cal { position: relative; }
.muct-cal__btn {
  display: none; width: 100%; min-height: 42px; align-items: center; gap: 0.45rem;
  padding: 0.45rem 0.65rem;
  border: 1.5px solid var(--v6-line); border-radius: 10px;
  background: var(--v6-field); color: var(--v6-ink);
  font: inherit; font-size: 0.9rem; text-align: left; cursor: pointer;
}
.muct-cal.is-ready .muct-cal__btn { display: flex; }
.muct-cal.is-ready .muct-cal__native {
  position: absolute; left: 0; top: 0; width: 1px !important; max-width: 1px; height: 1px;
  padding: 0 !important; margin: 0; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0 !important;
}
.muct-cal__btn svg { width: 16px; height: 16px; color: var(--v6-ink-soft); flex-shrink: 0; }

/* Inside the dark console the date buttons read as fields, not buttons. */
.v6-dock .muct-cal__btn {
  min-height: 38px; border: 0; padding: 0.2rem 0; box-shadow: none;
  background: transparent; color: #fff; font-size: 0.95rem; font-weight: 700;
}
.v6-dock .dock-dates.muct-cal { position: relative; }

.muct-cal-backdrop { position: fixed; inset: 0; z-index: 2147483005; background: rgba(15, 29, 44, 0.5); }
.muct-cal-backdrop[hidden] { display: none !important; }
.muct-cal__pop {
  position: fixed; z-index: 2147483006; width: min(340px, calc(100vw - 24px));
  padding: 0.85rem 0.7rem;
  background: var(--v6-panel); border: 1px solid var(--v6-line);
  border-radius: 16px; box-shadow: 0 22px 55px -16px rgba(15, 29, 44, 0.5);
  overscroll-behavior: contain; touch-action: manipulation; color: var(--v6-ink);
}
.muct-cal__pop[hidden] { display: none !important; }
.muct-cal__pop--sheet {
  left: 0 !important; right: 0 !important; bottom: 0 !important; top: auto !important;
  width: 100% !important; max-width: none !important; margin: 0 !important;
  border: none !important; border-radius: 20px 20px 0 0 !important;
  padding: 0 !important; overflow: hidden !important; max-height: 88vh !important;
  display: flex !important; flex-direction: column !important;
  box-shadow: 0 -10px 44px rgba(8, 16, 26, 0.32) !important;
}
.muct-cal__pop--sheet::before {
  content: ""; flex: 0 0 auto; width: 40px; height: 4px; border-radius: 99px;
  background: var(--v6-line); margin: 9px auto 3px;
}
.muct-cal__pop--sheet .muct-cal__toolbar { flex: 0 0 auto; margin: 0; padding: 0.5rem 0.9rem 0.55rem; border-bottom: 1px solid var(--v6-line); }
.muct-cal__pop--sheet .muct-cal__hint { font-size: 0.9rem; }
.muct-cal__pop--sheet .muct-cal__nav { width: 40px; height: 40px; font-size: 1.3rem; }
.muct-cal__pop--sheet .muct-cal__months { flex: 1 1 auto; overflow-y: auto; margin: 0; padding: 0.7rem 0.9rem 1rem; gap: 1rem; }
.muct-cal__pop--sheet .muct-cal__day { min-height: 46px; font-size: 1.02rem; border-radius: 10px; }
.muct-cal__pop--sheet .muct-cal__done {
  flex: 0 0 auto; margin: 0; border-radius: 0; min-height: 52px; font-size: 1rem;
  background: var(--v6-brand);
  padding: 0.9rem 1rem calc(0.9rem + env(safe-area-inset-bottom, 0px));
}

.muct-cal__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 0.4rem; margin-bottom: 0.45rem; }
.muct-cal__hint { margin: 0; font-size: 0.75rem; font-weight: 650; color: var(--v6-ink-soft); text-align: center; flex: 1; }
.muct-cal__nav { width: 32px; height: 32px; border: 1px solid var(--v6-line); border-radius: 8px; background: var(--v6-field); color: var(--v6-ink); font-size: 1.1rem; cursor: pointer; }
.muct-cal__months { display: block; }
.muct-cal__month-title { margin: 0 0 0.35rem; font-size: 0.88rem; font-weight: 750; text-align: center; }
.muct-cal__dow { display: grid; grid-template-columns: repeat(7, 1fr); margin-bottom: 0.2rem; font-size: 0.68rem; font-weight: 700; color: var(--v6-ink-soft); text-align: center; }
.muct-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.muct-cal__day { min-height: 34px; border: none; border-radius: 8px; background: transparent; font: inherit; font-size: 0.82rem; cursor: pointer; color: var(--v6-ink); }
.muct-cal__day:hover:not(:disabled) { background: rgba(240, 83, 28, 0.12); }
.muct-cal__day.is-disabled { color: var(--v6-ink-faint); cursor: not-allowed; }
.muct-cal__day.is-today { font-weight: 800; }
.muct-cal__day.is-in { background: rgba(240, 83, 28, 0.16); border-radius: 0; }
.muct-cal__day.is-start, .muct-cal__day.is-end { background: var(--v6-brand); color: #fff; font-weight: 700; }
.muct-cal__done {
  display: block; width: 100%; margin-top: 0.55rem; min-height: 38px;
  border: none; border-radius: 10px; background: var(--v6-ink); color: #fff; font-weight: 700; cursor: pointer;
}
[data-theme="midnight"] .muct-cal__done { background: var(--v6-brand); }

/* ==========================================================================
   4. Enquiry / quote form (modal, money pages, exit popup)
   ========================================================================== */

.muct-quote { width: 100%; }
.muct-quote__form { display: flex; flex-direction: column; gap: 0.85rem; }
.muct-quote__title {
  margin: 0 0 0.15rem;
  font-family: var(--display, 'Bricolage Grotesque', sans-serif);
  font-size: 1.15rem; font-weight: 800; letter-spacing: -0.01em; color: var(--v6-ink);
}
.muct-quote__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0.75rem; }
.muct-quote__row--contact { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.muct-quote__field { display: flex; flex-direction: column; min-width: 0; }
.muct-quote__field--full { grid-column: 1 / -1; }
.muct-quote__field label {
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--v6-ink-soft); margin-bottom: 0.3rem;
}
.muct-quote__field label span { color: var(--v6-brand); }

.muct-quote input[type="text"],
.muct-quote input[type="email"],
.muct-quote input[type="tel"],
.muct-quote input[type="date"],
.muct-quote input[type="number"],
.muct-quote select,
.muct-quote textarea {
  width: 100%; min-height: 46px;
  padding: 0.65rem 0.8rem;
  border: 1.5px solid var(--v6-line); border-radius: var(--v6-radius);
  background: var(--v6-field); color: var(--v6-ink);
  font: inherit; font-size: 0.94rem; line-height: 1.35;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.muct-quote textarea { min-height: 74px; resize: vertical; }
.muct-quote input:focus, .muct-quote select:focus, .muct-quote textarea:focus {
  outline: none; border-color: var(--v6-brand); box-shadow: 0 0 0 3px rgba(240, 83, 28, 0.16);
}
.muct-quote input::placeholder, .muct-quote textarea::placeholder { color: var(--v6-ink-faint); }
.muct-quote select {
  -webkit-appearance: none; appearance: none;
  padding-right: 2.3rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233D5368' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 0.8rem center; background-size: 16px;
}

.muct-quote__actions, .money-enq__actions { display: flex; flex-direction: column; gap: 0.75rem; }
.muct-quote__submit, .money-enq-submit, .enq-submit {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem;
  width: 100%; min-height: 52px;
  border: 0; border-radius: 14px;
  background: var(--v6-brand); color: #fff;
  font: inherit; font-size: 0.98rem; font-weight: 800; letter-spacing: -0.01em;
  cursor: pointer;
  box-shadow: 0 16px 34px -16px rgba(240, 83, 28, 0.95);
  transition: background 0.22s, box-shadow 0.22s, transform 0.22s;
}
.muct-quote__submit:hover, .money-enq-submit:hover, .enq-submit:hover {
  background: var(--v6-brand-deep); transform: translateY(-1px);
}

/* Inline validation, matching the shared enquiry chrome. */
.muct-enq__err { display: block; margin: 0.35rem 0 0; font-size: 0.79rem; line-height: 1.4; font-weight: 600; color: var(--muctq-err); }
.muct-enq__err[hidden] { display: none !important; }
.muct-enq__err::before {
  content: "!"; display: inline-grid; place-items: center;
  width: 14px; height: 14px; margin-right: 0.4rem; border-radius: 50%;
  background: var(--muctq-err); color: #fff; font-size: 10px; font-weight: 800; vertical-align: -2px;
}
.muct-quote input.is-invalid, .muct-quote select.is-invalid, .muct-quote textarea.is-invalid,
.muct-quote .tbf-pax__trigger.is-invalid, .muct-quote .muct-cal__btn.is-invalid {
  border-color: var(--muctq-err) !important;
  background-color: var(--muctq-err-bg);
}

/* Submit lock feedback (shared with the site-wide enquiry runtime). */
form.is-submitting button[type="submit"],
form.is-submitting input[type="submit"],
.muct-quote__submit:disabled,
.money-enq-submit:disabled,
.enq-submit:disabled {
  opacity: 0.65 !important; cursor: wait !important; pointer-events: none !important; filter: grayscale(0.15);
}

@media (max-width: 640px) {
  .muct-quote input, .muct-quote select, .muct-quote textarea { font-size: 16px; }
  .muct-quote__row { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Holiday deal enquiry (layouts/holidayenquiry.blade.php)
   Fields, names and behaviour are untouched — presentation only.
   ========================================================================== */
.v6-holiday-enq .enquiry-section {
  background: var(--v6-panel, #fff);
  border: 1px solid rgba(15, 29, 44, 0.1);
  border-radius: 24px;
  padding: 0;
  overflow: hidden;
  box-shadow: 0 18px 40px -28px rgba(15, 29, 44, 0.45);
}
[data-theme="midnight"] .v6-holiday-enq .enquiry-section {
  background: #0B1522;
  border-color: rgba(255, 255, 255, 0.1);
}

.v6-holiday-enq .offers {
  background: var(--v6-navy, #0F1D2C);
  color: #fff;
  padding: 1.1rem 1.4rem;
  text-align: left;
}
.v6-holiday-enq .off-discount {
  font-family: var(--display, "Bricolage Grotesque", system-ui, sans-serif);
  font-weight: 800;
  font-size: 1.15rem;
  letter-spacing: -0.01em;
}
.v6-holiday-enq .off-discount span { color: var(--muctq-accent, #F0531C); }
.v6-holiday-enq .offers p {
  margin: 0.2rem 0 0;
  font-family: var(--mono, ui-monospace, monospace);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
}

.v6-holiday-enq .booking-tabs { padding: 1.25rem 1.25rem 1.4rem; }
.v6-holiday-enq .row { margin: 0; }
.v6-holiday-enq [class*="col-"] { padding-left: 0; padding-right: 0; }

.v6-holiday-enq .desti-form-control,
.v6-holiday-enq .user-control.form-control {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  width: 100%;
  min-height: 58px;
  height: auto;
  padding: 0.5rem 0.85rem;
  background: #fff;
  border: 1px solid rgba(15, 29, 44, 0.14);
  border-radius: 14px;
  box-shadow: none;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
[data-theme="midnight"] .v6-holiday-enq .desti-form-control,
[data-theme="midnight"] .v6-holiday-enq .user-control.form-control {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.14);
}
.v6-holiday-enq .desti-form-control:focus-within,
.v6-holiday-enq .user-control.form-control:focus-within {
  border-color: var(--muctq-accent, #F0531C);
  box-shadow: 0 0 0 3px rgba(240, 83, 28, 0.18);
}
.v6-holiday-enq .user-control.form-control.h-60 { align-items: flex-start; padding-top: 0.7rem; }

.v6-holiday-enq .desti-form-control img,
.v6-holiday-enq .user-control img { width: 18px; height: 18px; opacity: 0.55; flex: 0 0 auto; }
[data-theme="midnight"] .v6-holiday-enq .desti-form-control img,
[data-theme="midnight"] .v6-holiday-enq .user-control img { filter: invert(1) brightness(1.6); opacity: 0.5; }

.v6-holiday-enq .desti-form-control small,
.v6-holiday-enq .user-control small,
.v6-holiday-enq .clr-7e {
  display: block;
  font-family: var(--mono, ui-monospace, monospace);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: #94A3B8;
  margin-bottom: 0.1rem;
}

.v6-holiday-enq input[type="text"],
.v6-holiday-enq input[type="email"],
.v6-holiday-enq input[type="date"],
.v6-holiday-enq textarea {
  width: 100%;
  min-width: 0;
  border: 0;
  background: transparent;
  padding: 0;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--v6-navy, #0F1D2C);
  outline: none;
}
[data-theme="midnight"] .v6-holiday-enq input,
[data-theme="midnight"] .v6-holiday-enq textarea { color: #F1F5F9; }
.v6-holiday-enq input::placeholder,
.v6-holiday-enq textarea::placeholder { color: #94A3B8; font-weight: 500; }
.v6-holiday-enq input:disabled { color: var(--muctq-accent, #F0531C); -webkit-text-fill-color: currentColor; opacity: 1; }
.v6-holiday-enq textarea { min-width: 0 !important; resize: vertical; }
.v6-holiday-enq input[type="date"]::-webkit-calendar-picker-indicator { cursor: pointer; }

.v6-holiday-enq .form-check-input {
  width: 18px; height: 18px; margin: 0 0.7rem 0 0;
  accent-color: var(--muctq-accent, #F0531C);
  flex: 0 0 auto;
}
.v6-holiday-enq label[for="latestOffer"] { font-size: 0.83rem; font-weight: 600; color: #475569; }
[data-theme="midnight"] .v6-holiday-enq label[for="latestOffer"] { color: #CBD5E1; }

.v6-holiday-enq .btn.custom-btn,
.v6-holiday-enq button[type="submit"] {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.85rem 1.2rem;
  border: 0;
  border-radius: 14px;
  background: var(--muctq-accent, #F0531C);
  color: #fff;
  font-size: 0.88rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  transition: background 0.18s ease, transform 0.18s ease;
}
.v6-holiday-enq .btn.custom-btn:hover,
.v6-holiday-enq button[type="submit"]:hover {
  background: var(--v6-brand-deep, #D2410E);
  transform: translateY(-1px);
}

/* Row rhythm: the legacy g-3 gutters do not apply without Bootstrap. */
.v6-holiday-enq .row.g-3 { display: grid; gap: 0.7rem; }

/* ==========================================================================
   Homepage hero console — the site-wide enquiry form laid across the dock.

   Field names, ids, validation and the submit pipeline are the established
   ones (layouts/money-enquiry-form); this is presentation only.

   Desktop is exactly two rows of six on a 12-column grid:
     row 1  trip · cabin · from · to · depart+return
     row 2  flexible · passengers · name · email · phone · submit
   The row wrappers are display:contents so each field is its own grid cell;
   .muct-cal keeps its box because the calendar popover positions against it.
   ========================================================================== */
.v6-hero-enq .muct-quote__title { display: none; }

.v6-hero-enq .money-enq-form {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 0.85rem 0.75rem;
  align-items: end;
}
.v6-hero-enq .money-enq__cluster,
.v6-hero-enq .money-enq__cluster > .muct-quote__row { display: contents; }

.v6-hero-enq .muct-quote__field { grid-column: span 2; min-width: 0; }
.v6-hero-enq .muct-cal { grid-column: span 4; min-width: 0; position: relative; }
.v6-hero-enq .muct-cal .muct-quote__row--dates {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
/* The span rule above targets the form's own cells; the two date fields are
   cells of the calendar's inner grid and must not inherit it. */
.v6-hero-enq .muct-cal .muct-quote__field { grid-column: auto; }
.v6-hero-enq .money-enq__actions { grid-column: span 2; gap: 0; }

/* -- dark-console field chrome ------------------------------------------- */
.v6-hero-enq .muct-quote__field label,
.v6-hero-enq .muct-cal label {
  font-family: var(--v6-mono, 'Space Mono', ui-monospace, monospace);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #A9BACA;
  margin-bottom: 0.3rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.v6-hero-enq .muct-quote input[type="text"],
.v6-hero-enq .muct-quote input[type="email"],
.v6-hero-enq .muct-quote input[type="tel"],
.v6-hero-enq .muct-quote input[type="date"],
.v6-hero-enq .muct-quote select,
.v6-hero-enq .muct-quote textarea,
.v6-hero-enq .muct-cal__btn,
.v6-hero-enq .tbf-pax__trigger {
  width: 100%;
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 12px;
  color: #fff;
  min-height: 48px;
  padding: 0.55rem 0.75rem;
  font-size: 0.95rem;
  font-weight: 600;
}
.v6-hero-enq .muct-quote input::placeholder,
.v6-hero-enq .muct-quote textarea::placeholder { color: #8FA3B5; }
.v6-hero-enq .muct-quote input:focus,
.v6-hero-enq .muct-quote select:focus,
.v6-hero-enq .muct-quote textarea:focus,
.v6-hero-enq .muct-cal__btn:focus,
.v6-hero-enq .tbf-pax__trigger:focus {
  border-color: var(--v6-brand, #F0531C);
  box-shadow: 0 0 0 3px rgba(240, 83, 28, 0.25);
  outline: none;
}
.v6-hero-enq .muct-quote select option { background: #0F172A; color: #fff; }
.v6-hero-enq .muct-cal__btn { justify-content: flex-start; gap: 0.45rem; }
.v6-hero-enq .muct-cal__btn svg { width: 16px; height: 16px; color: #F0531C; flex: 0 0 auto; }

.v6-hero-enq .money-enq-submit {
  width: 100%;
  min-height: 48px;
  padding: 0.55rem 0.9rem;
  font-size: 0.95rem;
  border-radius: 12px;
  white-space: nowrap;
}

.v6-hero-enq .muct-enq__err {
  color: #FFB4A1;
  font-size: 0.75rem;
  position: absolute;
}
.v6-hero-enq .muct-quote__field { position: relative; padding-bottom: 0; }

/* -- 3 columns: laptops and large tablets --------------------------------- */
@media (max-width: 1180px) {
  .v6-hero-enq .money-enq-form { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .v6-hero-enq .muct-quote__field { grid-column: span 2; }
  .v6-hero-enq .muct-cal { grid-column: span 6; }
  .v6-hero-enq .money-enq__actions { grid-column: span 6; }
}

/* -- 2 columns: tablets --------------------------------------------------- */
@media (max-width: 860px) {
  .v6-hero-enq .money-enq-form { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .v6-hero-enq .muct-quote__field { grid-column: span 2; }
  .v6-hero-enq .muct-cal { grid-column: span 4; }
  .v6-hero-enq .money-enq__actions { grid-column: span 4; }
}

/* -- phones -------------------------------------------------------------
   Two columns for the short pairs (trip/cabin, depart/return, flexible/
   passengers) and full width for the ones that need room to read; 16px
   inputs so iOS does not zoom the page on focus. */
@media (max-width: 560px) {
  .v6-hero-enq .money-enq-form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.7rem 0.6rem; }

  /* Short pairs share a row. */
  .v6-hero-enq .muct-quote__field { grid-column: span 1; }

  /* From, To and each contact field get the full width. */
  .v6-hero-enq .money-enq__cluster--route > .muct-quote__row:nth-child(2) > .muct-quote__field,
  .v6-hero-enq .muct-quote__row--contact > .muct-quote__field,
  .v6-hero-enq .muct-cal,
  .v6-hero-enq .money-enq__actions { grid-column: 1 / -1; }

  .v6-hero-enq .muct-cal .muct-quote__row--dates { grid-template-columns: 1fr 1fr; gap: 0.6rem; }

  .v6-hero-enq .muct-quote input,
  .v6-hero-enq .muct-quote select,
  .v6-hero-enq .muct-quote textarea,
  .v6-hero-enq .muct-cal__btn,
  .v6-hero-enq .tbf-pax__trigger,
  .v6-hero-enq input, .v6-hero-enq select { font-size: 16px; min-height: 50px; }
  .v6-hero-enq .money-enq-submit { min-height: 54px; font-size: 1.05rem; }
  .v6-hero-enq .muct-quote__field label { font-size: 0.68rem; }
}

/* ==========================================================================
   Quote modal — keep two columns on phones so the popup is shorter, not a
   long single-column scroll. Field names / validation stay unchanged.
   ========================================================================== */
#v6-quote-modal .muct-quote__title { display: none; }
#v6-quote-modal .money-enq {
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}
#v6-quote-modal .money-enq-form,
#v6-quote-modal .muct-quote__form {
  gap: 0.55rem;
}
#v6-quote-modal .muct-quote__row,
#v6-quote-modal .muct-quote__row--dates,
#v6-quote-modal .muct-quote__row--contact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.55rem 0.6rem;
  margin-bottom: 0;
}
/* Trip pills + cabin share one row; contact packs name|email then phone spans. */
#v6-quote-modal .muct-quote__row--contact > .muct-quote__field:nth-child(3) {
  grid-column: 1 / -1;
}
#v6-quote-modal .muct-quote__field > label,
#v6-quote-modal .muct-cal label {
  font-size: 0.62rem;
  margin-bottom: 0.15rem;
}
#v6-quote-modal .muct-quote input[type="text"],
#v6-quote-modal .muct-quote input[type="email"],
#v6-quote-modal .muct-quote input[type="tel"],
#v6-quote-modal .muct-quote input[type="date"],
#v6-quote-modal .muct-quote select,
#v6-quote-modal .muct-cal__btn,
#v6-quote-modal .tbf-pax__trigger {
  min-height: 42px;
  padding: 0.45rem 0.65rem;
  font-size: 16px; /* prevent iOS zoom */
  border-radius: 10px;
}
#v6-quote-modal .money-enq-submit,
#v6-quote-modal .muct-quote__submit {
  min-height: 46px;
  margin-top: 0.15rem;
  font-size: 0.95rem;
}
#v6-quote-modal .money-enq__actions { gap: 0.35rem; }

@media (min-width: 640px) {
  #v6-quote-modal .muct-quote__row--contact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  #v6-quote-modal .muct-quote__row--contact > .muct-quote__field:nth-child(3) {
    grid-column: auto;
  }
  #v6-quote-modal .muct-quote input[type="text"],
  #v6-quote-modal .muct-quote input[type="email"],
  #v6-quote-modal .muct-quote input[type="tel"],
  #v6-quote-modal .muct-quote input[type="date"],
  #v6-quote-modal .muct-quote select,
  #v6-quote-modal .muct-cal__btn,
  #v6-quote-modal .tbf-pax__trigger {
    min-height: 46px;
    font-size: 0.94rem;
  }
}

/* Very narrow phones: still 2 cols, slightly tighter. */
@media (max-width: 380px) {
  #v6-quote-modal .muct-quote__row,
  #v6-quote-modal .muct-quote__row--dates,
  #v6-quote-modal .muct-quote__row--contact {
    gap: 0.45rem 0.45rem;
  }
  #v6-quote-modal .muct-quote__field > label { letter-spacing: 0.02em; }
}
