/**
 * Hayat OTA — public SaaS-style shell (overrides TourNest defaults).
 */
:root {
  --brand-primary: #2563eb;
  --brand-primary-dark: #1d4ed8;
  --brand-secondary: #0f172a;
  --brand-accent: #f59e0b;
  --brand-dark: #0f172a;
  --brand-muted: #64748b;
  --brand-border: #dbe3ef;
  --brand-surface: #ffffff;
  --brand-soft: #f8fafc;
  --ota-navy: #0a1628;
  --ota-navy-mid: #111f3a;
  --ota-blue: var(--brand-primary);
  --ota-blue-dark: var(--brand-primary-dark);
  --ota-sky: #0ea5e9;
  --ota-text: var(--brand-dark);
  --ota-muted: var(--brand-muted);
  --ota-border: var(--brand-border);
  --ota-card: var(--brand-surface);
  --ota-radius: 14px;
  --ota-radius-sm: 10px;
  --ota-shadow: 0 4px 6px -1px rgba(15, 23, 42, 0.07), 0 18px 42px -12px rgba(15, 23, 42, 0.18);
  --ota-shadow-lg: 0 25px 50px -12px rgba(15, 23, 42, 0.28);
  /* Main content rail + horizontal padding (no horizontal padding on .ota-section — gutters live here) */
  --ota-max-content: 1180px;
  --ota-gutter-x: 16px;
  /* Fixed top trust bar + main nav — single offset for main content + inner sticky columns */
  --ota-fixed-header-height: clamp(6.75rem, 11.5vh, 8.35rem);
  --ota-header-offset: var(--ota-fixed-header-height);
  --ota-nav-sticky-top: var(--ota-fixed-header-height);
  /* Layering — predictable overlay stack (OTA-POPUP-OVERLAY-PRIORITY-CALENDAR-COMPACT-1) */
  --ota-z-header: 1100;
  --ota-z-dropdown: 2000;
  --ota-z-autocomplete: 2500;
  --ota-z-date-popover: 5000;
  --ota-z-date-sheet: 5000;
  --ota-z-modal-backdrop: 6000;
  --ota-z-modal: 6010;
  --ota-z-toast: 7000;
}
.site-container {
  max-width: var(--ota-max-content);
  margin: 0 auto;
  padding-left: var(--ota-gutter-x);
  padding-right: var(--ota-gutter-x);
}
.site-section {
  padding: 2.5rem 0;
}
.site-card {
  background: #fff;
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}
.site-grid {
  display: grid;
  gap: 1rem;
}
.public-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.65rem 1rem;
  border-radius: 10px;
  font-weight: 700;
  text-decoration: none !important;
  border: 1px solid transparent;
}
.public-btn-primary {
  background: var(--brand-primary, var(--ota-blue));
  color: #fff !important;
  border-color: var(--brand-primary, var(--ota-blue));
}
.public-btn-primary:hover,
.public-btn-primary:focus {
  background: #fff;
  color: var(--ota-text) !important;
  border-color: var(--ota-blue);
}
.public-btn-secondary {
  background: #fff;
  color: var(--ota-navy) !important;
  border-color: #cbd5e1;
}
.auth-shell {
  width: 100%;
  min-height: auto;
  display: grid;
  place-items: center;
  padding: 1.25rem;
  box-sizing: border-box;
  background: #f8fafc;
}

/* Auth pages nested in layouts.frontend (public header + footer) */
body.ota-public .ota-site-main > .ota-auth {
  width: 100%;
  max-width: 100%;
}

body.ota-public .ota-site-main > .ota-auth .auth-shell {
  min-height: max(18rem, calc(100dvh - var(--ota-fixed-header-height, 7.5rem) - 14rem));
  padding: 1.5rem var(--ota-gutter-x, 1rem) 3rem;
  box-sizing: border-box;
}

/* Login page: compact centered card (scoped; does not affect register/forgot) */
body.ota-public .ota-site-main > .ota-auth-page--login {
  width: 100%;
  max-width: 100%;
}

body.ota-public .ota-site-main > .ota-auth-page--login .auth-shell {
  min-height: auto;
  padding: 1rem var(--ota-gutter-x, 1rem) 2rem;
  display: flex;
  justify-content: center;
}

body.ota-public .ota-site-main > .ota-auth-page--login .auth-card.auth-card--login-premium {
  width: 100%;
  max-width: 448px;
  margin-left: auto;
  margin-right: auto;
}
.auth-card {
  width: 100%;
  max-width: 520px;
  background: #fff;
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius);
  box-shadow: var(--ota-shadow);
  padding: 1.25rem;
  box-sizing: border-box;
}
.auth-card--wide {
  max-width: 700px;
}

/* Login premium: single row Sign up | Become our agent | Forgot password (wraps on narrow widths) */
.auth-card.auth-card--login-premium .ota-auth-login-inline-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 0.55rem;
  margin-top: 1.15rem;
  padding-top: 1rem;
  border-top: 1px solid #e2e8f0;
  font-size: 0.8125rem;
  line-height: 1.5;
}
.auth-card.auth-card--login-premium .ota-auth-login-inline-links a {
  font-weight: 600;
  color: #64748b;
  text-decoration: none;
  white-space: nowrap;
}
.auth-card.auth-card--login-premium .ota-auth-login-inline-links a:hover {
  color: var(--color-primary, #2563eb);
  text-decoration: underline;
}
.auth-card.auth-card--login-premium .ota-auth-login-inline-links a:not(:last-child)::after {
  content: "|";
  display: inline;
  margin-left: 0.55rem;
  color: #cbd5e1;
  font-weight: 400;
  text-decoration: none;
  pointer-events: none;
}
@media (max-width: 380px) {
  .auth-card.auth-card--login-premium .ota-auth-login-inline-links {
    flex-direction: column;
    gap: 0.5rem;
  }
  .auth-card.auth-card--login-premium .ota-auth-login-inline-links a {
    white-space: normal;
    text-align: center;
  }
  .auth-card.auth-card--login-premium .ota-auth-login-inline-links a:not(:last-child)::after {
    display: none;
  }
}
.auth-grid {
  display: grid;
  gap: 18px;
}
.auth-grid--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 16px;
}
@media (max-width: 767px) {
  .auth-grid--two {
    grid-template-columns: 1fr;
  }
}
.auth-field {
  min-width: 0;
}
.auth-input,
.ota-auth-input {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.field-error {
  color: #dc2626;
  font-size: 0.75rem;
  line-height: 1.5;
  font-weight: 400;
  margin-top: 6px;
  min-height: 18px;
}
.input-error {
  border-color: #dc2626 !important;
}
.input-valid {
  border-color: #16a34a !important;
}
.auth-social-stack {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.5rem 0.65rem;
  margin-top: 14px;
  width: 100%;
  box-sizing: border-box;
}
.auth-social-stack--stacked {
  flex-direction: column;
}
.auth-social-btn {
  flex: 1 1 0;
  min-width: 0;
  width: auto;
  box-sizing: border-box;
  text-align: center;
  justify-content: center;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  font-size: clamp(0.8rem, 2.5vw, 0.95rem);
  line-height: 1.25;
}
.auth-social-btn--brand .auth-social-btn__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.auth-social-btn--brand .auth-social-btn__icon svg {
  display: block;
}
.auth-social-stack--stacked .auth-social-btn {
  flex: none;
  width: 100%;
}
@media (max-width: 360px) {
  .auth-social-stack:not(.auth-social-stack--stacked) {
    flex-direction: column;
  }
  .auth-social-stack:not(.auth-social-stack--stacked) .auth-social-btn {
    flex: none;
    width: 100%;
  }
}
.form-control-modern {
  width: 100%;
  min-height: 48px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 0.6rem 0.85rem;
}
.mobile-filter-drawer {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  top: 12%;
  z-index: 1200;
  background: #fff;
  border-radius: 16px 16px 0 0;
}
.ota-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  border: 0 !important;
}
.public-header {
  width: 100%;
}
.public-nav {
  align-items: center;
}

/* Fixed public shell header (trust bar + nav) — avoids sticky/containing-block bugs on checkout */
.ota-site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--ota-z-header);
  background: var(--ota-navy);
}
.ota-site-main {
  display: block;
  flex: 1 0 auto;
  width: 100%;
  min-width: 0;
  padding-top: var(--ota-fixed-header-height);
  box-sizing: border-box;
}
.ota-page-home .ota-site-main {
  background: linear-gradient(180deg, var(--brand-secondary, #0c1929) 0, var(--brand-secondary, #0c1929) 8rem, #f8fafc 8rem);
}

@media (min-width: 768px) {
  :root {
    --ota-gutter-x: 24px;
  }
}

/*
  Public shell: Bootstrap 3 (14px body) loads before this file.
  OTA-PUBLIC-FONT-SCALE-12PX-1 — compact 12px baseline for professional OTA density at 100% zoom.
*/
html.ota-html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body.ota-public {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: 12px;
  line-height: 1.55;
  color: var(--ota-text);
  background: #f8fafc;
  -webkit-font-smoothing: antialiased;
}

/* Inherit body size; Bootstrap’s global p/li sizes stay off our sections */
body.ota-public p,
body.ota-public li {
  font-size: inherit;
  line-height: inherit;
}

/* Bootstrap 3 `.container` on inner pages: align rail + gutters with homepage */
body.ota-public .container {
  max-width: var(--ota-max-content) !important;
  padding-left: var(--ota-gutter-x);
  padding-right: var(--ota-gutter-x);
  width: 100%;
  box-sizing: border-box;
}

/* Bootstrap grid: prevent flex children from forcing horizontal scroll */
body.ota-public .row > [class*="col-"] {
  min-width: 0;
}

/* Full-width contained controls — public cards + auth shell */
body.ota-public .ota-checkout-card input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body.ota-public .ota-checkout-card select,
body.ota-public .ota-checkout-card textarea,
body.ota-public .ota-form-card input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body.ota-public .ota-form-card select,
body.ota-public .ota-form-card textarea {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.ota-auth .auth-card input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.ota-auth .auth-card select,
.ota-auth .auth-card textarea {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.auth-card,
.auth-card .ota-form-grid,
.auth-card .ota-auth-grid-2,
.auth-card .auth-grid,
.auth-card .auth-field,
.auth-card .ota-auth-group {
  min-width: 0;
}

body.ota-public .top-area,
body.ota-public header.top-area {
  display: none !important;
}

/* —— Slim top bar —— */
.ota-slim-topbar {
  --ota-slim-topbar-bg: var(--brand-secondary, var(--ota-navy));
  --ota-slim-topbar-text: #94a3b8;
  --ota-slim-topbar-accent: var(--brand-accent, var(--ota-sky));
  background: var(--ota-slim-topbar-bg);
  color: var(--ota-slim-topbar-text);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.02em;
  border-bottom: 1px solid rgba(148, 163, 184, 0.12);
}
.ota-slim-topbar-inner {
  max-width: var(--ota-max-content);
  margin: 0 auto;
  padding: 0.5rem var(--ota-gutter-x);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem 1.5rem;
}
.ota-slim-topbar-item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: inherit;
  text-decoration: none !important;
}
a.ota-slim-topbar-item:hover,
a.ota-slim-topbar-item:focus {
  color: #fff;
  text-decoration: none !important;
}
.ota-slim-topbar-item .fa {
  color: var(--ota-slim-topbar-accent);
  font-size: 0.7rem;
}

/* —— Main nav (inside fixed .ota-site-header) —— */
.ota-main-nav {
  position: relative;
  z-index: 1;
  background: #fff;
  border-bottom: 1px solid var(--ota-border);
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04), 0 6px 20px rgba(15, 23, 42, 0.06);
}
.ota-nav-inner {
  max-width: var(--ota-max-content);
  margin: 0 auto;
  padding: 0.75rem var(--ota-gutter-x);
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.5rem 0.85rem;
  position: relative;
  min-height: 3.35rem;
  min-width: 0;
}
.ota-brand {
  font-weight: 700;
  font-size: 1.2rem;
  color: var(--ota-navy) !important;
  text-decoration: none !important;
  letter-spacing: -0.02em;
  white-space: nowrap;
}
.ota-brand-with-mark {
  display: flex !important;
  align-items: center;
  gap: 0.65rem;
  white-space: normal;
}
.ota-brand-mark {
  flex-shrink: 0;
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--brand-primary, var(--ota-blue)) 0%, var(--brand-primary-dark, #1e40af) 100%);
  color: #fff !important;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  box-shadow: 0 4px 12px color-mix(in srgb, var(--brand-primary, #2563eb) 35%, transparent);
}
.ota-brand-mark--logo {
  width: auto;
  height: auto;
  max-width: min(160px, 42vw);
  max-height: 48px;
  padding: 0;
  background: transparent !important;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.ota-brand-logo-img {
  display: block;
  max-height: 44px;
  max-width: min(160px, 42vw);
  width: auto;
  height: auto;
  object-fit: contain;
}
.ota-brand--has-logo {
  gap: 0;
}
.ota-brand--has-logo .ota-brand-mark--logo {
  margin-right: 0;
}
@media (max-width: 991px) {
  .ota-brand-logo-img {
    max-height: 36px;
    max-width: min(120px, 38vw);
  }
}
body.ota-public .ota-site-header .ota-nav-btn-primary,
body.ota-public .ota-site-header .ota-nav-btn.ota-nav-btn-primary {
  background: var(--brand-primary, var(--ota-blue)) !important;
  border-color: var(--brand-primary, var(--ota-blue)) !important;
}
body.ota-public .ota-site-header .ota-nav-btn-primary:hover,
body.ota-public .ota-site-header .ota-nav-btn.ota-nav-btn-primary:hover {
  background: var(--brand-primary-dark, var(--ota-blue-dark)) !important;
  border-color: var(--brand-primary-dark, var(--ota-blue-dark)) !important;
}
body.ota-public .ota-footer-pro {
  --ota-footer-accent: var(--brand-accent, #0284c7);
  --ota-footer-link-hover: var(--brand-accent, #0c4a6e);
}
body.ota-public .ota-footer-pro__support-card {
  border-color: color-mix(in srgb, var(--brand-secondary, #0ea5e9) 35%, transparent);
}
/* Public landing: accent highlights (kickers, badges, icons — not primary CTAs) */
body.ota-public {
  --ota-brand-accent-soft: color-mix(in srgb, var(--brand-accent, #f59e0b) 14%, white);
  --ota-brand-accent-line: color-mix(in srgb, var(--brand-accent, #f59e0b) 42%, transparent);
  /* OTA-PUBLIC-FONT-SCALE-12PX-1 typography tokens */
  --ota-fs-base: 12px;
  --ota-fs-meta: 10px;
  --ota-fs-meta-lg: 11px;
  --ota-fs-input: 12px;
  --ota-fs-input-lg: 13px;
  --ota-fs-nav: 13px;
  --ota-fs-filter-title: 13px;
  --ota-fs-card-airline: 12px;
  --ota-fs-time-lg: 23px;
  --ota-fs-price-lg: 21px;
  --ota-fs-strip-date: 13px;
  --ota-fs-strip-price: 11px;
  --ota-fs-modal-body: 12px;
  --ota-fs-modal-label: 10px;
  --ota-fs-modal-title: 18px;
  /* OTA-PLATFORM-WIDE-COMPACT-UI-AUDIT-AND-POLISH-1 */
  --ota-compact-lh: 1.45;
  --ota-compact-lh-tight: 1.35;
  --ota-compact-fs-label: 11px;
  --ota-compact-fs-label-md: 12px;
  --ota-compact-fs-body: 12px;
  --ota-compact-fs-body-md: 13px;
  --ota-compact-fs-title-sm: 14px;
  --ota-compact-fs-title-md: 16px;
  --ota-compact-fs-page-title: clamp(1.2rem, 2.8vw, 1.45rem);
  --ota-compact-input-h: 40px;
  --ota-compact-btn-h: 40px;
  --ota-compact-btn-h-lg: 42px;
  --ota-compact-radius: 10px;
  --ota-compact-radius-card: 16px;
  --ota-compact-gap-field: 0.35rem;
  --ota-compact-gap-form: 0.75rem;
  --ota-compact-gap-section: 0.85rem;
  --ota-compact-text: #334155;
  --ota-compact-text-soft: #64748b;
  --ota-compact-border-soft: #d8e1ee;
}
.ota-brand-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.2;
  overflow: hidden;
}
@media (max-width: 991px) {
  .ota-brand-text {
    white-space: nowrap;
    text-overflow: ellipsis;
    display: block;
  }
  .ota-brand-text small {
    display: none;
  }
}
@media (min-width: 992px) {
  .ota-brand-text {
    white-space: normal;
  }
}
.ota-brand small {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--ota-muted);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-top: 0.15rem;
}
.ota-nav-toggle {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.ota-nav-sidebar-backdrop {
  display: none;
}
.ota-burger {
  display: none;
  flex-shrink: 0;
  margin-left: auto;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius-sm);
  background: #fff;
  cursor: pointer;
  font-size: 1.1rem;
  color: var(--ota-navy);
}
.ota-nav-links {
  display: flex;
  align-items: center;
  gap: 0.1rem;
  margin-left: auto;
  flex-wrap: wrap;
  min-width: 0;
}
.ota-nav-links-desktop {
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
}
.ota-nav-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-left: 0.5rem;
}
.ota-nav-inline-form {
  margin: 0;
}
.public-signup-menu {
  position: relative;
  display: inline-flex;
  align-items: stretch;
}
.public-signup-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding-right: 0.75rem;
  white-space: nowrap;
}
.public-signup-button .public-signup-caret {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  line-height: 1;
  opacity: 0.92;
  transition: transform 0.15s ease;
}
.public-signup-menu:hover .public-signup-button .public-signup-caret,
.public-signup-menu:focus-within .public-signup-button .public-signup-caret {
  transform: translateY(1px);
}
.public-signup-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  width: min(220px, 92vw);
  min-width: 180px;
  padding: 0.35rem 0;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.14);
  z-index: 120;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  pointer-events: none;
  transition:
    opacity 0.16s ease,
    transform 0.16s ease,
    visibility 0s linear 280ms;
}
.public-signup-dropdown::before {
  content: "";
  position: absolute;
  top: -12px;
  left: 0;
  right: 0;
  height: 12px;
  background: transparent;
}
.public-signup-menu:hover .public-signup-dropdown,
.public-signup-menu:focus-within .public-signup-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
  transition-delay: 0s;
}
.public-signup-dropdown a {
  display: block;
  padding: 0.55rem 0.85rem;
  font-size: 14px;
  font-weight: 600;
  color: var(--ota-navy) !important;
  text-decoration: none !important;
  white-space: nowrap;
  transition: background 0.15s ease, color 0.15s ease;
}
.public-signup-dropdown a:hover,
.public-signup-dropdown a:focus {
  background: #f1f5f9;
  color: var(--ota-navy) !important;
  outline: none;
}
/* Universal account dropdown (logged-in public header) */
.ota-site-header .ota-main-nav,
.ota-site-header .ota-nav-inner,
.ota-site-header .ota-nav-links,
.ota-site-header .ota-nav-actions {
  overflow: visible;
}
.ota-account-menu {
  position: relative;
  display: inline-flex;
  align-items: center;
  z-index: 1000;
}
.ota-account-menu--mobile {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  margin: 0.35rem 0 0.5rem;
  z-index: auto;
}
.ota-account-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 38px;
  max-width: 180px;
  padding: 5px 10px 5px 5px;
  border: 1px solid #d8e3f3;
  border-radius: 999px;
  background: #ffffff;
  color: #0b1f3a;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.07);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  font-family: inherit;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.ota-account-menu--mobile .ota-account-trigger {
  width: 100%;
  max-width: none;
  justify-content: flex-start;
  border-radius: 12px;
  min-height: 44px;
  height: auto;
  padding: 8px 12px 8px 8px;
}
.ota-account-trigger:hover,
.ota-account-trigger:focus {
  border-color: #2f65ee;
  background: #f7fbff;
  outline: none;
}
.ota-account-trigger[aria-expanded="true"] {
  border-color: #2f65ee;
  background: #f7fbff;
  box-shadow: 0 0 0 2px rgba(47, 101, 238, 0.18);
}
.ota-account-avatar {
  width: 26px;
  height: 26px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #2563eb, #0ea5e9);
  color: #ffffff;
  font-size: 11px;
  font-weight: 700;
  overflow: hidden;
  flex-shrink: 0;
}
.ota-account-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ota-account-label {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 92px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ota-account-menu--mobile .ota-account-label {
  max-width: none;
  flex: 1 1 auto;
  text-align: left;
}
.ota-account-chevron {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  font-size: 10px;
  line-height: 1;
  opacity: 0.7;
  margin-left: 0;
}
.ota-account-menu--mobile .ota-account-chevron {
  margin-left: auto;
}
.ota-account-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: min(260px, calc(100vw - 24px));
  min-width: min(240px, calc(100vw - 24px));
  max-width: min(260px, calc(100vw - 24px));
  max-height: min(480px, calc(100dvh - var(--ota-fixed-header-height, 88px) - 2rem));
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: #ffffff;
  border: 1px solid #e3ebf6;
  border-radius: 14px;
  box-shadow: 0 16px 44px rgba(15, 23, 42, 0.14);
  padding: 12px;
  z-index: var(--ota-z-dropdown);
}
.ota-account-balance-box {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0 4px 6px;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid #dbeafe;
  background: #f0f9ff;
  text-decoration: none !important;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.ota-account-balance-box:hover,
.ota-account-balance-box:focus {
  background: #e0f2fe;
  border-color: #7dd3fc;
  outline: none;
}
.ota-account-balance-box--static {
  cursor: default;
}
.ota-account-balance-box__label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #0369a1;
}
.ota-account-balance-box__amount {
  font-size: 14px;
  font-weight: 800;
  color: #0b1f3a;
  line-height: 1.25;
}
.ota-footer-pro__partner-agency {
  margin: 10px 0 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--ota-footer-text, #334155);
}
.ota-account-dropdown[hidden] {
  display: none !important;
}
.ota-account-menu--mobile .ota-account-dropdown {
  position: static;
  top: auto;
  right: auto;
  width: 100%;
  max-width: none;
  margin-top: 8px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.1);
}
.ota-account-dropdown-header {
  padding: 0 0 10px;
  margin-bottom: 4px;
  border-bottom: 1px solid #e8eff8;
}
.ota-account-dropdown-header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.ota-account-dropdown-header .ota-role-badge {
  padding: 2px 7px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.03em;
}
.ota-role-badge {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  padding: 3px 8px;
  border-radius: 999px;
  background: #e0f2fe;
  color: #0369a1;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.2;
}
.ota-account-dropdown-name {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 1rem;
  font-weight: 600;
  color: #0b1f3a;
  line-height: 1.4;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ota-account-dropdown-email {
  margin: 3px 0 0;
  font-size: 0.75rem;
  font-weight: 400;
  color: #64748b;
  line-height: 1.5;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ota-account-dropdown a,
.ota-account-dropdown-link,
.ota-account-dropdown-logout,
.ota-account-logout {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #0b1f3a !important;
  text-decoration: none !important;
  text-align: left;
  background: transparent;
  border: 0;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  font-family: inherit;
  transition: background 0.15s ease, color 0.15s ease;
}
.ota-account-dropdown a:hover,
.ota-account-dropdown a:focus,
.ota-account-dropdown-link:hover,
.ota-account-dropdown-link:focus,
.ota-account-dropdown-logout:hover,
.ota-account-dropdown-logout:focus,
.ota-account-logout:hover,
.ota-account-logout:focus {
  background: #eef4ff;
  color: #1d4ed8 !important;
  outline: none;
}
.ota-account-dropdown a.is-active,
.ota-account-dropdown-link.is-active {
  background: #e0f2fe;
  color: #0b1f3a !important;
}
.ota-account-dropdown-divider {
  height: 1px;
  margin: 8px 0 4px;
  background: #e8eff8;
}
.ota-account-logout-form {
  margin: 0;
}
.ota-account-logout {
  color: #c2410c !important;
  font-weight: 600;
}
.ota-account-logout:hover,
.ota-account-logout:focus {
  background: #fff7ed !important;
  color: #9a3412 !important;
}
.ota-nav-links .ota-nav-actions a.public-signup-button,
.ota-nav-links .ota-nav-actions a.public-signup-button:link,
.ota-nav-links .ota-nav-actions a.public-signup-button:visited {
  color: #fff !important;
}
.ota-nav-links .ota-nav-actions a.public-signup-button:hover,
.ota-nav-links .ota-nav-actions a.public-signup-button:focus {
  color: var(--ota-text) !important;
  background: #fff;
  border-color: var(--ota-blue);
}
body.ota-public .ota-main-nav a.public-signup-button,
body.ota-public .ota-main-nav a.public-signup-button:link,
body.ota-public .ota-main-nav a.public-signup-button:visited {
  color: #fff !important;
}
body.ota-public .ota-main-nav a.public-signup-button:hover,
body.ota-public .ota-main-nav a.public-signup-button:focus {
  color: var(--ota-text) !important;
  background: #fff;
  border-color: var(--ota-blue);
}
.ota-nav-btn {
  min-height: 38px;
  padding: 0.45rem 0.85rem;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none !important;
  background: #fff;
}
.ota-nav-btn-primary {
  background: var(--ota-blue);
  border-color: var(--ota-blue);
  color: #fff !important;
}
.ota-nav-btn-primary:hover {
  color: var(--ota-text) !important;
  background: #fff;
  border-color: var(--ota-blue);
}
.ota-nav-btn-secondary {
  color: var(--ota-navy) !important;
  background: #fff;
  border-color: var(--ota-blue);
}
.ota-nav-btn-secondary:hover {
  background: #f8fafc;
  color: var(--ota-text) !important;
}
.ota-nav-mobile-groups {
  display: none;
}
.ota-nav-links a {
  color: var(--ota-muted) !important;
  text-decoration: none !important;
  font-weight: 600;
  font-size: 15px;
  padding: 0.55rem 0.85rem;
  border-radius: 8px;
  transition: color 0.15s, background 0.15s;
}
.ota-nav-links a:hover {
  color: var(--ota-navy) !important;
  background: #f1f5f9;
}
.ota-nav-links a.is-active {
  color: var(--ota-navy) !important;
  background: var(--ota-brand-accent-soft, #fff7ed);
  box-shadow: inset 3px 0 0 var(--brand-accent, #f59e0b);
}
/* Primary nav CTAs (Sign Up, Dashboard): .ota-nav-links a { muted } + Bootstrap a:visited beat .ota-nav-btn-primary alone */
.ota-nav-links .ota-nav-actions a.ota-nav-btn-primary,
.ota-nav-links .ota-nav-actions a.ota-nav-btn-primary:link,
.ota-nav-links .ota-nav-actions a.ota-nav-btn-primary:visited {
  color: #fff !important;
}
.ota-nav-links .ota-nav-actions a.ota-nav-btn-primary:hover,
.ota-nav-links .ota-nav-actions a.ota-nav-btn-primary:focus {
  color: var(--ota-text) !important;
  background: #fff;
  border-color: var(--ota-blue);
}
body.ota-public .ota-main-nav a.ota-nav-btn.ota-nav-btn-primary,
body.ota-public .ota-main-nav a.ota-nav-btn.ota-nav-btn-primary:link,
body.ota-public .ota-main-nav a.ota-nav-btn.ota-nav-btn-primary:visited {
  color: #fff !important;
}
body.ota-public .ota-main-nav a.ota-nav-btn.ota-nav-btn-primary:hover,
body.ota-public .ota-main-nav a.ota-nav-btn.ota-nav-btn-primary:focus {
  color: var(--ota-text) !important;
  background: #fff;
  border-color: var(--ota-blue);
}
.ota-nav-mobile-groups a.is-active {
  background: var(--ota-brand-accent-soft, #fff7ed) !important;
  color: var(--ota-navy) !important;
  border-left: 3px solid var(--brand-accent, #f59e0b);
}
@media (max-width: 991px) {
  .ota-nav-inner {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.5rem 0.85rem;
  }
  .ota-nav-inner > .ota-brand {
    flex: 1 1 auto;
    min-width: 0;
  }
  .ota-burger {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: 0;
    flex-shrink: 0;
  }
  .ota-nav-sidebar-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1040;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: rgba(15, 23, 42, 0.45);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease, visibility 0.2s ease;
  }
  .ota-nav-toggle:checked ~ .ota-nav-sidebar-backdrop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .ota-nav-links {
    display: flex;
    position: fixed;
    top: var(--ota-fixed-header-height);
    right: 0;
    bottom: 0;
    left: auto;
    width: min(86vw, 360px);
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: 1rem 0.9rem calc(1rem + env(safe-area-inset-bottom, 0));
    border: none;
    border-left: 1px solid var(--ota-border);
    border-radius: 22px 0 0 22px;
    box-shadow: -8px 0 32px rgba(15, 23, 42, 0.14);
    flex-direction: column;
    align-items: stretch;
    align-content: flex-start;
    background: #fff;
    z-index: 1050;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transform: translateX(100%);
    transition: transform 0.25s ease, visibility 0s linear 0.25s;
    pointer-events: none;
    visibility: hidden;
  }
  .ota-nav-toggle:checked ~ .ota-nav-links {
    transform: translateX(0);
    pointer-events: auto;
    visibility: visible;
    transition: transform 0.25s ease, visibility 0s linear 0s;
  }
  .ota-nav-links-desktop,
  .ota-nav-actions {
    display: none;
  }
  .ota-nav-mobile-groups {
    display: block;
    flex: 1 1 auto;
  }
  .ota-mobile-menu {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    min-height: 100%;
  }
  .ota-mobile-menu__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
  }
  .ota-mobile-menu__brand strong {
    display: block;
    font-size: 1.02rem;
    line-height: 1.2;
    color: #0f172a;
  }
  .ota-mobile-menu__brand small {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.74rem;
    color: #64748b;
  }
  .ota-mobile-menu__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border: 1px solid #dbe3ee;
    border-radius: 10px;
    color: #475569 !important;
    background: #fff;
    text-decoration: none;
    cursor: pointer;
  }
  .ota-mobile-menu__section {
    margin: 0;
  }
  .ota-mobile-menu__section-title {
    margin: 0 0 0.5rem;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: #94a3b8;
  }
  .ota-mobile-menu__links {
    display: grid;
    gap: 0.35rem;
    padding: 0.45rem;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #f8fafc;
  }
  .ota-nav-links .ota-mobile-menu__link {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 0.75rem;
    border-radius: 11px;
    font-weight: 700;
  }
  .ota-nav-links .ota-mobile-menu__link:hover,
  .ota-nav-links .ota-mobile-menu__link:focus {
    background: #eef2f7;
  }
  .ota-mobile-menu__actions {
    display: grid;
    gap: 0.6rem;
    margin-top: 0.1rem;
  }
  .ota-mobile-menu__button {
    min-height: 46px;
    border-radius: 12px;
    justify-content: center !important;
  }
  .ota-nav-mobile-action {
    text-align: center;
    border: 1px solid var(--ota-blue);
    font-weight: 700 !important;
  }
  .ota-nav-mobile-action--secondary {
    color: var(--ota-text) !important;
    background: #fff;
  }
  /* Must beat .ota-nav-links a { muted !important } — same specificity as that rule + extra class */
  .ota-nav-links .ota-nav-mobile-groups a.ota-nav-mobile-action--primary,
  .ota-nav-links .ota-nav-mobile-groups a.ota-nav-mobile-action--primary:link,
  .ota-nav-links .ota-nav-mobile-groups a.ota-nav-mobile-action--primary:visited {
    color: #fff !important;
    background: var(--ota-blue);
  }
  .ota-nav-links .ota-nav-mobile-groups a.ota-nav-mobile-action--primary:hover,
  .ota-nav-links .ota-nav-mobile-groups a.ota-nav-mobile-action--primary:focus {
    background: #fff;
    color: var(--ota-text) !important;
    border-color: var(--ota-blue);
  }
  body.ota-public .ota-main-nav .ota-nav-mobile-groups a.ota-nav-mobile-action--primary,
  body.ota-public .ota-main-nav .ota-nav-mobile-groups a.ota-nav-mobile-action--primary:link,
  body.ota-public .ota-main-nav .ota-nav-mobile-groups a.ota-nav-mobile-action--primary:visited {
    color: #fff !important;
  }
  .ota-nav-mobile-logout button {
    width: 100%;
    min-height: 44px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    font-weight: 700;
    text-align: left;
    padding: 0.65rem 0.75rem;
  }
  .ota-nav-mobile-groups > a {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.65rem 0.85rem;
  }
  body.ota-mobile-nav-open {
    overflow: hidden;
  }
}
@media (max-width: 991px) and (prefers-reduced-motion: reduce) {
  .ota-nav-links,
  .ota-nav-toggle:checked ~ .ota-nav-links {
    transition-duration: 0.01ms;
  }
  .ota-nav-sidebar-backdrop,
  .ota-nav-toggle:checked ~ .ota-nav-sidebar-backdrop {
    transition-duration: 0.01ms;
  }
}
@media (max-width: 768px) {
  .ota-slim-topbar-inner {
    justify-content: center;
    gap: 0.5rem 1rem;
  }
  .ota-slim-topbar-inner span:nth-child(n + 3) {
    display: none;
  }
}
@media (min-width: 1200px) and (max-width: 1365px) {
  .ota-nav-links a,
  .ota-nav-dropdown-toggle {
    padding-left: 0.65rem;
    padding-right: 0.65rem;
  }
}

/* —— Hero —— */
.ota-hero {
  position: relative;
  /* visible so airport autocomplete (absolute) is not clipped at hero bottom */
  overflow: visible;
  background: linear-gradient(135deg, #0c1929 0%, #132447 42%, #1a3a5c 100%);
  color: #fff;
  padding: 3.5rem 0 4rem;
}
@media (min-width: 992px) {
  .ota-hero {
    padding: 5.25rem 0 5.5rem;
  }
}
.ota-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 60% at 70% 20%, rgba(14, 165, 233, 0.18), transparent 55%),
    radial-gradient(ellipse 50% 40% at 10% 80%, rgba(37, 99, 235, 0.2), transparent 50%);
  pointer-events: none;
}
.ota-hero-inner {
  position: relative;
  z-index: 1;
  max-width: var(--ota-max-content);
  margin: 0 auto;
  padding: 0 var(--ota-gutter-x);
  box-sizing: border-box;
}
.ota-hero h1 {
  font-size: clamp(2.25rem, 4.2vw, 3rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.12;
  margin: 0 0 1.1rem;
  color: #fff !important;
}
@media (min-width: 992px) {
  .ota-hero h1 {
    font-size: clamp(2.625rem, 3.6vw, 3rem);
  }
}
.ota-hero-lead {
  font-size: 18px;
  line-height: 1.62;
  color: #cbd5e1 !important;
  max-width: 38rem;
  margin: 0 0 1.65rem;
  font-weight: 500;
}
.ota-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-bottom: 0.5rem;
}
.ota-btn-white {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.8rem 1.35rem;
  border-radius: 10px;
  font-weight: 700;
  font-size: 16px;
  background: #fff !important;
  color: var(--ota-navy) !important;
  border: none !important;
  text-decoration: none !important;
  box-shadow: var(--ota-shadow);
}
.ota-btn-white:hover {
  background: #f8fafc !important;
  color: var(--ota-navy) !important;
}
.ota-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.8rem 1.35rem;
  border-radius: 10px;
  font-weight: 700;
  font-size: 16px;
  background: rgba(255, 255, 255, 0.1) !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  text-decoration: none !important;
}
.ota-btn-ghost:hover {
  background: rgba(255, 255, 255, 0.18) !important;
  color: #fff !important;
}
.ota-hero-help-hint {
  margin: 0.85rem 0 0;
  font-size: 14px;
  color: rgba(226, 232, 240, 0.88);
  font-weight: 500;
}
.ota-hero-help-hint a {
  color: #fff !important;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ota-hero-help-hint a:hover {
  color: #e0f2fe !important;
}
.ota-hero-badge {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.35rem 0.65rem;
  border-radius: 6px;
  background: color-mix(in srgb, var(--brand-accent, #f59e0b) 28%, transparent);
  color: color-mix(in srgb, var(--brand-accent, #fbbf24) 55%, #fff);
  margin-bottom: 1rem;
}

.ota-hero-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.25rem;
  align-items: start;
}
@media (min-width: 992px) {
  .ota-hero-grid {
    grid-template-columns: minmax(0, 1.12fr) minmax(520px, 600px);
    gap: 2.75rem;
    align-items: stretch;
  }
}

/* —— Hero banner + floating search (homepage) —— */
.ota-hero--banner {
  position: relative;
  z-index: 30;
  overflow: visible;
  min-height: clamp(480px, 62vh, 680px);
  padding: 2rem 0 1.75rem;
  background-color: var(--brand-secondary, #0c1929);
  background-image: var(--ota-hero-bg-image, none);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
.ota-hero--banner::before {
  display: none;
}
.ota-hero--banner.ota-hero--has-image {
  background-image: linear-gradient(135deg, rgba(12, 25, 41, 0.55), rgba(19, 42, 71, 0.65)),
    var(--ota-hero-bg-image);
}
.ota-hero-banner__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 20, 38, 0.45) 0%, rgba(8, 20, 38, 0.72) 100%);
  pointer-events: none;
  z-index: 0;
}
.ota-hero-inner--banner {
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
  align-items: stretch;
  position: relative;
  z-index: 1;
}
.ota-hero-copy {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
}
.ota-hero-inner--banner .ota-hero-copy h1 {
  width: max-content;
  max-width: 100%;
}
.ota-hero-search-wrap {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 40;
}
/* Homepage blocks after hero must not paint over search dropdowns */
.ota-page-home .ota-site-main > section:not(.ota-hero) {
  position: relative;
  z-index: 1;
}
@media (min-width: 992px) {
  .ota-hero--banner {
    padding: 3.5rem 0 2.75rem;
    min-height: clamp(560px, 68vh, 780px);
  }
  .ota-hero-inner--banner {
    gap: 2rem;
  }
}

/* —— Homepage hero flight search (rebuilt module) —— */
#ota-flight-search.ota-hero-search,
#ota-results-flight-search.ota-hero-search {
  position: relative;
  z-index: 40;
  scroll-margin-top: calc(var(--ota-fixed-header-height, 88px) + 12px);
  margin: 0;
  width: 100%;
}
.ota-hero-search-card {
  width: min(100%, 1180px);
  margin: 0 auto;
  background: #fff;
  border-radius: 18px;
  border: 1px solid rgba(226, 232, 240, 0.98);
  box-shadow: 0 22px 56px rgba(8, 20, 38, 0.22), 0 8px 20px rgba(15, 23, 42, 0.08);
  padding: 1.15rem 1.35rem 1.35rem;
  overflow: visible;
}
.ota-hero-search-alert {
  margin-bottom: 0.85rem;
  font-size: 14px;
}
.ota-hero-search-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
  margin-bottom: 1rem;
  padding-bottom: 0.8rem;
  border-bottom: 1px solid #e8edf3;
}
.ota-hero-search-toolbar__modes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 1.1rem;
}
.ota-hero-search-mode,
.ota-hero-search-direct {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: #334155;
  cursor: pointer;
  user-select: none;
}
.ota-hero-search-mode input,
.ota-hero-search-direct input {
  accent-color: var(--ota-blue, #2563eb);
}
.ota-hero-search-form {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.ota-hero-search-label {
  display: block;
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #64748b;
}
.ota-hero-search-label--sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
.ota-hero-search-field {
  position: relative;
  min-width: 0;
}
.ota-hero-search-input {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 52px;
  padding: 0 0.85rem;
  border: 1px solid #dbe3ee;
  border-radius: 12px;
  background: #fff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ota-hero-search-input:focus-within {
  border-color: var(--ota-blue, #2563eb);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}
.ota-hero-search-input > i {
  color: #94a3b8;
  font-size: 15px;
  flex-shrink: 0;
}
.ota-hero-search-input--date {
  position: relative;
  display: block;
  padding: 0;
}
.ota-hero-search-input--date .ota-hero-search-control--date {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  min-height: 52px;
  padding: 0.65rem 2.65rem 0.65rem 0.85rem;
  box-sizing: border-box;
}
.ota-hero-search-input--date .ota-hero-search-control--date::-webkit-calendar-picker-indicator {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
  cursor: pointer;
}
.ota-hero-search-input__icon {
  position: absolute;
  top: 50%;
  right: 0.85rem;
  transform: translateY(-50%);
  color: #94a3b8;
  font-size: 15px;
  line-height: 1;
  pointer-events: none;
  z-index: 0;
}
.ota-hero-search-control {
  width: 100%;
  min-width: 0;
  border: 0;
  background: transparent;
  font-size: 15px;
  font-weight: 600;
  color: #0f172a;
  outline: none;
  padding: 0;
}
.ota-hero-search-control--select {
  min-height: 44px;
  padding: 0 0.5rem;
  border: 1px solid #dbe3ee;
  border-radius: 10px;
  background: #fff;
}
.ota-hero-search-control--date {
  font-weight: 600;
  color: #0f172a;
  appearance: none;
  -webkit-appearance: none;
}
.ota-hero-search-field--date {
  min-width: 148px;
}
.ota-hero-search-swap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 52px;
  margin-top: 0;
  border: 1px solid #dbe3ee;
  border-radius: 12px;
  background: #f8fafc;
  color: var(--ota-blue, #2563eb);
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.ota-hero-search-swap:hover {
  background: #eff6ff;
  border-color: #93c5fd;
}
.ota-hero-search-card,
.ota-hero-search-form,
.ota-hero-search-panel {
  overflow: visible;
}
.ota-hero-search-row {
  display: grid;
  gap: 0.7rem 0.85rem;
  align-items: end;
  grid-template-columns: minmax(0, 1.3fr) 48px minmax(0, 1.3fr) minmax(140px, 0.95fr) minmax(200px, 1.05fr) minmax(152px, auto);
}
.ota-hero-search-row--return {
  grid-template-columns: minmax(0, 1.1fr) 48px minmax(0, 1.1fr) minmax(272px, 1.35fr) minmax(190px, 1fr) minmax(148px, auto);
}
@media (min-width: 992px) {
  .ota-hero-search-row > .ota-mobile-route-stack,
  .ota-hero-search-row--return > .ota-mobile-route-stack {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px minmax(0, 1fr);
    gap: 0.7rem 0.85rem;
    align-items: end;
    grid-column: 1 / span 3;
    width: 100%;
    min-width: 0;
  }

  .ota-hero-search-row > .ota-mobile-route-stack .ota-hero-search-field--from,
  .ota-hero-search-row--return > .ota-mobile-route-stack .ota-hero-search-field--from {
    grid-column: 1;
  }

  .ota-hero-search-row > .ota-mobile-route-stack .ota-hero-search-field--swap,
  .ota-hero-search-row--return > .ota-mobile-route-stack .ota-hero-search-field--swap {
    grid-column: 2;
    justify-self: center;
    align-self: end;
    margin: 0;
  }

  .ota-hero-search-row > .ota-mobile-route-stack .ota-hero-search-field--to,
  .ota-hero-search-row--return > .ota-mobile-route-stack .ota-hero-search-field--to {
    grid-column: 3;
  }
}
.ota-hero-search-dates {
  min-width: 0;
  align-self: end;
}
.ota-hero-search-date-label-short {
  display: none;
}
.ota-hero-search-dates--round .ota-hero-search-date-label-long {
  display: none;
}
.ota-hero-search-dates--round .ota-hero-search-date-label-short {
  display: inline;
}
.ota-hero-search-dates__pair {
  display: block;
}
.ota-hero-search-dates--round .ota-hero-search-dates__pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.5rem;
  align-items: end;
}
.ota-hero-search-dates--round .ota-hero-search-field--date {
  min-width: 0;
}
.ota-hero-search-dates {
  position: relative;
}
.ota-hero-search-dates .ota-hero-search-date-trigger[data-return-range-trigger="depart"],
.ota-hero-search-dates--round .ota-hero-search-date-trigger[data-return-range-trigger="return"] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  width: 100%;
  min-height: 52px;
  padding: 0.45rem 0.85rem;
  border: 1px solid #dbe3ee;
  border-radius: 12px;
  background: #fff;
  font-size: 14px;
  font-weight: 600;
  color: #0f172a;
  cursor: pointer;
  text-align: left;
}
.ota-hero-search-dates .ota-hero-search-date-trigger:focus-visible {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
}
.ota-hero-search-dates .ota-hero-search-date-trigger__label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ota-hero-search-dates .ota-hero-search-date-trigger .fa-calendar {
  color: #64748b;
  flex-shrink: 0;
}
.ota-hero-search-dates .ota-hero-search-input--native {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  pointer-events: none;
}
.ota-hero-search-dates .ota-hero-search-input--native .ota-hero-search-control--date,
.ota-hero-search-dates .ota-hero-search-date-native {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  pointer-events: none !important;
  opacity: 0 !important;
}
.ota-hero-search-panel[hidden] .ota-hero-search-date-native,
.ota-hero-search-field--return[hidden] .ota-hero-search-date-native {
  visibility: hidden !important;
  pointer-events: none !important;
}
.ota-hero-search-dates--picker-open {
  z-index: calc(var(--ota-z-date-popover) - 1);
}
/* Inline picker retired — calendar lives in .ota-date-modal (fixed overlay) */
.ota-return-range-picker:not(.ota-date-modal) {
  display: none !important;
}
.ota-date-modal[data-return-range-picker] {
  width: auto;
  max-width: none;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.ota-date-modal {
  position: fixed;
  inset: 0;
  z-index: -1;
  display: none;
  box-sizing: border-box;
  padding: 0;
  pointer-events: none;
  visibility: hidden;
}
.ota-date-modal[hidden],
.ota-date-modal:not(.ota-date-modal--open) {
  display: none !important;
  pointer-events: none !important;
  visibility: hidden !important;
  z-index: -1 !important;
}
.ota-date-modal[hidden] .ota-date-modal__backdrop,
.ota-date-modal[hidden] .ota-date-modal__dialog,
.ota-date-modal:not(.ota-date-modal--open) .ota-date-modal__backdrop,
.ota-date-modal:not(.ota-date-modal--open) .ota-date-modal__dialog {
  pointer-events: none !important;
  visibility: hidden !important;
}
.ota-date-modal--open,
.ota-date-modal:not([hidden]).ota-date-modal--open {
  z-index: var(--ota-z-date-popover);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(calc(var(--ota-fixed-header-height) + 12px), clamp(10px, 3vh, 20px)) 16px clamp(10px, 3vh, 20px);
  box-sizing: border-box;
  overflow: hidden;
  pointer-events: auto;
  visibility: visible;
}
.ota-date-modal--open:not(.ota-date-modal--sheet) .ota-date-modal__dialog {
  width: min(560px, calc(100vw - 32px));
  max-height: calc(100vh - var(--ota-fixed-header-height) - 24px);
  max-height: calc(100dvh - var(--ota-fixed-header-height) - 24px);
  overflow-y: auto;
}
.ota-date-modal--open:not(.ota-date-modal--sheet).ota-date-modal--one-way .ota-date-modal__dialog {
  width: min(320px, calc(100vw - 32px));
}
.ota-date-modal--open.ota-date-modal--popover,
.ota-date-modal:not([hidden]).ota-date-modal--open.ota-date-modal--popover {
  align-items: flex-start;
  justify-content: flex-start;
  padding: 0;
  overflow: visible;
  background: transparent;
}
.ota-date-modal--open.ota-date-modal--popover .ota-date-modal__backdrop,
.ota-date-modal--open.ota-date-modal--sheet .ota-date-modal__backdrop {
  background: rgba(15, 23, 42, 0.2);
}
.ota-date-modal--open.ota-date-modal--popover .ota-date-modal__backdrop {
  position: fixed;
}
.ota-date-modal--open.ota-date-modal--popover .ota-date-modal__dialog {
  position: fixed;
  margin: 0;
  max-height: calc(100vh - var(--ota-fixed-header-height) - 16px);
  max-height: calc(100dvh - var(--ota-fixed-header-height) - 16px);
  overflow: hidden;
  box-shadow: 0 12px 36px rgba(15, 23, 42, 0.2);
}
.ota-date-modal--open.ota-date-modal--popover.ota-date-modal--one-way .ota-date-modal__dialog {
  width: min(300px, calc(100vw - 24px));
}
.ota-date-modal--open.ota-date-modal--popover:not(.ota-date-modal--one-way) .ota-date-modal__dialog {
  width: min(520px, calc(100vw - 24px));
}
.ota-date-modal--open.ota-date-modal--sheet,
.ota-date-modal:not([hidden]).ota-date-modal--open.ota-date-modal--sheet {
  z-index: var(--ota-z-date-sheet);
  align-items: flex-end;
  justify-content: center;
  padding: 12px;
}
.ota-date-modal--open.ota-date-modal--sheet .ota-date-modal__dialog {
  width: calc(100vw - 24px);
  max-width: 480px;
  max-height: calc(100vh - 120px);
  max-height: calc(100dvh - 120px);
  border-radius: 18px 18px 12px 12px;
}
html.ota-date-modal-open,
html.ota-date-modal-open body {
  overflow: hidden;
}
html.ota-date-modal-open .ota-hero-search-wrap,
html.ota-date-modal-open #ota-flight-search.ota-hero-search,
html.ota-date-modal-open #ota-results-flight-search.ota-hero-search {
  z-index: calc(var(--ota-z-dropdown) - 1);
}
.ota-date-modal__backdrop {
  position: fixed;
  inset: 0;
  z-index: 0;
  background: rgba(15, 23, 42, 0.55);
  pointer-events: auto;
}
.ota-date-modal__dialog {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  flex: 0 1 auto;
  width: min(740px, calc(100vw - 32px));
  max-height: calc(100vh - 120px);
  max-height: calc(100dvh - 120px);
  min-height: 0;
  margin: 0;
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.22);
  border-radius: 16px;
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.18);
  overflow: hidden;
  box-sizing: border-box;
  pointer-events: auto;
}
.ota-date-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  flex: 0 0 auto;
  padding: 0.6rem 0.85rem 0.5rem;
  border-bottom: 1px solid rgba(148, 163, 184, 0.22);
}
.ota-date-modal__title {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.3;
  letter-spacing: 0.01em;
}
.ota-date-modal__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border: 0;
  border-radius: 8px;
  background: #f8fafc;
  color: #475569;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}
.ota-date-modal__close:hover {
  background: #eff6ff;
  color: #1d4ed8;
}
.ota-date-modal__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: 0.45rem 0.85rem 0.25rem;
  box-sizing: border-box;
}
.ota-date-picker-footer,
.ota-calendar-footer,
.date-picker-footer,
.flatpickr-footer,
.litepicker .container__footer,
.ota-date-modal__footer {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}
.ota-date-picker-popover:not(.is-positioned),
.ota-date-modal--popover .ota-date-modal__dialog:not(.is-positioned),
.flatpickr-calendar:not(.open) {
  opacity: 0;
  pointer-events: none;
}
.ota-date-modal .ota-return-range-picker,
.ota-date-modal .ota-return-range-picker__months {
  max-width: 100%;
}
/* Date modal — compact desktop/laptop viewport heights (not mobile layout) */
@media (max-height: 760px) {
  .ota-date-modal--open,
  .ota-date-modal:not([hidden]).ota-date-modal--open {
    align-items: center;
    padding: 8px 14px;
  }
  .ota-date-modal__dialog {
    width: min(800px, calc(100vw - 28px));
    max-height: 100%;
    max-height: min(100%, calc(100vh - 16px));
    max-height: min(100%, calc(100dvh - 16px));
  }
  .ota-date-modal__header {
    padding: 10px 18px;
  }
  .ota-date-modal__body {
    max-height: none;
    overflow-y: auto;
    overflow-x: hidden;
  }
  .ota-date-modal__footer {
    padding: 10px 18px;
  }
  .ota-date-modal .ota-return-range-picker,
  .ota-date-modal .ota-return-range-picker__months {
    max-width: 100%;
  }
  .ota-date-modal .ota-return-range-picker__months {
    gap: 0.65rem;
  }
  .ota-date-modal .ota-return-range-picker__month-title {
    margin-bottom: 6px;
  }
  .ota-date-modal .ota-return-range-picker__grid {
    gap: 6px;
  }
  .ota-date-modal .ota-return-range-picker__day {
    min-width: 30px;
    min-height: 30px;
    padding-top: 4px;
    padding-bottom: 4px;
    font-size: 0.78rem;
  }
  .ota-date-modal .ota-return-range-picker__pad {
    min-height: 30px;
  }
}
@media (max-height: 640px) {
  .ota-date-modal--open,
  .ota-date-modal:not([hidden]).ota-date-modal--open {
    align-items: flex-start;
    padding-top: 8px;
    padding-bottom: 8px;
    padding-left: 14px;
    padding-right: 14px;
  }
  .ota-date-modal__dialog {
    max-height: 100%;
    max-height: min(100%, calc(100vh - 16px));
    max-height: min(100%, calc(100dvh - 16px));
  }
  .ota-date-modal__body {
    overflow-y: auto;
    overflow-x: hidden;
  }
  .ota-date-modal__header {
    padding-top: 0.6rem;
    padding-bottom: 0.5rem;
  }
  .ota-date-modal__title {
    font-size: 0.98rem;
  }
  .ota-date-modal .ota-return-range-picker__day {
    min-width: 30px;
    min-height: 30px;
  }
}
.ota-return-range-picker__btn--apply:disabled,
.ota-return-range-picker__btn--apply.ota-return-range-picker__btn--apply-disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.ota-return-range-picker__nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.25rem;
}
.ota-return-range-picker__nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 8px;
  background: #f8fafc;
  color: #334155;
  cursor: pointer;
}
.ota-return-range-picker__nav-btn:hover {
  background: #eff6ff;
  border-color: #bfdbfe;
  color: #1d4ed8;
}
.ota-return-range-picker__hint {
  margin: 0;
  padding: 0.25rem 0.35rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #1d4ed8;
  line-height: 1.35;
}
.ota-return-range-picker__months {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  pointer-events: auto;
}
@media (min-width: 768px) {
  .ota-return-range-picker__months {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    box-sizing: border-box;
  }
  .ota-return-range-picker__grid {
    max-width: 100%;
  }
}
.ota-return-range-picker__month {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.ota-return-range-picker__month-title {
  margin: 0 0 0.35rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #0f172a;
  text-align: center;
  letter-spacing: 0.01em;
}
.ota-return-range-picker__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(28px, 1fr));
  gap: 3px;
  justify-content: center;
  pointer-events: auto;
}
.ota-return-range-picker__grid--head {
  margin-bottom: 0.25rem;
}
.ota-return-range-picker__dow {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 20px;
  font-size: 0.6875rem;
  font-weight: 700;
  text-align: center;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.ota-return-range-picker__pad {
  display: block;
  min-height: 28px;
}
.ota-return-range-picker__day {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  min-height: 28px;
  margin: 0 auto;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #0f172a;
  line-height: 1;
  cursor: pointer;
  pointer-events: auto;
  position: relative;
  z-index: 1;
  transition: background-color 0.12s ease, color 0.12s ease;
}
.ota-return-range-picker__day:hover:not(:disabled):not(.ota-return-range-picker__day--start):not(.ota-return-range-picker__day--end) {
  background: #eff6ff;
}
.ota-return-range-picker__day--disabled {
  color: #cbd5e1;
  cursor: not-allowed;
}
.ota-return-range-picker__day--start,
.ota-return-range-picker__day--end {
  position: relative;
  z-index: 2;
  background: #2563eb;
  color: #fff;
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.28);
}
.ota-return-range-picker__day--in-range {
  position: relative;
  z-index: 1;
  border-radius: 0;
  background: #e8f1ff;
  color: #1e40af;
}
.ota-return-range-picker__day--in-range::before {
  content: "";
  position: absolute;
  inset: 0 -4px;
  z-index: -1;
  background: #e8f1ff;
  pointer-events: none;
}
.ota-return-range-picker__footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 0.65rem;
  padding-top: 0.85rem;
  border-top: 1px solid #e2e8f0;
}
.ota-return-range-picker__btn {
  min-height: 2.25rem;
  padding: 0.4rem 0.85rem;
  border-radius: 8px;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}
.ota-return-range-picker__btn--ghost {
  border: 1px solid #e2e8f0;
  background: #fff;
  color: #475569;
}
.ota-return-range-picker__btn--ghost:hover {
  background: #f8fafc;
}
.ota-return-range-picker__btn--apply {
  border: 0;
  background: #2563eb;
  color: #fff;
}
.ota-return-range-picker__btn--apply:hover {
  background: #1d4ed8;
}
/* Date modal — desktop/tablet calendar layout (min-width only; mobile fullscreen-ready) */
@media (min-width: 768px) {
  .ota-date-modal__dialog {
    width: min(560px, calc(100vw - 32px));
  }
  .ota-date-modal .ota-return-range-picker__months {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    width: 100%;
    max-width: 100%;
  }
  .ota-date-modal--one-way .ota-return-range-picker__months {
    grid-template-columns: 1fr;
    gap: 0;
  }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
  .ota-date-modal__dialog {
    width: min(560px, calc(100vw - 32px));
  }
  .ota-date-modal:not(.ota-date-modal--one-way) .ota-return-range-picker__months {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
  }
  .ota-date-modal--one-way .ota-return-range-picker__months {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767.98px) {
  .ota-date-modal--open,
  .ota-date-modal:not([hidden]).ota-date-modal--open {
    display: block;
    padding: 0;
  }
  .ota-date-modal__dialog {
    width: 100%;
    height: 100%;
    max-height: 100vh;
    margin: 0;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }
  .ota-date-modal__body {
    max-height: calc(100vh - 140px);
  }
}
@media (max-width: 767px) {
  .ota-return-range-picker {
    width: min(760px, calc(100vw - 24px));
    padding: 18px 16px;
  }
  .ota-return-range-picker__grid {
    grid-template-columns: repeat(7, minmax(34px, 1fr));
    gap: 6px;
  }
}
.ota-hero-search-dates--need-return [data-return-date-part="return"] .ota-hero-search-input,
.ota-hero-search-dates--need-return [data-return-date-part="return"] .ota-hero-search-date-trigger {
  border-color: #93c5fd;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.14);
}
.ota-hero-search-dates--need-return [data-return-date-part="return"] .ota-hero-search-label {
  color: #1d4ed8;
}
.ota-hero-search-field--swap .ota-hero-search-swap {
  align-self: end;
}
.ota-hero-search-field--return[hidden] {
  display: none !important;
}
.ota-hero-search-field--pax {
  position: relative;
  align-self: end;
}
.ota-hero-search-field--pax[open] {
  z-index: var(--ota-z-dropdown);
}
.ota-hero-search-card:has(.ota-hero-search-field--pax[open]),
.ota-hero-search-panel:has(.ota-hero-search-field--pax[open]),
.ota-hero-search-wrap:has(.ota-hero-search-field--from:focus-within),
.ota-hero-search-wrap:has(.ota-hero-search-field--to:focus-within),
.ota-hero-search-wrap:has(.ota-hero-search-field--pax[open]),
.ota-hero-search-wrap:has(.ota-hero-search-dates--picker-open) {
  overflow: visible;
  z-index: calc(var(--ota-z-dropdown) - 1);
}
.ota-hero-search-field--submit {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-self: end;
}
.ota-hero-search-pax__trigger {
  list-style: none;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.15rem;
  min-height: 52px;
  padding: 0.45rem 0.85rem;
  border: 1px solid #dbe3ee;
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
}
.ota-hero-search-pax__trigger::-webkit-details-marker {
  display: none;
}
.ota-hero-search-pax__label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #64748b;
}
.ota-hero-search-pax__value {
  font-size: 14px;
  font-weight: 600;
  color: #0f172a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ota-hero-search-pax__panel {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  left: auto;
  z-index: var(--ota-z-dropdown);
  width: min(320px, calc(100vw - 2rem));
  min-width: 0;
  max-width: min(320px, calc(100vw - 2rem));
  max-height: min(420px, calc(100dvh - var(--ota-fixed-header-height, 88px) - 2rem));
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0.85rem;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.14);
  display: grid;
  gap: 0.65rem;
  box-sizing: border-box;
}
.ota-hero-search-field--pax.ota-hero-search-field--pax-flip .ota-hero-search-pax__panel {
  top: auto;
  bottom: calc(100% + 6px);
}
.ota-hero-search-pax__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
}
.ota-hero-search-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  min-height: 52px;
  margin-top: 0;
  padding: 0 1.35rem;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--brand-primary, var(--ota-blue, #2563eb)), var(--brand-primary-dark, #1d4ed8));
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 10px 24px color-mix(in srgb, var(--brand-primary, #2563eb) 35%, transparent);
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.ota-hero-search-submit:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px color-mix(in srgb, var(--brand-primary, #2563eb) 40%, transparent);
}
.ota-hero-search-segments {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.ota-hero-search-segment {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 0.55rem;
  align-items: end;
}
.ota-hero-search-segment__badge {
  width: 28px;
  height: 28px;
  margin-bottom: 0.35rem;
  border-radius: 50%;
  background: var(--ota-brand-accent-soft, #fff7ed);
  color: color-mix(in srgb, var(--brand-accent, #f59e0b) 82%, #1e293b);
  font-size: 12px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ota-hero-search-segment__grid {
  display: grid;
  gap: 0.65rem 0.75rem;
  align-items: end;
  grid-template-columns: minmax(0, 1.2fr) 48px minmax(0, 1.2fr) minmax(130px, 0.9fr);
}
.ota-hero-search-mc-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.85rem;
  margin-top: 0.5rem;
  padding-top: 0.85rem;
  border-top: 1px solid #e8edf3;
}
.ota-hero-search-mc-footer__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.ota-hero-search-mc-footer__book {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(148px, auto);
  align-items: end;
  gap: 0.85rem;
  margin-left: auto;
}
.ota-hero-search-mc-footer__book .ota-hero-search-field--submit {
  min-width: 148px;
}
.ota-hero-search-inline-status {
  margin: 0.65rem 0 0;
  font-size: 14px;
  font-weight: 600;
  color: #475569;
}
.ota-hero-search-inline-error {
  margin: 0.5rem 0 0;
  padding: 0.55rem 0.75rem;
  border-radius: 10px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #b91c1c;
  font-size: 14px;
}
.ota-hero-search-inline-error[hidden] {
  display: none !important;
}
.ota-hero-search--results {
  scroll-margin-top: calc(var(--ota-fixed-header-height, 88px) + 12px);
}
.ota-hero-search-btn-soft {
  min-height: 44px;
  padding: 0.45rem 0.95rem;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #f8fafc;
  color: #334155;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
.ota-hero-search-btn-soft:hover {
  border-color: var(--ota-blue, #2563eb);
  background: #eff6ff;
  color: var(--ota-blue, #2563eb);
}
.ota-hero-search .ota-from-wrap,
.ota-hero-search .ota-to-wrap {
  position: relative;
}
@media (min-width: 1100px) {
  .ota-hero-inner--banner {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.35fr);
    align-items: end;
    gap: 1.5rem 2rem;
  }
  .ota-hero-copy {
    grid-column: 1 / -1;
    align-self: center;
  }
  .ota-hero-search-wrap {
    grid-column: 1 / -1;
  }
}
@media (max-width: 1099.98px) {
  .ota-hero-search-row,
  .ota-hero-search-row--return {
    grid-template-columns: 1fr 48px 1fr;
  }
  .ota-hero-search-dates,
  .ota-hero-search-field--date,
  .ota-hero-search-field--pax,
  .ota-hero-search-field--submit {
    grid-column: 1 / -1;
  }
  .ota-hero-search-pax__panel {
    left: 0;
    right: 0;
    width: 100%;
    max-width: 100%;
  }
  .ota-hero-search-dates--round .ota-hero-search-dates__pair {
    grid-template-columns: 1fr 1fr;
  }
  .ota-hero-search-field--swap {
    grid-row: 1;
    grid-column: 2;
  }
  .ota-hero-search-segment__grid {
    grid-template-columns: 1fr 48px 1fr;
  }
  .ota-hero-search-segment__grid .ota-hero-search-field--date {
    grid-column: 1 / -1;
  }
  .ota-hero-search-mc-footer__book {
    width: 100%;
    margin-left: 0;
  }
  .ota-hero-search-mc-footer__book .ota-hero-search-field--submit {
    flex: 1 1 100%;
  }
}
@media (max-width: 767.98px) {
  .ota-hero--banner {
    min-height: auto;
    padding: 1.75rem 0 1.5rem;
  }
  .ota-hero-copy .ota-hero-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .ota-hero-search-card {
    padding: 1rem;
    border-radius: 14px;
  }
  .ota-hero-search-row,
  .ota-hero-search-row--return,
  .ota-hero-search-segment__grid {
    grid-template-columns: 1fr;
  }
  .ota-hero-search-field--swap {
    justify-self: center;
    grid-column: 1;
    grid-row: auto;
  }
  .ota-hero-search-swap,
  .ota-hero-search-submit {
    margin-top: 0;
    width: 100%;
  }
  .ota-hero-search-mc-footer {
    flex-direction: column;
    align-items: stretch;
  }
  .ota-hero-search-mc-footer__book {
    flex-direction: column;
  }
  .ota-hero-search-field--pax .ota-hero-search-pax__panel {
    position: static;
    top: auto;
    right: auto;
    left: auto;
    bottom: auto;
    width: 100%;
    max-width: 100%;
    max-height: none;
    margin-top: 0.35rem;
    box-shadow: none;
  }
  .ota-hero-search-field--pax.ota-hero-search-field--pax-flip .ota-hero-search-pax__panel {
    bottom: auto;
  }
}

.ota-search-widget-section {
  margin: 0;
}

/* —— Search card (flight widget — premium panel) —— */
.ota-search-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(15, 23, 42, 0.12), 0 2px 8px rgba(15, 23, 42, 0.06);
  border: 1px solid rgba(226, 232, 240, 0.95);
  padding: 0;
  /* visible: dropdowns in .ota-from-wrap / .ota-to-wrap extend below the card */
  overflow: visible;
  box-sizing: border-box;
  width: 100%;
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}
.ota-search-card--standalone {
  max-width: 640px;
}
@media (min-width: 992px) {
  .ota-search-card {
    max-width: 580px;
  }
  .ota-search-card--standalone {
    max-width: 640px;
  }
}
.ota-search-card-banner {
  position: relative;
  padding: 1.35rem 1.25rem 1.4rem;
  background: linear-gradient(145deg, #0c1929 0%, #132a47 48%, #1a3a5c 100%);
  color: #fff;
  border-radius: 16px 16px 0 0;
  overflow: hidden;
}
.ota-search-card-banner__decor {
  position: absolute;
  top: 0.65rem;
  right: 0.75rem;
  width: 5.5rem;
  height: 3.25rem;
  opacity: 0.22;
  pointer-events: none;
}
.ota-search-card-banner__decor::before {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px dashed rgba(255, 255, 255, 0.45);
  border-radius: 999px;
  transform: rotate(-12deg);
}
.ota-search-card-banner__decor-plane {
  position: absolute;
  right: 0.35rem;
  top: 0.45rem;
  font-size: 1.15rem;
  color: #fff;
  transform: rotate(45deg);
}
.ota-search-card-banner__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}
.ota-search-card-banner__mark {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--ota-blue) 0%, #1d4ed8 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(37, 99, 235, 0.45);
}
.ota-search-card-banner__text {
  min-width: 0;
  padding-top: 0.1rem;
}
.ota-search-card-banner__title {
  margin: 0 0 0.35rem;
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #fff;
  line-height: 1.2;
}
.ota-search-card-banner__subtitle {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.88);
  max-width: 20rem;
}
.ota-search-card-body {
  padding: 1.15rem 1.25rem 1.45rem;
  background: #fff;
}
.ota-search-card-footnote {
  margin: 0.75rem 0 0;
  font-size: 0.72rem;
  line-height: 1.45;
  color: #94a3b8;
  font-weight: 500;
  text-align: center;
}
.ota-search-card-alert {
  margin-bottom: 1rem;
}
.ota-search-card-alert__list {
  margin: 0.45rem 0 0;
  padding-left: 1.15rem;
}
.ota-field-hint {
  font-size: 12px !important;
  color: #64748b !important;
  line-height: 1.45 !important;
  font-weight: 500 !important;
  margin: 0.4rem 0 0 !important;
}
.ota-search-tabs {
  display: flex;
  align-items: stretch;
  margin: 0 0 1.2rem;
  padding: 0;
  border-bottom: 1px solid #e2e8f0;
  gap: 0;
  background: transparent;
  border-radius: 0;
}
.ota-search-tabs .ota-tab {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  margin: 0;
  padding: 0.65rem 0.35rem 0.75rem;
  font-size: 0.78rem;
  font-weight: 700;
  border: none;
  border-bottom: 3px solid transparent;
  border-radius: 0;
  background: transparent;
  color: #94a3b8;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
}
.ota-search-tabs .ota-tab:not(:last-child) {
  box-shadow: 1px 0 0 #e2e8f0;
}
.ota-search-tabs .ota-tab__icon {
  font-size: 1rem;
  line-height: 1;
  opacity: 0.85;
}
.ota-search-tabs .ota-tab__label {
  line-height: 1.2;
}
.ota-search-tabs .ota-tab-active {
  color: var(--ota-blue);
  border-bottom-color: var(--ota-blue);
  background: transparent;
  box-shadow: none;
}
.ota-search-tabs .ota-tab-active .ota-tab__icon {
  color: var(--ota-blue);
  opacity: 1;
}
.ota-search-tabs .ota-tab-muted {
  opacity: 0.55;
  cursor: not-allowed;
}
.ota-input-shell {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
}
.ota-input-shell__icon {
  position: absolute;
  left: 0.85rem;
  z-index: 2;
  color: #94a3b8;
  font-size: 0.95rem;
  pointer-events: none;
  line-height: 1;
}
.ota-input-shell__icon--end {
  left: auto;
  right: 0.75rem;
}
.ota-field--shell {
  position: relative;
  z-index: 1;
  flex: 1;
  min-width: 0;
}
.ota-field--date {
  min-height: 50px;
}
.ota-select-shell {
  min-width: 0;
}
.ota-select-shell__inner {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
}
.ota-select-shell__icon {
  position: absolute;
  left: 0.85rem;
  z-index: 2;
  color: #94a3b8;
  font-size: 0.95rem;
  pointer-events: none;
  line-height: 1;
}
.ota-select-shell__chev {
  position: absolute;
  right: 0.75rem;
  z-index: 2;
  color: #94a3b8;
  font-size: 1.1rem;
  line-height: 1;
  pointer-events: none;
}
.ota-field--select {
  position: relative;
  z-index: 1;
  flex: 1;
  min-width: 0;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  background-color: #fff;
}
.ota-search-dates {
  display: grid;
  gap: 1rem;
  margin-bottom: 1rem;
  grid-template-columns: 1fr;
}
@media (min-width: 576px) {
  .ota-search-dates--round {
    grid-template-columns: 1fr 1fr;
  }
}
.ota-search-pax-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem 1rem;
  margin-bottom: 1rem;
}
@media (max-width: 575px) {
  .ota-search-pax-grid {
    grid-template-columns: 1fr;
  }
}
.ota-flight-info-bar {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.65rem 0.85rem;
  margin-bottom: 1rem;
  border-radius: 10px;
  background: linear-gradient(180deg, #f0f9ff 0%, #e0f2fe 100%);
  border: 1px solid #bae6fd;
  font-size: 0.72rem;
  line-height: 1.45;
  font-weight: 600;
  color: #64748b;
}
.ota-flight-info-bar .fa {
  color: var(--ota-blue);
  margin-top: 0.1rem;
  flex-shrink: 0;
}
.ota-swap-wrap__label {
  visibility: hidden;
  height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.ota-search-card .ota-field-label {
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  color: #94a3b8;
  font-weight: 700;
  margin-bottom: 0.35rem;
}
.ota-field-label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ota-muted);
  margin-bottom: 0.4rem;
}
.ota-field {
  width: 100%;
  box-sizing: border-box;
  min-height: 50px;
  padding: 0.65rem 0.85rem;
  font-size: 15px;
  font-weight: 600;
  border: 1px solid var(--ota-border);
  border-radius: 10px;
  color: var(--ota-navy);
  transition: border-color 0.15s, box-shadow 0.15s;
}
/* Flight widget: padding after .ota-field so icons never overlap text */
.ota-search-card .ota-field.ota-field--shell:not(.ota-field--select):not(.ota-field--date) {
  padding: 0.65rem 0.85rem 0.65rem 2.65rem;
}
.ota-search-card .ota-field.ota-field--shell.ota-field--select {
  padding: 0.65rem 2.5rem 0.65rem 2.65rem;
}
.ota-search-card .ota-input-shell--date .ota-field--date {
  position: relative;
  z-index: 1;
  width: 100%;
  min-width: 0;
  padding: 0.65rem 2.65rem 0.65rem 0.85rem;
  min-height: 50px;
}
.ota-search-card .ota-input-shell--date .ota-field--date::-webkit-calendar-picker-indicator {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
}
.ota-field:focus {
  outline: none;
  border-color: var(--ota-blue);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}
.ota-from-to-row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0.75rem;
  align-items: end;
  margin-bottom: 1rem;
}
.ota-from-wrap,
.ota-to-wrap {
  position: relative;
}
.ota-airport-suggest {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  z-index: var(--ota-z-autocomplete);
  display: none;
  background: #fff;
  border: 1px solid var(--ota-border);
  border-radius: 12px;
  box-shadow: var(--ota-shadow);
  max-height: 320px;
  max-width: min(100%, calc(100vw - 2rem));
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
.ota-airport-item {
  width: 100%;
  text-align: left;
  border: 0;
  background: #fff;
  padding: 0.65rem 0.75rem;
  display: grid;
  grid-template-columns: 1.75rem minmax(0, 1fr);
  gap: 0.35rem 0.65rem;
  align-items: center;
  border-bottom: 1px solid #f1f5f9;
  min-height: 52px;
}
.ota-airport-item:last-child {
  border-bottom: 0;
}
.ota-airport-item:hover,
.ota-airport-item.is-active {
  background: #eff6ff;
}
.ota-airport-item-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ota-blue-dark);
  font-size: 0.95rem;
  line-height: 1;
}
.ota-airport-item-lines {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.ota-airport-item-main {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--ota-navy);
  line-height: 1.25;
}
.ota-airport-item-sub {
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--ota-muted);
  line-height: 1.25;
}
@media (max-width: 575px) {
  .ota-airport-suggest {
    max-height: 280px;
  }
  .ota-airport-item {
    min-height: 54px;
    padding: 0.7rem 0.75rem;
  }
  .ota-airport-item-main {
    font-size: 0.86rem;
  }
  .ota-airport-item-sub {
    font-size: 0.76rem;
  }
  .ota-from-to-row {
    grid-template-columns: 1fr;
  }
  .ota-swap-wrap {
    justify-self: center;
    order: 2;
  }
  .ota-from-wrap {
    order: 1;
  }
  .ota-to-wrap {
    order: 3;
  }
}
.ota-swap-btn {
  width: 48px;
  height: 48px;
  border-radius: 10px;
  border: 1px solid #cbd5e1;
  background: #fff;
  color: var(--ota-blue);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.15rem;
  font-size: 1.05rem;
  transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
}
.ota-swap-btn:hover {
  background: #eff6ff;
  border-color: var(--ota-blue);
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.15);
}
/* Legacy grid helper (multi-city / inline tools) */
.ota-search-grid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}
@media (max-width: 575px) {
  .ota-search-grid2 {
    grid-template-columns: 1fr;
  }
}
.ota-search-submit {
  width: 100%;
  box-sizing: border-box;
  margin-top: 0.15rem;
  min-height: 54px;
  padding: 0.9rem 1.2rem !important;
  border-radius: 14px !important;
  font-weight: 800 !important;
  font-size: 0.95rem !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border: none !important;
  background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 45%, #1e40af 100%) !important;
  color: #fff !important;
  box-shadow: 0 6px 20px rgba(37, 99, 235, 0.38);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
}
.ota-search-submit:hover {
  filter: brightness(1.05);
  color: #fff !important;
}

/* —— Feature cards —— */
.ota-section {
  padding: 3rem 0;
}
@media (min-width: 768px) {
  .ota-section {
    padding: 4.5rem 0;
  }
}
/* Homepage + inner pages: single width rail (explicit; do not rely on TourNest wrappers) */
.ota-container {
  max-width: var(--ota-max-content);
  margin: 0 auto;
  width: 100%;
  padding-left: var(--ota-gutter-x);
  padding-right: var(--ota-gutter-x);
  box-sizing: border-box;
}
.ota-container-narrow {
  max-width: 860px;
}
.ota-container-wide {
  max-width: 1280px;
}
.ota-container-form {
  max-width: 980px;
}
.ota-container .ota-features-grid,
.ota-container .ota-routes-grid {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}
.ota-container .ota-why-grid {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}
.ota-section-head {
  text-align: center;
  max-width: 38rem;
  margin: 0 auto 1.75rem;
}
.ota-section-head--compact {
  margin-bottom: 1.35rem;
}
body.ota-public.ota-page-home .ota-section-head {
  max-width: none;
  width: 100%;
}
.ota-section-kicker {
  font-size: 0.75rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: color-mix(in srgb, var(--brand-accent, #f59e0b) 88%, #1e293b);
  margin: 0 0 0.5rem;
  line-height: 1.5;
}
.ota-section-title {
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ota-navy);
  margin: 0 0 0.5rem;
  line-height: 1.2;
}
@media (min-width: 768px) {
  .ota-section-title {
    font-size: 2rem;
  }
}
.ota-section-desc {
  font-size: 0.875rem;
  color: var(--ota-muted);
  margin: 0;
  line-height: 1.5;
  font-weight: 400;
}

/* —— Primary / secondary buttons (public) —— */
.ota-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.7rem 1.25rem;
  border-radius: var(--ota-radius-sm);
  font-weight: 700;
  font-size: 16px;
  text-decoration: none !important;
  border: 1px solid transparent;
  transition: filter 0.15s, box-shadow 0.15s, border-color 0.15s, background 0.15s;
  cursor: pointer;
  text-align: center;
}
.ota-btn-primary {
  background: var(--brand-primary, var(--ota-blue));
  color: #fff !important;
  border-color: var(--brand-primary, var(--ota-blue));
  box-shadow: 0 2px 10px color-mix(in srgb, var(--brand-primary, #2563eb) 35%, transparent);
}
.ota-btn-primary:hover {
  background: #fff;
  color: var(--ota-text) !important;
  border-color: var(--ota-blue);
  filter: none;
}

/* —— Trust metrics band (below hero) —— */
.ota-metrics-band {
  background: #f1f5f9;
  border-bottom: 1px solid var(--ota-border);
  padding: 1.85rem 0 2.35rem;
}
.metric-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
@media (min-width: 768px) {
  .metric-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 1.15rem;
  }
}
.metric-card {
  background: var(--ota-card);
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius);
  box-shadow: var(--ota-shadow);
  padding: 1.45rem 1.15rem 1.4rem;
  min-height: 7.5rem;
  text-align: center;
  transition: box-shadow 0.2s, border-color 0.2s, transform 0.2s;
}
.metric-card:hover {
  border-color: var(--ota-brand-accent-line, #cbd5e1);
  box-shadow: 0 10px 28px -12px color-mix(in srgb, var(--brand-accent, #f59e0b) 22%, transparent);
  transform: translateY(-1px);
}
.metric-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  margin: 0 auto 0.65rem;
  border-radius: 10px;
  background: var(--ota-brand-accent-soft, #fff7ed);
  color: color-mix(in srgb, var(--brand-accent, #f59e0b) 82%, #1e293b);
  font-size: 1rem;
}
.metric-card-value {
  font-size: 1.7rem;
  font-weight: 800;
  color: var(--ota-navy);
  letter-spacing: -0.03em;
  line-height: 1.15;
  margin-bottom: 0.35rem;
}
.metric-card-label {
  font-size: 15px;
  font-weight: 600;
  color: var(--ota-muted);
  line-height: 1.45;
}
.metric-card-badge {
  display: inline-block;
  margin-left: 0.25rem;
  padding: 0.12rem 0.4rem;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  background: #f1f5f9;
  color: var(--ota-muted);
  vertical-align: middle;
}

/* —— Home: sample fares —— */
.ota-home-fares {
  background: #fff;
  border-top: 1px solid var(--ota-border);
}
.ota-home-fares-note {
  text-align: center;
  padding: 1.5rem;
  background: #f8fafc;
  border-radius: var(--ota-radius);
  border: 1px solid var(--ota-border);
}
.fare-preview-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.fare-preview-card {
  background: #fff;
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius);
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.08);
  padding: 1rem;
  display: grid;
  gap: 0.5rem;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}
.fare-preview-card:hover {
  border-color: var(--ota-brand-accent-line, #cbd5e1);
  box-shadow: 0 8px 22px color-mix(in srgb, var(--brand-accent, #f59e0b) 16%, transparent);
  transform: translateY(-2px);
}
.fare-preview-card h3 {
  margin: 0;
  font-size: 1rem;
  color: var(--ota-navy);
}
.fare-preview-route {
  margin: 0;
  font-weight: 800;
  color: color-mix(in srgb, var(--brand-accent, #f59e0b) 78%, #1e293b);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.78rem;
}
.fare-preview-meta {
  margin: 0;
  font-size: 0.86rem;
  color: var(--ota-muted);
}
.fare-preview-badge {
  display: inline-flex;
  width: fit-content;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
}
.fare-preview-badge--ok {
  background: #ecfdf5;
  color: #047857;
}
.fare-preview-badge--warn {
  background: var(--ota-brand-accent-soft, #fff7ed);
  color: color-mix(in srgb, var(--brand-accent, #f59e0b) 78%, #1c1917);
  border: 1px solid color-mix(in srgb, var(--brand-accent, #f59e0b) 35%, white);
}
.fare-preview-price {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 800;
}
@media (max-width: 1024px) {
  .fare-preview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .fare-preview-grid {
    grid-template-columns: 1fr;
  }
}
.ota-home-fares-note-text {
  margin: 0;
  color: var(--ota-muted);
  font-size: 0.95rem;
}
.fare-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.15rem;
}
@media (min-width: 576px) {
  .fare-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 992px) {
  .fare-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
  }
}
.fare-card {
  background: var(--ota-card);
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
  padding: 1.45rem 1.35rem 1.35rem;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  transition: box-shadow 0.2s, border-color 0.2s, transform 0.2s;
}
.fare-card:hover {
  border-color: var(--ota-brand-accent-line, rgba(37, 99, 235, 0.35));
  box-shadow: 0 10px 28px color-mix(in srgb, var(--brand-accent, #f59e0b) 14%, transparent);
  transform: translateY(-2px);
}
.fare-route {
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: color-mix(in srgb, var(--brand-accent, #f59e0b) 88%, #1e293b);
  margin-bottom: 0.5rem;
}
.fare-airline {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  margin-bottom: 0.85rem;
}
.fare-code {
  font-size: 0.75rem;
  font-weight: 800;
  color: var(--ota-navy);
  padding: 0.15rem 0.45rem;
  border-radius: 6px;
  background: #f1f5f9;
  border: 1px solid var(--ota-border);
}
.fare-airline-name {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ota-navy);
}
.fare-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-bottom: 1rem;
  font-size: 15px;
  color: var(--ota-muted);
}
.fare-bag .fa {
  color: color-mix(in srgb, var(--brand-accent, #f59e0b) 82%, #1e293b);
  margin-right: 0.25rem;
}
.ota-pill {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.ota-pill-ok {
  background: #ecfdf5;
  color: #047857;
  border: 1px solid #a7f3d0;
}
.ota-pill-warn {
  background: var(--ota-brand-accent-soft, #fff7ed);
  color: color-mix(in srgb, var(--brand-accent, #f59e0b) 78%, #1c1917);
  border: 1px solid color-mix(in srgb, var(--brand-accent, #f59e0b) 35%, white);
}
.fare-price {
  font-size: 1.55rem;
  font-weight: 800;
  color: var(--ota-navy);
  letter-spacing: -0.03em;
  margin-top: auto;
}
.fare-note {
  font-size: 14px;
  color: var(--ota-muted);
  margin: 0.35rem 0 1rem;
  line-height: 1.45;
}
.fare-btn {
  width: 100%;
  padding: 0.7rem 1rem !important;
}
.fares-more {
  text-align: center;
  margin: 1.35rem 0 0;
}
.fares-more-link {
  font-weight: 700;
  font-size: 16px;
  color: color-mix(in srgb, var(--brand-accent, #f59e0b) 88%, #1e293b) !important;
  text-decoration: none !important;
}
.fares-more-link:hover {
  text-decoration: underline !important;
  color: color-mix(in srgb, var(--brand-accent, #f59e0b) 70%, #0f172a) !important;
}

/* —— Home: admin preview strip —— */
.ota-home-admin-preview {
  background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
  border-top: 1px solid var(--ota-border);
}
.operator-preview-shell {
  background: var(--ota-card);
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius);
  box-shadow: var(--ota-shadow);
  padding: 1.5rem 1.25rem 1.35rem;
}
@media (min-width: 768px) {
  .operator-preview-shell {
    padding: 1.75rem 1.65rem 1.5rem;
  }
}
.operator-preview-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem;
}
@media (min-width: 576px) {
  .operator-preview-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
}
@media (min-width: 992px) {
  .operator-preview-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
  }
}
.operator-preview-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  padding: 1.2rem 1.1rem;
  background: #f8fafc;
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius-sm);
  text-decoration: none !important;
  color: var(--ota-navy) !important;
  transition: background 0.15s, border-color 0.15s, box-shadow 0.15s, transform 0.15s;
  min-height: 100%;
  cursor: pointer;
}
.operator-preview-card:hover {
  background: #fff;
  border-color: var(--ota-blue);
  box-shadow: 0 6px 20px -8px rgba(37, 99, 235, 0.25);
  color: var(--ota-navy) !important;
  transform: translateY(-1px);
}
.operator-preview-card-icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 10px;
  background: linear-gradient(135deg, #eff6ff, #e0f2fe);
  color: var(--ota-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  margin-bottom: 0.75rem;
  flex-shrink: 0;
}
.operator-preview-card-title {
  font-size: 1.0625rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-bottom: 0.35rem;
}
.operator-preview-card-desc {
  font-size: 14px;
  color: var(--ota-muted);
  line-height: 1.45;
  font-weight: 500;
}
.operator-preview-cta {
  margin-top: 1.25rem;
  padding-top: 1.15rem;
  border-top: 1px solid var(--ota-border);
  text-align: center;
}
.operator-preview-cta-btn {
  min-width: 14rem;
  padding: 0.75rem 1.5rem !important;
}

/* —— Home: white-label block —— */
.ota-home-whitelabel {
  background: #fff;
  border-top: 1px solid var(--ota-border);
}
.white-label-card {
  background: linear-gradient(135deg, #f8fafc 0%, #fff 55%);
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius);
  box-shadow: var(--ota-shadow);
  padding: 1.5rem 1.25rem;
}
@media (min-width: 768px) {
  .white-label-card {
    padding: 2rem 2rem;
  }
}
.white-label-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.75rem;
  align-items: start;
}
@media (min-width: 992px) {
  .white-label-layout {
    grid-template-columns: 1.05fr 0.95fr;
    gap: 2.5rem;
    align-items: stretch;
  }
}
.white-label-main .ota-section-kicker {
  text-align: left;
}
.white-label-title {
  font-size: 1.55rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--ota-navy);
  margin: 0 0 0.75rem;
  line-height: 1.2;
  text-align: left;
}
@media (min-width: 768px) {
  .white-label-title {
    font-size: 1.75rem;
  }
}
.white-label-lead {
  font-size: 17px;
  color: var(--ota-muted);
  line-height: 1.6;
  margin: 0 0 1.1rem;
  text-align: left;
  max-width: 36rem;
}
.white-label-bullets {
  list-style: none;
  margin: 0 0 1.35rem;
  padding: 0;
}
.white-label-bullets li {
  position: relative;
  padding-left: 1.65rem;
  margin-bottom: 0.65rem;
  font-size: 16px;
  font-weight: 600;
  color: var(--ota-text);
  line-height: 1.5;
}
.white-label-bullets li:last-child {
  margin-bottom: 0;
}
.white-label-bullets .fa {
  position: absolute;
  left: 0;
  top: 0.2rem;
  color: var(--ota-blue);
  font-size: 0.9rem;
}
.white-label-bullets code {
  font-size: 0.88em;
  background: #f1f5f9;
  padding: 0.1rem 0.35rem;
  border-radius: 4px;
  border: 1px solid var(--ota-border);
}
.white-label-cta {
  display: inline-flex;
}
.white-label-panel {
  background: var(--ota-card);
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius-sm);
  padding: 1.25rem 1.2rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
}
.white-label-panel-head {
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ota-muted);
  margin: 0 0 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--ota-border);
}
.white-label-dl {
  margin: 0;
  padding: 0;
}
.white-label-dl dt {
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ota-muted);
  margin: 0 0 0.2rem;
}
.white-label-dl dd {
  margin: 0 0 0.85rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ota-navy);
  line-height: 1.4;
  word-break: break-word;
}
.white-label-dl dd:last-of-type {
  margin-bottom: 0;
}
.white-label-dd-color {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.white-label-dd-muted {
  font-weight: 500 !important;
  color: var(--ota-muted) !important;
  font-size: 0.875rem !important;
  line-height: 1.5 !important;
}
.ota-color-swatch {
  display: inline-block;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 6px;
  border: 1px solid var(--ota-border);
  vertical-align: middle;
  flex-shrink: 0;
}
.ota-powered-by {
  margin: 1rem 0 0;
  font-size: 0.78rem;
  color: var(--ota-muted);
  font-weight: 600;
}
.ota-powered-by--panel {
  margin-top: 1.1rem;
  padding-top: 0.85rem;
  border-top: 1px dashed var(--ota-border);
  font-style: italic;
}

.ota-features-grid {
  max-width: var(--ota-max-content);
  margin-left: auto;
  margin-right: auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}
@media (max-width: 991px) {
  .ota-features-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 575px) {
  .ota-features-grid {
    grid-template-columns: 1fr;
  }
}
.ota-feature-card {
  background: #fff;
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius);
  padding: 1.55rem 1.35rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
  height: 100%;
  transition: box-shadow 0.2s, border-color 0.2s;
}
.ota-feature-card:hover {
  box-shadow: 0 10px 28px color-mix(in srgb, var(--brand-accent, #f59e0b) 14%, transparent);
  border-color: var(--ota-brand-accent-line, #cbd5e1);
}
.ota-feature-icon {
  width: 44px;
  height: 44px;
  border-radius: 11px;
  background: var(--ota-brand-accent-soft, #fff7ed);
  color: color-mix(in srgb, var(--brand-accent, #f59e0b) 82%, #1e293b);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  margin-bottom: 1rem;
}
.ota-feature-card h3 {
  font-size: 1.0625rem;
  font-weight: 800;
  margin: 0 0 0.5rem;
  color: var(--ota-navy);
  letter-spacing: -0.02em;
}
.ota-feature-card p {
  font-size: 15px;
  color: var(--ota-muted);
  line-height: 1.58;
  margin: 0;
}

/* —— Why section band —— */
.ota-why-section {
  background: #fff;
  border-top: 1px solid var(--ota-border);
}

/* —— Popular routes —— */
.ota-routes-section {
  background: #f1f5f9;
  border-top: 1px solid var(--ota-border);
  border-bottom: 1px solid var(--ota-border);
}
.ota-routes-grid {
  max-width: var(--ota-max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.85rem;
}
@media (max-width: 991px) {
  .ota-routes-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 575px) {
  .ota-routes-grid {
    grid-template-columns: 1fr;
  }
}
.ota-route-card {
  display: block;
  background: #fff;
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius-sm);
  padding: 1rem 1rem;
  text-decoration: none !important;
  color: var(--ota-navy) !important;
  transition: transform 0.15s, box-shadow 0.15s, border-color 0.15s;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.ota-route-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px color-mix(in srgb, var(--brand-accent, #f59e0b) 14%, transparent);
  border-color: var(--ota-brand-accent-line, var(--ota-blue));
  color: var(--ota-navy) !important;
}
.ota-route-card strong {
  display: block;
  font-size: 0.97rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.ota-route-card span {
  font-size: 0.8125rem;
  color: var(--ota-muted);
  font-weight: 600;
}

/* —— Why section —— */
.ota-why-grid {
  max-width: 980px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.05rem;
}
@media (max-width: 767px) {
  .ota-why-grid {
    grid-template-columns: 1fr;
  }
}
.ota-why-item {
  display: grid;
  gap: 0.9rem;
  align-items: flex-start;
  padding: 1.55rem;
  background: linear-gradient(140deg, #ffffff 0%, #f4f8ff 100%);
  border: 1px solid var(--brand-border);
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.ota-why-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 28px color-mix(in srgb, var(--brand-accent, #f59e0b) 16%, transparent);
  border-color: var(--ota-brand-accent-line, #c9d9f4);
}
.ota-why-item__icon {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--ota-brand-accent-soft, #fff7ed);
  color: color-mix(in srgb, var(--brand-accent, #f59e0b) 82%, #1e293b);
  font-size: 18px;
}
.ota-why-item h4 {
  margin: 0 0 0.25rem;
  font-size: 1rem;
  font-weight: 800;
  color: var(--ota-navy);
}
.ota-why-item p {
  margin: 0;
  font-size: 15px;
  color: #475569;
  line-height: 1.55;
}

/* —— Slim contact strip —— */
.ota-contact-strip {
  background: var(--brand-secondary, var(--ota-navy));
  color: #94a3b8;
  padding: 1rem;
  text-align: center;
  font-size: 0.9rem;
}
.ota-contact-strip a {
  color: #e2e8f0 !important;
  font-weight: 700;
  margin: 0 0.5rem;
  text-decoration: none !important;
}
.ota-contact-strip a:hover {
  color: color-mix(in srgb, var(--brand-accent, #fbbf24) 55%, #fff) !important;
}

/* —— Footer —— */
body.ota-public footer.footer-copyright {
  margin: 0;
  padding: 0 !important;
  background: linear-gradient(180deg, color-mix(in srgb, var(--brand-secondary, #0a101c) 92%, #000) 0%, var(--brand-secondary, #0c1424) 100%) !important;
  border: none !important;
  border-top: 1px solid rgba(148, 163, 184, 0.1) !important;
}
body.ota-public footer.footer-copyright .container {
  max-width: var(--ota-max-content) !important;
  width: 100% !important;
  padding: 0 !important;
}
body.ota-public footer.footer-copyright .footer-content,
body.ota-public footer.footer-copyright .foot-icons,
body.ota-public footer.footer-copyright hr {
  display: none !important;
}
.ota-footer {
  padding: 1.15rem 1rem 0.85rem;
  color: #94a3b8;
  font-size: 0.8125rem;
}
.ota-footer-inner {
  max-width: var(--ota-max-content);
  margin-left: auto;
  margin-right: auto;
}
.ota-footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 1rem 1.35rem;
  align-items: start;
  margin-bottom: 0.95rem;
}
@media (max-width: 991px) {
  .ota-footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.1rem 1.25rem;
  }
  .ota-footer-col--brand {
    grid-column: 1 / -1;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.1);
    margin-bottom: 0.15rem;
  }
}
@media (max-width: 479px) {
  .ota-footer-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .ota-footer-col--brand {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
  }
}
.ota-footer-heading {
  display: block;
  font-size: 0.625rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #64748b;
  margin: 0 0 0.45rem;
}
.ota-footer a {
  color: #cbd5e1 !important;
  text-decoration: none !important;
  display: block;
  margin-bottom: 0.22rem;
  font-weight: 500;
  font-size: 0.8125rem;
  line-height: 1.35;
}
.ota-footer a:hover {
  color: #fff !important;
}
.ota-footer-brand strong {
  color: #fff;
  font-size: 0.9375rem;
  font-weight: 800;
  display: block;
  letter-spacing: -0.01em;
  margin-bottom: 0.2rem;
}
.ota-footer-meta {
  display: block;
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 500;
}
.ota-footer-about {
  margin: 0.4rem 0 0;
  font-size: 0.75rem;
  line-height: 1.45;
  color: #64748b;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.ota-footer-account-inline {
  margin: 0.55rem 0 0;
  padding-top: 0.45rem;
  border-top: 1px solid rgba(148, 163, 184, 0.12);
  font-size: 0.75rem;
  line-height: 1.5;
  font-weight: 500;
}
.ota-footer-account-inline a {
  display: inline !important;
  margin-bottom: 0 !important;
  color: #94a3b8 !important;
  font-size: inherit !important;
}
.ota-footer-account-inline a:hover {
  color: #fff !important;
}
.ota-footer-dot {
  margin: 0 0.28rem;
  color: #475569;
  user-select: none;
}
.ota-footer-col--contact .ota-footer-heading {
  margin-bottom: 0.4rem;
}
.ota-footer-contact-note {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.72rem;
  color: #64748b;
  line-height: 1.35;
}
.ota-footer-bar {
  border-top: 1px solid rgba(148, 163, 184, 0.12);
  padding-top: 0.65rem;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  font-size: 0.6875rem;
  letter-spacing: 0.02em;
  color: #64748b;
}
.ota-footer-bar-copy {
  color: #64748b;
}
.ota-footer-bar-disclaimer {
  color: #475569;
  font-weight: 500;
}
body.ota-public #scroll-Top {
  display: none !important;
}

/* —— Inner pages: offset lives on .ota-site-main; keep light top padding only —— */
body.ota-public .ota-results-wrap,
body.ota-public .ota-book-wrap,
body.ota-public .ota-rev-wrap,
body.ota-public .ota-confirmation-wrap,
body.ota-public .travel-box,
body.ota-public .ota-results-pro,
body.ota-public .ota-flight-detail-wrap {
  margin-top: 0 !important;
  padding-top: 0.5rem;
}
body.ota-public .ota-flight-search-wrap {
  padding-bottom: 3rem;
}
body.ota-public .ota-flight-search-wrap .ota-section-head {
  margin-bottom: 1.15rem;
}
body.ota-public .ota-flight-detail-wrap {
  padding-bottom: 4rem;
}

/* Booking checkout (passenger / review) — keep markup in Blade; styles live here */
body.ota-public .ota-book-wrap {
  padding-bottom: 5rem;
  background: #f1f5f9;
  min-height: 72vh;
}

body.ota-public .ota-checkout-page {
  padding-bottom: 4rem;
}
body.ota-public .ota-checkout-page-head {
  max-width: 42rem;
  margin-bottom: 1.75rem;
  scroll-margin-top: calc(var(--ota-fixed-header-height, 7.5rem) + 0.75rem);
}
body.ota-public .ota-checkout-page-head--flush {
  max-width: none;
}
body.ota-public .ota-fare-session-timer {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin: 0 0 1.25rem;
  padding: 0.85rem 1rem;
  border-radius: var(--ota-radius);
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  color: #1e3a8a;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
body.ota-public .ota-fare-session-timer__active,
body.ota-public .ota-fare-session-timer__expired {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  width: 100%;
}
body.ota-public .ota-fare-session-timer__icon {
  flex: 0 0 auto;
  width: 1.75rem;
  height: 1.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #dbeafe;
  color: #1d4ed8;
  font-size: 0.95rem;
}
body.ota-public .ota-fare-session-timer__icon--warn {
  background: #fef3c7;
  color: #b45309;
}
body.ota-public .ota-fare-session-timer__copy {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
  min-width: 0;
}
body.ota-public .ota-fare-session-timer__label {
  font-size: 0.875rem;
  font-weight: 600;
  color: #1e40af;
}
body.ota-public .ota-fare-session-timer__time {
  font-size: 1.125rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
  color: #1d4ed8;
}
body.ota-public .ota-fare-session-timer__expired-text {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.45;
  font-weight: 600;
  color: #92400e;
}
body.ota-public .ota-fare-session-timer--urgent {
  border-color: #fcd34d;
  background: #fffbeb;
}
body.ota-public .ota-fare-session-timer--urgent .ota-fare-session-timer__time {
  color: #b45309;
}
body.ota-public .ota-fare-session-timer--expired {
  border-color: #fcd34d;
  background: #fffbeb;
}
body.ota-public .ota-checkout-stepper {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 0.7rem;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #1d4ed8;
  background: #dbeafe;
  border: 1px solid #bfdbfe;
}
body.ota-public .ota-checkout-stepper span {
  color: #64748b;
  font-weight: 700;
}
body.ota-public .ota-flow-badge {
  display: inline-flex;
  align-items: center;
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #1d4ed8;
  background: #dbeafe;
  border: 1px solid #93c5fd;
  border-radius: 999px;
  padding: 0.22rem 0.55rem;
}
body.ota-public .ota-checkout-accounts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}
@media (max-width: 600px) {
  body.ota-public .ota-checkout-accounts {
    grid-template-columns: 1fr;
  }
}
body.ota-public .ota-checkout-account-card {
  position: relative;
  background: #fff;
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius);
  padding: 1.35rem 1.15rem 1.15rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
}
body.ota-public .ota-checkout-account-card .ota-badge-coming {
  top: 0.75rem;
  right: 0.75rem;
}
body.ota-public .ota-checkout-account-card__title {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--ota-navy);
}
body.ota-public .ota-checkout-account-card__text {
  margin: 0 0 0.85rem;
  font-size: 0.875rem;
  line-height: 1.45;
  color: #64748b;
}
body.ota-public .ota-checkout-card--choice {
  margin-bottom: 1rem;
}
body.ota-public .ota-checkout-choices {
  margin: 0;
  padding: 0;
}
body.ota-public .ota-checkout-choices__item {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--ota-border);
}
body.ota-public .ota-checkout-choices__item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
body.ota-public .ota-checkout-choices__badge {
  flex-shrink: 0;
  width: 2rem;
  text-align: center;
  color: var(--ota-muted);
  padding-top: 0.15rem;
}
body.ota-public .ota-checkbox-label {
  cursor: pointer;
  font-weight: 600;
  font-size: 0.95rem;
}
body.ota-public .ota-btn-account {
  display: inline-block;
  width: 100%;
  text-align: center;
  padding: 0.55rem 0.85rem;
  font-weight: 700;
  font-size: 0.9rem;
  border-radius: 10px;
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  color: #475569;
  cursor: not-allowed;
}
body.ota-public .ota-btn-account:disabled {
  opacity: 1;
  background: #e2e8f0;
  border-color: #cbd5e1;
  color: #475569;
}
body.ota-public a.ota-btn-account--secondary {
  cursor: pointer;
  text-decoration: none;
  color: var(--ota-navy);
  background: #fff;
  border-color: #cbd5e1;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}
body.ota-public a.ota-btn-account--secondary:hover {
  border-color: #94a3b8;
  background: #f8fafc;
  color: var(--ota-navy);
}
body.ota-public .ota-checkout-review-hint {
  margin: 1rem 0 0.75rem;
  line-height: 1.45;
}
body.ota-public .ota-checkout-wa--subtle {
  background: #f8fafc;
  border-style: dashed;
  box-shadow: none;
}
body.ota-public .ota-checkout-wa--subtle .ota-btn-wa {
  font-weight: 700;
  background: #22c55e !important;
  border-color: #16a34a !important;
  opacity: 0.95;
}
body.ota-public .ota-review-aside-stack .ota-checkout-form .ota-checkout-card {
  margin-bottom: 1rem;
}
body.ota-public .ota-review-total-hero {
  margin: 0 0 1rem;
  padding: 1rem 1.1rem;
  border-radius: var(--ota-radius-sm);
  background: linear-gradient(135deg, #eff6ff 0%, #f8fafc 100%);
  border: 1px solid rgba(37, 99, 235, 0.25);
  text-align: center;
}
body.ota-public .ota-review-total-hero__label {
  display: block;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #64748b;
  margin-bottom: 0.25rem;
}
body.ota-public .ota-review-total-hero__value {
  font-size: 1.85rem;
  font-weight: 800;
  color: var(--ota-navy);
  letter-spacing: -0.02em;
}
body.ota-public .ota-checkout-summary-route {
  margin: 0 0 0.25rem;
  font-size: 1.05rem;
  color: var(--ota-navy);
}
body.ota-public .ota-checkout-summary-airline {
  margin: 0;
  font-size: 0.92rem;
  color: #64748b;
}
body.ota-public .ota-checkout-pay-note {
  margin: 1rem 0 0;
  padding-top: 1rem;
  border-top: 1px solid var(--ota-border);
  font-size: 0.85rem;
  color: #64748b;
  line-height: 1.45;
}
body.ota-public .ota-checkout-pay-note .fa {
  margin-right: 0.35rem;
  color: #2563eb;
}
body.ota-public .ota-refund-pill {
  font-size: 0.7rem !important;
  font-weight: 700;
  margin-left: 0.35rem;
  vertical-align: middle;
}
body.ota-public .ota-direct-pill {
  font-size: 0.7rem !important;
  font-weight: 700;
}
/* Checkout summary: no inner scrollbar — full card scrolls with the page (A1/A2) */
body.ota-public .ota-checkout-page .ota-checkout-sticky-summary {
  max-height: none;
  overflow: visible;
}
body.ota-public .ota-checkout-page-kicker {
  margin: 0 0 0.35rem;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #64748b;
}
body.ota-public .ota-checkout-page-title {
  margin: 0 0 0.5rem;
  font-size: clamp(1.5rem, 2.5vw, 1.85rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--ota-navy);
}
body.ota-public .ota-checkout-page-lead {
  margin: 0;
  font-size: 1rem;
  line-height: 1.55;
  color: #475569;
}

body.ota-public .ota-checkout-grid {
  display: grid;
  grid-template-columns: minmax(0, 65%) minmax(260px, 35%);
  gap: 1.75rem;
  align-items: start;
}
@media (max-width: 991px) {
  body.ota-public .ota-checkout-grid {
    grid-template-columns: 1fr;
  }
  body.ota-public .ota-checkout-page .ota-checkout-aside {
    position: static !important;
    top: auto;
  }
}
body.ota-public .ota-checkout-main {
  min-width: 0;
}
body.ota-public .ota-checkout-page .ota-checkout-aside {
  position: sticky;
  top: calc(var(--ota-fixed-header-height, 7.5rem) + 0.75rem);
  align-self: start;
}

body.ota-public .ota-checkout-card {
  background: #fff;
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius);
  padding: 1.35rem 1.5rem;
  margin-bottom: 1rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}
body.ota-public .ota-checkout-card--section {
  border-left: 4px solid #dbeafe;
  padding-top: 1.15rem;
}
body.ota-public .ota-checkout-section-kicker {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #64748b;
}
body.ota-public .ota-checkout-card--accent {
  border-color: rgba(37, 99, 235, 0.22);
  box-shadow: 0 4px 20px -8px rgba(15, 23, 42, 0.12);
}
body.ota-public .ota-checkout-card--muted {
  background: #f8fafc;
}
body.ota-public .ota-checkout-card--soon {
  position: relative;
  padding-top: 2.25rem;
}
body.ota-public .ota-badge-coming {
  position: absolute;
  top: 1rem;
  right: 1rem;
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #64748b;
  background: #f1f5f9;
  border: 1px solid var(--ota-border);
  border-radius: 999px;
  padding: 0.2rem 0.55rem;
}
body.ota-public .ota-checkout-card__head {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}
body.ota-public .ota-checkout-card__icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: linear-gradient(145deg, #eff6ff, #dbeafe);
  border: 1px solid rgba(37, 99, 235, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #2563eb;
  font-size: 1.1rem;
}
body.ota-public .ota-checkout-card__title {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--ota-navy);
}
body.ota-public .ota-checkout-aside-title {
  margin: 0 0 0.75rem;
  font-size: 0.8rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #64748b;
}
body.ota-public .ota-checkout-card__text {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.5;
  color: #64748b;
}
body.ota-public .ota-checkout-section-title {
  margin: 0 0 0.35rem;
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--ota-navy);
}
body.ota-public .ota-checkout-section-hint {
  margin: 0 0 1.1rem;
  font-size: 0.875rem;
  color: #64748b;
}
body.ota-public .ota-checkout-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}
@media (max-width: 600px) {
  body.ota-public .ota-checkout-row-2 {
    grid-template-columns: 1fr;
  }
}

body.ota-public .ota-checkout-form .ota-form-group {
  margin-bottom: 1.1rem;
}
body.ota-public .ota-checkout-form .row > [class*="col-"] {
  min-width: 0;
}
body.ota-public .ota-checkout-form .ota-form-group .invalid-feedback.d-block {
  width: 100%;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
  margin-top: 0.35rem;
}
body.ota-public .ota-checkout-page .ota-checkout-card--choice-compact {
  padding: 0.85rem 1.1rem;
}
body.ota-public .ota-checkout-page .ota-checkout-choice-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  padding: 0.35rem 0;
}
body.ota-public .ota-checkout-page .ota-checkout-choice-row + .ota-checkout-choice-row {
  margin-top: 0.5rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--ota-border);
}
body.ota-public .ota-checkout-page .ota-checkout-choice-row__label {
  font-weight: 700;
  color: var(--ota-navy);
  font-size: 0.9rem;
}
body.ota-public .ota-checkout-page .auth-social-stack--inline {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
body.ota-public .ota-checkout-page .auth-social-btn--compact {
  padding: 0.35rem 0.65rem;
  font-size: 0.78rem;
}
body.ota-public .ota-checkout-page .ota-checkout-card--section-compact {
  padding: 0.9rem 1.1rem 0.35rem;
}
body.ota-public .ota-checkout-page .ota-checkout-form .ota-form-group {
  margin-bottom: 0.85rem;
}
body.ota-public .ota-checkout-page .ota-checkout-country-select {
  min-height: 44px;
  font-size: 0.92rem;
}
body.ota-public .ota-checkout-page .ota-checkout-phone-row {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 0.55rem;
  align-items: stretch;
}
body.ota-public .ota-checkout-page .ota-checkout-country-code-select {
  min-width: 96px;
  max-width: 96px;
  padding-left: 0.45rem;
  padding-right: 1.25rem;
  font-weight: 700;
  font-size: 0.88rem;
}
body.ota-public .ota-checkout-page .ota-checkout-phone-number {
  min-width: 0;
}
@media (max-width: 480px) {
  body.ota-public .ota-checkout-page .ota-checkout-phone-row {
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 0.45rem;
  }
  body.ota-public .ota-checkout-page .ota-checkout-country-code-select {
    min-width: 88px;
    max-width: 88px;
  }
}

/* Checkout Phase 2 — page polish, trip summary sidebar, account reveal */
body.ota-public .ota-checkout-page .ota-checkout-page-title {
  margin-bottom: 0;
  font-size: clamp(1.35rem, 2.5vw, 1.65rem);
  letter-spacing: -0.02em;
}
body.ota-public .ota-checkout-page .ota-checkout-page-head {
  margin-bottom: 1.25rem;
}
body.ota-public .ota-checkout-page .ota-checkout-travellers-heading {
  margin: 0 0 0.65rem;
  font-size: 1rem;
}
body.ota-public .ota-checkout-page .ota-checkout-travellers-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.5rem;
  height: 1.5rem;
  margin-left: 0.35rem;
  padding: 0 0.4rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 800;
  color: #1d4ed8;
  background: #eff6ff;
  vertical-align: middle;
}
body.ota-public .ota-checkout-page .ota-checkout-form-row {
  margin-bottom: 0;
}
body.ota-public .ota-checkout-page .ota-checkout-contact-card {
  margin-top: 0.25rem;
}
body.ota-public .ota-checkout-page .ota-checkout-contact-card .ota-checkout-section-title {
  margin-bottom: 0.85rem;
}
body.ota-public .ota-checkout-page .ota-checkout-account-panel {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #e2e8f0;
}
body.ota-public .ota-checkout-page .ota-checkout-account-toggle {
  font-size: 0.92rem;
}
body.ota-public .ota-checkout-page .ota-checkout-account-fields {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  margin-top: 0;
  padding-top: 0;
  pointer-events: none;
  transition:
    max-height 0.28s ease,
    opacity 0.2s ease,
    margin-top 0.28s ease,
    padding-top 0.28s ease;
}
body.ota-public .ota-checkout-page .ota-checkout-account-fields.is-open {
  max-height: 220px;
  opacity: 1;
  margin-top: 0.85rem;
  padding-top: 0.15rem;
  pointer-events: auto;
}
body.ota-public .ota-checkout-page .ota-checkout-field-hint {
  margin-top: 0.35rem;
  font-size: 0.8rem;
  line-height: 1.35;
  color: #64748b;
}
body.ota-public .ota-checkout-page .ota-checkout-field-hint.is-error {
  color: #b91c1c;
  font-weight: 600;
}
body.ota-public .ota-checkout-page .ota-passenger-card__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
body.ota-public .ota-checkout-page .ota-passenger-card__index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  margin-right: 0.45rem;
  border-radius: 8px;
  font-size: 0.75rem;
  font-weight: 800;
  color: #1e40af;
  background: #dbeafe;
}
body.ota-public .ota-checkout-page .ota-passenger-card__badge {
  display: inline-block;
  margin-left: 0.4rem;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #1d4ed8;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
}
body.ota-public .ota-checkout-page .ota-passenger-card__chevron {
  width: 0.55rem;
  height: 0.55rem;
  border-right: 2px solid #64748b;
  border-bottom: 2px solid #64748b;
  transform: rotate(45deg);
  transition: transform 0.15s ease;
  flex-shrink: 0;
}
body.ota-public .ota-checkout-page .ota-passenger-card[open] .ota-passenger-card__chevron {
  transform: rotate(-135deg);
  margin-top: 0.2rem;
}
body.ota-public .ota-checkout-page .ota-passenger-card__body {
  padding-top: 0.35rem;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-summary {
  padding: 1rem 1.05rem;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-summary__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-summary__pill {
  flex-shrink: 0;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #1e40af;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-summary__route {
  margin: 0 0 0.85rem;
  font-size: 1.02rem;
  font-weight: 800;
  color: var(--ota-navy);
  line-height: 1.3;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-summary__legs {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-bottom: 0.85rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid rgba(148, 163, 184, 0.35);
}
body.ota-public .ota-checkout-page .ota-checkout-trip-leg {
  padding: 0.65rem 0.7rem;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(148, 163, 184, 0.25);
}
body.ota-public .ota-checkout-page .ota-checkout-trip-leg__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.25rem;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-leg__label {
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #475569;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-leg__meta {
  font-size: 0.72rem;
  font-weight: 600;
  color: #64748b;
  text-align: right;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-leg__route {
  margin: 0 0 0.35rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: #334155;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-leg__times {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.35rem;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--ota-navy);
}
body.ota-public .ota-checkout-page .ota-checkout-trip-leg__dash {
  color: #94a3b8;
  font-weight: 600;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-leg__offset {
  font-size: 0.72rem;
  font-weight: 700;
  font-style: normal;
  color: #64748b;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-leg__dates {
  margin: 0.2rem 0 0;
  font-size: 0.78rem;
  color: #64748b;
}
body.ota-public .ota-checkout-page .ota-checkout-split-summary {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  margin-bottom: 0.5rem;
}
body.ota-public .ota-checkout-page .ota-checkout-split-summary__leg {
  padding: 0.45rem 0.55rem;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.68);
  border: 1px solid rgba(148, 163, 184, 0.22);
}
body.ota-public .ota-checkout-page .ota-checkout-split-summary__leg-title,
body.ota-public .ota-checkout-page .ota-checkout-split-summary__totals-title {
  margin: 0 0 0.2rem;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748b;
}
body.ota-public .ota-checkout-page .ota-checkout-split-summary__route {
  margin: 0 0 0.1rem;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--ota-navy);
}
body.ota-public .ota-checkout-page .ota-checkout-split-summary__schedule,
body.ota-public .ota-checkout-page .ota-checkout-split-summary__date,
body.ota-public .ota-checkout-page .ota-checkout-split-summary__meta {
  margin: 0 0 0.12rem;
  font-size: 0.75rem;
  line-height: 1.35;
  color: #64748b;
}
body.ota-public .ota-checkout-page .ota-checkout-split-summary__times {
  display: flex;
  align-items: baseline;
  gap: 0.3rem;
  margin: 0 0 0.12rem;
  font-size: 0.8rem;
  font-weight: 700;
  color: #334155;
}
body.ota-public .ota-checkout-page .ota-checkout-split-summary__dash {
  color: #94a3b8;
  font-weight: 500;
}
body.ota-public .ota-checkout-page .ota-checkout-split-summary__fare-lines {
  margin: 0.25rem 0 0;
  display: grid;
  gap: 0.12rem;
}
body.ota-public .ota-checkout-page .ota-checkout-split-summary__fare-line {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.75rem;
  line-height: 1.35;
}
body.ota-public .ota-checkout-page .ota-checkout-split-summary__fare-line dt {
  margin: 0;
  font-weight: 600;
  color: #64748b;
}
body.ota-public .ota-checkout-page .ota-checkout-split-summary__fare-line dd {
  margin: 0;
  font-weight: 600;
  color: #334155;
  text-align: right;
}
body.ota-public .ota-checkout-page .ota-checkout-split-summary__totals {
  padding-top: 0.45rem;
  border-top: 1px solid rgba(148, 163, 184, 0.28);
}
body.ota-public .ota-checkout-page .ota-checkout-split-summary__total-row {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.75rem;
  line-height: 1.35;
  margin-bottom: 0.15rem;
  color: #475569;
}
body.ota-public .ota-checkout-page .ota-checkout-split-summary__total-row strong {
  font-weight: 700;
  color: #334155;
}
body.ota-public .ota-checkout-page .ota-checkout-split-summary__total-row--grand {
  margin-top: 0.15rem;
  padding-top: 0.25rem;
  border-top: 1px dashed rgba(148, 163, 184, 0.35);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--ota-navy);
}
body.ota-public .ota-checkout-page .ota-checkout-trip-summary__carrier {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 0.65rem;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-summary__logo {
  width: 28px;
  height: 28px;
  object-fit: contain;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-summary__airline {
  font-size: 0.88rem;
  font-weight: 800;
  color: var(--ota-navy);
}
body.ota-public .ota-checkout-page .ota-checkout-trip-summary__flight-no {
  font-size: 0.78rem;
  color: #64748b;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-summary__tags {
  list-style: none;
  margin: 0 0 0.85rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  font-size: 0.78rem;
  color: #475569;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-summary__tags li {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
body.ota-public .ota-checkout-page .ota-checkout-tag {
  display: inline-block;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  color: #64748b;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
}
body.ota-public .ota-checkout-page .ota-checkout-tag--ok {
  color: #166534;
  background: #ecfdf5;
  border-color: #bbf7d0;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-summary__fare {
  padding-top: 0.75rem;
  border-top: 1px solid rgba(148, 163, 184, 0.35);
}
body.ota-public .ota-checkout-page .ota-checkout-trip-summary__fare-title {
  margin: 0 0 0.5rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #64748b;
}
body.ota-public .ota-checkout-page .ota-fare-dl--compact .ota-fare-dl__row {
  padding: 0.28rem 0;
  font-size: 0.84rem;
}
body.ota-public .ota-checkout-page .ota-fare-dl--compact .ota-fare-dl__row--total {
  margin-top: 0.25rem;
  padding-top: 0.45rem;
  border-top: 1px dashed rgba(148, 163, 184, 0.45);
}
body.ota-public .ota-checkout-page .ota-fare-dl--compact .ota-fare-dl__row--total dd {
  font-size: 1.1rem;
}
body.ota-public .ota-checkout-page .ota-checkout-pay-note {
  margin: 0.75rem 0 0;
  font-size: 0.78rem;
  color: #64748b;
}

/* Checkout Phase 2/3 — access panel, traveller grids, sidebar blocks */
body.ota-public .ota-checkout-page .ota-checkout-main > .ota-checkout-access-card,
body.ota-public .ota-checkout-page .ota-checkout-form > .ota-passenger-card,
body.ota-public .ota-checkout-page .ota-checkout-form > .ota-checkout-contact-card {
  margin-bottom: 0.75rem;
}
body.ota-public .ota-checkout-page .ota-checkout-access-card {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0;
  padding: 0;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
  overflow: hidden;
}
body.ota-public .ota-checkout-page .ota-checkout-access-card--signed-in {
  padding: 0.85rem 1rem;
  font-size: 0.9rem;
  color: #334155;
  background: #f0f9ff;
  border-color: #bae6fd;
}
body.ota-public .ota-checkout-page .ota-checkout-access-card__guest {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex: 1 1 220px;
  min-width: 0;
  padding: 0.85rem 1rem;
  background: linear-gradient(135deg, #eff6ff 0%, #f8fafc 100%);
  border-right: 1px solid #e2e8f0;
}
body.ota-public .ota-checkout-page .ota-checkout-access-card__guest-icon {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: #2563eb;
  color: #fff;
  font-size: 1rem;
}
body.ota-public .ota-checkout-page .ota-checkout-access-card__guest-copy {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
body.ota-public .ota-checkout-page .ota-checkout-access-card__guest-title {
  font-size: 0.92rem;
  font-weight: 800;
  color: var(--ota-navy);
}
body.ota-public .ota-checkout-page .ota-checkout-access-card__guest-sub {
  font-size: 0.78rem;
  color: #64748b;
  line-height: 1.35;
}
body.ota-public .ota-checkout-page .ota-checkout-access-card__default-pill {
  flex-shrink: 0;
  margin-left: auto;
  padding: 0.18rem 0.5rem;
  border-radius: 999px;
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #1d4ed8;
  background: #fff;
  border: 1px solid #93c5fd;
}
body.ota-public .ota-checkout-page .ota-checkout-access-card__divider {
  display: none;
}
body.ota-public .ota-checkout-page .ota-checkout-access-card__account {
  flex: 1 1 200px;
  min-width: 0;
  padding: 0.85rem 1rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.5rem;
}
body.ota-public .ota-checkout-page .ota-checkout-access-card__account-label {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: #64748b;
}
body.ota-public .ota-checkout-page .ota-checkout-access-card__account-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.55rem;
}
body.ota-public .ota-checkout-page .ota-checkout-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.42rem 0.9rem;
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--ota-navy);
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  text-decoration: none;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: border-color 0.15s ease, background 0.15s ease;
}
body.ota-public .ota-checkout-page .ota-checkout-btn-secondary:hover {
  border-color: #94a3b8;
  background: #f8fafc;
  color: var(--ota-navy);
  text-decoration: none;
}
body.ota-public .ota-checkout-page .ota-checkout-access-card__social {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
body.ota-public .ota-checkout-page .ota-checkout-social-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.65rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: #334155;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  text-decoration: none;
  transition: background 0.15s ease, border-color 0.15s ease;
}
body.ota-public .ota-checkout-page .ota-checkout-social-pill:hover {
  background: #fff;
  border-color: #cbd5e1;
  color: #0f172a;
  text-decoration: none;
}
body.ota-public .ota-checkout-page .ota-checkout-social-pill--facebook {
  color: #1d4ed8;
}
body.ota-public .ota-checkout-page .ota-pax-section {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #f1f5f9;
}
body.ota-public .ota-checkout-page .ota-pax-section:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}
body.ota-public .ota-checkout-page .ota-pax-section--doc-type {
  margin-bottom: 0.65rem;
  padding-bottom: 0.65rem;
}
body.ota-public .ota-checkout-page .ota-pax-section__title {
  margin: 0 0 0.65rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #64748b;
}
body.ota-public .ota-checkout-page .ota-pax-grid {
  display: grid;
  gap: 0.65rem 0.75rem;
  align-items: start;
}
body.ota-public .ota-checkout-page .ota-pax-grid--identity {
  grid-template-columns:
    100px
    minmax(120px, 1fr)
    minmax(9ch, 9ch)
    minmax(0, 1fr)
    minmax(0, 1.5fr);
}
body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field {
  min-width: 0;
}
body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field--title {
  grid-column: 1;
}
body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field--fname {
  grid-column: 2 / 4;
}
body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field--lname {
  grid-column: 4 / 6;
}
body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field--dob {
  grid-column: 1 / 3;
  width: min(220px, 100%);
  max-width: min(220px, 100%);
  justify-self: start;
}
body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field--gender {
  grid-column: 3;
  width: 9ch;
  max-width: 9ch;
  justify-self: start;
}
body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field--nationality {
  grid-column: 4 / 6;
  min-width: min(300px, 100%);
  justify-self: stretch;
}
body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field--dob .ota-input,
body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field--gender .ota-input,
body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field--nationality .ota-input {
  width: 100%;
  max-width: 100%;
}
body.ota-public .ota-checkout-page .ota-pax-doc-type-switch {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  padding: 0.2rem;
  border-radius: 10px;
  background: #f1f5f9;
}
body.ota-public .ota-checkout-page .ota-pax-doc-type-switch__option {
  position: relative;
  margin: 0;
}
body.ota-public .ota-checkout-page .ota-pax-doc-type-switch__option input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
body.ota-public .ota-checkout-page .ota-pax-doc-type-switch__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.1rem;
  padding: 0.35rem 0.8rem;
  border-radius: 8px;
  font-size: 0.84rem;
  font-weight: 600;
  color: #475569;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
body.ota-public .ota-checkout-page .ota-pax-doc-type-switch__option input:checked + .ota-pax-doc-type-switch__label {
  background: #fff;
  color: #0f172a;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12);
}
body.ota-public .ota-checkout-page .ota-pax-doc-type-switch__option input:focus-visible + .ota-pax-doc-type-switch__label {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
}
body.ota-public .ota-checkout-page .ota-pax-grid--passport {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
body.ota-public .ota-checkout-page .ota-pax-grid--residence,
body.ota-public .ota-checkout-page .ota-pax-grid--contact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
body.ota-public .ota-checkout-page .ota-pax-grid--doc-type,
body.ota-public .ota-checkout-page .ota-pax-grid--national-id {
  grid-template-columns: minmax(0, 1fr);
}
body.ota-public .ota-checkout-page .ota-pax-field .ota-form-group {
  margin-bottom: 0;
}
body.ota-public .ota-checkout-page .ota-pax-lead-select {
  margin-top: 0.25rem;
  padding-top: 0.75rem;
  border-top: 1px dashed #e2e8f0;
}
body.ota-public .ota-checkout-page .ota-passenger-card__body {
  padding: 0.25rem 0 0.15rem;
}
body.ota-public .ota-checkout-page .ota-checkout-account-toggle {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  cursor: pointer;
  margin: 0;
  font-size: 0.92rem;
  font-weight: 600;
  color: #334155;
}
body.ota-public .ota-checkout-page .ota-checkout-account-toggle input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
body.ota-public .ota-checkout-page .ota-checkout-account-toggle__box {
  flex-shrink: 0;
  width: 1.15rem;
  height: 1.15rem;
  margin-top: 0.12rem;
  border-radius: 4px;
  border: 2px solid #cbd5e1;
  background: #fff;
  transition: border-color 0.15s ease, background 0.15s ease;
}
body.ota-public .ota-checkout-page .ota-checkout-account-toggle input:checked + .ota-checkout-account-toggle__box {
  background: #2563eb;
  border-color: #2563eb;
  box-shadow: inset 0 0 0 2px #fff;
}
body.ota-public .ota-checkout-page .ota-checkout-account-toggle__text em {
  font-style: normal;
  font-weight: 500;
  color: #94a3b8;
}
body.ota-public .ota-checkout-page .ota-checkout-sidebar-block {
  margin-bottom: 0.85rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid rgba(148, 163, 184, 0.3);
}
body.ota-public .ota-checkout-page .ota-checkout-sidebar-block:last-of-type {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
body.ota-public .ota-checkout-page .ota-checkout-sidebar-block__title {
  margin: 0 0 0.55rem;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #64748b;
}
body.ota-public .ota-checkout-page .ota-checkout-sidebar-block--fare .ota-checkout-trip-summary__fare {
  padding-top: 0;
  border-top: none;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-summary__legs {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}
body.ota-public .ota-checkout-page .ota-checkout-trip-summary__tags {
  margin-bottom: 0;
}
@media (max-width: 767px) {
  body.ota-public .ota-checkout-page .ota-checkout-access-card {
    flex-direction: column;
  }
  body.ota-public .ota-checkout-page .ota-checkout-access-card__guest {
    border-right: none;
    border-bottom: 1px solid #e2e8f0;
  }
  body.ota-public .ota-checkout-page .ota-pax-grid--identity {
    grid-template-columns: 110px minmax(0, 1fr);
  }
  body.ota-public .ota-checkout-page .ota-pax-field--title {
    grid-column: 1;
  }
  body.ota-public .ota-checkout-page .ota-pax-field--fname {
    grid-column: 2;
    grid-row: 1;
  }
  body.ota-public .ota-checkout-page .ota-pax-field--lname {
    grid-column: 1 / -1;
  }
  body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field--fname {
    grid-column: 2;
    grid-row: 1;
  }
  body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field--lname {
    grid-column: 1 / -1;
  }
  body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field--dob {
    grid-column: 1;
    width: auto;
    max-width: 100%;
    justify-self: stretch;
  }
  body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field--gender {
    grid-column: 2;
    width: auto;
    max-width: 100%;
    justify-self: stretch;
  }
  body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field--nationality {
    grid-column: 1 / -1;
    min-width: 0;
    justify-self: stretch;
  }
  body.ota-public .ota-checkout-page .ota-pax-grid--passport,
  body.ota-public .ota-checkout-page .ota-pax-grid--residence,
  body.ota-public .ota-checkout-page .ota-pax-grid--contact {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 480px) {
  body.ota-public .ota-checkout-page .ota-pax-grid--identity {
    grid-template-columns: 1fr;
  }
  body.ota-public .ota-checkout-page .ota-pax-field--title,
  body.ota-public .ota-checkout-page .ota-pax-field--fname,
  body.ota-public .ota-checkout-page .ota-pax-field--lname,
  body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field--dob,
  body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field--gender,
  body.ota-public .ota-checkout-page .ota-pax-grid--identity .ota-pax-field--nationality {
    grid-column: 1;
  }
}

body.ota-public .ota-passenger-card {
  overflow: hidden;
}
body.ota-public .ota-passenger-card__summary {
  list-style: none;
  cursor: pointer;
  margin: -1.15rem -1.5rem 1rem;
  padding: 0.95rem 1.25rem;
  background: #f8fafc;
  border-bottom: 1px solid var(--ota-border);
}
body.ota-public .ota-passenger-card__summary::-webkit-details-marker {
  display: none;
}
body.ota-public .ota-passenger-card__title {
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--ota-navy);
}
body.ota-public .ota-passenger-card__body {
  padding-top: 0.2rem;
}
body.ota-public .ota-label {
  display: block;
  margin-bottom: 0.4rem;
  font-size: 0.8rem;
  font-weight: 700;
  color: #334155;
}
body.ota-public select.ota-input,
body.ota-public input.ota-input,
body.ota-public textarea.ota-input {
  min-height: 48px;
  border-radius: 10px;
  border-color: #cbd5e1;
  box-shadow: none;
  font-size: 15px;
  padding: 0.55rem 0.85rem;
}
body.ota-public select.ota-input:focus,
body.ota-public input.ota-input:focus,
body.ota-public textarea.ota-input:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18);
}

body.ota-public .ota-btn-ghost {
  margin-top: 0.75rem;
  display: inline-block;
  padding: 0.45rem 0.9rem;
  font-size: 0.8rem;
  font-weight: 700;
  color: #64748b;
  background: #f8fafc;
  border: 1px solid var(--ota-border);
  border-radius: 8px;
}
body.ota-public .ota-btn-ghost:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

body.ota-public .ota-btn-primary-lg {
  margin-top: 0.25rem;
  min-height: 50px;
  font-weight: 800;
  font-size: 1rem;
  letter-spacing: 0.01em;
  border-radius: 12px;
  background: #2563eb !important;
  border-color: #2563eb !important;
  color: #fff !important;
  box-shadow: 0 4px 14px -4px rgba(37, 99, 235, 0.55);
  white-space: normal;
  line-height: 1.25;
  padding-top: 0.65rem;
  padding-bottom: 0.65rem;
  overflow-wrap: anywhere;
}
body.ota-public .ota-btn-primary-lg:hover,
body.ota-public .ota-btn-primary-lg:focus {
  background: #fff !important;
  border-color: #2563eb !important;
  color: #0f172a !important;
}

body.ota-public .ota-checkout-flight-compact__line {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}
body.ota-public .ota-checkout-flight-compact__airline {
  font-weight: 800;
  color: var(--ota-navy);
}
body.ota-public .ota-checkout-flight-compact__no {
  font-size: 0.9rem;
  font-weight: 700;
  color: #64748b;
}
body.ota-public .ota-checkout-flight-compact__route {
  margin: 0 0 0.65rem;
  font-size: 0.9rem;
  color: #64748b;
}
body.ota-public .ota-checkout-flight-compact__times {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--ota-navy);
  margin-bottom: 0.5rem;
}
body.ota-public .ota-checkout-flight-compact__dur {
  font-size: 0.75rem;
  font-weight: 700;
  color: #64748b;
}
body.ota-public .ota-checkout-flight-compact__meta {
  margin: 0;
  font-size: 0.8rem;
  color: #64748b;
}

body.ota-public .ota-checkout-fare-est {
  margin-top: 1.1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--ota-border);
}
body.ota-public .ota-checkout-fare-est__label {
  display: block;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #64748b;
  margin-bottom: 0.2rem;
}
body.ota-public .ota-checkout-fare-est__total {
  display: block;
  font-size: 1.65rem;
  font-weight: 800;
  color: var(--ota-navy);
  letter-spacing: -0.02em;
}
body.ota-public .ota-checkout-fare-est__sub {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.78rem;
  color: #94a3b8;
  line-height: 1.4;
}

body.ota-public .ota-checkout-note .ota-checkout-aside-title {
  color: var(--ota-navy);
}
body.ota-public .ota-btn-wa {
  margin-top: 0.75rem;
  min-height: 46px;
  font-weight: 800;
  border-radius: 10px;
  background: #25d366 !important;
  border-color: #1ebe57 !important;
  color: #fff !important;
}
body.ota-public .ota-btn-wa:hover {
  background: #1ebe57 !important;
  color: #fff !important;
}
body.ota-public .ota-checkout-wa-phone {
  margin: 0.65rem 0 0;
  text-align: center;
  font-size: 0.85rem;
  color: #64748b;
}

body.ota-public .ota-review-flight__brand {
  display: flex;
  gap: 1rem;
  align-items: center;
  margin-bottom: 1rem;
}
body.ota-public .ota-review-flight__brand .ota-airline-logo {
  margin: 0;
  flex-shrink: 0;
}
body.ota-public .ota-review-flight__route {
  font-size: 0.95rem;
  color: #64748b;
  margin-bottom: 0.75rem;
}
body.ota-public .ota-review-pax__name {
  margin: 0 0 0.65rem;
  font-size: 1.05rem;
  color: var(--ota-navy);
}
body.ota-public .ota-review-pax__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
body.ota-public .ota-review-pax__list li {
  margin-bottom: 0.4rem;
  font-size: 0.95rem;
  color: #475569;
}
body.ota-public .ota-review-pax__list li i {
  width: 1.25rem;
  color: #94a3b8;
}

body.ota-public .ota-fare-dl {
  margin: 0;
}
body.ota-public .ota-fare-dl__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid #f1f5f9;
  font-size: 0.9rem;
}
body.ota-public .ota-fare-dl__row dt {
  margin: 0;
  font-weight: 500;
  color: #64748b;
}
body.ota-public .ota-fare-dl__row dd {
  margin: 0;
  font-weight: 700;
  color: var(--ota-navy);
}
body.ota-public .ota-fare-dl__row--total {
  border-bottom: none;
  padding-top: 0.65rem;
  margin-top: 0.25rem;
  border-top: 2px solid #e2e8f0;
  font-size: 1.05rem;
}
body.ota-public .ota-fare-dl__row--total dt {
  font-weight: 800;
  color: var(--ota-navy);
}
body.ota-public .ota-fare-dl__row--total dd {
  font-size: 1.2rem;
  font-weight: 800;
}

body.ota-public .ota-method-card {
  display: block;
  position: relative;
  margin-bottom: 0.65rem;
  cursor: pointer;
}
body.ota-public .ota-method-card__input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: 0;
}
body.ota-public .ota-method-card__body {
  position: relative;
  display: block;
  border: 2px solid #e2e8f0;
  border-radius: 12px;
  padding: 0.95rem 1rem 0.95rem 2.6rem;
  background: #fafbfc;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
body.ota-public .ota-method-card__body::before {
  content: '';
  position: absolute;
  left: 0.85rem;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  border: 2px solid #cbd5e1;
  border-radius: 50%;
  background: #fff;
  margin-top: 0;
}
body.ota-public .ota-method-card__input:checked + .ota-method-card__body {
  border-color: #2563eb;
  background: #eff6ff;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}
body.ota-public .ota-method-card__input:checked + .ota-method-card__body::before {
  border-color: #2563eb;
  background: radial-gradient(circle, #2563eb 0%, #2563eb 45%, #fff 48%, #fff 100%);
}
body.ota-public .ota-method-card:focus-within .ota-method-card__body {
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18);
}
body.ota-public .ota-method-card__title {
  display: block;
  font-weight: 800;
  font-size: 0.92rem;
  color: var(--ota-navy);
}
body.ota-public .ota-method-card__hint {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.78rem;
  color: #64748b;
  line-height: 1.35;
}

/* Review booking page — scoped layout and cards */
body.ota-public .ota-review-page {
  padding-bottom: 4rem;
}
body.ota-public .ota-review-page > .ota-container {
  max-width: var(--ota-max-content);
}
body.ota-public .ota-review-page .ota-checkout-page-head {
  max-width: 40rem;
  margin-bottom: 1.5rem;
}
body.ota-public .ota-review-page .ota-checkout-grid {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
  gap: 2rem;
}
@media (min-width: 1200px) {
  body.ota-public .ota-review-page .ota-checkout-grid {
    grid-template-columns: minmax(0, 1.4fr) minmax(320px, 400px);
  }
}
@media (max-width: 991px) {
  body.ota-public .ota-review-page .ota-checkout-grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
}
body.ota-public .ota-review-page .ota-checkout-card {
  padding: 1.5rem 1.65rem;
}
body.ota-public .ota-review-flight-card .ota-review-flight__header {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem 1.75rem;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 1.25rem;
  padding-bottom: 1.15rem;
  border-bottom: 1px solid #e2e8f0;
}
body.ota-public .ota-review-flight__route-block {
  flex: 1 1 220px;
  min-width: 0;
  text-align: right;
}
@media (max-width: 640px) {
  body.ota-public .ota-review-flight__route-block {
    text-align: left;
    flex-basis: 100%;
  }
}
body.ota-public .ota-review-flight__trip-type {
  display: inline-block;
  margin: 0 0 0.35rem;
  padding: 0.2rem 0.55rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #1d4ed8;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
}
body.ota-public .ota-review-flight__route {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ota-navy);
  line-height: 1.35;
}
body.ota-public .ota-review-flight__date {
  margin: 0.25rem 0 0;
  font-size: 0.9rem;
  color: #64748b;
}
body.ota-public .ota-review-flight__legs {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
body.ota-public .ota-review-flight__leg {
  padding: 1rem 1.1rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: var(--ota-radius-sm);
}
body.ota-public .ota-review-flight__leg-label {
  margin: 0 0 0.75rem;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #64748b;
}
body.ota-public .ota-review-flight__leg-grid {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0.75rem 1rem;
  align-items: center;
}
@media (max-width: 520px) {
  body.ota-public .ota-review-flight__leg-grid {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
  body.ota-public .ota-review-flight__leg-mid {
    order: 3;
  }
}
body.ota-public .ota-review-flight__leg-point {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}
body.ota-public .ota-review-flight__leg-point--end {
  text-align: right;
}
@media (max-width: 520px) {
  body.ota-public .ota-review-flight__leg-point--end {
    text-align: left;
  }
}
body.ota-public .ota-review-flight__leg-time {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--ota-navy);
  letter-spacing: -0.02em;
  line-height: 1.1;
}
body.ota-public .ota-review-flight__leg-airport {
  font-size: 0.95rem;
  font-weight: 700;
  color: #334155;
}
body.ota-public .ota-review-flight__leg-date {
  font-size: 0.85rem;
  color: #64748b;
}
body.ota-public .ota-review-flight__leg-mid {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  padding: 0 0.35rem;
  text-align: center;
}
@media (max-width: 520px) {
  body.ota-public .ota-review-flight__leg-mid {
    align-items: flex-start;
    text-align: left;
    padding: 0;
  }
}
body.ota-public .ota-review-flight__leg-duration {
  font-size: 0.85rem;
  font-weight: 700;
  color: #475569;
}
body.ota-public .ota-review-flight__leg-stops {
  font-size: 0.78rem;
  font-weight: 700;
  color: #64748b;
  padding: 0.15rem 0.5rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
}
body.ota-public .ota-review-flight__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.65rem;
  margin: 1.15rem 0 0;
  padding: 0;
  list-style: none;
}
body.ota-public .ota-review-flight__tags li {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.65rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: #475569;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
}
body.ota-public .ota-review-flight__tag--ok {
  color: #047857;
  background: #ecfdf5;
  border-color: #a7f3d0;
}
body.ota-public .ota-review-flight__tag--warn {
  color: #b45309;
  background: #fffbeb;
  border-color: #fde68a;
}
body.ota-public .ota-review-pax-summary {
  margin: 0 0 1rem;
  font-size: 0.9rem;
  color: #64748b;
}
body.ota-public .ota-review-pax-grid {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
body.ota-public .ota-review-pax-item {
  padding: 1rem 1.1rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: var(--ota-radius-sm);
}
body.ota-public .ota-review-pax-item__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.65rem;
  margin-bottom: 0.65rem;
}
body.ota-public .ota-review-pax-item__index {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}
body.ota-public .ota-review-pax-item__type {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--ota-navy);
}
body.ota-public .ota-review-pax-item__badge {
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #1d4ed8;
  background: #dbeafe;
  border-radius: 999px;
  padding: 0.15rem 0.45rem;
}
body.ota-public .ota-review-pax-dl {
  margin: 0;
}
body.ota-public .ota-review-pax-dl__row {
  display: grid;
  grid-template-columns: minmax(7rem, 9.5rem) minmax(0, 1fr);
  gap: 0.35rem 1rem;
  padding: 0.4rem 0;
  border-bottom: 1px solid #e2e8f0;
  font-size: 0.92rem;
}
body.ota-public .ota-review-pax-dl__row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
body.ota-public .ota-review-pax-dl__row dt {
  margin: 0;
  font-weight: 600;
  color: #64748b;
}
body.ota-public .ota-review-pax-dl__row dd {
  margin: 0;
  font-weight: 600;
  color: var(--ota-navy);
  word-break: break-word;
}
body.ota-public .ota-review-contact {
  padding: 1rem 1.1rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: var(--ota-radius-sm);
}
body.ota-public .ota-review-contact__title {
  margin: 0 0 0.65rem;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #64748b;
}
body.ota-public .ota-review-fare-card .ota-review-fare-dl {
  margin-bottom: 0.5rem;
}
body.ota-public .ota-review-page .ota-fare-dl__row--mix dt {
  font-weight: 700;
  color: var(--ota-navy);
}
body.ota-public .ota-review-page .ota-fare-dl__row--group dt {
  font-weight: 700;
  color: #475569;
}
body.ota-public .ota-review-fare-note {
  margin: 0.75rem 0 0;
  font-size: 0.8rem;
  line-height: 1.45;
  color: #94a3b8;
}
body.ota-public .ota-review-method-card .ota-checkout-section-hint {
  margin-bottom: 1rem;
}
body.ota-public .ota-review-method-list {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
body.ota-public .ota-review-page .ota-method-card {
  margin-bottom: 0;
}
body.ota-public .ota-review-page .ota-method-card__body {
  padding: 1rem 1rem 1rem 2.75rem;
}
body.ota-public .ota-review-page .ota-method-card__title {
  font-size: 0.95rem;
}
body.ota-public .ota-review-submit-btn {
  margin-top: 0.25rem;
}
body.ota-public .ota-review-submit-note {
  color: #64748b;
}

body.ota-public .ota-checkout-disclaimer {
  margin: 0.85rem 0 0;
  text-align: center;
  font-size: 0.8rem;
  color: #94a3b8;
}

body.ota-public .ota-rev-wrap {
  width: 100%;
  max-width: none;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 3rem;
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 2rem;
  background: #f1f5f9;
  min-height: 72vh;
  padding-top: 0.5rem;
}
body.ota-public .ota-rev-card {
  background: #fff;
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius);
  padding: 1.5rem;
  margin-bottom: 1rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
}
body.ota-public .ota-rev-h {
  font-weight: 800;
  font-size: 1.35rem;
  margin: 0 0 1rem;
  color: var(--ota-navy);
}

/* —— Booking confirmation (premium OTA) —— */
body.ota-public .ota-confirmation-page {
  padding-bottom: 4.5rem;
  background: #f1f5f9;
  min-height: 72vh;
}
body.ota-public .ota-confirm-hero-card {
  text-align: center;
  max-width: 44rem;
  margin: 0 auto 1.75rem;
  background: #fff;
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius);
  padding: 2rem 1.5rem 1.75rem;
  box-shadow: 0 4px 28px rgba(15, 23, 42, 0.08);
}
body.ota-public .ota-confirm-success-ring {
  width: 88px;
  height: 88px;
  margin: 0 auto 1.25rem;
  border-radius: 50%;
  background: linear-gradient(145deg, #ecfdf5, #d1fae5);
  border: 3px solid #34d399;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 40px -12px rgba(16, 185, 129, 0.45);
}
body.ota-public .ota-confirm-success-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #10b981;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
}
body.ota-public .ota-confirm-title {
  margin: 0 0 0.5rem;
  font-size: clamp(1.55rem, 3vw, 2rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--ota-navy);
}
body.ota-public .ota-confirm-sub {
  margin: 0 0 1.5rem;
  font-size: 1.05rem;
  line-height: 1.55;
  color: #64748b;
}
body.ota-public .ota-confirm-hero-meta,
body.ota-public .ota-confirm-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem 1rem;
}
body.ota-public .ota-confirm-ref {
  text-align: left;
  background: #fff;
  border: 1px solid var(--ota-border);
  border-radius: 12px;
  padding: 0.85rem 1.15rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}
body.ota-public .ota-confirm-ref__label {
  display: block;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #64748b;
  margin-bottom: 0.2rem;
}
body.ota-public .ota-confirm-ref__value--hero {
  font-size: clamp(1.5rem, 4vw, 2.15rem) !important;
  letter-spacing: -0.03em;
  font-weight: 800 !important;
}
body.ota-public .ota-confirm-ref__value {
  display: block;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--ota-navy);
  letter-spacing: 0.04em;
}
body.ota-public .ota-confirm-ref__hint {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.75rem;
  color: #94a3b8;
  max-width: 16rem;
}
body.ota-public .ota-confirm-status {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-radius: 999px;
  padding: 0.35rem 0.85rem;
  border: 1px solid transparent;
}
body.ota-public .ota-confirm-status--pending {
  color: #b45309;
  background: #fffbeb;
  border-color: #fcd34d;
}
body.ota-public .ota-confirm-status--review {
  color: #1d4ed8;
  background: #eff6ff;
  border-color: #bfdbfe;
}
body.ota-public .ota-confirm-status--confirmed {
  color: #047857;
  background: #ecfdf5;
  border-color: #6ee7b7;
}
body.ota-public .ota-confirm-hero-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  gap: 0.65rem 1rem;
  max-width: 28rem;
  margin: 1.15rem auto 0;
  padding: 0;
  text-align: left;
}
body.ota-public .ota-confirm-hero-facts__row {
  margin: 0;
}
body.ota-public .ota-confirm-hero-facts dt {
  margin: 0 0 0.15rem;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #64748b;
}
body.ota-public .ota-confirm-hero-facts dd {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--ota-navy);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}
body.ota-public .ota-confirm-hero-note {
  margin: 1rem auto 0;
  max-width: 36rem;
  padding: 0.75rem 1rem;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  color: #475569;
  font-size: 0.88rem;
  line-height: 1.5;
}
body.ota-public .ota-confirm-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 1.25rem;
  max-width: 52rem;
  margin: 0 auto 2rem;
}
@media (max-width: 767px) {
  body.ota-public .ota-confirm-grid {
    grid-template-columns: 1fr;
  }
}
body.ota-public .ota-confirm-card {
  background: #fff;
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius);
  padding: 1.25rem 1.35rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}
body.ota-public .ota-confirm-card--wide {
  grid-column: 1 / -1;
}
body.ota-public .ota-confirm-card__title {
  margin: 0 0 1rem;
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--ota-navy);
}
body.ota-public .ota-confirm-card__title .fa {
  margin-right: 0.45rem;
  color: #2563eb;
  opacity: 0.9;
}
body.ota-public .ota-confirm-card__text {
  margin: 0 0 0.35rem;
  color: var(--ota-navy);
}
body.ota-public .ota-confirm-card__muted {
  margin: 0;
  color: #64748b;
  font-size: 0.9rem;
}
body.ota-public .ota-confirm-card__muted--small {
  font-size: 0.82rem;
  margin-top: 0.65rem;
}
body.ota-public .ota-confirm-card__total {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--ota-navy);
  letter-spacing: -0.02em;
}
body.ota-public .ota-confirm-card__note {
  margin: 0;
  font-size: 0.88rem;
  color: #64748b;
  line-height: 1.45;
}
body.ota-public .ota-confirm-dl {
  margin: 0;
}
body.ota-public .ota-confirm-dl__row {
  display: grid;
  grid-template-columns: minmax(6.5rem, 38%) 1fr;
  gap: 0.35rem 0.75rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid #f1f5f9;
}
body.ota-public .ota-confirm-dl__row:last-child {
  border-bottom: 0;
}
body.ota-public .ota-confirm-dl dt {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 700;
  color: #64748b;
}
body.ota-public .ota-confirm-dl dd {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--ota-navy);
  word-break: break-word;
}
body.ota-public .ota-confirm-trip__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.65rem;
  margin-bottom: 0.65rem;
}
body.ota-public .ota-confirm-trip__brand {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
body.ota-public .ota-confirm-trip__logo {
  width: 32px;
  height: 32px;
  object-fit: contain;
}
body.ota-public .ota-confirm-trip__airline {
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--ota-navy);
}
body.ota-public .ota-confirm-trip__flight-no {
  font-size: 0.82rem;
  font-weight: 600;
  color: #64748b;
}
body.ota-public .ota-confirm-trip__pill {
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #1d4ed8;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  padding: 0.25rem 0.65rem;
}
body.ota-public .ota-confirm-trip__route {
  margin: 0 0 0.85rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--ota-navy);
}
body.ota-public .ota-confirm-trip__legs {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin-bottom: 1rem;
}
body.ota-public .ota-confirm-trip-leg {
  padding: 0.75rem 0.85rem;
  border-radius: 10px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}
body.ota-public .ota-confirm-trip-leg__head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.35rem;
  margin-bottom: 0.35rem;
}
body.ota-public .ota-confirm-trip-leg__label {
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748b;
}
body.ota-public .ota-confirm-trip-leg__meta {
  font-size: 0.78rem;
  font-weight: 600;
  color: #64748b;
}
body.ota-public .ota-confirm-trip-leg__route {
  margin: 0 0 0.35rem;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--ota-navy);
}
body.ota-public .ota-confirm-trip-leg__times {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem;
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--ota-navy);
}
body.ota-public .ota-confirm-trip-leg__dash {
  color: #94a3b8;
  font-weight: 600;
}
body.ota-public .ota-confirm-trip-leg__offset {
  font-style: normal;
  font-size: 0.78rem;
  font-weight: 600;
  color: #b45309;
}
body.ota-public .ota-confirm-trip-leg__dates {
  margin: 0.25rem 0 0;
  font-size: 0.82rem;
  color: #64748b;
}
body.ota-public .ota-confirm-trip__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.ota-public .ota-confirm-trip__tags li {
  font-size: 0.82rem;
  font-weight: 600;
  color: #475569;
}
body.ota-public .ota-confirm-tag {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border-radius: 6px;
  background: #f1f5f9;
  color: #475569;
  font-size: 0.78rem;
  font-weight: 700;
}
body.ota-public .ota-confirm-tag--ok {
  background: #ecfdf5;
  color: #047857;
}
body.ota-public .ota-confirm-pax-name {
  margin: 0 0 0.65rem;
  font-size: 1.05rem;
  color: var(--ota-navy);
}
body.ota-public .ota-confirm-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
body.ota-public .ota-confirm-list li {
  margin-bottom: 0.4rem;
  font-size: 0.92rem;
  color: #475569;
}
body.ota-public .ota-confirm-list__k {
  display: inline-block;
  min-width: 4.5rem;
  font-weight: 700;
  color: #64748b;
}
body.ota-public .ota-confirm-method {
  margin: 0 0 0.5rem;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--ota-navy);
}
body.ota-public .ota-confirm-steps {
  margin: 0;
  padding-left: 1.15rem;
  color: #475569;
  font-size: 0.9rem;
  line-height: 1.55;
}
body.ota-public .ota-confirm-steps li {
  margin-bottom: 0.45rem;
}
body.ota-public .ota-confirm-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.65rem 0.75rem;
  max-width: 52rem;
  margin: 0 auto;
}
body.ota-public .ota-confirm-btn-primary {
  min-height: 48px;
  font-weight: 800;
  border-radius: 12px;
  padding-left: 1.35rem;
  padding-right: 1.35rem;
}
body.ota-public .ota-confirm-btn-secondary,
body.ota-public .ota-confirm-btn-admin {
  min-height: 48px;
  font-weight: 700;
  border-radius: 12px;
  border-color: #cbd5e1;
  background: #fff;
  color: var(--ota-navy);
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
body.ota-public .ota-confirm-btn-admin {
  border-color: #94a3b8;
  background: #f8fafc;
}
body.ota-public .ota-confirm-btn-whatsapp .fa {
  color: #25d366;
  margin-right: 0.35rem;
}

/* —— Flight results (premium OTA) —— */
.ota-results-pro-head {
  position: relative;
  overflow: hidden;
  background: linear-gradient(125deg, #0b1530 0%, var(--ota-navy) 38%, #152a52 100%);
  color: #e2e8f0;
  padding: 1.65rem 0 4.35rem;
  margin-bottom: 0;
}
.ota-results-pro-head::before {
  content: "";
  position: absolute;
  top: -40%;
  right: -15%;
  width: 55%;
  height: 140%;
  background: radial-gradient(ellipse at center, rgba(96, 165, 250, 0.14) 0%, transparent 62%);
  pointer-events: none;
}
.ota-results-pro-head .container {
  position: relative;
  z-index: 1;
}
.ota-results-pro-head-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.1rem 1.5rem;
}
.ota-results-pro-head-main {
  flex: 1 1 16rem;
  min-width: 0;
}
.ota-results-pro-kicker {
  margin: 0 0 0.4rem;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(226, 232, 240, 0.72);
}
.ota-results-pro-kicker .fa {
  margin-right: 0.35rem;
  opacity: 0.85;
}
.ota-results-pro-title {
  margin: 0 0 0.4rem;
  font-size: clamp(1.55rem, 2.6vw, 1.95rem);
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.ota-results-pro-sub {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: #cbd5e1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.65rem;
  line-height: 1.35;
}
.ota-results-pro-pill {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
  background: rgba(59, 130, 246, 0.22);
  border: 1px solid rgba(147, 197, 253, 0.35);
  color: #dbeafe;
}
.ota-results-pro-body {
  padding-bottom: 2.5rem;
}
body.ota-public .ota-results-pro-body--pullup {
  position: relative;
  z-index: 2;
  margin-top: -2rem;
  padding-top: 0;
}
body.ota-public .ota-results-pro-body--wide {
  width: min(1320px, calc(100% - 18px));
  max-width: none;
}
body.ota-public .ota-results-widget-wide {
  position: relative;
  z-index: 25;
  margin-bottom: 1.25rem;
  overflow: visible;
}
body.ota-public .ota-results-pro-body--pullup .row {
  position: relative;
  z-index: 1;
}
body.ota-public .ota-results-widget-wide .ota-hero-search-card {
  width: 100%;
  max-width: none;
  margin: 0;
}
body.ota-public .ota-results-pro-body--pullup {
  overflow: visible;
}

/* Refine search card + horizontal toolbar */
body.ota-public .ota-results-refine-card {
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 16px;
  box-shadow: 0 14px 40px -18px rgba(15, 23, 42, 0.35), 0 4px 14px -6px rgba(15, 23, 42, 0.12);
  padding: 1.05rem 1.1rem 1.05rem;
  margin-bottom: 1.15rem;
}
body.ota-public .ota-results-inline-search__form {
  margin: 0;
}
body.ota-public .ota-results-inline-search__primary {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.5rem 0.55rem;
}
body.ota-public .ota-refine-field {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
  justify-content: flex-start;
}
body.ota-public .ota-refine-field--airport {
  position: relative;
  flex: 1 1 158px;
}
body.ota-public .ota-refine-field--trip {
  flex: 0 0 96px;
}
body.ota-public .ota-refine-field--trip .ota-refine-shell,
body.ota-public .ota-refine-field--cabin .ota-refine-shell {
  align-items: center;
}
body.ota-public .ota-refine-field--date {
  flex: 0 0 154px;
}
body.ota-public .ota-refine-field--cabin {
  flex: 0 0 136px;
}
body.ota-public .ota-refine-label {
  margin: 0;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #64748b;
  line-height: 1.2;
}
body.ota-public .ota-refine-shell {
  display: flex;
  align-items: stretch;
  gap: 0.35rem;
  min-height: 44px;
  height: 44px;
  padding: 0 0.45rem 0 0.4rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
}
body.ota-public .ota-refine-shell-icon {
  align-self: center;
  flex-shrink: 0;
  width: 1.1rem;
  text-align: center;
  color: #64748b;
  font-size: 0.95rem;
  opacity: 0.88;
}
body.ota-public .ota-refine-stack {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0.2rem 0;
}
body.ota-public .ota-refine-stack .ota-refine-control {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0.1rem 0.15rem !important;
  font-size: 0.88rem !important;
  font-weight: 800 !important;
  color: var(--ota-navy) !important;
  border-radius: 0 !important;
}
body.ota-public .ota-refine-shell .ota-refine-control:focus {
  outline: none;
}
body.ota-public .ota-refine-shell:focus-within {
  border-color: rgba(37, 99, 235, 0.45);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
  background: #fff;
}
body.ota-public .ota-refine-sub {
  display: block;
  font-size: 0.68rem;
  font-weight: 600;
  color: #64748b;
  line-height: 1.25;
  padding: 0 0.15rem 0.05rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
body.ota-public .ota-refine-shell--date {
  position: relative;
  align-items: center;
  min-width: 0;
  padding-right: 0.35rem;
}
body.ota-public .ota-refine-date-visual {
  position: relative;
  z-index: 1;
  flex: 1 1 auto;
  min-width: 0;
  padding: 0.15rem 0.1rem;
  pointer-events: none;
}
body.ota-public .ota-refine-date-main {
  display: block;
  font-size: 0.88rem;
  font-weight: 800;
  color: var(--ota-navy);
  line-height: 1.2;
}
body.ota-public .ota-refine-date-day {
  display: block;
  font-size: 0.68rem;
  font-weight: 600;
  color: #64748b;
  margin-top: 0.06rem;
}
body.ota-public .ota-refine-date-input {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  opacity: 0.01;
  cursor: pointer;
  z-index: 2;
  border: 0;
  padding: 0;
  margin: 0;
}
body.ota-public .ota-refine-shell--date .ota-refine-shell-icon {
  align-self: center;
}
body.ota-public .ota-refine-shell:not(.ota-refine-shell--date) .ota-refine-control {
  padding-top: 0.35rem !important;
  padding-bottom: 0.35rem !important;
}
body.ota-public .ota-refine-shell:not(.ota-refine-shell--date) select.ota-refine-control {
  appearance: auto;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  font-weight: 700 !important;
}
body.ota-public .ota-refine-pax {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 0.4rem;
}
body.ota-public .ota-refine-field--pax {
  flex: 0 0 92px;
}
body.ota-public .ota-refine-field--pax .ota-refine-shell {
  min-height: 44px;
  height: 44px;
  align-items: center;
}
body.ota-public .ota-refine-field--pax select.ota-refine-control {
  font-weight: 700 !important;
  text-align: center;
  padding-left: 0.2rem !important;
  padding-right: 1.2rem !important;
}
body.ota-public .ota-refine-hint {
  display: block;
  margin-top: 0.12rem;
  min-height: 1.1em;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #94a3b8;
  line-height: 1.1;
  white-space: nowrap;
}
body.ota-public .ota-refine-field--airport .ota-airport-suggest {
  z-index: 80;
}
body.ota-public .ota-results-inline-search__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-left: auto;
  align-self: flex-start;
  padding-top: 1.35rem;
}
body.ota-public .ota-results-inline-search__submit {
  font-weight: 700;
  border-radius: 10px;
  padding: 0.5rem 1.15rem;
  white-space: nowrap;
  box-shadow: 0 6px 18px -6px rgba(37, 99, 235, 0.55);
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
body.ota-public .ota-results-inline-search__submit .fa {
  margin-right: 0.4rem;
}
body.ota-public .ota-results-inline-search__status {
  font-size: 0.75rem;
  max-width: 11rem;
}
body.ota-public .ota-results-inline-search__error {
  margin: 0.55rem 0 0;
  padding: 0.45rem 0.65rem;
  font-size: 0.82rem;
  border-radius: 8px;
}
@media (min-width: 992px) {
  body.ota-public .ota-results-refine-card {
    padding: 1.1rem 1.2rem 1.15rem;
  }
  body.ota-public .ota-results-inline-search__primary {
    display: grid;
    grid-template-columns: 110px 1fr 1fr 160px;
    gap: 0.7rem 0.75rem;
    align-items: start;
  }
  body.ota-public .ota-refine-field--trip { grid-column: 1; grid-row: 1; }
  body.ota-public .ota-refine-field--from { grid-column: 2; grid-row: 1; }
  body.ota-public .ota-refine-field--to { grid-column: 3; grid-row: 1; }
  body.ota-public .ota-refine-field--date { grid-column: 4; grid-row: 1; }
  body.ota-public .ota-refine-field--return { grid-column: 1; grid-row: 2; }
  body.ota-public .ota-refine-field--cabin { grid-column: 2; grid-row: 2; }
  body.ota-public .ota-refine-pax { grid-column: 3; grid-row: 2; }
  body.ota-public .ota-results-inline-search__actions {
    grid-column: 4;
    grid-row: 2;
    margin-left: 0;
    width: 100%;
    justify-content: flex-end;
    align-self: end;
    padding-top: 0;
  }
  body.ota-public .ota-refine-pax {
    justify-content: stretch;
    gap: 0.55rem;
  }
  body.ota-public .ota-refine-field--pax {
    flex: 1 1 120px;
  }
}
@media (max-width: 1399px) {
  body.ota-public .ota-refine-field--airport {
    flex-basis: 144px;
  }
  body.ota-public .ota-refine-field--date {
    flex-basis: 140px;
  }
  body.ota-public .ota-refine-field--cabin {
    flex-basis: 126px;
  }
  body.ota-public .ota-refine-field--pax {
    flex-basis: 84px;
  }
}
@media (max-width: 1199px) {
  body.ota-public .ota-results-inline-search__primary {
    grid-template-columns: 100px 1fr 1fr;
  }
  body.ota-public .ota-refine-field--from {
    grid-column: 2;
    grid-row: 1;
  }
  body.ota-public .ota-refine-field--to {
    grid-column: 3;
    grid-row: 1;
  }
  body.ota-public .ota-refine-field--date {
    grid-column: 1;
    grid-row: 2;
  }
  body.ota-public .ota-refine-field--return {
    grid-column: 2;
    grid-row: 2;
  }
  body.ota-public .ota-refine-field--cabin {
    grid-column: 3;
    grid-row: 2;
  }
  body.ota-public .ota-refine-pax {
    grid-column: 1 / span 2;
    grid-row: 3;
  }
  body.ota-public .ota-results-inline-search__actions {
    grid-column: 3;
    grid-row: 3;
    justify-content: flex-end;
  }
  body.ota-public .ota-refine-field--trip {
    flex-basis: 86px;
  }
  body.ota-public .ota-refine-field--airport {
    flex: 1 1 calc(33.333% - 0.4rem);
  }
  body.ota-public .ota-refine-field--date,
  body.ota-public .ota-refine-field--cabin {
    flex: 1 1 calc(25% - 0.42rem);
  }
  body.ota-public .ota-refine-pax {
    flex: 1 1 auto;
    gap: 0.3rem;
  }
  body.ota-public .ota-refine-field--pax {
    flex: 1 1 72px;
  }
  body.ota-public .ota-results-inline-search__actions {
    margin-left: 0;
    width: 100%;
    justify-content: flex-end;
    padding-top: 0.2rem;
  }
}
@media (max-width: 767px) {
  .ota-results-pro-head {
    padding-bottom: 3.5rem;
  }
  body.ota-public .ota-results-pro-body--pullup {
    margin-top: -1.65rem;
  }
  body.ota-public .ota-refine-field--trip {
    flex: 1 1 calc(50% - 0.3rem);
  }
  body.ota-public .ota-refine-field--airport {
    flex: 1 1 calc(50% - 0.3rem);
  }
  body.ota-public .ota-refine-field--date {
    flex: 1 1 calc(50% - 0.3rem);
  }
  body.ota-public .ota-refine-shell {
    min-height: 42px;
  }
  body.ota-public .ota-refine-field--return {
    flex: 1 1 calc(50% - 0.3rem);
  }
  body.ota-public .ota-refine-field--cabin {
    flex: 1 1 100%;
  }
  body.ota-public .ota-refine-pax {
    flex: 1 1 100%;
    justify-content: stretch;
    gap: 0.35rem;
  }
  body.ota-public .ota-refine-field--pax {
    flex: 1 1 calc(33.333% - 0.24rem);
  }
  body.ota-public .ota-results-inline-search__actions {
    margin-left: 0;
    width: 100%;
    justify-content: flex-start;
    padding-top: 0;
  }
  body.ota-public .ota-results-inline-search__submit {
    flex: 1;
    min-width: 0;
  }
}
@media (max-width: 575px) {
  body.ota-public .ota-results-refine-card {
    padding: 0.9rem 0.8rem;
    border-radius: 14px;
  }
  body.ota-public .ota-results-inline-search__primary {
    gap: 0.42rem;
  }
  body.ota-public .ota-refine-field--trip,
  body.ota-public .ota-refine-field--airport,
  body.ota-public .ota-refine-field--date,
  body.ota-public .ota-refine-field--return,
  body.ota-public .ota-refine-field--cabin,
  body.ota-public .ota-refine-pax {
    flex: 1 1 100%;
  }
  body.ota-public .ota-refine-field--pax {
    flex: 1 1 calc(33.333% - 0.24rem);
  }
  body.ota-public .ota-refine-sub {
    white-space: normal;
    line-height: 1.2;
    max-height: 2.4em;
    overflow: hidden;
  }
}

/* Results refine card redesign (reference-matched) */
body.ota-public .ota-results-refine-card {
  border-radius: 14px;
  padding: 0.95rem 1rem;
  overflow: hidden;
}
body.ota-public .ota-trip-switcher {
  display: inline-flex;
  align-items: center;
  gap: 0;
  border: 1px solid #dbe4f2;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 0.85rem;
}
body.ota-public .ota-trip-switcher__btn {
  border: 0;
  border-right: 1px solid #e6edf7;
  background: #fff;
  color: #334155;
  padding: 0.5rem 0.95rem;
  font-size: 0.9rem;
  font-weight: 700;
}
body.ota-public .ota-trip-switcher__btn:last-child { border-right: 0; }
body.ota-public .ota-trip-switcher__btn.is-active {
  background: #eff6ff;
  color: #1d4ed8;
  box-shadow: inset 0 0 0 1px #93c5fd;
}
body.ota-public .ota-trip-switcher__btn[disabled] {
  opacity: 0.55;
  cursor: not-allowed;
}
body.ota-public .ota-trip-switcher__btn .fa { margin-right: 0.35rem; }

body.ota-public .ota-results-inline-search__primary {
  display: grid;
  grid-template-columns: minmax(140px, 1.2fr) minmax(140px, 1.2fr) 40px minmax(130px, 0.95fr) minmax(125px, 0.95fr) minmax(250px, 1.1fr) minmax(150px, 0.9fr);
  gap: 0.78rem 0.72rem;
  align-items: start;
}
body.ota-public .ota-refine-field { min-width: 0; }
body.ota-public .ota-refine-field--from { grid-column: 1; grid-row: 1; }
body.ota-public .ota-refine-field--to { grid-column: 2; grid-row: 1; }
body.ota-public .ota-refine-swap-btn {
  grid-column: 3; grid-row: 1;
  border: 1px solid #dbe4f2;
  background: #fff;
  border-radius: 999px;
  width: 38px;
  height: 38px;
  align-self: center;
  justify-self: center;
  color: #2563eb;
}
body.ota-public .ota-refine-field--date { grid-column: 4; grid-row: 1; }
body.ota-public .ota-refine-field--cabin { grid-column: 5; grid-row: 1; }
body.ota-public .ota-refine-pax { grid-column: 6; grid-row: 1 / span 2; display: grid; grid-template-columns: repeat(3, minmax(96px, 1fr)); gap: 0.45rem; align-content: start; }
body.ota-public .ota-refine-field--pax { min-width: 0; }
body.ota-public .ota-results-inline-search__actions {
  grid-column: 7; grid-row: 1 / span 2;
  align-self: end;
  justify-content: stretch;
  width: 100%;
  min-width: 0;
  margin-left: 0;
  padding-top: 1.35rem;
  overflow: hidden;
}
body.ota-public .ota-results-inline-search__submit {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  max-width: 100%;
}
body.ota-public .ota-refine-shell {
  height: 42px;
  min-height: 42px;
  background: #fff;
  border: 1px solid #dfe7f3;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.02);
}
body.ota-public .ota-refine-shell .ota-refine-control {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding-left: 0.1rem !important;
  padding-right: 0.1rem !important;
}
body.ota-public .ota-refine-control {
  width: 100%;
  min-width: 0;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
body.ota-public .ota-refine-shell select.ota-refine-control {
  -webkit-appearance: none;
  appearance: none;
  padding-right: 1.1rem !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background-color: transparent !important;
}
body.ota-public .ota-refine-shell select.ota-refine-control::-ms-expand {
  display: none;
}
body.ota-public .ota-results-inline-search .form-control.ota-refine-control {
  border: 0 !important;
  border-color: transparent !important;
  outline: 0 !important;
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
  background: transparent !important;
}
body.ota-public .ota-results-inline-search .form-control.ota-refine-control:focus,
body.ota-public .ota-results-inline-search .form-control.ota-refine-control:hover {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
}
body.ota-public .ota-refine-label {
  font-size: 0.67rem;
  margin-bottom: 0.08rem;
}
body.ota-public .ota-refine-hint {
  margin-top: 0.18rem;
  font-size: 0.6rem;
  white-space: nowrap;
}
body.ota-public .ota-refine-benefits {
  margin-top: 0.8rem;
  padding-top: 0.75rem;
  border-top: 1px solid #e9eff8;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem 1rem;
  color: #475569;
  font-size: 0.82rem;
  font-weight: 600;
}
body.ota-public .ota-refine-benefits .fa {
  color: #2563eb;
  margin-right: 0.35rem;
}
/* Row modes on results refine form */
body.ota-public .ota-results-inline-search__form[data-trip-mode="one_way"] .ota-results-inline-search__primary {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
body.ota-public .ota-results-inline-search__form[data-trip-mode="one_way"] .ota-refine-field--from { grid-column: 1 / span 4; grid-row: 1; }
body.ota-public .ota-results-inline-search__form[data-trip-mode="one_way"] .ota-refine-swap-btn { grid-column: 5 / span 1; grid-row: 1; display: inline-flex; }
body.ota-public .ota-results-inline-search__form[data-trip-mode="one_way"] .ota-refine-field--to { grid-column: 6 / span 4; grid-row: 1; }
body.ota-public .ota-results-inline-search__form[data-trip-mode="one_way"] .ota-refine-field--date { grid-column: 1 / span 3; grid-row: 2; }
body.ota-public .ota-results-inline-search__form[data-trip-mode="one_way"] .ota-refine-field--cabin { grid-column: 4 / span 3; grid-row: 2; }
body.ota-public .ota-results-inline-search__form[data-trip-mode="one_way"] .ota-refine-pax { grid-column: 7 / span 6; grid-row: 2; }
body.ota-public .ota-results-inline-search__form[data-trip-mode="one_way"] .ota-results-inline-search__actions { grid-column: 10 / span 3; grid-row: 3; padding-top: 0.3rem; justify-content: flex-end; }

body.ota-public .ota-results-inline-search__form[data-trip-mode="round_trip"] .ota-results-inline-search__primary {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
body.ota-public .ota-results-inline-search__form[data-trip-mode="round_trip"] .ota-refine-field--from { grid-column: 1 / span 4; grid-row: 1; }
body.ota-public .ota-results-inline-search__form[data-trip-mode="round_trip"] .ota-refine-swap-btn { grid-column: 5 / span 1; grid-row: 1; display: inline-flex; }
body.ota-public .ota-results-inline-search__form[data-trip-mode="round_trip"] .ota-refine-field--to { grid-column: 6 / span 4; grid-row: 1; }
body.ota-public .ota-results-inline-search__form[data-trip-mode="round_trip"] .ota-refine-field--date { grid-column: 1 / span 4; grid-row: 2; }
body.ota-public .ota-results-inline-search__form[data-trip-mode="round_trip"] .ota-refine-field--return { grid-column: 6 / span 4; grid-row: 2; }
body.ota-public .ota-results-inline-search__form[data-trip-mode="round_trip"] .ota-refine-field--cabin { grid-column: 1 / span 4; grid-row: 3; }
body.ota-public .ota-results-inline-search__form[data-trip-mode="round_trip"] .ota-refine-pax { grid-column: 5 / span 8; grid-row: 3; }
body.ota-public .ota-results-inline-search__form[data-trip-mode="round_trip"] .ota-results-inline-search__actions { grid-column: 10 / span 3; grid-row: 4; padding-top: 0.3rem; justify-content: flex-end; }
@media (max-width: 1400px) {
  body.ota-public .ota-results-pro-body--wide {
    width: min(1220px, calc(100% - 16px));
  }
  body.ota-public .ota-results-inline-search__primary {
    grid-template-columns: minmax(160px, 1fr) minmax(160px, 1fr) 38px minmax(146px, 1fr) minmax(146px, 1fr);
  }
  body.ota-public .ota-refine-pax { grid-template-columns: repeat(3, minmax(84px, 1fr)); }
}
@media (max-width: 1199px) {
  body.ota-public .ota-results-pro-body--wide {
    width: min(1100px, calc(100% - 14px));
  }
  body.ota-public .ota-results-inline-search__primary {
    grid-template-columns: 1fr 1fr;
  }
  body.ota-public .ota-refine-field--from { grid-column: 1; grid-row: 1; }
  body.ota-public .ota-refine-field--to { grid-column: 2; grid-row: 1; }
  body.ota-public .ota-refine-swap-btn { display: none; }
  body.ota-public .ota-refine-pax { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.ota-public .ota-results-inline-search__form[data-trip-mode="one_way"] .ota-refine-field--date { grid-column: 1; grid-row: 2; }
  body.ota-public .ota-results-inline-search__form[data-trip-mode="one_way"] .ota-refine-field--cabin { grid-column: 2; grid-row: 2; }
  body.ota-public .ota-results-inline-search__form[data-trip-mode="one_way"] .ota-refine-pax { grid-column: 1 / -1; grid-row: 3; }
  body.ota-public .ota-results-inline-search__form[data-trip-mode="one_way"] .ota-results-inline-search__actions { grid-column: 1 / -1; grid-row: 4; padding-top: 0.35rem; justify-content: stretch; }
  body.ota-public .ota-results-inline-search__form[data-trip-mode="round_trip"] .ota-refine-field--date { grid-column: 1; grid-row: 2; }
  body.ota-public .ota-results-inline-search__form[data-trip-mode="round_trip"] .ota-refine-field--return { grid-column: 2; grid-row: 2; }
  body.ota-public .ota-results-inline-search__form[data-trip-mode="round_trip"] .ota-refine-field--cabin { grid-column: 1; grid-row: 3; }
  body.ota-public .ota-results-inline-search__form[data-trip-mode="round_trip"] .ota-refine-pax { grid-column: 2; grid-row: 3; }
  body.ota-public .ota-results-inline-search__form[data-trip-mode="round_trip"] .ota-results-inline-search__actions { grid-column: 1 / -1; grid-row: 4; padding-top: 0.35rem; justify-content: stretch; }
  body.ota-public .ota-results-inline-search__submit { min-width: 0; }
  body.ota-public .ota-refine-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  body.ota-public .ota-results-pro-body--wide {
    width: calc(100% - 10px);
  }
  body.ota-public .ota-trip-switcher {
    width: 100%;
  }
  body.ota-public .ota-trip-switcher__btn {
    flex: 1 1 50%;
    font-size: 0.82rem;
    padding: 0.5rem 0.35rem;
  }
  body.ota-public .ota-results-inline-search__primary {
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
  }
  body.ota-public .ota-refine-field--from { grid-column: 1 / -1; }
  body.ota-public .ota-refine-field--to { grid-column: 1 / -1; }
  body.ota-public .ota-refine-swap-btn { display: none; }
  body.ota-public .ota-refine-field--date { grid-column: 1; grid-row: auto; }
  body.ota-public .ota-refine-field--cabin { grid-column: 2; grid-row: auto; }
  body.ota-public .ota-refine-pax { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.ota-public .ota-results-inline-search__actions { grid-column: 1 / -1; justify-content: stretch; }
  body.ota-public .ota-results-inline-search__submit { min-width: 0; }
}
@media (max-width: 575px) {
  body.ota-public .ota-results-inline-search__primary {
    grid-template-columns: 1fr;
  }
  body.ota-public .ota-refine-field--date,
  body.ota-public .ota-refine-field--cabin,
  body.ota-public .ota-refine-pax,
  body.ota-public .ota-results-inline-search__actions {
    grid-column: 1;
  }
  body.ota-public .ota-refine-pax { grid-template-columns: 1fr; }
  body.ota-public .ota-refine-benefits { grid-template-columns: 1fr; }
}

.ota-filter-card {
  background: var(--ota-card);
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius);
  box-shadow: var(--ota-shadow);
  padding: 1.25rem;
  position: sticky;
  top: var(--ota-nav-sticky-top);
}
.ota-filter-card h4 {
  margin: 0 0 1rem;
  font-size: 0.85rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ota-navy);
}
.ota-result-pro-card {
  background: var(--ota-card);
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius);
  box-shadow: var(--ota-shadow);
  padding: 1.25rem 1.35rem;
  margin-bottom: 1rem;
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
}
.ota-result-pro-card:hover {
  border-color: rgba(37, 99, 235, 0.35);
  box-shadow: 0 8px 28px -8px rgba(15, 23, 42, 0.15);
}
.ota-airline-logo {
  width: 52px;
  height: 52px;
  margin: 0 auto 0.35rem;
  border-radius: 12px;
  background: linear-gradient(145deg, #f1f5f9, #e2e8f0);
  border: 1px solid var(--ota-border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 0.85rem;
  color: var(--ota-navy);
  letter-spacing: 0.04em;
}
.ota-airline-logo--img {
  background: #fff;
  padding: 4px;
}
.ota-airline-logo--img img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}
.ota-airline-name {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--ota-text);
}
.ota-flight-no {
  font-size: 0.72rem;
  color: var(--ota-muted);
  margin-top: 0.15rem;
}
.ota-time-row {
  margin-top: 0.25rem;
}
.ota-time-lg {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--ota-navy);
  letter-spacing: -0.02em;
}
.ota-time-sub {
  font-size: 0.8rem;
  color: var(--ota-muted);
  font-weight: 600;
}
.ota-dur-line {
  font-size: 0.75rem;
  color: var(--ota-muted);
  font-weight: 600;
  margin-bottom: 0.25rem;
}
.ota-dur-bar {
  height: 2px;
  background: linear-gradient(90deg, var(--ota-border), var(--ota-blue), var(--ota-border));
  border-radius: 2px;
  margin: 0 0.25rem 0.35rem;
}
.ota-result-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  margin-top: 0.85rem;
  font-size: 0.8125rem;
  color: var(--ota-muted);
}
.ota-result-tags .fa {
  margin-right: 0.25rem;
  color: var(--ota-blue);
}
.ota-price-stack {
  margin: 0.75rem 0 0.85rem;
}
.ota-price-lg {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--ota-navy);
  letter-spacing: -0.02em;
}
.ota-price-sub {
  font-size: 0.78rem;
  color: var(--ota-muted);
}
.ota-select-primary.btn-primary {
  background: var(--ota-blue);
  border-color: var(--ota-blue-dark);
  font-weight: 700;
  border-radius: var(--ota-radius-sm);
  padding: 0.55rem 0.75rem;
}
.ota-select-primary.btn-primary:hover {
  background: var(--ota-blue-dark);
  border-color: #1e40af;
}
.ota-filter-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

[data-active-filter-chips] {
  min-height: 0;
}
[data-active-filter-chips]:empty {
  display: none;
}
.ota-filter-chips-label {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ota-muted);
  margin-right: 0.35rem;
}
.ota-filter-chip {
  border-radius: 999px;
  border-color: var(--ota-border);
  margin-right: 4px;
  margin-bottom: 4px;
}

/* Filter panel layout */
.ota-results-filters[data-filter-panel] {
  position: relative;
}
.ota-filter-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.ota-filter-title {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ota-navy);
}
.ota-filter-section {
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius-sm);
  padding: 0 0.85rem;
  margin-bottom: 0.65rem;
  background: #fafbfc;
}
.ota-filter-section:last-of-type {
  margin-bottom: 1rem;
}
.ota-filter-section > summary {
  list-style: none;
  cursor: pointer;
  padding: 0.65rem 0;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--ota-navy);
}
.ota-filter-section > summary::-webkit-details-marker {
  display: none;
}
.ota-filter-section > summary::after {
  content: "";
  float: right;
  width: 0;
  height: 0;
  margin-top: 0.35rem;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 6px solid var(--ota-muted);
}
.ota-filter-section[open] > summary::after {
  transform: rotate(180deg);
}
.ota-filter-section .form-group:last-child {
  margin-bottom: 0.85rem;
}
body.ota-public .ota-filter-section .checkbox {
  margin-top: 0.4rem;
  margin-bottom: 0.45rem;
}
body.ota-public .ota-filter-section .checkbox label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.92rem;
  font-weight: 600;
  color: #1f2937;
  line-height: 1.25;
  cursor: pointer;
  padding-left: 0;
}
body.ota-public .ota-filter-section .checkbox input[type="checkbox"] {
  position: static;
  margin: 0 !important;
  margin-left: 0 !important;
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  accent-color: #2563eb;
  cursor: pointer;
}
.ota-filter-actions {
  margin-top: 0.5rem;
}
.ota-filter-actions .btn + .btn {
  margin-top: 0.45rem;
}

/* Mobile sticky sort / filters bar */
.ota-results-mobile-bar {
  display: flex;
  gap: 8px;
  position: sticky;
  top: calc(var(--ota-fixed-header-height) + 6px);
  z-index: 1075;
  padding: 10px 0 12px;
  margin: 0 -4px 12px;
  background: linear-gradient(to bottom, #f8fafc 70%, transparent);
}
.ota-filter-close-btn {
  display: none;
}
.ota-results-mobile-bar .btn {
  flex: 1;
  font-weight: 700;
  border-radius: var(--ota-radius-sm);
}
.ota-results-mobile-bar .btn-primary .badge {
  background: rgba(255, 255, 255, 0.22);
  margin-left: 4px;
}
.ota-results-mobile-bar .btn .badge {
  font-weight: 800;
}

.ota-filter-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: var(--ota-z-modal-backdrop);
  background: rgba(15, 23, 42, 0.45);
}
.ota-filter-backdrop.is-open {
  display: block;
}
body.ota-filter-open {
  overflow: hidden;
}

/* Result card v2 */
.ota-result-card-v2 .ota-result-card-row {
  align-items: center;
}
.ota-result-card--expandable {
  cursor: default;
}
.ota-result-card--expandable a,
.ota-result-card--expandable button {
  cursor: pointer;
}
.ota-result-card--expandable .ota-flight-details-trigger {
  cursor: pointer;
}
.ota-result-card-actions-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 0.65rem;
  padding-top: 0.65rem;
  border-top: 1px solid rgba(148, 163, 184, 0.22);
}
.ota-flight-details-trigger {
  appearance: none;
  -webkit-appearance: none;
  border: none;
  background: transparent;
  box-shadow: none;
  padding: 0.2rem 0;
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.01em;
  color: #2563eb;
  text-align: left;
  flex: 0 1 auto;
  min-width: 0;
  min-height: 0;
}
.ota-flight-details-trigger:hover,
.ota-flight-details-trigger:focus {
  color: #1d4ed8;
  text-decoration: underline;
  background: transparent;
  border: none;
  box-shadow: none;
  outline: none;
}
.ota-flight-details-trigger:focus-visible {
  outline: 2px solid rgba(37, 99, 235, 0.45);
  outline-offset: 2px;
  border-radius: 4px;
}
.ota-result-actions-book {
  flex: 0 0 160px;
  width: 160px;
  max-width: 160px;
  margin-left: auto;
}
.ota-result-card-v2 .ota-result-actions-book .ota-btn-book {
  width: 100%;
  max-width: 160px;
  display: block;
  margin: 0;
}
.ota-result-card-v2 {
  border: 1px solid rgba(148, 163, 184, 0.3);
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.ota-result-card-v2:hover {
  transform: translateY(-1px);
  border-color: rgba(59, 130, 246, 0.35);
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.1);
}
/* Compact result card typography — shorter cards */
.ota-result-card-v2.ota-result-pro-card {
  padding: 1rem 1.15rem;
  margin-bottom: 0.85rem;
}
.ota-result-card-v2 .ota-airline-logo {
  width: 44px;
  height: 44px;
  margin-bottom: 0.25rem;
  font-size: 0.78rem;
}
.ota-result-card-v2 .ota-airline-name {
  font-size: 0.72rem;
  line-height: 1.25;
}
.ota-result-card-v2:not(.ota-result-card-v2--round-compact) .ota-result-carrier-face {
  margin-top: 0.1rem;
  line-height: 1.25;
}
.ota-result-card-v2:not(.ota-result-card-v2--round-compact) .ota-result-carrier-face__names {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--ota-navy);
}
.ota-result-card-v2:not(.ota-result-card-v2--round-compact) .ota-result-carrier-face__chain {
  margin-top: 0.14rem;
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--ota-muted);
  letter-spacing: 0.03em;
}
.ota-result-card-v2 .ota-result-leg {
  min-height: 4.4rem;
}
.ota-result-card-v2 .ota-result-leg .ota-time-lg {
  font-size: 1.2rem;
}
.ota-result-card-v2 .ota-result-leg__date {
  font-size: 0.7rem;
  margin-top: 0.1rem;
}
.ota-result-card-v2 .ota-result-leg__code {
  font-size: 0.85rem;
  margin-top: 0.18rem;
}
.ota-result-card-v2 .ota-result-leg__city {
  font-size: 0.7rem;
  margin-top: 0.08rem;
}
.ota-result-card-v2 .ota-dur-line {
  font-size: 0.7rem;
  margin-bottom: 0.18rem;
}
.ota-result-card-v2 .ota-dur-bar {
  margin-bottom: 0.25rem;
}
.ota-result-card-v2 .ota-result-tags {
  font-size: 0.75rem;
  margin-top: 0.5rem;
  gap: 0.35rem 0.75rem;
}
.ota-result-card-v2 .ota-result-col-price .ota-price-lg {
  font-size: 1.45rem;
}
.ota-result-card-v2 .ota-result-col-price .ota-price-sub {
  font-size: 0.72rem;
}
.ota-result-card-v2 .ota-result-badge,
.ota-result-card-v2 .ota-result-stops {
  font-size: 9px !important;
}
.ota-result-card-v2 .ota-result-col-price .btn-link {
  font-size: 0.75rem;
}
.ota-result-card-v2 .ota-result-col-price .ota-price-stack {
  margin-top: 0.1rem;
}
.ota-result-card-v2 .ota-result-card-actions-row {
  margin-top: 0.5rem;
  padding-top: 0.5rem;
}
.ota-result-card-v2 .ota-flight-details-trigger {
  font-size: 0.75rem;
  line-height: 1.25;
}
.ota-result-card-v2 .ota-btn-book.btn-primary {
  min-height: 40px;
  font-size: 0.875rem;
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
}
.ota-result-col-brand {
  padding-bottom: 0;
}

/* Round-trip compact result card (parallel outbound | return | price) */
.ota-result-card-v2--round-compact.ota-result-pro-card {
  padding: 0.7rem 0.95rem;
  margin-bottom: 0.75rem;
}
.ota-result-round-compact {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 1.12fr) minmax(0, 10.5rem);
  gap: 12px;
  align-items: center;
}
.ota-result-round-segment {
  min-width: 0;
  padding: 0.35rem 0.5rem;
  border-right: 1px solid rgba(148, 163, 184, 0.2);
}
.ota-result-round-compact .ota-result-round-segment:last-of-type {
  border-right: none;
}
.ota-result-round-segment__label {
  margin: 0 0 0.25rem;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #64748b;
  line-height: 1.15;
}
.ota-result-round-segment__brand {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.3rem;
  min-width: 0;
}
.ota-result-round-segment__logo.ota-airline-logo {
  width: 40px;
  height: 40px;
  margin: 0;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
}
.ota-result-round-segment__logo.ota-airline-logo--img img {
  width: 36px;
  height: 36px;
  object-fit: contain;
}
.ota-result-round-segment__carrier {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.2rem 0.4rem;
  min-width: 0;
  flex: 1;
}
.ota-result-round-segment__airline {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.2;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ota-result-round-segment__brand-tags {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.3rem 0.4rem;
  min-width: 0;
  flex: 0 1 auto;
}
.ota-result-round-segment__mixed {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  font-size: 0.625rem;
  font-weight: 700;
  line-height: 1;
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(59, 130, 246, 0.12);
  color: #2563eb;
  letter-spacing: 0.02em;
}
.ota-result-round-segment__carrier-chain {
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.2;
  color: #94a3b8;
  letter-spacing: 0.02em;
  word-break: break-word;
}
.ota-result-round-segment__flight {
  font-size: 0.6875rem;
  line-height: 1.2;
  color: #94a3b8;
}
.ota-result-round-segment__route {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 0.3rem 0.45rem;
  align-items: start;
}
.ota-result-round-segment__point {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
}
.ota-result-round-segment__point--arr {
  text-align: right;
  align-items: flex-end;
}
.ota-result-round-segment__time {
  display: block;
  font-size: 1.25rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.1;
  letter-spacing: -0.01em;
}
.ota-result-round-segment__code {
  display: block;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #334155;
  line-height: 1.15;
}
.ota-result-round-segment__date {
  display: block;
  font-size: 0.6875rem;
  font-weight: 500;
  color: #94a3b8;
  line-height: 1.2;
}
.ota-result-round-segment__date-line {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.2rem 0.35rem;
  max-width: 100%;
}
.ota-result-round-segment__point--dep .ota-result-round-segment__date-line {
  justify-content: flex-start;
}
.ota-result-round-segment__date-line .ota-result-round-segment__date {
  display: inline;
}
.ota-result-round-segment__day-offset {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  font-size: 0.625rem;
  font-weight: 600;
  line-height: 1;
  padding: 2px 5px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.08);
  color: #475569;
  letter-spacing: 0.01em;
  white-space: nowrap;
}
.ota-result-round-segment__mid {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.12rem;
  min-width: 4.25rem;
  max-width: 5.5rem;
  padding-top: 0.2rem;
  text-align: center;
  align-self: center;
}
.ota-result-round-segment__dur {
  font-size: 0.6875rem;
  font-weight: 600;
  color: #64748b;
  white-space: nowrap;
  line-height: 1.15;
}
.ota-result-round-segment__arrow {
  font-size: 0.75rem;
  color: #cbd5e1;
  line-height: 1;
}
.ota-result-round-segment__stops {
  display: flex;
  justify-content: center;
  max-width: 100%;
}
.ota-result-round-segment__stops .ota-result-stops {
  font-size: 0.625rem !important;
  font-weight: 700;
  line-height: 1 !important;
  padding: 2px 6px !important;
  margin: 0 !important;
  border-radius: 999px;
  background: rgba(148, 163, 184, 0.16) !important;
  color: #475569 !important;
  border: none;
}
.ota-result-round-segment__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.2rem 0.5rem;
  margin-top: 0.3rem;
  font-size: 0.6875rem;
  font-weight: 500;
  color: #94a3b8;
  line-height: 1.2;
}
.ota-result-round-segment__meta span {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  white-space: nowrap;
}
.ota-result-round-segment__meta .fa {
  font-size: 0.625rem;
  opacity: 0.85;
}
.ota-result-round-action {
  text-align: right;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.25rem;
  min-width: 0;
}
.ota-result-round-action .ota-result-badges {
  margin-bottom: 0.15rem;
}
.ota-result-round-action .ota-price-lg {
  font-size: 1.35rem;
}
.ota-result-round-action .ota-price-sub {
  font-size: 0.68rem;
}
.ota-result-round-action .ota-fare-breakdown-link {
  font-size: 0.72rem;
  padding: 0;
}
.ota-result-card-v2--round-compact .ota-result-card-actions-row--compact {
  margin-top: 0.45rem;
  padding-top: 0.45rem;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.ota-result-card-v2--round-compact .ota-result-card-actions-row--compact .ota-result-actions-book {
  display: block;
  flex: 0 0 160px;
  width: 160px;
  max-width: 160px;
  margin-left: auto;
}

.ota-result-brand-logo {
  margin-bottom: 0.35rem;
}
.ota-result-mid {
  padding-top: 0;
}
.ota-result-stops {
  font-size: 10px !important;
  font-weight: 700;
  padding: 0.28em 0.65em;
}
.ota-result-col-price {
  text-align: right;
}
.ota-result-badges {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 0.35rem;
}
.ota-result-badge {
  font-size: 10px !important;
  font-weight: 700;
  padding: 0.35em 0.65em;
}
.ota-result-col-price .ota-price-stack {
  margin-top: 0.2rem;
}
.ota-result-col-price .ota-price-lg {
  font-size: 1.75rem;
}
.ota-btn-book.btn-primary {
  margin-bottom: 8px;
  min-height: 46px;
  font-weight: 800;
  border-radius: 10px;
  box-shadow: 0 8px 16px rgba(30, 64, 175, 0.18);
}
.ota-btn-details-caret {
  display: inline-block;
  margin-left: 0.25rem;
  font-size: 0.7em;
  vertical-align: middle;
}
.ota-result-actions-book .ota-btn-book.btn-primary {
  margin-bottom: 0;
}
.ota-result-disabled-msg {
  margin-bottom: 8px;
}
.ota-result-details-wrap {
  margin-top: 0.85rem;
}
.ota-result-details {
  border-top: 1px solid var(--ota-border);
  padding-top: 0.75rem;
  margin-top: 0;
  text-align: left;
}

/* Compact expandable flight details (results card) */
.ota-flight-detail-shell {
  margin-top: 0.15rem;
}
.ota-flight-detail-card {
  background: #fff;
  border: 1px solid var(--ota-border);
  border-radius: 12px;
  padding: 0.85rem 0.95rem 0.95rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}

/* Expanded flight details — tabs, journey cards, segments */
.ota-flight-detail-tabs-wrap {
  margin-bottom: 0.65rem;
}
.ota-flight-detail-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  padding: 0.2rem;
  margin-bottom: 0.75rem;
  border-radius: 10px;
  background: #f1f5f9;
  border: 1px solid rgba(148, 163, 184, 0.25);
}
.ota-flight-detail-tab {
  flex: 1 1 auto;
  min-width: 5.5rem;
  margin: 0;
  padding: 0.5rem 0.85rem;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #475569;
  line-height: 1.2;
  text-align: center;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.ota-flight-detail-tab:hover,
.ota-flight-detail-tab:focus {
  color: #0f172a;
  outline: none;
}
.ota-flight-detail-tab:focus-visible {
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.35);
}
.ota-flight-detail-tab.is-active {
  background: #fff;
  border-color: rgba(148, 163, 184, 0.35);
  color: var(--ota-navy);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}
.ota-flight-detail-tab-panels {
  min-width: 0;
}
.ota-flight-detail-tab-panel[hidden] {
  display: none !important;
}
.ota-flight-detail-journeys-stack {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin-bottom: 0.65rem;
}
.ota-flight-detail-journey-card {
  background: #f8fafc;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 10px;
  padding: 0.75rem 0.85rem 0.85rem;
}
.ota-flight-detail-journey-header {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin-bottom: 0.65rem;
}
.ota-flight-detail-journey-header__logo.ota-airline-logo {
  width: 40px;
  height: 40px;
  margin: 0;
  flex-shrink: 0;
  font-size: 0.7rem;
}
.ota-flight-detail-journey-header__logo.ota-airline-logo--img img {
  width: 40px;
  height: 40px;
  object-fit: contain;
}
.ota-flight-detail-journey-header__main {
  min-width: 0;
  flex: 1;
}
.ota-flight-detail-journey-header__title {
  margin: 0 0 0.15rem;
  font-size: 1rem;
  font-weight: 800;
  color: var(--ota-navy);
  line-height: 1.2;
}
.ota-flight-detail-journey-header__route {
  margin: 0 0 0.35rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #334155;
  line-height: 1.3;
}
.ota-flight-detail-journey-header__summary {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 0.4rem;
}
.ota-flight-detail-journey-header__chip {
  display: inline-flex;
  align-items: center;
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 1;
  padding: 0.22rem 0.5rem;
  border-radius: 999px;
  background: #e2e8f0;
  color: #334155;
}
.ota-flight-detail-journey-header__chip--mixed {
  background: rgba(59, 130, 246, 0.12);
  color: #2563eb;
}
.ota-flight-detail-journey-header__chip--muted {
  background: transparent;
  border: 1px solid rgba(148, 163, 184, 0.35);
  color: #64748b;
  font-weight: 600;
}
.ota-flight-detail-journey-header__chip--airline {
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.3);
}
.ota-flight-detail-journey-route {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 0.5rem 0.65rem;
  align-items: start;
  margin-bottom: 0.75rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(148, 163, 184, 0.22);
}
.ota-flight-detail-journey-route__point {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
}
.ota-flight-detail-journey-route__point--arr {
  text-align: right;
  align-items: flex-end;
}
.ota-flight-detail-journey-route__time {
  font-size: 1.125rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.1;
}
.ota-flight-detail-journey-route__code {
  font-size: 0.875rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--ota-navy);
}
.ota-flight-detail-journey-route__city {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ota-muted);
  line-height: 1.25;
}
.ota-flight-detail-journey-route__date,
.ota-flight-detail-journey-route__date-row {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ota-muted);
}
.ota-flight-detail-journey-route__date-row {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.25rem 0.35rem;
}
.ota-flight-detail-journey-route__mid {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  padding-top: 0.15rem;
  min-width: 4.5rem;
  text-align: center;
}
.ota-flight-detail-journey-route__dur {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--ota-navy);
}
.ota-flight-detail-journey-route__stops {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ota-muted);
}
.ota-flight-detail-journey-route__line {
  display: block;
  width: 100%;
  max-width: 3.5rem;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, #cbd5e1, #94a3b8, #cbd5e1);
}
.ota-flight-detail-day-offset {
  display: inline-flex;
  align-items: center;
  font-size: 0.625rem;
  font-weight: 600;
  line-height: 1;
  padding: 2px 5px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.08);
  color: #475569;
  white-space: nowrap;
}
.ota-flight-detail-segments {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.ota-flight-detail-connection-msg {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ota-muted);
}
.ota-flight-detail-segment-card {
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.3);
  border-radius: 10px;
  padding: 0.7rem 0.8rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.ota-flight-detail-segment-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.55rem;
  margin-bottom: 0.55rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(226, 232, 240, 0.95);
}
.ota-flight-detail-segment-card__badge {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  background: #e2e8f0;
  color: var(--ota-navy);
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.03em;
}
.ota-flight-detail-segment-card__flight {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  min-width: 0;
}
.ota-flight-detail-segment-card__airline {
  font-size: 0.875rem;
  font-weight: 700;
  color: #0f172a;
}
.ota-flight-detail-segment-card__airline-code {
  font-weight: 600;
  color: var(--ota-muted);
}
.ota-flight-detail-segment-card__fn {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #475569;
}
.ota-flight-detail-segment-card__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 0.45rem 0.55rem;
  align-items: start;
}
.ota-flight-detail-segment-card__point {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.ota-flight-detail-segment-card__point--arr {
  text-align: right;
  align-items: flex-end;
}
.ota-flight-detail-segment-card__time {
  font-size: 1.0625rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.1;
}
.ota-flight-detail-segment-card__code {
  font-size: 0.8125rem;
  font-weight: 800;
  color: var(--ota-navy);
  letter-spacing: 0.03em;
}
.ota-flight-detail-segment-card__city {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ota-muted);
  line-height: 1.25;
}
.ota-flight-detail-segment-card__date {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ota-muted);
}
.ota-flight-detail-segment-card__track {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  padding-top: 0.2rem;
  min-width: 3.75rem;
}
.ota-flight-detail-segment-card__duration {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--ota-navy);
  white-space: nowrap;
}
.ota-flight-detail-segment-card__line {
  display: block;
  width: 2px;
  min-height: 1.75rem;
  border-radius: 2px;
  background: linear-gradient(180deg, #94a3b8 0%, #cbd5e1 100%);
}
.ota-flight-detail-segment-card__meta {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  margin-top: 0.45rem;
  padding-top: 0.45rem;
  border-top: 1px dashed rgba(148, 163, 184, 0.35);
}
.ota-flight-detail-segment-card__meta-item {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ota-muted);
  line-height: 1.35;
}
.ota-flight-detail-layover-divider {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0.15rem 0;
  padding: 0.55rem 0.65rem;
  border-radius: 10px;
  background: #fff;
  border: 1px dashed rgba(148, 163, 184, 0.45);
}
.ota-flight-detail-layover-divider__rule {
  flex: 1;
  height: 1px;
  background: rgba(148, 163, 184, 0.35);
  min-width: 0.75rem;
}
.ota-flight-detail-layover-divider__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  text-align: center;
  max-width: 100%;
}
.ota-flight-detail-layover-divider__label {
  font-size: 0.625rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #94a3b8;
}
.ota-flight-detail-layover-divider__text {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #475569;
  line-height: 1.35;
}
.ota-flight-detail-journey-info {
  margin-bottom: 0.75rem;
  padding: 0.65rem 0.7rem;
  border-radius: 8px;
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.26);
}
.ota-flight-detail-journey-info__title {
  margin: 0 0 0.45rem;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ota-muted);
}
.ota-flight-detail-journey-info__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem 0.75rem;
}
@media (min-width: 768px) {
  .ota-flight-detail-journey-info__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.ota-flight-detail-journey-info .ota-detail-k {
  font-size: 0.625rem;
}
.ota-flight-detail-journey-info .ota-detail-v {
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1.35;
}
.ota-flight-detail-shared-info {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(148, 163, 184, 0.28);
}
.ota-flight-detail-shared-info .ota-flight-detail-section:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

.ota-flight-detail-route {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0.35rem 0.65rem;
  align-items: center;
  padding-bottom: 0.6rem;
  margin-bottom: 0.55rem;
  border-bottom: 1px solid rgba(148, 163, 184, 0.28);
}
.ota-flight-detail-leg {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.ota-flight-detail-leg--arr {
  text-align: right;
  align-items: flex-end;
}
.ota-flight-detail-code {
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--ota-navy);
}
.ota-flight-detail-city {
  font-size: 0.72rem;
  color: var(--ota-muted);
  font-weight: 600;
}
.ota-flight-detail-time {
  font-size: 1.12rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.1;
  margin-top: 0.08rem;
}
.ota-flight-detail-date {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--ota-muted);
}
.ota-flight-detail-date-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
}
.ota-flight-detail-leg--dep .ota-flight-detail-date-row {
  justify-content: flex-start;
}
.ota-flight-detail-mid {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.12rem;
  padding: 0 0.2rem;
}
.ota-flight-detail-dur {
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--ota-navy);
}
.ota-flight-detail-stops {
  font-size: 0.62rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ota-muted);
}
.ota-flight-detail-layover {
  font-size: 0.75rem;
  color: var(--ota-muted);
  margin: -0.25rem 0 0.5rem;
  line-height: 1.35;
}
.ota-flight-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem 0.85rem;
}
@media (min-width: 768px) {
  .ota-flight-detail-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.ota-detail-kv {
  min-width: 0;
}
.ota-detail-k {
  display: block;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ota-muted);
  margin-bottom: 0.06rem;
}
.ota-detail-v {
  display: block;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #0f172a;
  line-height: 1.3;
  word-break: break-word;
}
.ota-flight-detail-band {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-top: 0.5rem;
  padding: 0.42rem 0.5rem;
  background: #f1f5f9;
  border-radius: 8px;
  border: 1px solid rgba(148, 163, 184, 0.22);
}
.ota-flight-detail-band--muted {
  background: #fafafa;
  border-style: dashed;
}
.ota-flight-detail-band__icon {
  color: var(--ota-navy);
  opacity: 0.55;
  padding-top: 0.12rem;
  flex-shrink: 0;
}
.ota-flight-detail-band__body {
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
  min-width: 0;
}
.ota-flight-detail-band__label {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ota-muted);
}
.ota-flight-detail-band__value {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #334155;
  line-height: 1.35;
}
.ota-flight-detail-section-label {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ota-muted);
  margin: 0.35rem 0 0.3rem;
}
.ota-flight-detail-legs {
  margin-top: 0.4rem;
  padding-top: 0.4rem;
  border-top: 1px solid rgba(148, 163, 184, 0.22);
}
.ota-detail-leg-row {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
  padding: 0.38rem 0;
  border-bottom: 1px solid rgba(226, 232, 240, 0.95);
}
.ota-detail-leg-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.ota-detail-leg-num {
  flex-shrink: 0;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 6px;
  background: #e2e8f0;
  color: var(--ota-navy);
  font-size: 0.72rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ota-detail-leg-body {
  flex: 1;
  min-width: 0;
}
.ota-detail-leg-route {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--ota-navy);
  line-height: 1.3;
}
.ota-detail-leg-flight {
  font-size: 0.76rem;
  font-weight: 600;
  color: #475569;
  margin-top: 0.1rem;
}
.ota-detail-leg-times {
  font-size: 0.74rem;
  color: #64748b;
  margin-top: 0.12rem;
}
.ota-detail-leg-sub {
  font-size: 0.7rem;
  color: var(--ota-muted);
  margin-top: 0.08rem;
}
.ota-flight-detail-shell .ota-detail-pricing-note {
  margin: 0.6rem 0 0;
  padding-top: 0;
  border-top: none;
}

.ota-flight-detail-section {
  padding-top: 0.55rem;
  margin-top: 0.55rem;
  border-top: 1px solid rgba(148, 163, 184, 0.22);
}
.ota-flight-detail-section:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.ota-flight-detail-section__title {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: none;
  color: var(--ota-navy);
}

.ota-flight-detail-baggage-list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.8125rem;
  color: #334155;
  line-height: 1.45;
}
.ota-flight-detail-baggage-text {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #334155;
  line-height: 1.45;
}
.ota-flight-detail-baggage-text--muted {
  color: var(--ota-muted);
  font-weight: 500;
}

.ota-flight-detail-timeline {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.ota-segment-timeline-card {
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 10px;
  padding: 0.55rem 0.65rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
}
.ota-segment-timeline-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
  margin-bottom: 0.45rem;
}
.ota-segment-timeline-card__badge {
  display: inline-flex;
  align-items: center;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  background: #e2e8f0;
  color: var(--ota-navy);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.04em;
}
.ota-segment-timeline-card__flight {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  min-width: 0;
}
.ota-segment-timeline-card__airline {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #0f172a;
}
.ota-segment-timeline-card__code {
  font-weight: 600;
  color: var(--ota-muted);
}
.ota-segment-timeline-card__fn {
  font-size: 0.76rem;
  font-weight: 700;
  color: #475569;
}
.ota-segment-timeline-card__body {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0.35rem 0.5rem;
  align-items: start;
}
.ota-segment-timeline-card__endpoint {
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
  min-width: 0;
}
.ota-segment-timeline-card__endpoint--arr {
  text-align: right;
  align-items: flex-end;
}
.ota-segment-timeline-card__place {
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--ota-navy);
  line-height: 1.25;
}
.ota-segment-timeline-card__city {
  display: block;
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--ota-muted);
}
.ota-segment-timeline-card__time {
  font-size: 1rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.1;
}
.ota-segment-timeline-card__date {
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--ota-muted);
}
.ota-segment-timeline-card__track {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  padding-top: 0.15rem;
}
.ota-segment-timeline-card__duration {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--ota-navy);
  white-space: nowrap;
}
.ota-segment-timeline-card__line {
  display: block;
  width: 2px;
  min-height: 1.6rem;
  border-radius: 2px;
  background: linear-gradient(180deg, #94a3b8 0%, #cbd5e1 100%);
}
.ota-segment-timeline-card__meta {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  margin-top: 0.35rem;
  padding-top: 0.35rem;
  border-top: 1px dashed rgba(148, 163, 184, 0.35);
}
.ota-segment-timeline-card__meta-item {
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--ota-muted);
}

.ota-flight-waiting-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  margin: 0.1rem 0;
  padding: 0.35rem 0.5rem;
  border-radius: 8px;
  background: #f8fafc;
  border: 1px dashed rgba(148, 163, 184, 0.45);
}
.ota-flight-waiting-row__icon {
  color: #94a3b8;
  font-size: 0.55rem;
  line-height: 1;
}
.ota-flight-waiting-row__text {
  font-size: 0.74rem;
  font-weight: 600;
  color: #475569;
  text-align: center;
}

.ota-flight-detail-fare-unavailable {
  margin: 0;
  padding: 0.45rem 0.55rem;
  border-radius: 8px;
  background: #f8fafc;
  border: 1px dashed rgba(148, 163, 184, 0.4);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ota-muted);
}
.ota-branded-fare-preview {
  margin-top: 0;
}
.ota-result-branded-fares-row {
  width: 100%;
  padding: 0.35rem 0.75rem 0.15rem;
  border-top: 1px solid rgba(148, 163, 184, 0.18);
}
.ota-result-card-v2--round-compact .ota-result-branded-fares-row {
  padding-left: 0.65rem;
  padding-right: 0.65rem;
}
.ota-branded-fare-preview__label {
  margin: 0 0 0.25rem;
}
.ota-branded-fare-preview__badge {
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--ota-muted);
  background: rgba(148, 163, 184, 0.14);
  border-radius: 999px;
  padding: 0.12rem 0.45rem;
}
.ota-branded-fare-preview__note {
  margin: 0 0 0.55rem;
  font-size: 0.78rem;
  color: var(--ota-muted);
}
.ota-branded-fare-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
}
.ota-branded-fare-chip {
  display: inline-flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
  max-width: none;
  padding: 0.28rem 0.55rem;
  border: 1px solid rgba(148, 163, 184, 0.35);
  border-radius: 999px;
  background: rgba(248, 250, 252, 0.95);
  font: inherit;
  text-align: left;
  line-height: 1.25;
}
.ota-branded-fare-chip--selectable {
  cursor: pointer;
}
.ota-branded-fare-chip--selectable:hover {
  border-color: rgba(37, 99, 235, 0.45);
  background: #fff;
}
.ota-branded-fare-chip.is-selected,
.ota-fare-option-card.is-selected {
  border-color: var(--ota-primary, #2563eb);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.18);
  background: #fff;
}
.ota-branded-fare-chip__name {
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--ota-navy);
  line-height: 1.2;
  white-space: nowrap;
}
.ota-branded-fare-chip__code,
.ota-branded-fare-chip__meta,
.ota-branded-fare-chip__bag {
  font-size: 0.64rem;
  color: var(--ota-muted);
  line-height: 1.25;
}
.ota-branded-fare-chip__price {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--ota-navy);
}
.ota-branded-fare-more {
  align-self: center;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--ota-muted);
  padding: 0.2rem 0.1rem;
}
.ota-branded-fare-options__note {
  margin: 0 0 0.65rem;
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--ota-muted);
}
.ota-fare-option-card--display-only {
  opacity: 0.98;
}
.ota-flight-detail-fare-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}
@media (max-width: 1023px) {
  .ota-flight-detail-fare-options {
    grid-template-columns: 1fr;
  }
}
.ota-fare-option-card--selectable {
  cursor: pointer;
  width: 100%;
  text-align: left;
  font: inherit;
  appearance: none;
  -webkit-appearance: none;
}
.ota-fare-option-card--selectable:hover {
  border-color: rgba(37, 99, 235, 0.35);
}
.ota-fare-option-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.3);
  border-radius: 12px;
  padding: 0.75rem 0.8rem;
  min-width: 0;
}
.ota-fare-option-card.is-selected {
  background: #f8fbff;
}
.ota-fare-option-card__header {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  min-width: 0;
}
.ota-fare-option-card__check {
  position: absolute;
  top: 0.55rem;
  right: 0.55rem;
  color: var(--ota-primary, #2563eb);
  font-size: 1rem;
  line-height: 1;
}
.ota-fare-option-card__title-row {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding-right: 1.25rem;
}
.ota-fare-option-card__name {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 800;
  color: var(--ota-navy);
  line-height: 1.25;
}
.ota-fare-option-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}
.ota-fare-option-card__code {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #475569;
  background: #f1f5f9;
  border-radius: 999px;
  padding: 0.12rem 0.45rem;
}
.ota-fare-option-card__cheapest {
  font-size: 0.62rem;
  font-weight: 800;
  color: #0f766e;
  background: #ecfdf5;
  border-radius: 999px;
  padding: 0.1rem 0.4rem;
}
.ota-fare-option-card__price-block {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  padding: 0.45rem 0.5rem;
  border-radius: 8px;
  background: #f8fafc;
  border: 1px solid rgba(148, 163, 184, 0.22);
}
.ota-fare-option-card__approx-label {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
}
.ota-fare-option-card__price {
  font-size: 0.95rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.2;
}
.ota-fare-option-card__details {
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  padding-top: 0.15rem;
  border-top: 1px solid rgba(148, 163, 184, 0.18);
}
.ota-fare-option-card__detail-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.5rem;
  font-size: 0.72rem;
  line-height: 1.35;
}
.ota-fare-option-card__detail-k {
  flex: 0 0 auto;
  font-weight: 600;
  color: #64748b;
}
.ota-fare-option-card__detail-v {
  flex: 1 1 auto;
  text-align: right;
  font-weight: 700;
  color: #334155;
  overflow-wrap: anywhere;
}
.ota-fare-option-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  margin-bottom: 0.35rem;
}
.ota-fare-option-card__features {
  margin: 0;
  padding-left: 1rem;
  font-size: 0.72rem;
  color: #475569;
  line-height: 1.4;
}
.ota-fare-option-card__k {
  font-weight: 700;
  color: #64748b;
}
.ota-checkout-selected-fare-family {
  margin-top: 0;
}
.ota-checkout-selected-fare-family__price {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  font-weight: 800;
  color: var(--ota-navy);
}
.ota-checkout-selected-fare-family__approx {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
  margin-right: 0.25rem;
}
.ota-checkout-selected-fare-family__dl {
  margin: 0 0 0.5rem;
}
.ota-checkout-selected-fare-family__note {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.4;
  color: var(--ota-muted);
}
.ota-fare-family-selection-actions {
  margin-top: 0.85rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
}
.ota-fare-family-selection-hint {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 600;
  color: #b45309;
}
.ota-fare-family-selection-hint[hidden] {
  display: none !important;
}
.ota-btn-book-selected-fare:disabled,
.ota-btn-book-selected-fare[aria-disabled="true"] {
  opacity: 0.55;
  cursor: not-allowed;
}
.ota-fare-dl__row--selected-estimate dt {
  font-weight: 700;
  color: #0f172a;
}
.ota-fare-dl__row--selected-estimate dd {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--ota-navy);
}
.ota-checkout-selected-fare-estimate__note {
  margin: 0.35rem 0 0;
  font-size: 0.75rem;
  line-height: 1.4;
  color: var(--ota-muted);
}
.ota-fare-option-card__select {
  display: block;
  margin-top: 0.4rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--ota-muted);
}

/* Fare family selection modal (results Book Now) */
.ota-fare-family-modal[hidden] {
  display: none !important;
}
body.ota-fare-family-modal-open {
  overflow: hidden;
}
.ota-fare-family-modal {
  position: fixed;
  inset: 0;
  z-index: var(--ota-z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.ota-fare-family-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
}
.ota-fare-family-modal__panel {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 720px;
  max-height: min(90vh, 720px);
  overflow: auto;
  background: #fff;
  border-radius: 12px;
  padding: 18px 20px 20px;
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.18);
}
.ota-fare-family-modal__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.ota-fare-family-modal__title {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 800;
  color: var(--ota-navy);
}
.ota-fare-family-modal__lead {
  margin: 4px 0 0;
  font-size: 0.8125rem;
  color: var(--ota-muted);
}
.ota-fare-family-modal__close {
  flex-shrink: 0;
  border: 0;
  background: transparent;
  font-size: 1.5rem;
  line-height: 1;
  color: #64748b;
  padding: 0 4px;
  cursor: pointer;
}
.ota-fare-family-modal__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
  gap: 0.65rem;
}
.ota-fare-family-modal__card {
  display: block;
  width: 100%;
  text-align: left;
  cursor: pointer;
  background: #fff;
  border: 2px solid rgba(148, 163, 184, 0.35);
  border-radius: 10px;
  padding: 0.65rem 0.7rem;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ota-fare-family-modal__card:hover {
  border-color: rgba(37, 99, 235, 0.45);
}
.ota-fare-family-modal__card.is-selected {
  border-color: #2563eb;
  box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.25);
}
.ota-fare-family-modal__card.is-disabled {
  opacity: 0.72;
  cursor: not-allowed;
}
.ota-fare-family-modal__card-name {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--ota-navy);
}
.ota-fare-family-modal__card-price {
  margin: 0.25rem 0 0;
  font-size: 0.82rem;
  font-weight: 800;
  color: #0f172a;
}
.ota-fare-family-modal__card-meta {
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
  color: #475569;
  line-height: 1.4;
}
.ota-fare-family-modal__card-details {
  margin-top: 0.45rem;
  font-size: 0.7rem;
  color: #64748b;
}
.ota-fare-family-modal__card-details[hidden] {
  display: none !important;
}
.ota-fare-family-modal__card-details-toggle {
  margin-top: 0.35rem;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 0.72rem;
  font-weight: 700;
  color: #2563eb;
  text-decoration: underline;
  cursor: pointer;
}
.ota-fare-family-modal__notice {
  margin: 0 0 12px;
  padding: 0.5rem 0.65rem;
  border-radius: 8px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  font-size: 0.8125rem;
  color: #9a3412;
}
.ota-fare-family-modal__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(148, 163, 184, 0.25);
}
.ota-fare-family-modal__actions .btn-primary {
  flex: 1 1 12rem;
}

/* Fare Summary modal (tabbed — results + return-options) */
.ota-fare-breakdown-modal[hidden],
.ota-fare-summary-modal[hidden] {
  display: none !important;
}
body.ota-fare-breakdown-modal-open {
  overflow: hidden;
}
.ota-fare-breakdown-modal,
.ota-fare-summary-modal {
  position: fixed;
  inset: 0;
  z-index: var(--ota-z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  box-sizing: border-box;
}
.ota-fare-breakdown-modal__backdrop,
.ota-fare-summary-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
  z-index: 0;
}
.ota-fare-breakdown-modal__panel,
.ota-fare-summary-modal__panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: min(520px, calc(100vw - 2rem));
  max-height: min(84vh, 640px);
  background: #fff;
  border-radius: 12px;
  border: 1px solid rgba(148, 163, 184, 0.16);
  box-shadow: 0 12px 36px rgba(15, 23, 42, 0.12);
  overflow: hidden;
}
.ota-fare-summary-modal__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px 8px;
  border-bottom: 1px solid rgba(148, 163, 184, 0.14);
  flex-shrink: 0;
}
.ota-fare-summary-modal__head-copy {
  min-width: 0;
}
.ota-fare-summary-modal__title,
.ota-fare-breakdown-modal__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 800;
  color: var(--ota-navy);
  line-height: 1.25;
  letter-spacing: -0.01em;
}
.ota-fare-summary-modal__subtitle {
  margin: 4px 0 0;
  font-size: 0.75rem;
  font-weight: 500;
  color: #64748b;
  line-height: 1.4;
}
.ota-fare-summary-modal__route {
  margin: 3px 0 0;
  font-size: 0.75rem;
  font-weight: 700;
  color: #334155;
  line-height: 1.35;
}
.ota-fare-summary-modal__close {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 8px;
  background: #f8fafc;
  font-size: 1.25rem;
  line-height: 1;
  color: #64748b;
  cursor: pointer;
}
.ota-fare-summary-modal__close:hover {
  background: #eff6ff;
  color: #1d4ed8;
}
.ota-fare-summary-modal__tabs-wrap {
  flex-shrink: 0;
  padding: 0 18px 10px;
}
.ota-fare-summary-modal__tabs {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.25rem;
  padding: 0.15rem;
  border-radius: 10px;
  background: #f1f5f9;
  border: 1px solid rgba(148, 163, 184, 0.22);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.ota-fare-summary-modal__tab {
  flex: 1 1 0;
  min-width: 4.75rem;
  margin: 0;
  padding: 0.4rem 0.45rem;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  font-size: 0.6875rem;
  font-weight: 700;
  color: #475569;
  line-height: 1.2;
  text-align: center;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
  white-space: nowrap;
}
.ota-fare-summary-modal__tab:hover,
.ota-fare-summary-modal__tab:focus {
  color: #0f172a;
  outline: none;
}
.ota-fare-summary-modal__tab.is-active {
  background: #fff;
  border-color: rgba(148, 163, 184, 0.35);
  color: var(--ota-navy);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}
.ota-fare-summary-modal__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 4px 18px 12px;
  -webkit-overflow-scrolling: touch;
}
.ota-fare-summary-modal__panel-content[hidden] {
  display: none !important;
}
.ota-fare-summary-modal__empty {
  margin: 0;
  padding: 1rem 0.85rem;
  border-radius: 10px;
  background: #f8fafc;
  border: 1px solid rgba(148, 163, 184, 0.25);
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #475569;
}
.ota-fare-summary-modal__baggage-row {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  padding: 0.6rem 0.7rem;
  border-radius: 10px;
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.22);
  margin-bottom: 0;
}
.ota-fare-summary-modal__panel-content[data-fare-summary-panel="baggage"] {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 0.55rem;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid rgba(148, 163, 184, 0.18);
}
.ota-fare-summary-modal__baggage-row i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  background: #eff6ff;
  color: #2563eb;
  margin-top: 0;
  flex-shrink: 0;
  font-size: 0.75rem;
}
.ota-fare-summary-modal__baggage-label {
  display: block;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748b;
}
.ota-fare-summary-modal__baggage-value {
  display: block;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #0f172a;
  margin-top: 0.12rem;
  line-height: 1.35;
}
.ota-fare-breakdown-modal__rows {
  margin: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.35rem 1rem;
  align-items: baseline;
  padding: 0.35rem 0 0.15rem;
}
.ota-fare-breakdown-modal__rows dt {
  font-weight: 600;
  margin: 0;
  font-size: 0.8125rem;
  color: #334155;
}
.ota-fare-breakdown-modal__rows dd {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #0f172a;
  text-align: right;
}
.ota-fare-breakdown-modal__rows dt.ota-fare-breakdown-modal__section {
  grid-column: 1 / -1;
  margin-top: 0.55rem;
  padding-top: 0.55rem;
  border-top: 1px solid rgba(148, 163, 184, 0.22);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ota-navy);
}
.ota-fare-breakdown-modal__rows dt.ota-fare-breakdown-modal__section:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.ota-fare-breakdown-modal__rows dt.ota-fare-breakdown-modal__sub {
  font-weight: 500;
  font-size: 0.75rem;
  color: #64748b;
}
.ota-fare-breakdown-modal__rows dt:has(+ dd.ota-fare-breakdown-modal__total) {
  display: none;
}
.ota-fare-breakdown-modal__rows dd.ota-fare-breakdown-modal__total {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.35rem;
  padding: 0.6rem 0.7rem;
  border-radius: 10px;
  background: #f8fafc;
  border: 1px solid rgba(148, 163, 184, 0.22);
  font-size: 1rem;
  font-weight: 800;
  color: var(--ota-navy);
  text-align: right;
}
.ota-fare-breakdown-modal__rows dd.ota-fare-breakdown-modal__total::before {
  content: "Total amount";
  font-size: 0.75rem;
  font-weight: 700;
  color: #64748b;
  text-align: left;
}
.ota-fare-breakdown-modal__rows dt.ota-fare-breakdown-modal__sub + dd.ota-fare-breakdown-modal__total::before {
  content: "Final payable total";
}
.ota-fare-breakdown-modal__disclaimer,
.ota-fare-summary-modal__disclaimer {
  margin: 0.2rem 0 0;
  line-height: 1.35;
  font-size: 0.625rem;
  color: #94a3b8;
}
.ota-fare-summary-modal__footer {
  flex-shrink: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 10px 14px 12px;
  border-top: 1px solid rgba(148, 163, 184, 0.14);
  background: #fff;
}
.ota-fare-summary-modal__total-wrap {
  min-width: 0;
  flex: 1 1 auto;
}
.ota-fare-summary-modal__total-label {
  display: block;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #64748b;
}
.ota-fare-summary-modal__total-value {
  display: block;
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--ota-navy);
  line-height: 1.15;
  letter-spacing: -0.01em;
}
.ota-fare-summary-modal__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin-left: auto;
}
.ota-fare-summary-modal__actions .btn {
  min-height: 2.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  border-radius: 8px;
  font-size: 0.8125rem;
  font-weight: 700;
}
.ota-fare-summary-modal__actions .btn-primary {
  min-width: 7.5rem;
}
.flight-stop-tooltip-wrap {
  position: relative;
  display: inline-flex;
  cursor: help;
  text-decoration: underline dotted;
  text-underline-offset: 2px;
}
.flight-stop-tooltip {
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(-8px);
  min-width: 160px;
  max-width: 280px;
  padding: 8px 12px;
  border-radius: 8px;
  background: #1e293b;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.45;
  text-align: left;
  white-space: normal;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.28);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 30;
  transition: opacity 0.15s ease, visibility 0.15s ease;
}
.flight-stop-tooltip__line {
  display: block;
}
.flight-stop-tooltip__line + .flight-stop-tooltip__line {
  margin-top: 4px;
}
.flight-stop-tooltip-wrap:hover .flight-stop-tooltip,
.flight-stop-tooltip-wrap:focus .flight-stop-tooltip,
.flight-stop-tooltip-wrap:focus-within .flight-stop-tooltip {
  opacity: 1;
  visibility: visible;
}

@media (max-width: 575px) {
  .ota-fare-family-modal__panel {
    max-height: 92vh;
    padding: 14px 14px 16px;
  }
  .ota-fare-family-modal__grid {
    grid-template-columns: 1fr;
  }
  .ota-segment-timeline-card__body,
  .ota-flight-detail-segment-card__body {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .ota-segment-timeline-card__endpoint--arr,
  .ota-flight-detail-segment-card__point--arr {
    text-align: center;
    align-items: center;
  }
  .ota-segment-timeline-card__track,
  .ota-flight-detail-segment-card__track {
    flex-direction: row;
    justify-content: center;
    padding: 0.2rem 0;
  }
  .ota-segment-timeline-card__line,
  .ota-flight-detail-segment-card__line {
    width: 100%;
    max-width: 4rem;
    min-height: 2px;
    height: 2px;
  }
  .ota-flight-detail-journey-route {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .ota-flight-detail-journey-route__point--arr {
    text-align: center;
    align-items: center;
  }
  .ota-flight-detail-journey-route__date-row {
    justify-content: center !important;
  }
  .ota-flight-detail-journey-route__mid {
    padding: 0.35rem 0;
  }
  .ota-flight-detail-journey-route__line {
    max-width: 5rem;
  }
  .ota-flight-detail-tab {
    min-width: calc(50% - 0.25rem);
  }
  .ota-flight-detail-layover-divider {
    flex-direction: column;
    gap: 0.35rem;
  }
  .ota-flight-detail-layover-divider__rule {
    width: 100%;
    min-width: 0;
  }
  .ota-flight-detail-fare-options {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575px) {
  .ota-flight-detail-route {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .ota-flight-detail-leg--arr {
    text-align: center;
    align-items: center;
  }
  .ota-flight-detail-date-row {
    justify-content: center !important;
  }
  .ota-flight-detail-mid {
    padding: 0.35rem 0;
  }
}
.ota-detail-line {
  margin: 0 0 0.65rem;
  font-size: 0.9rem;
}
.ota-detail-seg {
  margin: 0.35rem 0 0 1.15rem;
  padding: 0;
}
.ota-detail-pricing-note {
  margin: 0.75rem 0 0;
  padding-top: 0.75rem;
  border-top: 1px dashed var(--ota-border);
}

/* Flight card schedule row + rich details (Phase 22E) */
.ota-result-schedule {
  margin-top: 0.25rem;
}
.ota-result-leg {
  min-height: 5.1rem;
}
.ota-result-leg--right {
  text-align: right;
}
.ota-result-leg .ota-time-lg {
  font-size: 1.5rem;
  line-height: 1.05;
}
.ota-result-leg__date {
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--ota-muted);
  margin-top: 0.2rem;
}
.ota-result-leg__code {
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--ota-navy);
  margin-top: 0.3rem;
  letter-spacing: 0.04em;
}
.ota-result-leg__city {
  margin-top: 0.15rem;
  line-height: 1.3;
}
.ota-arr-offset {
  font-size: 10px !important;
  font-weight: 700;
  vertical-align: middle;
  margin-left: 4px;
}
.ota-detail-section {
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--ota-border);
}
.ota-detail-section:last-of-type {
  border-bottom: none;
}
.ota-detail-section-title {
  margin: 0 0 0.5rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ota-muted);
}
.ota-detail-segment-card {
  border: 1px solid var(--ota-border);
  border-radius: var(--ota-radius-sm);
  padding: 0.65rem 0.85rem;
  margin-bottom: 0.65rem;
  background: #fafbfc;
}
.ota-detail-segment-head {
  font-size: 0.78rem;
  font-weight: 800;
  color: var(--ota-navy);
  margin-bottom: 0.35rem;
}
body.ota-public .ota-checkout-flight-compact__route .ota-arr-offset {
  margin-left: 6px;
}

@media (max-width: 991px) {
  .ota-results-filters {
    margin-bottom: 0;
  }
  .ota-filter-close-btn {
    display: inline-block;
  }
  .ota-filter-card {
    position: fixed;
    display: none;
    left: 0;
    right: 0;
    bottom: 0;
    top: 12%;
    max-height: 88vh;
    z-index: var(--ota-z-modal);
    overflow: auto;
    border-radius: 16px 16px 0 0;
    box-shadow: var(--ota-shadow-lg);
  }
  .ota-result-col-price {
    text-align: left !important;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--ota-border);
  }
  .ota-result-card-actions-row {
    margin-top: 0.75rem;
    gap: 10px;
  }
  .ota-result-round-compact {
    grid-template-columns: 1fr;
    gap: 10px;
    align-items: stretch;
  }
  .ota-result-round-segment {
    border-right: none;
    border-bottom: 1px solid rgba(148, 163, 184, 0.2);
    padding-bottom: 0.55rem;
  }
  .ota-result-round-compact .ota-result-round-segment:last-of-type {
    border-bottom: none;
    padding-bottom: 0;
  }
  .ota-result-round-action {
    text-align: left;
    padding-top: 0.35rem;
    border-top: 1px solid rgba(148, 163, 184, 0.22);
  }
  .ota-result-round-action .ota-result-badges {
    justify-content: flex-start;
  }
  .ota-result-actions-book {
    flex: 0 0 160px;
    width: 160px;
    max-width: 160px;
  }
  .ota-result-col-route {
    padding-bottom: 0.25rem;
  }
  .ota-result-badges {
    justify-content: flex-start;
  }
  .ota-results-mobile-bar {
    top: calc(var(--ota-fixed-header-height) + 2px);
    padding-bottom: 10px;
  }
}

@media (min-width: 992px) {
  .ota-results-mobile-bar {
    display: none !important;
  }
  .ota-filter-card {
    display: block !important;
    position: sticky;
    top: var(--ota-nav-sticky-top);
  }
  .ota-filter-backdrop {
    display: none !important;
  }
}

/* ========== Phase 22H — mobile visual polish ========== */
@media (max-width: 991px) {
  body.ota-public {
    background: #f8fafc;
  }
  .ota-page-home .ota-site-main {
    background: linear-gradient(180deg, #0c1929 0, #0c1929 6.5rem, #f8fafc 6.5rem);
  }
  body.ota-public .ota-hero {
    padding: 3.65rem 0 2.7rem;
  }
  body.ota-public .ota-section {
    padding: 2.35rem 0;
  }
  body.ota-public .ota-metrics-band {
    padding: 1.15rem 0 1.45rem;
  }
  .metric-grid {
    gap: 0.65rem;
  }
  .metric-card {
    padding: 1rem 0.75rem 0.95rem;
    min-height: 0;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
  }
  .metric-card-value {
    font-size: 1.35rem;
  }
  .metric-card-label {
    font-size: 13px;
    line-height: 1.35;
  }
  .metric-card-icon {
    width: 2rem;
    height: 2rem;
    margin-bottom: 0.45rem;
    font-size: 0.9rem;
  }
  .ota-result-leg .ota-time-lg {
    white-space: nowrap;
    font-size: 1.35rem;
  }
  .ota-result-leg__date {
    white-space: nowrap;
    font-size: 0.74rem;
  }
  .ota-result-card-v2 .ota-result-leg .ota-time-lg {
    font-size: 1.15rem;
  }
  .ota-result-card-v2 .ota-result-leg__date {
    font-size: 0.68rem;
  }
  .ota-result-card-v2 .ota-btn-book.btn-primary {
    min-height: 40px;
    font-weight: 800;
    font-size: 0.875rem;
  }
  .ota-result-card-v2 .ota-flight-details-trigger {
    font-size: 0.75rem;
  }
  .ota-price-lg {
    font-variant-numeric: tabular-nums;
  }
  body.ota-public .ota-checkout-card {
    border-radius: var(--ota-radius);
    box-shadow: 0 2px 12px rgba(15, 23, 42, 0.06);
    margin-bottom: 1rem;
  }
  body.ota-public .ota-checkout-stepper {
    width: 100%;
    justify-content: center;
    margin-bottom: 0.75rem;
  }
  body.ota-public .ota-checkout-card--section {
    border-left-width: 0;
    border-top: 3px solid #dbeafe;
  }
  body.ota-public .ota-passenger-card__summary {
    margin-left: -1rem;
    margin-right: -1rem;
    padding-left: 1rem;
    padding-right: 1rem;
  }
  body.ota-public .ota-checkout-submit-bar {
    position: sticky;
    bottom: 0;
    z-index: 1060;
    margin: 1.35rem calc(-1 * var(--ota-gutter-x)) 0;
    padding: 0.85rem var(--ota-gutter-x) calc(0.85rem + env(safe-area-inset-bottom, 0px));
    background: linear-gradient(to top, rgba(241, 245, 249, 0.97) 55%, rgba(241, 245, 249, 0));
    border-top: 1px solid var(--ota-border);
  }
  body.ota-public .ota-checkout-submit-bar .btn {
    margin-bottom: 0;
  }
  body.ota-public .ota-checkout-sticky-summary {
    margin-bottom: 1rem;
  }
}

@media (max-width: 991px) {
  body.ota-public .ota-agent-landing-rhythm .ota-section-head {
    margin-bottom: 1.25rem;
  }
}

/* ========== Phase 23B.2 — flight widget + footer rhythm ========== */
.ota-field {
  border-color: #d8e1ee;
  border-radius: 12px;
}
@media (max-width: 767px) {
  body.ota-public .ota-footer-grid {
    gap: 1rem 1.15rem;
  }
}

/* ========== Help & Support Center (reference layout) ========== */
body.ota-public .ota-support-page {
  background: #fff;
  padding-top: 2.5rem;
  padding-bottom: 3.5rem;
}
@media (min-width: 992px) {
  body.ota-public .ota-support-page {
    padding-top: 3rem;
    padding-bottom: 4.5rem;
  }
}

body.ota-public .ota-support-page .ota-support-hero.ota-section-head {
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 2.25rem;
}
@media (min-width: 992px) {
  body.ota-public .ota-support-page .ota-support-hero.ota-section-head {
    margin-bottom: 2.75rem;
  }
}

body.ota-public .ota-support-page-title {
  font-size: clamp(1.65rem, 4vw, 2.125rem);
  letter-spacing: -0.035em;
}

body.ota-public .ota-support-hero-desc {
  font-size: clamp(0.95rem, 2vw, 1.0625rem);
  line-height: 1.62;
  color: #64748b;
}

body.ota-public .ota-support-main-row {
  margin-top: 0;
}

body.ota-public .ota-support-panel,
body.ota-public .ota-about-panel {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1.35rem 1.5rem;
  margin-bottom: 1rem;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.05),
    0 4px 24px -6px rgba(15, 23, 42, 0.08);
}
@media (min-width: 768px) {
  body.ota-public .ota-support-panel,
  body.ota-public .ota-about-panel {
    padding: 1.5rem 1.65rem;
    margin-bottom: 1.15rem;
  }
}

body.ota-public .ota-support-col-info .ota-support-panel:last-child {
  margin-bottom: 0;
}

body.ota-public .ota-support-panel-title,
body.ota-public .ota-about-panel-title {
  margin: 0 0 0.85rem;
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #1e293b;
}

body.ota-public .ota-support-list {
  margin: 0;
  padding-left: 1.15rem;
  color: #475569;
  font-size: 0.9375rem;
  line-height: 1.65;
}
body.ota-public .ota-support-list li {
  margin-bottom: 0.35rem;
}
body.ota-public .ota-support-list li:last-child {
  margin-bottom: 0;
}

body.ota-public .ota-support-panel-lead {
  margin: 0 0 1rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: #64748b;
}

body.ota-public .ota-support-channel-label {
  font-weight: 700;
  color: #334155;
}

body.ota-public .ota-support-list--channels a {
  color: var(--ota-blue);
  font-weight: 600;
  text-decoration: none;
}
body.ota-public .ota-support-list--channels a:hover {
  text-decoration: underline;
}

body.ota-public .ota-support-faq {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
body.ota-public .ota-support-faq-item {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.58;
  color: #64748b;
}
body.ota-public .ota-support-faq-item strong {
  color: #334155;
  font-weight: 700;
}

body.ota-public .ota-support-page .ota-form-card.ota-support-form-card {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 1.15rem;
  padding: 1.35rem 1.4rem;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.05),
    0 8px 32px -10px rgba(15, 23, 42, 0.1);
}
@media (min-width: 768px) {
  body.ota-public .ota-support-page .ota-form-card.ota-support-form-card {
    padding: 1.65rem 1.75rem;
    margin-bottom: 1.25rem;
  }
}

body.ota-public .ota-support-col-forms .ota-support-form-card:last-child {
  margin-bottom: 0;
}

body.ota-public .ota-support-form-card-title {
  margin: 0 0 0.4rem;
  font-size: 1.0625rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #1e293b;
}

body.ota-public .ota-support-form-card-desc {
  margin: 0 0 1.15rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: #64748b;
}

body.ota-public .ota-support-page .ota-support-form-card .ota-form-grid {
  gap: 0.95rem;
}

body.ota-public .ota-support-page .ota-support-submit {
  border-radius: 8px;
  margin-top: 0.15rem;
  min-height: 48px;
  font-weight: 700;
  font-size: 1rem;
}

body.ota-public .ota-support-form-links {
  margin-top: 1.15rem;
  padding-top: 0.25rem;
}
body.ota-public .ota-support-form-links-line {
  margin: 0 0 0.45rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #64748b;
}
body.ota-public .ota-support-form-links-line:last-child {
  margin-bottom: 0;
}
body.ota-public .ota-support-form-links-line a {
  color: var(--ota-blue);
  font-weight: 600;
  text-decoration: none;
}
body.ota-public .ota-support-form-links-line a:hover {
  text-decoration: underline;
}

@media (max-width: 991px) {
  body.ota-public .ota-support-col-forms {
    margin-top: 0.25rem;
  }
}

/* ========== Support request submitted ========== */
body.ota-public .ota-support-submitted-page {
  padding-top: 2.5rem;
  padding-bottom: 3.5rem;
}

body.ota-public .ota-support-submitted-card {
  max-width: 32rem;
  margin: 0 auto;
  padding: 2rem 1.5rem;
  text-align: center;
  background: #fff;
  border: 1px solid var(--ota-border, #e2e8f0);
  border-radius: 1rem;
  box-shadow: 0 12px 40px rgba(15, 23, 42, 0.06);
}

body.ota-public .ota-support-submitted-icon {
  width: 4.5rem;
  height: 4.5rem;
  margin: 0 auto 1.25rem;
  border-radius: 50%;
  background: rgba(34, 197, 94, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: ota-support-submitted-pop 0.55s ease-out;
}

body.ota-public .ota-support-submitted-check {
  display: block;
  width: 1.35rem;
  height: 2.25rem;
  border: solid var(--ota-success, #16a34a);
  border-width: 0 0.28rem 0.28rem 0;
  transform: rotate(45deg) scale(0);
  margin-top: -0.35rem;
  animation: ota-support-submitted-check 0.45s ease-out 0.2s forwards;
}

@keyframes ota-support-submitted-pop {
  0% {
    transform: scale(0.6);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes ota-support-submitted-check {
  0% {
    transform: rotate(45deg) scale(0);
  }
  100% {
    transform: rotate(45deg) scale(1);
  }
}

body.ota-public .ota-support-submitted-title {
  font-size: 1.65rem;
  font-weight: 700;
  margin: 0 0 0.75rem;
  color: var(--ota-text, #0f172a);
}

body.ota-public .ota-support-submitted-lead {
  margin: 0 0 1.25rem;
  color: var(--ota-text-muted, #475569);
  line-height: 1.55;
}

body.ota-public .ota-support-submitted-ref {
  display: inline-flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.85rem 1.25rem;
  margin-bottom: 1rem;
  border-radius: 0.65rem;
  background: var(--ota-surface-muted, #f8fafc);
  border: 1px dashed var(--ota-border, #cbd5e1);
}

body.ota-public .ota-support-submitted-ref-label {
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ota-text-muted, #64748b);
}

body.ota-public .ota-support-submitted-ref-value {
  font-size: 1.1rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  color: var(--ota-blue, #2563eb);
  letter-spacing: 0.02em;
}

body.ota-public .ota-support-submitted-note {
  margin: 0 0 1.5rem;
  font-size: 0.9rem;
  color: var(--ota-text-muted, #64748b);
}

body.ota-public .ota-support-submitted-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
}

body.ota-public .ota-field-error {
  margin: 0.35rem 0 0;
  font-size: 0.85rem;
  color: #b91c1c;
}

/* ========== About us page (aligned with support styling) ========== */
body.ota-public .ota-about-page {
  background: #fff;
  padding-top: 2.5rem;
  padding-bottom: 3.5rem;
}
@media (min-width: 992px) {
  body.ota-public .ota-about-page {
    padding-top: 3rem;
    padding-bottom: 4.5rem;
  }
}

body.ota-public .ota-about-page .ota-about-hero.ota-section-head {
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 2rem;
}
@media (min-width: 992px) {
  body.ota-public .ota-about-page .ota-about-hero.ota-section-head {
    margin-bottom: 2.5rem;
  }
}

body.ota-public .ota-about-page-title {
  font-size: clamp(1.65rem, 4vw, 2.125rem);
  letter-spacing: -0.035em;
}

body.ota-public .ota-about-hero-desc {
  font-size: clamp(0.95rem, 2vw, 1.0625rem);
  line-height: 1.62;
  color: #64748b;
}

body.ota-public .ota-about-hero-desc a {
  color: var(--ota-blue);
  font-weight: 600;
  text-decoration: none;
}
body.ota-public .ota-about-hero-desc a:hover {
  text-decoration: underline;
}

body.ota-public .ota-about-columns {
  margin-bottom: 0.25rem;
}

body.ota-public .d-flex.flex-column.gap-3 > .ota-about-panel {
  margin-bottom: 0;
}

body.ota-public .ota-about-panel--lead {
  margin-bottom: 1.25rem;
}
@media (min-width: 992px) {
  body.ota-public .ota-about-panel--lead {
    margin-bottom: 1.5rem;
  }
}

body.ota-public .ota-about-panel--emphasis {
  margin-bottom: 1.25rem;
}
@media (min-width: 992px) {
  body.ota-public .ota-about-panel--emphasis {
    margin-bottom: 1.5rem;
  }
}

body.ota-public .ota-about-panel p {
  margin: 0 0 1rem;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: #64748b;
}
body.ota-public .ota-about-panel p:last-child {
  margin-bottom: 0;
}

body.ota-public .ota-about-panel a {
  color: var(--ota-blue);
  font-weight: 600;
  text-decoration: none;
}
body.ota-public .ota-about-panel a:hover {
  text-decoration: underline;
}

body.ota-public .ota-about-panel .ota-about-panel-title + p {
  margin-top: 0;
}

body.ota-public .ota-about-panel .ota-support-list strong {
  color: #334155;
}

body.ota-public .ota-about-footnote {
  margin: 1rem 0 0 !important;
  padding-top: 0.75rem;
  border-top: 1px solid #e2e8f0;
  font-size: 0.8125rem !important;
  line-height: 1.5 !important;
  color: #94a3b8 !important;
}

@media (max-width: 991px) {
  body.ota-public .ota-about-columns .col-lg-6 + .col-lg-6 {
    margin-top: 0.15rem;
  }
}

/* ========== Lookup booking page (aligned with support / about) ========== */
body.ota-public .ota-lookup-page {
  background: #fff;
  padding-top: 2.5rem;
  padding-bottom: 3.5rem;
}
@media (min-width: 992px) {
  body.ota-public .ota-lookup-page {
    padding-top: 3rem;
    padding-bottom: 4.5rem;
  }
}

body.ota-public .ota-lookup-page .ota-lookup-hero.ota-section-head {
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 2rem;
}
@media (min-width: 992px) {
  body.ota-public .ota-lookup-page .ota-lookup-hero.ota-section-head {
    margin-bottom: 2.5rem;
  }
}

body.ota-public .ota-lookup-page-title {
  font-size: clamp(1.65rem, 4vw, 2.125rem);
  letter-spacing: -0.035em;
}

body.ota-public .ota-lookup-hero-desc {
  font-size: clamp(0.95rem, 2vw, 1.0625rem);
  line-height: 1.62;
  color: #64748b;
}

body.ota-public .ota-lookup-main-row {
  margin-top: 0;
}

body.ota-public .ota-lookup-page .ota-lookup-info-lead {
  margin: 0 0 1rem;
  font-size: 0.9375rem;
  line-height: 1.62;
  color: #64748b;
}

body.ota-public .ota-lookup-page .ota-lookup-info-text {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: #64748b;
}

body.ota-public .ota-lookup-page .ota-lookup-tip {
  margin: 1rem 0 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #94a3b8;
}

body.ota-public .ota-lookup-page .ota-form-card.ota-lookup-form-card {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 0;
  padding: 1.35rem 1.4rem;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.05),
    0 8px 32px -10px rgba(15, 23, 42, 0.1);
}
@media (min-width: 768px) {
  body.ota-public .ota-lookup-page .ota-form-card.ota-lookup-form-card {
    padding: 1.65rem 1.75rem;
  }
}

body.ota-public .ota-lookup-page .ota-lookup-form-card .ota-form-grid {
  gap: 0.95rem;
}

/* Wrapper `.ota-field` inherits flight-widget input chrome (border/padding) — remove outer box on lookup only */
body.ota-public .ota-lookup-page .ota-form-card .ota-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
  border: none;
  background: transparent;
  box-shadow: none;
  padding: 0;
  min-height: 0;
}
body.ota-public .ota-lookup-page .ota-form-card .ota-field:focus,
body.ota-public .ota-lookup-page .ota-form-card .ota-field:focus-within {
  outline: none;
  border: none;
  box-shadow: none;
}

body.ota-public .ota-lookup-page .ota-lookup-submit {
  border-radius: 8px;
  margin-top: 0.15rem;
  min-height: 48px;
  font-weight: 700;
  font-size: 1rem;
}

body.ota-public .ota-lookup-page .ota-lookup-footer-links {
  margin-top: 1.35rem;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  max-width: 100%;
  min-width: 0;
}

body.ota-public .ota-lookup-page .ota-lookup-footer-links a {
  overflow-wrap: anywhere;
}

/* Sprint 6C-P1 — lookup/support horizontal containment (fix document scrollWidth bleed) */
body.ota-public .ota-lookup-page .ota-lookup-main-row,
body.ota-public .ota-support-page .ota-support-main-row {
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100%;
  max-width: 100%;
}

body.ota-public .ota-lookup-page .ota-about-panel,
body.ota-public .ota-lookup-page .ota-form-card,
body.ota-public .ota-support-page .ota-support-panel,
body.ota-public .ota-support-page .ota-form-card.ota-support-form-card {
  max-width: 100%;
  min-width: 0;
}

body.ota-public .ota-lookup-page .ota-lookup-info-lead,
body.ota-public .ota-lookup-page .ota-lookup-info-text,
body.ota-public .ota-lookup-page .ota-lookup-tip,
body.ota-public .ota-support-page .ota-support-panel-lead,
body.ota-public .ota-support-page .ota-support-faq-item,
body.ota-public .ota-support-page .ota-support-form-card-desc,
body.ota-public .ota-support-page .ota-support-form-links-line {
  overflow-wrap: anywhere;
}

body.ota-public .ota-support-page .ota-support-list--channels li,
body.ota-public .ota-support-page .ota-support-list--channels a {
  overflow-wrap: anywhere;
  word-break: break-word;
}

@media (max-width: 767.98px) {
  body.ota-public .ota-lookup-page .ota-lookup-main-row,
  body.ota-public .ota-support-page .ota-support-main-row {
    --bs-gutter-x: 1rem;
  }

  body.ota-public .ota-lookup-page .ota-lookup-footer-links {
    flex-direction: column;
    align-items: center;
    gap: 0.65rem;
  }
}

@media (max-width: 991px) {
  body.ota-public .ota-lookup-main-row .col-lg-7 {
    margin-top: 0.35rem;
  }
}

/* —— UI-P5 structured footer (light / IATI-style) —— */
body.ota-public footer.ota-footer-pro.footer-copyright {
  background: var(--ota-footer-bg, #f8fafc) !important;
  border-top: 1px solid #e2e8f0 !important;
  color: var(--ota-footer-text, #334155);
}
.ota-footer-pro {
  padding: 0;
  font-size: 0.875rem;
}
.ota-footer-pro--compact .ota-footer-pro__inner { padding: 1.25rem 1rem 0.75rem; }
.ota-footer-pro--normal .ota-footer-pro__inner { padding: 2rem 1rem 1rem; }
.ota-footer-pro--spacious .ota-footer-pro__inner { padding: 2.75rem 1rem 1.35rem; }
.ota-footer-pro__inner {
  max-width: var(--ota-max-content);
  margin: 0 auto;
}
.ota-footer-pro__grid {
  display: grid;
  gap: 1.5rem 1.25rem;
  align-items: start;
}
.ota-footer-pro--cols-5 .ota-footer-pro__grid {
  grid-template-columns: minmax(0, 1.35fr) repeat(3, minmax(0, 1fr)) minmax(0, 1.1fr);
}
.ota-footer-pro--cols-4 .ota-footer-pro__grid {
  grid-template-columns: minmax(0, 1.35fr) repeat(2, minmax(0, 1fr)) minmax(0, 1.1fr);
}
@media (max-width: 1199px) {
  .ota-footer-pro__grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .ota-footer-pro__brand { grid-column: 1 / -1; }
}
@media (max-width: 575px) {
  .ota-footer-pro__grid { grid-template-columns: 1fr !important; }
}
.ota-footer-pro__brand-name {
  display: block;
  font-size: 1.125rem;
  font-weight: 800;
  color: var(--ota-footer-heading, #0f172a);
  margin-bottom: 0.35rem;
}
.ota-footer-pro__logo {
  max-height: 40px;
  max-width: 180px;
  object-fit: contain;
  margin-bottom: 0.5rem;
}
.ota-footer-pro__about {
  margin: 0 0 0.85rem;
  line-height: 1.5;
  color: var(--ota-footer-text, #334155);
  max-width: 28rem;
}
.ota-footer-pro__support-card {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  background: #fff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  margin-bottom: 0.85rem;
  max-width: 16rem;
}
.ota-footer-pro__support-icon {
  width: 2rem;
  height: 2rem;
  border-radius: 8px;
  background: color-mix(in srgb, var(--ota-footer-accent, #0284c7) 12%, white);
  color: var(--ota-footer-accent, #0284c7);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ota-footer-pro__support-text strong {
  display: block;
  color: var(--ota-footer-heading, #0f172a);
  font-size: 0.8125rem;
}
.ota-footer-pro__support-text small {
  color: var(--ota-footer-text, #64748b);
}
.ota-footer-pro__social {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.ota-footer-pro__social-btn {
  width: 2rem;
  height: 2rem;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ota-footer-heading, #0f172a) !important;
  background: #fff;
  text-decoration: none !important;
}
.ota-footer-pro__social-btn:hover {
  border-color: var(--ota-footer-accent, #0284c7);
  color: var(--ota-footer-accent, #0284c7) !important;
}
.ota-footer-pro__heading {
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ota-footer-heading, #0f172a);
  margin-bottom: 0.65rem;
}
.ota-footer-pro__links {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ota-footer-pro__links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
  padding: 0.2rem 0;
  color: var(--ota-footer-link, #1e3a5f) !important;
  text-decoration: none !important;
  font-weight: 500;
}
.ota-footer-pro__links a:hover {
  color: var(--ota-footer-link-hover, #0c4a6e) !important;
}
.ota-footer-pro__links .fa-angle-right {
  font-size: 0.75rem;
  opacity: 0.55;
}
.ota-footer-pro__contact-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ota-footer-pro__contact-list li {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
  margin-bottom: 0.45rem;
  line-height: 1.4;
}
.ota-footer-pro__contact-list .fa {
  color: var(--ota-footer-accent, #0284c7);
  width: 1rem;
  margin-top: 0.15rem;
}
.ota-footer-pro__contact-list a {
  color: var(--ota-footer-link, #1e3a5f) !important;
  text-decoration: none !important;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__heading {
  color: var(--ota-footer-heading, #0f172a);
  font-weight: 800;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__links a {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.45rem;
  width: 100%;
  color: #64748b !important;
  font-weight: 400;
  line-height: 1.5;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__links a:hover,
body.ota-public footer.ota-footer-pro .ota-footer-pro__links a:focus {
  color: var(--ota-footer-link-hover, #0c4a6e) !important;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__links a .fa-angle-right {
  display: none;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__contact-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  line-height: 1.5;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__contact-list a {
  display: inline-flex;
  align-items: flex-start;
  color: #475569 !important;
  line-height: 1.5;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__grid {
  grid-template-columns: minmax(230px, 280px) minmax(0, 1fr);
  gap: 1.75rem 2rem;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__brand,
body.ota-public footer.ota-footer-pro .ota-footer-pro__col {
  min-width: 0;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__menus {
  display: grid;
  grid-template-columns: repeat(6, minmax(95px, 1fr));
  gap: 1.1rem 1rem;
  min-width: 0;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__about,
body.ota-public footer.ota-footer-pro .ota-footer-pro__partner-agency {
  color: #64748b;
  font-size: 0.79rem;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__brand-contact {
  display: grid;
  gap: 0.45rem;
  list-style: none;
  margin: 0.75rem 0 0;
  max-width: 16rem;
  padding: 0;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__brand-contact li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #64748b;
  font-size: 0.79rem;
  line-height: 1.45;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__brand-contact .fa {
  flex: 0 0 1rem;
  width: 1rem;
  color: var(--ota-footer-accent, #0284c7);
  text-align: center;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__brand-contact a {
  color: #475569 !important;
  text-decoration: none !important;
  overflow-wrap: anywhere;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__brand-contact a:hover,
body.ota-public footer.ota-footer-pro .ota-footer-pro__brand-contact a:focus {
  color: var(--ota-footer-link-hover, #0c4a6e) !important;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__heading {
  font-size: 0.78rem;
  line-height: 1.3;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__links a {
  color: #64748b !important;
  font-size: 0.78rem;
  line-height: 1.48;
  padding: 0.16rem 0;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__copy,
body.ota-public footer.ota-footer-pro .ota-footer-pro__disclaimer,
body.ota-public footer.ota-footer-pro .ota-footer-pro__legal a {
  font-size: 0.73rem;
}
@media (max-width: 1199px) {
  body.ota-public footer.ota-footer-pro .ota-footer-pro__grid {
    grid-template-columns: 1fr !important;
  }
  body.ota-public footer.ota-footer-pro .ota-footer-pro__brand {
    grid-column: auto;
  }
  body.ota-public footer.ota-footer-pro .ota-footer-pro__menus {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  body.ota-public footer.ota-footer-pro .ota-footer-pro__menus {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 479px) {
  body.ota-public footer.ota-footer-pro .ota-footer-pro__menus {
    grid-template-columns: 1fr;
  }
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__bar {
  color: #64748b;
}
body.ota-public footer.ota-footer-pro .ota-footer-pro__copy,
body.ota-public footer.ota-footer-pro .ota-footer-pro__legal {
  line-height: 1.5;
}
.ota-footer-pro__bar {
  width: 100%;
  margin-top: 1.25rem;
  padding: 0.85rem 0;
  border-top: 1px solid #e2e8f0;
  background: var(--ota-footer-bar-bg, #f1f5f9);
  box-sizing: border-box;
}
.ota-footer-pro__bar-inner {
  max-width: var(--ota-max-content);
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
  box-sizing: border-box;
}
.ota-footer-pro__bar-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 1rem;
  margin-bottom: 0.45rem;
}
.ota-footer-pro__copy,
.ota-footer-pro__disclaimer {
  font-size: 0.75rem;
  color: #64748b;
}
.ota-footer-pro__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.85rem;
}
.ota-footer-pro__legal a {
  font-size: 0.75rem;
  color: var(--ota-footer-link, #1e3a5f) !important;
  text-decoration: none !important;
}
.ota-footer-pro__bar-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
}
.ota-footer-pro__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.ota-footer-pro__badge {
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.2rem 0.45rem;
  border-radius: 4px;
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #475569;
}

/* —— Universal profile settings (frontend + dashboard) —— */
.ota-profile-page,
.ota-profile-page-wrap {
  padding-bottom: 5rem;
}
.ota-profile-page .ota-profile-page-inner,
.ota-profile-page-wrap .container {
  max-width: 1080px;
  padding-top: 1.5rem;
  padding-bottom: 1.25rem;
}
@media (min-width: 992px) {
  .ota-profile-page .ota-profile-page-inner,
  .ota-profile-page-wrap .container {
    padding-top: 2rem;
  }
}
.ota-profile-page-header {
  margin-bottom: 1.75rem;
}
.ota-profile-page-header .ota-page-title {
  font-size: 1.75rem;
  font-weight: 800;
  margin: 0 0 0.35rem;
  color: #0f172a;
  letter-spacing: -0.02em;
}
.ota-profile-page-header .ota-page-subtitle {
  margin: 0;
  color: #64748b;
  font-size: 0.95rem;
  max-width: 42rem;
  line-height: 1.5;
}
.ota-profile-wrap {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.ota-profile-alert {
  border-radius: 12px;
  margin: 0;
}
.ota-profile-hero,
.ota-profile-summary-card {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.25rem 1.5rem;
  padding: 1.5rem;
  background: #fff;
  border: 1px solid #e4ebf5;
  border-radius: 16px;
  box-shadow: 0 8px 28px rgba(15, 23, 42, 0.06);
}
.ota-profile-hero__avatar {
  width: 120px;
  height: 120px;
  border-radius: 999px;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: linear-gradient(135deg, #1d4ed8, #0ea5e9);
  color: #fff;
  font-weight: 800;
  font-size: 2rem;
  box-shadow: 0 10px 28px rgba(37, 99, 235, 0.28);
}
.ota-profile-hero__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ota-profile-hero__body {
  flex: 1 1 12rem;
  min-width: 0;
}
.ota-profile-hero__title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.25rem;
}
.ota-profile-hero__name {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.02em;
}
.ota-profile-role-badge {
  display: inline-flex;
  align-items: center;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
}
.ota-profile-hero__email {
  margin: 0;
  color: #475569;
  font-size: 0.95rem;
}
.ota-profile-hero__note {
  margin: 0.45rem 0 0;
  color: #64748b;
  font-size: 0.875rem;
}
.ota-profile-hero__actions {
  flex: 0 0 auto;
  margin-left: auto;
}
.ota-profile-back-btn {
  white-space: nowrap;
}
.ota-profile-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  align-items: start;
}
@media (min-width: 992px) {
  .ota-profile-grid {
    grid-template-columns: minmax(252px, 288px) minmax(0, 1fr);
    gap: 1.375rem;
  }
}
.ota-profile-sidebar {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.ota-profile-main {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  min-width: 0;
}
.ota-profile-section {
  background: #fff;
  border: 1px solid #e4ebf5;
  border-radius: 16px;
  box-shadow: 0 6px 22px rgba(15, 23, 42, 0.05);
  padding: 1.5rem;
}
.ota-profile-section-header {
  margin-bottom: 1.15rem;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid #eef2f7;
}
.ota-profile-section-title {
  margin: 0 0 0.3rem;
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.01em;
}
.ota-profile-section-lead {
  margin: 0;
  font-size: 0.875rem;
  color: #64748b;
  line-height: 1.5;
  font-weight: 400;
}
.ota-profile-form-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem 1.25rem;
}
@media (min-width: 768px) {
  .ota-profile-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.ota-profile-form-grid.is-password {
  gap: 1rem 1.25rem;
}
.ota-profile-field--full,
.ota-profile-field--span-2 {
  grid-column: 1 / -1;
}
.ota-profile-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}
.ota-profile-label {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #334155;
  margin: 0;
}
.ota-profile-label-optional {
  font-weight: 500;
  color: #94a3b8;
}
.ota-profile-input,
.ota-profile-select,
.ota-profile-page .form-control,
.ota-profile-page .form-select {
  min-height: 2.75rem;
  border-radius: 10px;
  border: 1px solid #d7e0ec;
  font-size: 0.9375rem;
  color: #0f172a;
  background: #fff;
  box-shadow: none;
}
.ota-profile-input:focus,
.ota-profile-select:focus,
.ota-profile-page .form-control:focus,
.ota-profile-page .form-select:focus {
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.18);
  outline: none;
}
.ota-profile-page .form-control.is-invalid,
.ota-profile-page .form-select.is-invalid {
  border-color: #ef4444;
}
.ota-profile-field-hint {
  margin: 0.15rem 0 0;
  font-size: 0.75rem;
  line-height: 1.5;
  font-weight: 400;
  color: #64748b;
}
.ota-profile-link-btn {
  border: 0;
  background: none;
  padding: 0;
  color: #2563eb;
  font-weight: 600;
  font-size: inherit;
  text-decoration: underline;
  cursor: pointer;
}
.ota-profile-field-error {
  font-size: 0.75rem;
  line-height: 1.5;
  font-weight: 400;
  color: #dc2626;
}
/* Profile photo upload card */
.ota-profile-photo-card .ota-profile-section-header {
  margin-bottom: 1rem;
}
.ota-profile-upload-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.1rem;
  text-align: center;
  padding: 0.35rem 0 0.15rem;
}
.ota-profile-photo-preview {
  width: 112px;
  height: 112px;
  border-radius: 999px;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: linear-gradient(135deg, #1d4ed8, #38bdf8);
  color: #fff;
  font-weight: 800;
  font-size: 2rem;
  box-shadow: 0 10px 24px rgba(37, 99, 235, 0.24);
  border: 3px solid #fff;
  outline: 1px solid #dbeafe;
}
.ota-profile-photo-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ota-profile-upload-controls {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}
.ota-profile-upload-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.55rem 1.25rem;
  border-radius: 10px;
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: 0.9375rem;
  font-weight: 700;
  cursor: pointer;
  margin: 0;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
.ota-profile-upload-btn:hover {
  background: #dbeafe;
  border-color: #93c5fd;
}
.ota-profile-upload-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.28);
}
.ota-profile-file-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.ota-profile-file-input:focus-visible + .ota-profile-file-hint,
.ota-profile-upload-controls:focus-within .ota-profile-upload-btn {
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.22);
}
.ota-profile-file-hint {
  margin: 0;
  font-size: 0.75rem;
  color: #64748b;
  line-height: 1.5;
  font-weight: 400;
}
.ota-profile-file-name {
  margin: 0;
  min-height: 1.25rem;
  font-size: 0.8125rem;
  color: #334155;
  font-weight: 600;
  word-break: break-word;
  max-width: 100%;
}
.ota-profile-file-name:empty {
  display: none;
}
.ota-profile-check {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: #475569;
  cursor: pointer;
  text-align: left;
  width: 100%;
  padding-top: 0.15rem;
}
.ota-profile-check-input {
  margin-top: 0.15rem;
  flex-shrink: 0;
}
.ota-profile-section-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  margin-top: 0.35rem;
  padding-top: 1.25rem;
}
.ota-profile-save-btn,
.ota-profile-password-btn {
  min-width: 10.5rem;
  min-height: 2.75rem;
  border-radius: 10px;
  font-weight: 700;
}
.ota-profile-password-btn {
  background: #1e3a8a;
  color: #fff !important;
  border: 1px solid #1e3a8a;
  padding: 0.55rem 1.25rem;
  font-size: 0.9375rem;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.ota-profile-password-btn:hover {
  background: #1e40af;
  border-color: #1e40af;
}
.ota-profile-password-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(30, 58, 138, 0.35);
}
.ota-profile-status-ok {
  font-size: 0.875rem;
  font-weight: 600;
  color: #15803d;
}
.ota-profile-section--password {
  margin-top: 0.15rem;
}
.ota-profile-danger-zone {
  margin-top: 0.75rem;
}
.ota-profile-danger {
  background: #fff;
  border: 1px solid #f1f5f9;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: none;
}
.ota-profile-danger-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  padding: 0.85rem 1.15rem;
  cursor: pointer;
  list-style: none;
  background: #f8fafc;
}
.ota-profile-danger-summary::-webkit-details-marker {
  display: none;
}
.ota-profile-danger-title {
  font-weight: 600;
  color: #64748b;
  font-size: 0.875rem;
}
.ota-profile-danger-hint {
  font-size: 0.75rem;
  color: #94a3b8;
}
.ota-profile-danger-body {
  padding: 0 1.15rem 1rem;
  border-top: 1px solid #f1f5f9;
}
.ota-profile-danger-copy {
  margin: 0.85rem 0 0.75rem;
  font-size: 0.875rem;
  color: #64748b;
  line-height: 1.5;
  font-weight: 400;
  max-width: 36rem;
}
.ota-profile-danger-btn {
  display: inline-flex;
  align-items: center;
  background: transparent;
  color: #b91c1c !important;
  border: 1px solid #fecaca;
  font-size: 0.8125rem;
  padding: 0.45rem 0.85rem;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.ota-profile-danger-btn:hover {
  background: #fff5f5;
  border-color: #fca5a5;
}
/* Dashboard shell: align profile cards with Tabler page content */
.page .ota-profile-page {
  padding-bottom: 3rem;
}
.page .ota-profile-page .ota-profile-hero__actions {
  margin-left: 0;
  width: 100%;
}
@media (min-width: 768px) {
  .page .ota-profile-page .ota-profile-hero__actions {
    width: auto;
    margin-left: auto;
  }
}

/* —— Customer account area (frontend shell, profile-aligned) —— */
.ota-account-page,
.ota-account-page-wrap {
  padding-bottom: 5rem;
}
.ota-account-page .ota-account-page-inner,
.ota-account-page-wrap .container.ota-account-wrap {
  max-width: 1080px;
  padding-top: 1.5rem;
  padding-bottom: 1.25rem;
}
@media (min-width: 992px) {
  .ota-account-page .ota-account-page-inner,
  .ota-account-page-wrap .container.ota-account-wrap {
    padding-top: 2rem;
  }
}
.ota-account-subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 1.5rem;
  padding: 0.35rem;
  background: #f8fafc;
  border: 1px solid #e4ebf5;
  border-radius: 14px;
}
.ota-account-subnav__link {
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 0.85rem;
  border-radius: 10px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #475569;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
}
.ota-account-subnav__link:hover,
.ota-account-subnav__link:focus {
  background: #fff;
  color: #1d4ed8;
}
.ota-account-subnav__link.is-active {
  background: #fff;
  color: #1d4ed8;
  box-shadow: 0 2px 10px rgba(37, 99, 235, 0.12);
  border: 1px solid #bfdbfe;
}
.ota-account-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem 1.25rem;
  margin-bottom: 1.75rem;
}
.ota-account-pretitle {
  margin: 0 0 0.25rem;
  font-size: 0.75rem;
  line-height: 1.5;
  font-weight: 400;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}
.ota-account-title {
  font-size: 1.75rem;
  line-height: 1.2;
  font-weight: 700;
  margin: 0 0 0.35rem;
  color: #0f172a;
  letter-spacing: -0.02em;
}
.ota-account-subtitle {
  margin: 0;
  color: #64748b;
  font-size: 0.875rem;
  font-weight: 400;
  max-width: 42rem;
  line-height: 1.5;
}
.ota-account-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.ota-account-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin-bottom: 1rem;
}
.ota-account-card {
  background: #fff;
  border: 1px solid #e4ebf5;
  border-radius: 18px;
  box-shadow: 0 8px 28px rgba(15, 23, 42, 0.06);
  overflow: visible;
}
.ota-account-card__head {
  padding: 1.15rem 1.35rem;
  border-bottom: 1px solid #eef2f7;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.ota-account-card__title {
  margin: 0;
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: 0;
  color: #0f172a;
}
.ota-account-card__lead {
  margin: 0.2rem 0 0;
  font-size: 0.875rem;
  line-height: 1.5;
  font-weight: 400;
  color: #64748b;
}
.ota-account-card__body {
  padding: 1.25rem 1.35rem;
}
.ota-account-card__body--flush {
  padding: 0;
  overflow: hidden;
  border-radius: 0 0 18px 18px;
}
.ota-account-card__footer {
  padding: 0.85rem 1.35rem;
  border-top: 1px solid #eef2f7;
}
.ota-account-section-title {
  margin: 0 0 0.3rem;
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: 0;
  color: #0f172a;
}
.ota-account-section-lead {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  line-height: 1.5;
  font-weight: 400;
  color: #64748b;
}
.ota-account-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media (min-width: 576px) {
  .ota-account-grid--kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 992px) {
  .ota-account-grid--kpis {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .ota-account-grid--quick {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .ota-account-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.ota-account-kpi {
  padding: 1.1rem 1.2rem;
  background: #fff;
  border: 1px solid #e4ebf5;
  border-radius: 16px;
  border-top: 3px solid #2563eb;
  box-shadow: 0 6px 22px rgba(15, 23, 42, 0.05);
}
.ota-account-kpi--amber { border-top-color: #f59e0b; }
.ota-account-kpi--violet { border-top-color: #8b5cf6; }
.ota-account-kpi--emerald { border-top-color: #10b981; }
.ota-account-kpi__label {
  font-size: 0.75rem;
  line-height: 1.5;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
  margin-bottom: 0.35rem;
}
.ota-account-kpi__value {
  font-size: 1.65rem;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.02em;
  line-height: 1.1;
}
.ota-account-quick {
  display: block;
  text-decoration: none;
  color: inherit;
  height: 100%;
}
.ota-account-quick__card {
  height: 100%;
  padding: 1.15rem 1.2rem;
  background: #fff;
  border: 1px solid #e4ebf5;
  border-radius: 16px;
  box-shadow: 0 6px 22px rgba(15, 23, 42, 0.05);
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.ota-account-quick:hover .ota-account-quick__card,
.ota-account-quick:focus-visible .ota-account-quick__card {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.1);
  border-color: rgba(37, 99, 235, 0.35);
}
.ota-account-quick__icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  margin-bottom: 0.55rem;
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.12), rgba(14, 165, 233, 0.1));
  color: #2563eb;
}
.ota-account-quick__title {
  font-weight: 800;
  font-size: 0.95rem;
  color: #0f172a;
}
.ota-account-quick__help {
  margin-top: 0.3rem;
  font-size: 0.8125rem;
  color: #64748b;
  line-height: 1.4;
}
.ota-account-filter-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 1.25rem;
}
.ota-account-filter-tabs__link {
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #475569;
  text-decoration: none;
  border: 1px solid #e2e8f0;
  background: #fff;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.ota-account-filter-tabs__link:hover,
.ota-account-filter-tabs__link:focus {
  border-color: #93c5fd;
  color: #1d4ed8;
}
.ota-account-filter-tabs__link.is-active {
  background: #2563eb;
  border-color: #2563eb;
  color: #fff;
}
.ota-account-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.ota-account-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}
.ota-account-table thead th {
  text-align: left;
  padding: 0.75rem 1.1rem;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 700;
  color: #64748b;
  background: #f8fafc;
  border-bottom: 2px solid #e4ebf5;
  white-space: nowrap;
}
.ota-account-table tbody td {
  padding: 0.85rem 1.1rem;
  border-bottom: 1px solid #eef2f7;
  vertical-align: middle;
  color: #334155;
}
.ota-account-table tbody tr:hover {
  background: rgba(37, 99, 235, 0.03);
}
.ota-account-table tbody tr:last-child td {
  border-bottom: none;
}
.ota-account-table .text-end {
  text-align: right;
}
.ota-account-table--dashboard tbody td,
.ota-account-table--dashboard thead th {
  vertical-align: middle;
}
.ota-account-table--dashboard .ota-account-table__pnr {
  min-width: 6.5rem;
  white-space: nowrap;
}
.ota-account-table--desktop {
  display: none;
}
.ota-account-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1rem 1.1rem;
}
@media (min-width: 768px) {
  .ota-account-table--desktop {
    display: block;
  }
  .ota-account-list--mobile {
    display: none;
  }
}
.ota-account-list-card {
  padding: 1rem 1.1rem;
  border: 1px solid #e4ebf5;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04);
}
.ota-account-list-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.65rem;
}
.ota-account-list-card__ref {
  font-weight: 800;
  color: #0f172a;
  font-size: 0.95rem;
}
.ota-account-list-card__meta {
  display: grid;
  gap: 0.25rem;
  font-size: 0.8125rem;
  color: #64748b;
  margin-bottom: 0.75rem;
}
.ota-account-list-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.ota-account-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
  padding: 2.5rem 1.25rem 2.25rem;
  text-align: center;
}
.ota-account-empty-icon {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: linear-gradient(135deg, #eef5ff 0%, #dbeafe 100%);
  color: #1d4ed8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  margin-bottom: 0.35rem;
}
.ota-account-empty-title {
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: 0;
  color: #0f172a;
  margin: 0;
}
.ota-account-empty-help {
  font-size: 0.875rem;
  line-height: 1.5;
  font-weight: 400;
  color: #64748b;
  max-width: 420px;
  margin: 0;
}
.ota-account-empty-action {
  margin-top: 0.5rem;
}
.ota-account-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.45rem 0.9rem;
  border-radius: 10px;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  white-space: nowrap;
}
.ota-account-btn--primary {
  background: #2563eb;
  border-color: #2563eb;
  color: #fff !important;
}
.ota-account-btn--primary:hover,
.ota-account-btn--primary:focus {
  background: #1d4ed8;
  border-color: #1d4ed8;
  color: #fff !important;
}
.ota-account-btn--secondary {
  background: #fff;
  border-color: #cbd5e1;
  color: #334155 !important;
}
.ota-account-btn--secondary:hover,
.ota-account-btn--secondary:focus {
  border-color: #93c5fd;
  color: #1d4ed8 !important;
}
.ota-account-btn--danger {
  background: #fff;
  border-color: #fecaca;
  color: #b91c1c !important;
}
.ota-account-btn--danger:hover,
.ota-account-btn--danger:focus {
  background: #fff5f5;
}
.ota-account-btn--sm {
  padding: 0.35rem 0.7rem;
  font-size: 0.75rem;
}
.ota-account-btn--block {
  width: 100%;
}
.ota-account-status-badge,
.ota-account-page .ota-bstat {
  display: inline-flex;
  align-items: center;
  padding: 0.28rem 0.6rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  border: 1px solid #e2e8f0;
  background: #f1f5f9;
  color: #334155;
  text-transform: capitalize;
}
.ota-account-page .ota-bstat--confirmed {
  background: #dbeafe;
  color: #1e3a8a;
  border-color: #3b82f6;
}
.ota-account-page .ota-bstat--pending {
  background: #fef9c3;
  color: #78350f;
  border-color: #eab308;
}
.ota-account-page .ota-bstat--ticketed {
  background: #d1fae5;
  color: #14532d;
  border-color: #22c55e;
}
.ota-account-page .ota-bstat--cancelled {
  background: #fee2e2;
  color: #7f1d1d;
  border-color: #ef4444;
}
.ota-account-page .ota-bstat--muted {
  background: #f1f5f9;
  color: #475569;
  border-color: #e2e8f0;
}
.ota-account-alert {
  border-radius: 12px;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  font-size: 0.875rem;
}
.ota-account-alert--success {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #065f46;
}
.ota-account-alert--warning {
  background: #fffbeb;
  border: 1px solid #fde68a;
  color: #92400e;
}
.ota-account-alert--danger {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}
.ota-account-alert--info {
  background: #f8fafc;
  border: 1px solid #e4ebf5;
  color: #475569;
}
.ota-account-form-card .ota-label,
.ota-account-card .form-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #334155;
  margin-bottom: 0.35rem;
}
.ota-account-form-card .form-control,
.ota-account-form-card .form-select,
.ota-account-card .form-control,
.ota-account-card .form-select {
  min-height: 42px;
  border-radius: 10px;
  border-color: #cbd5e1;
  font-size: 0.875rem;
}
.ota-account-form-card .form-control:focus,
.ota-account-form-card .form-select:focus,
.ota-account-card .form-control:focus,
.ota-account-card .form-select:focus {
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
}
.ota-account-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
}
.ota-account-help-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
@media (min-width: 576px) {
  .ota-account-help-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 992px) {
  .ota-account-help-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.ota-account-help-card {
  padding: 1.15rem 1.2rem;
  background: #fff;
  border: 1px solid #e4ebf5;
  border-radius: 16px;
  box-shadow: 0 6px 22px rgba(15, 23, 42, 0.05);
  height: 100%;
}
.ota-account-help-card h3 {
  margin: 0 0 0.4rem;
  font-size: 0.95rem;
  font-weight: 800;
  color: #0f172a;
}
.ota-account-help-card p {
  margin: 0 0 0.75rem;
  font-size: 0.8125rem;
  color: #64748b;
  line-height: 1.45;
}
.ota-account-stack {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.ota-account-stack--lg {
  gap: 1.5rem;
}
.ota-account-detail-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  align-items: start;
}
@media (min-width: 992px) {
  .ota-account-detail-grid {
    grid-template-columns: minmax(0, 1.65fr) minmax(280px, 1fr);
  }
}
.ota-account-note {
  padding: 0.85rem 1rem;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid #e4ebf5;
  font-size: 0.875rem;
  color: #475569;
}
.ota-account-note a {
  font-weight: 600;
  color: #1d4ed8;
}
.ota-account-pagination {
  margin-top: 1rem;
}
.ota-profile-page .ota-account-subnav {
  margin-bottom: 1.25rem;
}
.ota-account-header-main,
.ota-account-header__text {
  flex: 1 1 240px;
  min-width: 0;
}
.ota-account-header-actions,
.ota-account-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.ota-account-section-head {
  margin: 1.5rem 0 1rem;
}
.ota-account-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.28rem 0.6rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  border: 1px solid #e2e8f0;
  background: #f1f5f9;
  color: #334155;
}
.ota-account-badge--success {
  background: #d1fae5;
  color: #14532d;
  border-color: #22c55e;
}
.ota-account-badge--warning {
  background: #fef9c3;
  color: #78350f;
  border-color: #eab308;
}
.ota-account-badge--danger {
  background: #fee2e2;
  color: #7f1d1d;
  border-color: #ef4444;
}
.ota-account-badge--muted {
  background: #f1f5f9;
  color: #475569;
  border-color: #e2e8f0;
}
.ota-account-badge--info {
  background: #dbeafe;
  color: #1e3a8a;
  border-color: #3b82f6;
}
.ota-account-empty--compact {
  padding: 1.75rem 1.25rem 1.5rem;
}
.ota-account-form-grid {
  display: grid;
  gap: 1rem;
}
.ota-account-form-grid--2 {
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media (min-width: 640px) {
  .ota-account-form-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.ota-account-form-section {
  padding-bottom: 0.25rem;
}
.ota-account-form-section + .ota-account-form-section {
  margin-top: 0.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid #eef2f7;
}
.ota-account-form-section__title {
  margin: 0 0 0.85rem;
  font-size: 0.95rem;
  font-weight: 800;
  color: #0f172a;
}
.ota-account-field {
  min-width: 0;
}
.ota-account-field--sm {
  max-width: 100%;
}
@media (min-width: 640px) {
  .ota-account-field--sm {
    max-width: 220px;
  }
}
.ota-account-traveler-card {
  padding: 1.15rem 1.25rem;
  background: #fff;
  border: 1px solid #e4ebf5;
  border-radius: 16px;
  box-shadow: 0 6px 22px rgba(15, 23, 42, 0.05);
  margin-bottom: 1.25rem;
}
.ota-account-traveler-card--default {
  border-color: #bfdbfe;
  background: linear-gradient(180deg, #f8fbff 0%, #fff 100%);
}
.ota-account-traveler-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.65rem;
  margin-bottom: 0.75rem;
}
.ota-account-traveler-card__name {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f172a;
}
.ota-account-traveler-card__meta {
  margin: 0.2rem 0 0;
  font-size: 0.8125rem;
  color: #64748b;
}
.ota-account-traveler-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.ota-account-traveler-card__details {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.65rem 1rem;
  margin: 0 0 0.75rem;
  font-size: 0.8125rem;
}
.ota-account-traveler-card__details dt {
  font-weight: 600;
  color: #64748b;
  margin: 0;
}
.ota-account-traveler-card__details dd {
  margin: 0.15rem 0 0;
  color: #334155;
}
.ota-account-traveler-card__help {
  margin: 0 0 0.75rem;
  font-size: 0.8125rem;
  color: #92400e;
}
.ota-account-traveler-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

/* —— Agent portal (frontend shell, account-aligned) —— */
.ota-agent-page {
  /* Reuses .ota-account-page spacing; hook for agent-only overrides */
}
.ota-agent-nav {
  /* Alias hook; shares .ota-account-subnav styling */
}
.ota-agent-dashboard-grid {
  /* KPI grid alias; uses .ota-account-grid--kpis breakpoints */
}
@media (min-width: 992px) {
  .ota-agent-dashboard-grid.ota-account-grid--kpis {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.ota-account-dl {
  margin: 0;
}
.ota-account-dl__row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid #eef2f7;
}
.ota-account-dl__row:last-child {
  border-bottom: 0;
}
.ota-account-dl__row dt {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #64748b;
}
.ota-account-dl__row dd {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
  color: #0f172a;
}
.ota-account-list-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  padding: 0.65rem 0;
  border-bottom: 1px solid #eef2f7;
}
.ota-account-list-row:last-child {
  border-bottom: 0;
}
.ota-account-toolbar .ota-account-btn {
  margin: 0;
}
.ota-agent-agency-profile {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}
.ota-agent-agency-profile__logo img,
.ota-agent-agency-profile__logo-placeholder {
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 0.75rem;
  object-fit: cover;
}
.ota-agent-agency-profile__logo-placeholder {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f1f5f9;
  color: #64748b;
  font-size: 1.75rem;
}
.ota-agent-agency-profile__name {
  margin: 0 0 0.25rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: #0f172a;
}
.ota-agent-agency-profile__hint {
  margin: 0;
  font-size: 0.8125rem;
  color: #64748b;
}
.ota-agent-form-section {
  margin: 0 0 1.5rem;
  padding: 0 0 1.5rem;
  border: 0;
  border-bottom: 1px solid #eef2f7;
}
.ota-agent-form-section:last-of-type {
  border-bottom: 0;
  padding-bottom: 0;
}
.ota-agent-form-section__title {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: 0;
  color: #0f172a;
}
.ota-agent-form-section__hint {
  margin: -0.25rem 0 0.75rem;
  font-size: 0.875rem;
  line-height: 1.5;
  font-weight: 400;
  color: #64748b;
}
.ota-agent-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid #eef2f7;
}
.ota-agent-agency-logo-preview img {
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 0.75rem;
  object-fit: cover;
}
.ota-agent-staff-permissions__grid {
  display: grid;
  gap: 0.5rem 1rem;
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
}
.ota-agent-staff-permissions__item {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: #334155;
  margin: 0;
}
.ota-agent-staff-table th {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
}
.ota-agent-ledger-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.ota-agent-ledger-filters .form-control,
.ota-agent-ledger-filters .form-select {
  max-width: 11rem;
}
.ota-agent-ledger-table-wrap {
  overflow-x: auto;
}
.ota-agent-ledger-table th {
  font-size: 0.7rem;
  white-space: nowrap;
}
.ota-agent-ledger-table td {
  font-size: 0.8125rem;
  vertical-align: middle;
}

/* ===== OTA Responsive Foundation (global) ===== */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html.ota-html,
body.ota-public {
  overflow-x: clip;
  max-width: 100%;
}

body.ota-public img,
body.ota-public svg,
body.ota-public video {
  max-width: 100%;
  height: auto;
}

body.ota-public .ota-site-main,
body.ota-public .ota-page-wrap,
body.ota-public .ota-account-wrap,
body.ota-public .container {
  min-width: 0;
  max-width: 100%;
}

/* Reusable layout utilities for Blade (prefer over page-specific hacks) */
.ota-r-table-wrap,
.ota-r-scroll-x {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.ota-r-action-bar,
.ota-r-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  max-width: 100%;
}

.ota-r-form-grid {
  display: grid;
  gap: 0.75rem 1rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}

.ota-r-text-safe {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.ota-r-truncate {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ota-r-dropdown-panel {
  z-index: var(--ota-z-dropdown);
  max-width: min(100%, calc(100vw - 2rem));
}

/* Dropdowns / calendars above cards and header */
.ota-account-menu,
.ota-from-wrap,
.ota-to-wrap,
.ota-hero-search-dates--round,
.ota-search-card .ota-input-shell--date {
  position: relative;
}

.ota-airport-suggest,
.ota-return-range-picker,
.ota-account-dropdown {
  max-width: min(260px, calc(100vw - 24px));
}

.ota-return-range-picker {
  width: min(760px, calc(100vw - 2rem));
}

.ota-account-card:has(.ota-return-range-picker--open),
.ota-search-card:has(.ota-return-range-picker--open),
.ota-hero-search-panel:has(.ota-return-range-picker--open),
.ota-hero-search-dates--picker-open {
  overflow: visible;
  z-index: 2;
}

/* Tables: ensure cells wrap refs/emails on small screens */
.ota-account-table tbody td,
.ota-account-table thead th {
  min-width: 0;
}

.ota-account-table .ota-r-text-safe,
.ota-account-table a {
  overflow-wrap: anywhere;
}

/* Forms collapse on tablet/mobile */
@media (max-width: 767.98px) {
  body.ota-public .ota-account-title {
    font-size: 1.35rem;
    line-height: 1.2;
  }

  body.ota-public .ota-account-header-actions,
  body.ota-public .ota-account-actions {
    width: 100%;
  }

  body.ota-public .ota-account-header-actions .ota-account-btn,
  body.ota-public .ota-account-actions .ota-account-btn,
  body.ota-public .ota-account-header-actions .btn,
  body.ota-public .ota-account-actions .btn {
    flex: 1 1 auto;
    min-width: min(100%, 9rem);
    justify-content: center;
  }

  body.ota-public .ota-account-subnav {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    flex-wrap: nowrap;
    padding-bottom: 0.25rem;
  }

  body.ota-public .ota-agent-ledger-filters .form-control,
  body.ota-public .ota-agent-ledger-filters .form-select {
    max-width: 100%;
    width: 100%;
    flex: 1 1 100%;
  }

  body.ota-public .ota-r-form-grid--stack-sm {
    grid-template-columns: 1fr;
  }

  body.ota-public .auth-card,
  body.ota-public .ota-account-wrap {
    padding-left: max(0.75rem, var(--ota-gutter-x, 1rem));
    padding-right: max(0.75rem, var(--ota-gutter-x, 1rem));
  }

  body.ota-public .ota-return-range-picker__months {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 430px) {
  :root {
    --ota-gutter-x: 12px;
  }

  .ota-account-menu:not(.ota-account-menu--mobile) .ota-account-dropdown {
    width: min(260px, calc(100vw - 24px));
    min-width: min(240px, calc(100vw - 24px));
    max-width: calc(100vw - 24px);
  }

  .ota-account-menu:not(.ota-account-menu--mobile) .ota-account-label {
    max-width: 72px;
  }

  body.ota-public .ota-account-toolbar,
  body.ota-public .ota-account-header-actions,
  body.ota-public .ota-r-action-bar {
    flex-direction: column;
    align-items: stretch;
  }

  body.ota-public .ota-account-toolbar .ota-account-btn,
  body.ota-public .ota-account-header-actions .ota-account-btn,
  body.ota-public .ota-r-action-bar .ota-account-btn,
  body.ota-public .ota-r-action-bar .btn {
    width: 100%;
    max-width: 100%;
    justify-content: center;
  }
}

body.ota-public .ota-agent-page .ota-account-table td,
body.ota-public .ota-agent-page .ota-account-table th {
  min-width: 0;
}

body.ota-public .ota-agent-page .ota-account-table td {
  overflow-wrap: anywhere;
  word-break: break-word;
}

body.ota-public .ota-agent-page .ota-account-table-wrap,
body.ota-public .ota-agent-page .table-responsive {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

body.ota-public .ota-agent-page .ota-account-table td .d-flex,
body.ota-public .ota-agent-page .ota-account-table td.text-end > * {
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0.35rem;
  max-width: 100%;
}

body.ota-public .ota-agent-page .ota-account-toolbar {
  max-width: 100%;
  overflow-x: auto;
  flex-wrap: wrap;
}

body.ota-public .ota-agent-page .ota-profile-section .ota-profile-actions,
body.ota-public .ota-agent-page .ota-profile-section [class*='profile'] button {
  max-width: 100%;
}

@media (max-width: 360px) {
  :root {
    --ota-gutter-x: 10px;
  }

  body.ota-public .public-btn {
    min-height: 42px;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
}

/* Footer columns */
@media (max-width: 767.98px) {
  body.ota-public .ota-footer-pro__grid,
  body.ota-public .ota-footer-pro__cols {
    grid-template-columns: 1fr;
  }

  body.ota-public .ota-footer-pro__partner-agency {
    overflow-wrap: anywhere;
  }
}

/* Pagination / modals */
body.ota-public .pagination,
body.ota-public .ota-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.25rem;
  max-width: 100%;
}

body.ota-public .ota-fare-breakdown-modal__panel,
body.ota-public .ota-fare-summary-modal__panel,
body.ota-public .modal-dialog {
  max-width: min(36rem, calc(100vw - 2rem));
  margin-left: auto;
  margin-right: auto;
}

/* Flight results / checkout action rows */
body.ota-public .ota-flight-card__actions,
body.ota-public .ota-results-toolbar,
body.ota-public .ota-checkout-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  max-width: 100%;
}

/* Sprint 1 — row gutter bleed containment (public content pages) */
body.ota-public .ota-container > .row,
body.ota-public .ota-container .ota-lookup-main-row,
body.ota-public .ota-container .ota-support-main-row,
body.ota-public .ota-container .ota-about-columns {
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

body.ota-public .ota-container > .row > [class*="col-"],
body.ota-public .ota-container .ota-lookup-main-row > [class*="col-"],
body.ota-public .ota-container .ota-support-main-row > [class*="col-"],
body.ota-public .ota-container .ota-about-columns > [class*="col-"] {
  padding-left: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
  padding-right: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
  min-width: 0;
}

/* Lookup/support mobile: primary form before long info columns */
@media (max-width: 991.98px) {
  body.ota-public .ota-lookup-main-row > .col-lg-7,
  body.ota-public .ota-support-main-row > .col-lg-6:last-child {
    order: -1;
  }

  body.ota-public .ota-lookup-main-row,
  body.ota-public .ota-support-main-row {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
  }

  body.ota-public .ota-lookup-main-row > [class*="col-"],
  body.ota-public .ota-support-main-row > [class*="col-"] {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
  }

  body.ota-public .ota-form-page.ota-section {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
}

body.ota-public .ota-container {
  overflow-x: clip;
}

/* Hero date picker — avoid clipping custom range calendar */
body.ota-public .ota-hero-search-card:has(.ota-hero-search-dates--picker-open),
body.ota-public .ota-hero-search-wrap:has(.ota-hero-search-dates--picker-open),
body.ota-public .ota-hero-inner:has(.ota-hero-search-dates--picker-open) {
  overflow: visible;
  z-index: 2;
}

body.ota-public .ota-date-modal--open,
body.ota-public .ota-date-modal:not([hidden]).ota-date-modal--open {
  z-index: var(--ota-z-date-popover);
}

/* Flight results — action rows wrap on narrow viewports */
body.ota-public .ota-results-mobile-bar {
  margin-left: 0;
  margin-right: 0;
  max-width: 100%;
  flex-wrap: wrap;
}

body.ota-public [data-load-more][disabled],
body.ota-public [data-load-more]:disabled {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none;
}

body.ota-public .ota-filter-card-head-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  max-width: 100%;
}

body.ota-public .ota-filter-card-head-actions .btn-link {
  max-width: 100%;
  white-space: normal;
  text-align: right;
}

body.ota-public .ota-filter-clear-all {
  margin-top: 0.15rem;
  padding-left: 0;
  padding-right: 0;
  text-align: center;
}

@media (min-width: 992px) and (max-height: 820px) {
  body.ota-public .ota-results-pro-head {
    padding-top: 1.15rem;
    padding-bottom: 2.35rem;
  }

  body.ota-public .ota-results-pro-title {
    font-size: clamp(1.35rem, 2.2vw, 1.65rem);
  }

  body.ota-public .ota-results-pro-sub {
    font-size: 0.92rem;
    gap: 0.35rem 0.5rem;
  }
}

@media (max-width: 991.98px) {
  body.ota-public .ota-results-pro .ota-results-mobile-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    z-index: 1085;
    margin: 0;
    padding: 10px var(--ota-gutter-x, 1rem) calc(10px + env(safe-area-inset-bottom, 0px));
    background: #fff;
    border-top: 1px solid #e2e8f0;
    box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.1);
  }

  body.ota-public .ota-results-pro-body,
  body.ota-public .ota-results-pro-body--pullup {
    padding-bottom: calc(4.75rem + env(safe-area-inset-bottom, 0px));
  }
}

/* Sprint 1 — public form action rows stay inside card width */
body.ota-public .ota-register-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: flex-end;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

body.ota-public .ota-form-page .ota-form-card form > .ota-btn-primary,
body.ota-public .ota-form-page .ota-form-card .ota-support-submit,
body.ota-public .ota-register-actions .ota-register-submit {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

@media (max-width: 767.98px) {
  body.ota-public .ota-register-actions {
    justify-content: stretch;
  }
}

/* Form pages — fixed primary submit only on narrow phone widths (M8C) */
@media (max-width: 640px) {
  body.ota-public .ota-form-page:not(.ota-lookup-page):not(.ota-support-page) .ota-form-card form > .ota-btn-primary,
  body.ota-public .ota-form-page:not(.ota-lookup-page):not(.ota-support-page) .ota-form-card .ota-support-submit {
    position: fixed;
    left: 50%;
    right: auto;
    z-index: 1045;
    width: calc(100vw - (2 * max(var(--ota-gutter-x, 1rem), 12px)));
    max-width: calc(100vw - 24px);
    transform: translateX(-50%);
    margin: 0;
    box-sizing: border-box;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.16);
  }

  /* Sprint 6C-P1 — lookup fixed submits: inset edges only (no 100vw scrollbar bleed) */
  body.ota-public .ota-lookup-page .ota-form-card form > .ota-btn-primary {
    position: fixed;
    left: max(var(--ota-gutter-x, 1rem), 12px);
    right: max(var(--ota-gutter-x, 1rem), 12px);
    width: auto;
    max-width: none;
    transform: none;
    z-index: 1045;
    margin: 0;
    box-sizing: border-box;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.16);
    bottom: max(0.75rem, env(safe-area-inset-bottom, 0px));
  }

  body.ota-public .auth-card--register-compact:not(:has(.ota-agent-register)) .ota-register-actions {
    position: fixed;
    left: 50%;
    right: auto;
    bottom: max(0.75rem, env(safe-area-inset-bottom, 0px));
    z-index: 1045;
    padding: 0;
    margin: 0;
    background: transparent;
    width: calc(100vw - (2 * max(var(--ota-gutter-x, 1rem), 12px)));
    max-width: calc(100vw - 24px);
    transform: translateX(-50%);
    box-sizing: border-box;
  }

  body.ota-public .auth-card--register-compact:not(:has(.ota-agent-register)) .ota-register-actions .ota-register-submit {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.16);
  }

  body.ota-public .ota-form-page:not(.ota-support-page),
  body.ota-public .ota-auth-page:has(.auth-card--register-compact):not(:has(.ota-agent-register)) {
    padding-bottom: calc(5rem + env(safe-area-inset-bottom, 0px));
  }

  body.ota-public .auth-card--register-compact:not(:has(.ota-agent-register)) .ota-register-links {
    margin-bottom: calc(4.5rem + env(safe-area-inset-bottom, 0px));
  }

  body.ota-public:has(.auth-card--register-compact):not(:has(.ota-agent-register)) .ota-footer-pro,
  body.ota-public:has(.ota-form-page) .ota-footer-pro {
    display: none;
  }
}

/* M8D — agent application: keep submit in normal flow (long form; no fixed viewport overlay) */
body.ota-public .auth-card--register-compact .ota-agent-register .ota-register-actions {
  position: static;
  left: auto;
  right: auto;
  bottom: auto;
  transform: none;
  z-index: auto;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  box-sizing: border-box;
  grid-column: 1 / -1;
}

body.ota-public .auth-card--register-compact .ota-agent-register .ota-register-actions .ota-register-submit {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  box-shadow: none;
}

body.ota-public .ota-auth-page:has(.ota-agent-register) {
  padding-bottom: 0;
}

body.ota-public .auth-card--register-compact .ota-agent-register .ota-register-links {
  margin-bottom: 0;
}

body.ota-public:has(.ota-agent-register) .ota-footer-pro {
  display: block;
}

body.ota-public .ota-result-round-action {
  flex-wrap: wrap;
  max-width: 100%;
}

/* Sprint 6G — flight result card action row: fixed Book Now, same row as Flight details */
body.ota-public .ota-flight-card-actions {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

body.ota-public .ota-flight-detail-link {
  flex: 0 0 auto;
  min-width: 0;
  max-width: 100%;
  text-align: left;
}

body.ota-public .ota-flight-book-action {
  flex: 0 0 auto;
  flex-shrink: 0;
  width: 160px;
  max-width: 160px;
  margin-left: auto;
}

body.ota-public .ota-flight-book-action .ota-flight-book-button,
body.ota-public .ota-flight-book-action .ota-btn-book {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  white-space: nowrap;
  display: block;
  margin: 0;
}

@media (max-width: 991.98px) {
  body.ota-public .ota-flight-book-action {
    width: 152px;
    max-width: 152px;
  }
}

@media (max-width: 767.98px) {
  body.ota-public .ota-flight-card-actions {
    flex-wrap: nowrap;
    gap: 10px;
  }

  body.ota-public .ota-flight-book-action {
    width: 140px;
    max-width: 140px;
  }
}

@media (max-width: 575.98px) {
  body.ota-public .ota-flight-book-action {
    width: 136px;
    max-width: 136px;
  }
}

@media (max-width: 374.98px) {
  body.ota-public .ota-flight-book-action {
    width: 128px;
    max-width: 128px;
  }
}

/* Register compact — keep submit in viewport on short screens */
@media (max-height: 860px) {
  body.ota-public .ota-site-main > .ota-auth-page:has(.auth-card--register-compact) .ota-auth-shell,
  body.ota-public .ota-site-main > .ota-auth:has(.auth-card--register-compact) .ota-auth-shell {
    padding-top: 0.85rem;
    padding-bottom: 1.25rem;
  }

  .auth-card--register-compact .ota-register-compact {
    padding: 1.15rem 1.25rem !important;
  }

  .auth-card--register-compact .ota-register-header {
    margin-bottom: 0.85rem;
  }

  .auth-card--register-compact .ota-register-title {
    font-size: 1.35rem;
  }

  .auth-card--register-compact .ota-register-grid {
    gap: 0.65rem;
  }

  .auth-card--register-compact .ota-register-input,
  .auth-card--register-compact .ota-select.ota-register-input {
    min-height: 42px;
  }

  .auth-card--register-compact .ota-register-social {
    display: none !important;
  }

  .auth-card--register-compact .ota-register-links {
    margin-top: 0.65rem;
    padding-top: 0.65rem;
  }
}

@media (max-width: 767.98px) {
  .auth-card--register-compact .ota-register-grid--two {
    grid-template-columns: 1fr !important;
  }

  .auth-card--register-compact .ota-register-social {
    display: none !important;
  }

  .auth-card--register-compact .ota-register-compact {
    padding: 1.1rem 1.15rem !important;
  }

  .auth-card--register-compact .ota-register-header {
    margin-bottom: 0.9rem;
  }

  body.ota-public:has(.auth-card--register-compact):not(:has(.ota-agent-register)) .ota-footer-pro {
    display: none;
  }
}

/* Auth Access UI Polish / AUTH-UI-1 */
body.ota-public .ota-auth-access .ota-auth-shell {
  min-height: max(28rem, calc(100dvh - var(--ota-fixed-header-height, 7.5rem) - 10rem));
  padding: clamp(1rem, 3vw, 2.75rem) var(--ota-gutter-x, 1rem) clamp(2rem, 4vw, 4rem);
  background:
    radial-gradient(circle at top left, rgba(37, 99, 235, 0.08), transparent 28rem),
    linear-gradient(180deg, #f8fbff 0%, #f8fafc 100%);
}

body.ota-public .ota-auth-access .auth-card {
  max-width: 500px;
  padding: clamp(1.15rem, 3vw, 1.65rem);
  border: 1px solid rgba(219, 227, 239, 0.95);
  border-radius: 22px;
  box-shadow: 0 22px 60px -32px rgba(15, 23, 42, 0.5);
}

body.ota-public .ota-auth-access .auth-card--register-compact {
  max-width: 640px;
}

body.ota-public .ota-auth-access .ota-auth-brand {
  margin-bottom: 1rem;
}

body.ota-public .ota-auth-access .ota-auth-brand-link {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--ota-text);
  text-decoration: none;
}

body.ota-public .ota-auth-access .ota-auth-brand-mark {
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--ota-blue), var(--ota-sky));
  color: #fff;
  box-shadow: 0 14px 28px -18px rgba(37, 99, 235, 0.9);
}

body.ota-public .ota-auth-access .ota-auth-brand-mark img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #fff;
}

body.ota-public .ota-auth-access .ota-auth-brand-text {
  display: grid;
  gap: 0.1rem;
  line-height: 1.2;
}

body.ota-public .ota-auth-access .ota-auth-brand-text strong {
  font-size: 1rem;
  font-weight: 800;
}

body.ota-public .ota-auth-access .ota-auth-brand-text small {
  color: var(--ota-muted);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

body.ota-public .ota-auth-access .ota-login-compact,
body.ota-public .ota-auth-access .ota-register-compact,
body.ota-public .ota-auth-access .ota-forgot-compact,
body.ota-public .ota-auth-access .ota-auth-flow {
  display: grid;
  gap: 1rem;
}

body.ota-public .ota-auth-access .ota-login-header,
body.ota-public .ota-auth-access .ota-register-header,
body.ota-public .ota-auth-access .ota-forgot-header,
body.ota-public .ota-auth-access .ota-auth-flow__header {
  display: grid;
  gap: 0.35rem;
  margin: 0 0 0.35rem;
}

body.ota-public .ota-auth-access .ota-login-title,
body.ota-public .ota-auth-access .ota-register-title,
body.ota-public .ota-auth-access .ota-forgot-title,
body.ota-public .ota-auth-access .ota-auth-flow__header h2 {
  margin: 0;
  color: var(--ota-text);
  font-size: clamp(1.35rem, 4vw, 1.8rem);
  font-weight: 800;
  letter-spacing: -0.03em;
}

body.ota-public .ota-auth-access .ota-login-subtitle,
body.ota-public .ota-auth-access .ota-register-subtitle,
body.ota-public .ota-auth-access .ota-forgot-subtitle,
body.ota-public .ota-auth-access .ota-auth-help {
  margin: 0;
  color: var(--ota-muted);
  font-size: 0.875rem;
  line-height: 1.5;
  font-weight: 400;
}

body.ota-public .ota-auth-access .ota-login-form,
body.ota-public .ota-auth-access .ota-register-form,
body.ota-public .ota-auth-access .ota-forgot-form,
body.ota-public .ota-auth-access .ota-auth-flow__form {
  display: grid;
  gap: 0.9rem;
  margin: 0;
}

body.ota-public .ota-auth-access .ota-field,
body.ota-public .ota-auth-access .ota-auth-group {
  display: grid;
  gap: 0.38rem;
}

body.ota-public .ota-auth-access .ota-label,
body.ota-public .ota-auth-access .ota-auth-label {
  margin: 0;
  color: #334155;
  font-size: 0.82rem;
  font-weight: 800;
}

body.ota-public .ota-auth-access .ota-input,
body.ota-public .ota-auth-access .ota-select,
body.ota-public .ota-auth-access .ota-auth-input {
  min-height: 44px;
  border: 1px solid #d8e1ee;
  border-radius: 12px;
  background: #fff;
  color: var(--ota-text);
  font-size: 0.94rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
}

body.ota-public .ota-auth-access .ota-input:focus,
body.ota-public .ota-auth-access .ota-select:focus,
body.ota-public .ota-auth-access .ota-auth-input:focus {
  border-color: var(--ota-blue);
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
  outline: 0;
}

body.ota-public .ota-auth-access .ota-register-grid {
  display: grid;
  gap: 0.85rem;
}

body.ota-public .ota-auth-access .ota-register-grid--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.ota-public .ota-auth-access .ota-register-field-full,
body.ota-public .ota-auth-access .ota-register-actions {
  grid-column: 1 / -1;
}

body.ota-public .ota-auth-access .ota-register-phone-row {
  display: grid;
  grid-template-columns: minmax(5.6rem, 0.35fr) minmax(0, 1fr);
  gap: 0.55rem;
}

body.ota-public .ota-auth-access .ota-auth-row,
body.ota-public .ota-auth-access .ota-login-options,
body.ota-public .ota-auth-access .ota-register-terms {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  color: #475569;
  font-size: 0.88rem;
}

body.ota-public .ota-auth-access .ota-login-remember,
body.ota-public .ota-auth-access .ota-register-terms {
  justify-content: flex-start;
}

body.ota-public .ota-auth-access .ota-login-checkbox,
body.ota-public .ota-auth-access .ota-register-terms input {
  width: 1rem;
  height: 1rem;
  accent-color: var(--ota-blue);
}

body.ota-public .ota-auth-access .ota-error,
body.ota-public .ota-auth-access .field-error,
body.ota-public .ota-auth-access .ota-auth-error {
  min-height: 0;
  color: #b91c1c;
  font-size: 0.75rem;
  line-height: 1.5;
  font-weight: 400;
  overflow-wrap: anywhere;
}

body.ota-public .ota-auth-access .ota-alert,
body.ota-public .ota-auth-access .ota-auth-alert {
  margin: 0;
  padding: 0.75rem 0.85rem;
  border: 1px solid #bbf7d0;
  border-radius: 14px;
  background: #f0fdf4;
  color: #166534;
  font-size: 0.86rem;
  line-height: 1.5;
}

body.ota-public .ota-auth-access .ota-alert--danger,
body.ota-public .ota-auth-access .ota-auth-alert--danger {
  border-color: #fecaca;
  background: #fff1f2;
  color: #991b1b;
}

body.ota-public .ota-auth-access .ota-btn-primary,
body.ota-public .ota-auth-access .ota-auth-btn {
  display: inline-flex;
  width: 100%;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ota-blue);
  border-radius: 999px;
  background: var(--ota-blue);
  color: #fff !important;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 14px 28px -18px rgba(37, 99, 235, 0.9);
}

body.ota-public .ota-auth-access .ota-btn-primary:hover,
body.ota-public .ota-auth-access .ota-auth-btn:hover,
body.ota-public .ota-auth-access .ota-btn-primary:focus,
body.ota-public .ota-auth-access .ota-auth-btn:focus {
  background: var(--ota-blue-dark);
  border-color: var(--ota-blue-dark);
  color: #fff !important;
}

body.ota-public .ota-auth-access .ota-auth-link,
body.ota-public .ota-auth-access .ota-login-footer-links a,
body.ota-public .ota-auth-access .ota-register-links a,
body.ota-public .ota-auth-access .ota-forgot-links a {
  color: var(--ota-blue);
  font-weight: 800;
  text-decoration: none;
}

body.ota-public .ota-auth-access .ota-auth-link:hover,
body.ota-public .ota-auth-access .ota-login-footer-links a:hover,
body.ota-public .ota-auth-access .ota-register-links a:hover,
body.ota-public .ota-auth-access .ota-forgot-links a:hover {
  color: var(--ota-blue-dark);
  text-decoration: underline;
}

body.ota-public .ota-auth-access .ota-login-footer-links,
body.ota-public .ota-auth-access .ota-register-links,
body.ota-public .ota-auth-access .ota-forgot-links,
body.ota-public .ota-auth-access .ota-auth-flow__footer,
body.ota-public .ota-auth-access .ota-auth-support {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 0.85rem;
  justify-content: center;
  margin: 0.1rem 0 0;
  padding-top: 0.85rem;
  border-top: 1px solid #edf2f7;
  color: var(--ota-muted);
  font-size: 0.75rem;
  line-height: 1.5;
  font-weight: 400;
  text-align: center;
}

body.ota-public .ota-auth-access .ota-login-social,
body.ota-public .ota-auth-access .ota-register-social {
  margin-top: 0.1rem;
}

body.ota-public .ota-auth-access .auth-social-stack {
  justify-content: center;
}

body.ota-public .ota-auth-access .auth-social-btn {
  min-height: 42px;
  border-radius: 999px;
}

body.ota-public .ota-auth-page.ota-auth-access .auth-card--register-compact:not(:has(.ota-agent-register)) .ota-register-actions {
  position: static;
  left: auto;
  right: auto;
  bottom: auto;
  z-index: auto;
  width: 100%;
  max-width: 100%;
  padding: 0;
  margin: 0;
  background: transparent;
  transform: none;
}

body.ota-public .ota-auth-page.ota-auth-access .auth-card--register-compact:not(:has(.ota-agent-register)) .ota-register-actions .ota-register-submit {
  width: 100%;
  box-shadow: 0 14px 28px -18px rgba(37, 99, 235, 0.9);
}

body.ota-public .ota-auth-page.ota-auth-access:has(.auth-card--register-compact):not(:has(.ota-agent-register)) {
  padding-bottom: 0;
}

body.ota-public:has(.ota-auth-access .auth-card--register-compact):not(:has(.ota-agent-register)) .ota-footer-pro {
  display: block;
}

@media (max-width: 767.98px) {
  body.ota-public .ota-auth-access .auth-card {
    max-width: 100%;
    border-radius: 18px;
  }

  body.ota-public .ota-auth-access .ota-register-grid--two,
  body.ota-public .ota-auth-access .ota-register-phone-row {
    grid-template-columns: 1fr !important;
  }

  body.ota-public .ota-auth-access .ota-login-options {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 430px) {
  body.ota-public .ota-auth-access .ota-auth-shell {
    padding-left: max(0.75rem, var(--ota-gutter-x, 1rem));
    padding-right: max(0.75rem, var(--ota-gutter-x, 1rem));
  }

  body.ota-public .ota-auth-access .auth-card {
    padding: 1rem;
  }

  body.ota-public .ota-auth-access .ota-auth-brand-mark {
    width: 40px;
    height: 40px;
  }
}

@media (min-width: 1920px) {
  :root {
    --ota-max-content: 1280px;
  }
}

/* AUTH-LOGIN-UI-2 — login page only */
body.ota-public .ota-auth-page--login .ota-auth-shell {
  padding-bottom: clamp(1.75rem, 4vw, 3rem);
}

body.ota-public .ota-auth-page--login .auth-card.auth-card--login-premium {
  max-width: 460px;
  padding: clamp(1.25rem, 3.5vw, 1.85rem);
  border: 1px solid rgba(214, 226, 240, 0.95);
  border-radius: 24px;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 24px 64px -36px rgba(15, 23, 42, 0.45);
}

body.ota-public .ota-auth-page--login .ota-auth-brand {
  margin-bottom: 1.25rem;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(226, 232, 240, 0.95);
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(248, 250, 252, 0.98) 0%, rgba(241, 245, 249, 0.65) 100%);
}

body.ota-public .ota-auth-page--login .ota-auth-brand-link {
  width: 100%;
}

body.ota-public .ota-auth-page--login .ota-auth-brand-mark {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  flex-shrink: 0;
}

body.ota-public .ota-auth-page--login .ota-auth-brand-text strong {
  font-size: 1.05rem;
  letter-spacing: -0.02em;
}

body.ota-public .ota-auth-page--login .ota-auth-brand-text small {
  font-size: 0.8rem;
  font-weight: 600;
}

body.ota-public .ota-auth-page--login .ota-login-compact {
  gap: 1.15rem;
}

body.ota-public .ota-auth-page--login .ota-login-card-inner {
  display: grid;
  gap: 1.15rem;
}

body.ota-public .ota-auth-page--login .ota-login-header {
  gap: 0.45rem;
  margin-bottom: 0.15rem;
}

body.ota-public .ota-auth-page--login .ota-login-title {
  font-size: clamp(1.45rem, 4.2vw, 1.9rem);
}

body.ota-public .ota-auth-page--login .ota-login-subtitle {
  font-size: 0.9rem;
  line-height: 1.55;
  max-width: 36ch;
}

body.ota-public .ota-auth-page--login .ota-login-form {
  gap: 1rem;
}

body.ota-public .ota-auth-page--login .ota-field {
  gap: 0.42rem;
}

body.ota-public .ota-auth-page--login .ota-label {
  font-size: 0.84rem;
  letter-spacing: 0.01em;
}

body.ota-public .ota-auth-page--login .ota-login-input {
  min-height: 46px;
  padding: 0.65rem 0.9rem;
  border-radius: 12px;
  border-color: #d5dee9;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

body.ota-public .ota-auth-page--login .ota-password-field {
  position: relative;
  display: flex;
  align-items: stretch;
  width: 100%;
  min-width: 0;
}

body.ota-public .ota-auth-page--login .ota-password-field .ota-login-input {
  width: 100%;
  padding-right: 2.85rem;
}

body.ota-public .ota-auth-page--login .ota-password-toggle {
  position: absolute;
  top: 50%;
  right: 0.35rem;
  display: inline-flex;
  width: 2.5rem;
  height: 2.5rem;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #64748b;
  cursor: pointer;
  transform: translateY(-50%);
  transition: color 0.15s ease, background-color 0.15s ease;
}

body.ota-public .ota-auth-page--login .ota-password-toggle:hover {
  color: #334155;
  background: rgba(241, 245, 249, 0.9);
}

body.ota-public .ota-auth-page--login .ota-password-toggle:focus {
  outline: 0;
}

body.ota-public .ota-auth-page--login .ota-password-toggle:focus-visible {
  outline: 2px solid var(--ota-blue, #2563eb);
  outline-offset: 2px;
}

body.ota-public .ota-auth-page--login .ota-password-toggle i {
  font-size: 0.95rem;
  line-height: 1;
  pointer-events: none;
}

body.ota-public .ota-auth-page--login .ota-login-options {
  margin-top: 0.1rem;
  gap: 0.65rem 1rem;
}

body.ota-public .ota-auth-page--login .ota-login-remember {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  cursor: pointer;
  font-size: 0.875rem;
  font-weight: 600;
  color: #475569;
}

body.ota-public .ota-auth-page--login .ota-login-checkbox {
  width: 1.05rem;
  height: 1.05rem;
  margin: 0;
  flex-shrink: 0;
}

body.ota-public .ota-auth-page--login .ota-login-forgot {
  font-size: 0.875rem;
  white-space: nowrap;
}

body.ota-public .ota-auth-page--login .ota-login-submit {
  margin-top: 0.35rem;
  min-height: 48px;
  font-size: 0.95rem;
  letter-spacing: 0.01em;
}

body.ota-public .ota-auth-page--login .ota-login-social {
  display: grid;
  gap: 0.85rem;
  margin-top: 0.25rem;
}

body.ota-public .ota-auth-page--login .ota-login-divider {
  display: none;
  align-items: center;
  gap: 0.75rem;
  color: #94a3b8;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

body.ota-public .ota-auth-page--login .ota-login-social:has(.auth-social-stack) .ota-login-divider {
  display: flex;
}

body.ota-public .ota-auth-page--login .ota-login-divider::before,
body.ota-public .ota-auth-page--login .ota-login-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #e2e8f0;
}

body.ota-public .ota-auth-page--login .ota-login-divider span {
  flex-shrink: 0;
  white-space: nowrap;
}

body.ota-public .ota-auth-page--login .auth-social-stack {
  margin-top: 0;
  justify-content: center;
  gap: 0.65rem;
}

body.ota-public .ota-auth-page--login .auth-social-btn {
  flex: 0 1 auto;
  min-width: 3.25rem;
  min-height: 44px;
  padding-left: 1rem;
  padding-right: 1rem;
}

body.ota-public .ota-auth-page--login .ota-login-footer-links {
  margin-top: 0.35rem;
  padding-top: 1rem;
  gap: 0.5rem 0.75rem;
  border-top-color: #e8eef5;
  font-size: 0.8125rem;
}

body.ota-public .ota-auth-page--login .ota-login-footer-links a {
  font-weight: 700;
  color: #64748b;
}

body.ota-public .ota-auth-page--login .ota-login-footer-links a:hover {
  color: var(--ota-blue, #2563eb);
}

body.ota-public .ota-auth-page--login .ota-login-footer-links a:not(:last-child)::after {
  content: "·";
  display: inline;
  margin-left: 0.75rem;
  color: #cbd5e1;
  font-weight: 400;
  text-decoration: none;
  pointer-events: none;
}

@media (max-width: 767.98px) {
  body.ota-public .ota-auth-page--login .ota-login-options {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

@media (max-width: 430px) {
  body.ota-public .ota-auth-page--login .auth-card.auth-card--login-premium {
    padding: 1.1rem;
    border-radius: 18px;
  }

  body.ota-public .ota-auth-page--login .ota-auth-brand {
    padding: 0.75rem 0.85rem;
  }

  body.ota-public .ota-auth-page--login .ota-auth-brand-mark {
    width: 42px;
    height: 42px;
  }

  body.ota-public .ota-auth-page--login .ota-login-options {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
  }

  body.ota-public .ota-auth-page--login .ota-login-footer-links {
    flex-direction: column;
    gap: 0.55rem;
  }

  body.ota-public .ota-auth-page--login .ota-login-footer-links a:not(:last-child)::after {
    display: none;
  }
}

/* ========== Mobile OTA shell (public flight search / results) ========== */
.ota-mobile-search-trust {
  display: none;
}

.ota-mobile-airport-viz {
  display: none;
}

.ota-mobile-date-trigger {
  display: none;
}

.ota-mobile-flight-card,
.ota-mobile-flight-details {
  display: none;
}

@media (max-width: 767.98px) {
  body.ota-public .ota-slim-topbar {
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
  }

  body.ota-public .ota-slim-topbar-inner {
    gap: 0.5rem 0.75rem;
    font-size: 0.72rem;
  }

  body.ota-public .ota-main-nav {
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
  }

  body.ota-public .ota-page-home .ota-hero {
    padding-top: 1.35rem;
    padding-bottom: 1rem;
  }

  body.ota-public .ota-hero-search-card,
  body.ota-public .ota-search-card {
    padding: 0.95rem 0.9rem 1rem;
    border-radius: 18px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.1);
  }

  .ota-mobile-search-trust {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    margin: 0 0 0.75rem;
    padding: 0.45rem 0.65rem;
    border-radius: 12px;
    background: #f1f5f9;
    color: #475569;
    font-size: 0.78rem;
    font-weight: 600;
  }

  .ota-mobile-search-trust i {
    color: var(--ota-blue, #2563eb);
    margin-right: 0.25rem;
  }

  .ota-mobile-trip-modes,
  .ota-mobile-trip-tabs {
    display: flex;
    width: 100%;
    margin-bottom: 0.75rem;
    border: 1px solid #dbe3ee;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
  }

  .ota-mobile-trip-modes .ota-hero-search-mode,
  .ota-mobile-trip-tabs .ota-tab {
    flex: 1 1 0;
    min-width: 0;
    justify-content: center;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    min-height: 42px;
    font-size: 0.82rem;
    font-weight: 700;
  }

  .ota-mobile-trip-modes .ota-hero-search-mode:has(input:checked),
  .ota-mobile-trip-tabs .ota-tab.ota-tab-active {
    background: var(--ota-brand-accent-soft, #fff7ed);
    color: color-mix(in srgb, var(--brand-accent, #f59e0b) 78%, #1e293b);
    box-shadow: inset 0 -2px 0 var(--brand-accent, #f59e0b);
  }

  .ota-mobile-trip-tabs .ota-tab__icon {
    display: none;
  }

  .ota-hero-search-row,
  .ota-hero-search-row--return,
  .ota-hero-search-grid {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    width: 100%;
    max-width: 100%;
    grid-template-columns: none;
  }

  .ota-hero-search-row > .ota-hero-search-field,
  .ota-hero-search-row > .ota-hero-search-dates,
  .ota-hero-search-row--return > .ota-hero-search-field,
  .ota-hero-search-row--return > .ota-hero-search-dates,
  .ota-hero-search-grid > .ota-hero-search-field,
  .ota-hero-search-grid > .ota-hero-search-dates {
    align-self: stretch;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  .ota-hero-search-field--from {
    order: 1;
  }

  .ota-hero-search-field--swap.ota-mobile-search-swap-field {
    order: 2;
    position: static;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    align-self: stretch;
    margin: 6px 0;
    transform: none;
    grid-column: auto;
  }

  .ota-hero-search-field--to {
    order: 3;
  }

  .ota-hero-search-dates.ota-mobile-search-dates-field,
  .ota-search-dates.ota-mobile-search-dates-field {
    order: 4;
  }

  .ota-hero-search-field--pax.ota-mobile-search-pax-field,
  .ota-search-pax-grid.ota-mobile-search-pax-field {
    order: 5;
  }

  .ota-hero-search-field--submit.ota-mobile-search-submit-field,
  .ota-search-submit.ota-mobile-search-submit,
  .ota-hbar-cell--submit {
    order: 6;
  }

  .ota-from-to-row.ota-mobile-search-route-row {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin-bottom: 0.65rem;
  }

  .ota-mobile-search-route-field {
    order: 0;
  }

  .ota-from-wrap.ota-mobile-search-route-field {
    order: 1;
  }

  .ota-swap-wrap.ota-mobile-search-swap-field {
    order: 2;
    position: static;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    align-self: stretch;
    margin: 6px 0;
    transform: none;
  }

  .ota-to-wrap.ota-mobile-search-route-field {
    order: 3;
  }

  .ota-mobile-airport-shell {
    position: relative;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .ota-mobile-airport-viz {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.1rem;
    min-height: 52px;
    padding: 0.55rem 0.85rem 0.55rem 2.5rem;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #fff;
    pointer-events: none;
    box-sizing: border-box;
  }

  .ota-mobile-airport-viz__code {
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: #0f172a;
    line-height: 1.15;
  }

  .ota-mobile-airport-viz__code:empty {
    display: none;
  }

  .ota-mobile-airport-shell:not(.ota-mobile-airport-shell--has-code) .ota-mobile-airport-viz__sub {
    font-size: 15px;
    font-weight: 600;
    color: #0f172a;
    line-height: 1.25;
  }

  .ota-mobile-airport-shell--has-code .ota-mobile-airport-viz__code {
    font-size: 1.15rem;
  }

  .ota-mobile-airport-viz__sub {
    font-size: 0.82rem;
    color: #64748b;
    line-height: 1.3;
    overflow-wrap: anywhere;
  }

  .ota-mobile-airport-input.ota-hero-search-input,
  .ota-mobile-airport-input.ota-input-shell {
    position: absolute;
    inset: 0;
    margin: 0;
    min-height: 52px;
    border: 0 !important;
    box-shadow: none !important;
    background: transparent;
    padding: 0;
  }

  .ota-mobile-airport-input .ota-hero-search-control,
  .ota-mobile-airport-input .ota-field {
    color: transparent;
    caret-color: #0f172a;
    background: transparent;
    width: 100%;
    min-height: 52px;
    padding: 0 0.85rem 0 2.5rem;
    box-sizing: border-box;
  }

  .ota-mobile-airport-input .ota-hero-search-control::placeholder,
  .ota-mobile-airport-input .ota-field::placeholder {
    color: transparent;
  }

  .ota-mobile-airport-input .ota-input-shell__icon,
  .ota-mobile-airport-input .ota-hero-search-input > i {
    position: absolute;
    left: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    opacity: 1;
    color: #94a3b8;
    z-index: 2;
    pointer-events: none;
  }

  .ota-hero-search-input,
  .ota-input-shell {
    border-radius: 14px;
    border-color: #e2e8f0;
    min-height: 48px;
  }

  .ota-hero-search-submit.ota-mobile-search-submit,
  .ota-search-submit.ota-mobile-search-submit {
    width: 100%;
    min-height: 50px;
    border-radius: 14px;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: none;
  }

  .ota-search-pax-grid.ota-mobile-search-pax-field {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.55rem;
    margin-bottom: 0.65rem;
  }

  .ota-hero-search-field--pax .ota-hero-search-pax__trigger {
    min-height: 50px;
    border-radius: 14px;
  }

  .ota-results-pro.ota-mobile-results .ota-results-pro-head {
    padding-bottom: 1.25rem;
  }

  body.ota-public .ota-results-pro-body--pullup {
    margin-top: -0.75rem;
  }

  body.ota-public .ota-results-pro .ota-results-mobile-bar.ota-mobile-bottom-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    z-index: 1085;
    margin: 0;
    padding: 10px var(--ota-gutter-x, 1rem) calc(12px + env(safe-area-inset-bottom, 0px));
    background: #fff;
    border-top: 1px solid #e2e8f0;
    box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.1);
  }

  body.ota-public .ota-results-pro .ota-results-mobile-bar .btn {
    flex: 1 1 0;
    min-height: 44px;
    border-radius: 12px;
    font-weight: 700;
  }

  body.ota-public .ota-mobile-results-list {
    padding-bottom: calc(6.5rem + env(safe-area-inset-bottom, 0px));
  }

  .ota-desktop-result-card,
  .ota-desktop-result-actions,
  .ota-result-card-v2--round-compact > .ota-result-round-compact {
    display: none !important;
  }

  .ota-result-card-v2--round-compact > .ota-desktop-result-card {
    display: none !important;
  }

  .ota-mobile-flight-card {
    display: block;
    padding: 0.15rem 0 0.35rem;
  }

  .ota-result-pro-card.ota-result-card-v2 {
    padding: 14px 16px 16px;
    border-radius: 18px;
    margin-bottom: 12px;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.08);
    border: 1px solid #e8edf3;
    background: #fff;
  }

  .ota-mobile-flight-card__head {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 10px;
  }

  .ota-mobile-flight-card__logo .ota-airline-logo {
    width: 40px;
    height: 40px;
    font-size: 0.72rem;
  }

  .ota-mobile-flight-card__airline {
    font-size: 0.95rem;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.25;
  }

  .ota-mobile-flight-card__badges .ota-result-badge {
    font-size: 0.68rem;
    padding: 0.2rem 0.45rem;
    border-radius: 6px;
  }

  .ota-mobile-flight-card__rt-note {
    margin: 0 0 8px;
    font-size: 0.75rem;
    color: #64748b;
    font-weight: 600;
  }

  .ota-mobile-flight-card__route {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 8px;
    align-items: start;
    margin-bottom: 10px;
  }

  .ota-mobile-flight-card__time {
    font-size: 1.35rem;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
  }

  .ota-mobile-flight-card__code {
    font-size: 0.95rem;
    font-weight: 800;
    color: #334155;
  }

  .ota-mobile-flight-card__city,
  .ota-mobile-flight-card__date {
    font-size: 0.75rem;
    color: #64748b;
    line-height: 1.25;
  }

  .ota-mobile-flight-card__side--arr {
    text-align: right;
  }

  .ota-mobile-flight-card__mid {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding-top: 0.35rem;
    min-width: 72px;
  }

  .ota-mobile-flight-card__dur {
    font-size: 0.72rem;
    font-weight: 700;
    color: #475569;
    text-align: center;
    white-space: nowrap;
  }

  .ota-mobile-flight-card__line {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .ota-mobile-flight-card__line span {
    display: block;
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg, #cbd5e1, #2563eb, #cbd5e1);
    border-radius: 999px;
    position: relative;
  }

  .ota-mobile-flight-card__line span::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 7px;
    height: 7px;
    margin: -3.5px 0 0 -3.5px;
    border-radius: 50%;
    background: #2563eb;
  }

  .ota-mobile-flight-card__mid .ota-result-stops {
    font-size: 0.68rem;
    padding: 0.15rem 0.4rem;
    white-space: nowrap;
  }

  .ota-mobile-flight-card__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
  }

  .ota-mobile-flight-card__chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 0.28rem 0.55rem;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    font-size: 0.72rem;
    font-weight: 600;
  }

  .ota-mobile-flight-card__price-lg {
    font-size: 1.65rem;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
  }

  .ota-mobile-flight-card__price-sub {
    font-size: 0.78rem;
    color: #64748b;
    margin-top: 2px;
    margin-bottom: 10px;
  }

  .ota-mobile-flight-card__actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-top: 8px;
    border-top: 1px solid #e8edf3;
  }

  .ota-mobile-flight-card__book .ota-btn-book.btn-primary {
    width: 100%;
    min-height: 46px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 0.95rem;
  }

  .ota-mobile-flight-card .ota-flight-details-trigger {
    font-size: 0.82rem;
    padding: 0.15rem 0;
  }

  .ota-desktop-flight-details {
    display: none !important;
  }

  .ota-mobile-flight-details {
    display: block;
    padding-top: 0.5rem;
  }

  .ota-mobile-timeline__journey + .ota-mobile-timeline__journey {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #e8edf3;
  }

  .ota-mobile-timeline__summary {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin-bottom: 12px;
  }

  .ota-mobile-timeline__logo {
    flex: 0 0 auto;
  }

  .ota-mobile-timeline__direction {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #64748b;
  }

  .ota-mobile-timeline__route {
    margin: 0.1rem 0 0.35rem;
    font-size: 1rem;
    font-weight: 800;
    color: #0f172a;
  }

  .ota-mobile-timeline__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
  }

  .ota-mobile-timeline__chip {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.2rem 0.45rem;
    border-radius: 6px;
    background: #eff6ff;
    color: #1d4ed8;
  }

  .ota-mobile-timeline__track {
    position: relative;
    margin-left: 0.55rem;
    padding-left: 1rem;
    border-left: 2px solid #bfdbfe;
  }

  .ota-mobile-timeline__point,
  .ota-mobile-timeline__segment,
  .ota-mobile-timeline__connection {
    margin-bottom: 10px;
  }

  .ota-mobile-timeline__point-label,
  .ota-mobile-timeline__connection-label {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #64748b;
    margin-bottom: 2px;
  }

  .ota-mobile-timeline__segment {
    padding: 10px 12px;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #e8edf3;
  }

  .ota-mobile-timeline__segment-head {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    margin-bottom: 6px;
    font-size: 0.75rem;
    font-weight: 700;
    color: #334155;
  }

  .ota-mobile-timeline__segment-route {
    display: grid;
    gap: 6px;
    font-size: 0.82rem;
  }

  .ota-mobile-timeline__connection {
    padding: 8px 10px;
    border-radius: 10px;
    background: #fffbeb;
    border: 1px dashed #fcd34d;
    font-size: 0.78rem;
    color: #92400e;
  }

  .ota-mobile-timeline__info {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid #e8edf3;
  }

  .ota-mobile-timeline__info-title {
    margin: 0 0 8px;
    font-size: 0.82rem;
    font-weight: 800;
    color: #0f172a;
  }

  .ota-mobile-timeline__info-grid .ota-detail-kv {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding: 0.35rem 0;
    font-size: 0.8rem;
    border-bottom: 1px solid #f1f5f9;
  }

  .ota-result-details-wrap .ota-result-details {
    padding-top: 0.35rem;
  }
  .ota-hero-search-field--swap .ota-hero-search-swap,
  .ota-swap-wrap .ota-swap-btn,
  .ota-mobile-route-swap {
    width: 46px;
    height: 46px;
    border-radius: 14px;
    margin: 0;
  }
  .ota-hero-search-panel--multi .ota-hero-search-segments {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }
  .ota-hero-search-panel--multi .ota-hero-search-segment {
    width: 100%;
  }
  .ota-hero-search-panel--multi .ota-hero-search-segment__grid {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    width: 100%;
    grid-template-columns: none !important;
  }
  .ota-hero-search-panel--multi .ota-hero-search-segment__grid .ota-hero-search-field {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  .ota-hero-search-panel--multi .ota-hero-search-mc-footer {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.7rem;
  }
  .ota-hero-search-panel--multi .ota-hero-search-mc-footer__actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.6rem;
    width: 100%;
  }
  .ota-hero-search-panel--multi .ota-hero-search-btn-soft {
    width: 100%;
    min-height: 46px;
    text-align: center;
    white-space: normal;
  }
  .ota-hero-search-panel--multi .ota-hero-search-mc-footer__book {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin-left: 0;
    gap: 0.65rem;
  }
  .ota-hero-search-panel--multi .ota-hero-search-mc-footer__book .ota-hero-search-field--pax,
  .ota-hero-search-panel--multi .ota-hero-search-mc-footer__book .ota-hero-search-field--submit {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    flex: 1 1 100%;
    margin: 0;
  }
  .ota-hero-search-panel--multi .ota-hero-search-field--submit .ota-hero-search-submit {
    width: 100%;
    min-height: 56px;
  }
}

@media (min-width: 768px) {
  .ota-mobile-search-trust,
  .ota-mobile-airport-viz,
  .ota-mobile-flight-card,
  .ota-mobile-flight-details {
    display: none !important;
  }

  .ota-desktop-result-card,
  .ota-desktop-result-actions {
    display: block;
  }

  .ota-desktop-flight-details {
    display: block !important;
  }

  .ota-result-card-v2--round-compact > .ota-result-round-compact {
    display: block !important;
  }

  /* Desktop/tablet restore: keep search row aligned like pre-mobile redesign */
  .ota-hero-search-row,
  .ota-hero-search-row--return,
  .ota-hero-search-grid {
    display: grid;
    align-items: end;
  }

  .ota-hero-search-row > .ota-mobile-route-stack,
  .ota-hero-search-row--return > .ota-mobile-route-stack {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px minmax(0, 1fr);
    gap: 0.7rem 0.85rem;
    align-items: end;
    grid-column: 1 / span 3;
    min-width: 0;
    width: 100%;
  }

  .ota-hero-search-row > .ota-mobile-route-stack .ota-hero-search-field--from,
  .ota-hero-search-row--return > .ota-mobile-route-stack .ota-hero-search-field--from {
    grid-column: 1;
  }

  .ota-hero-search-row > .ota-mobile-route-stack .ota-hero-search-field--swap,
  .ota-hero-search-row--return > .ota-mobile-route-stack .ota-hero-search-field--swap {
    grid-column: 2;
    justify-self: center;
    align-self: end;
    margin: 0;
  }

  .ota-hero-search-row > .ota-mobile-route-stack .ota-hero-search-field--to,
  .ota-hero-search-row--return > .ota-mobile-route-stack .ota-hero-search-field--to {
    grid-column: 3;
  }

  .ota-hero-search-field--submit {
    align-self: end;
  }
}

/* Tablet: keep search submit after travellers (768–1099) */
@media (min-width: 768px) and (max-width: 1099.98px) {
  .ota-hero-search-row,
  .ota-hero-search-row--return {
    display: grid;
    grid-template-columns: 1fr 48px 1fr;
    gap: 0.65rem 0.85rem;
  }

  .ota-hero-search-row > .ota-mobile-route-stack,
  .ota-hero-search-row--return > .ota-mobile-route-stack {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px minmax(0, 1fr);
    gap: 0.65rem 0.85rem;
    align-items: end;
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
  }

  .ota-hero-search-row > .ota-mobile-route-stack .ota-hero-search-field--from,
  .ota-hero-search-row--return > .ota-mobile-route-stack .ota-hero-search-field--from {
    grid-column: 1;
  }

  .ota-hero-search-row > .ota-mobile-route-stack .ota-hero-search-field--swap,
  .ota-hero-search-row--return > .ota-mobile-route-stack .ota-hero-search-field--swap {
    grid-column: 2;
    justify-self: center;
    align-self: end;
    margin: 0;
  }

  .ota-hero-search-row > .ota-mobile-route-stack .ota-hero-search-field--to,
  .ota-hero-search-row--return > .ota-mobile-route-stack .ota-hero-search-field--to {
    grid-column: 3;
  }

  .ota-hero-search-dates {
    grid-column: 1 / -1;
  }

  .ota-hero-search-field--pax {
    grid-column: 1 / -1;
  }

  .ota-hero-search-field--submit {
    grid-column: 1 / -1;
    align-self: end;
  }
}

/* 768–991: bottom bar + list padding (align with existing results rules) */
@media (min-width: 768px) and (max-width: 991.98px) {
  body.ota-public .ota-results-pro .ota-results-mobile-bar.ota-mobile-bottom-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
  }

  body.ota-public .ota-mobile-results-list {
    padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px));
  }

  .ota-desktop-result-card,
  .ota-desktop-result-actions {
    display: block !important;
  }

  .ota-mobile-flight-card,
  .ota-mobile-flight-details {
    display: none !important;
  }
}

/* —— Mobile homepage: search-first landing (homepage only) —— */
.ota-mobile-home-only {
  display: none;
}

@media (max-width: 767.98px) {
  .ota-page-home .ota-home-desktop-content {
    display: none !important;
  }

  .ota-page-home .ota-mobile-home-only {
    display: block;
  }

  .ota-page-home .ota-site-main {
    background: #f1f5f9;
  }

  .ota-page-home .ota-mobile-home-search-page.ota-hero--banner {
    background-color: #f1f5f9;
    background-image: none;
    min-height: auto;
    padding: 0;
    overflow: visible;
  }

  .ota-page-home .ota-mobile-home-search-page.ota-hero--has-image {
    background-image: none;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-hero-banner__overlay {
    display: none;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-hero-inner--banner {
    max-width: 100%;
    width: 100%;
    padding: 12px 8px 24px;
    gap: 0.75rem;
    box-sizing: border-box;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-wrap,
  .ota-page-home .ota-mobile-home-search-page .ota-hero-search,
  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-card {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }

  .ota-page-home .ota-mobile-home-hero-copy {
    width: 100%;
    max-width: 100%;
    margin: 0;
    text-align: left;
  }

  .ota-page-home .ota-mobile-home-hero-copy h1 {
    margin: 0 0 0.35rem;
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: #0f172a !important;
    width: auto;
    max-width: 100%;
  }

  .ota-page-home .ota-mobile-home-hero-copy__lead {
    margin: 0 0 0.15rem;
    font-size: 0.9rem;
    line-height: 1.45;
    font-weight: 500;
    color: #475569 !important;
    max-width: 100%;
  }

  /* Homepage mobile search: single-column app card (scoped) */
  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-card {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 18px;
    border-radius: 22px;
    box-sizing: border-box;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-grid,
  .ota-page-home .ota-mobile-home-search-page [data-flight-search-form] .ota-hero-search-grid {
    display: flex !important;
    flex-direction: column;
    gap: 14px;
    width: 100%;
    max-width: 100%;
    grid-template-columns: none !important;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-field,
  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-field--from,
  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-field--to,
  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-field--depart,
  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-field--return,
  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-field--travellers,
  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-field--pax,
  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-field--submit,
  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-dates {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    margin: 0;
    grid-column: auto !important;
    align-self: stretch !important;
    box-sizing: border-box;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-field--submit {
    order: 99;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-field--submit .ota-hero-search-submit,
  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-field--submit button[type="submit"] {
    width: 100%;
    max-width: 100%;
    min-height: 56px;
    justify-content: center;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-swap {
    align-self: center;
    margin: -2px 0;
    width: 44px;
    height: 44px;
    border-radius: 12px;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-dates__pair,
  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-dates--round .ota-hero-search-dates__pair {
    display: flex;
    flex-direction: column;
    gap: 14px;
    grid-template-columns: none !important;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-field--date {
    min-width: 0;
    width: 100%;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-toolbar {
    margin-bottom: 0.75rem;
    padding-bottom: 0;
    border-bottom: 0;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-form {
    gap: 0;
  }

  /* —— Mobile homepage template (reference layout) —— */
  .ota-page-home .ota-mobile-home-trust-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
    margin: 0 0 0.85rem;
    padding: 0.35rem 0.5rem;
    color: #475569;
    font-size: 0.8rem;
    font-weight: 600;
  }

  .ota-page-home .ota-mobile-home-trust-bar i {
    color: var(--ota-blue, #2563eb);
    margin-right: 0.3rem;
  }

  .ota-page-home .ota-mobile-home-trust-bar__divider {
    width: 1px;
    height: 1.1rem;
    background: #cbd5e1;
    flex-shrink: 0;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-hero-search--home-mobile .ota-hero-search-label,
  .ota-page-home .ota-mobile-home-search-page .ota-mobile-pax-field-label {
    margin: 0 0 0.4rem;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    color: #64748b;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-mobile-trip-modes {
    margin-bottom: 1rem;
    border-radius: 999px;
    padding: 3px;
    background: #f1f5f9;
    border: 0;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-mobile-trip-modes .ota-hero-search-mode {
    min-height: 38px;
    font-size: 0.84rem;
    font-weight: 700;
    color: #334155;
    border-radius: 999px;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-mobile-trip-modes .ota-hero-search-mode:has(input:checked) {
    background: var(--ota-brand-accent-soft, #fff7ed);
    color: color-mix(in srgb, var(--brand-accent, #f59e0b) 78%, #1e293b);
    box-shadow: inset 0 -2px 0 var(--brand-accent, #f59e0b);
  }

  .ota-page-home .ota-mobile-home-search-page .ota-mobile-route-stack {
    position: static;
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-mobile-route-stack .ota-hero-search-field--swap {
    position: static;
    right: auto;
    top: auto;
    transform: none;
    z-index: auto;
    width: 100%;
    margin: 6px 0;
    order: 2;
    align-self: stretch;
    display: flex;
    justify-content: center;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-mobile-route-swap {
    width: 46px;
    height: 46px;
    margin: 0;
    border-radius: 14px;
    background: #fff;
    border: 1px solid #e2e8f0;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
    color: #2563eb;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-mobile-airport-shell--has-code .ota-mobile-airport-viz__code {
    font-size: 1.65rem;
    font-weight: 800;
    letter-spacing: 0.03em;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-mobile-date-trigger {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    width: 100%;
    min-height: 52px;
    padding: 0 0.85rem;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #fff;
    font-size: 15px;
    font-weight: 600;
    color: #0f172a;
    text-align: left;
    cursor: pointer;
    box-sizing: border-box;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-mobile-date-trigger i {
    color: #94a3b8;
    font-size: 15px;
    flex-shrink: 0;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-hero-search--home-mobile:not(.ota-hero-search-dates--round) .ota-hero-search-date-trigger {
    display: none !important;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-field--pax-mobile-template {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-pax-details {
    width: 100%;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-mobile-pax-trigger {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    width: 100%;
    min-height: 52px;
    padding: 0 0.85rem;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #fff;
    list-style: none;
    cursor: pointer;
    box-sizing: border-box;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-mobile-pax-trigger::-webkit-details-marker {
    display: none;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-mobile-pax-trigger__icon {
    color: #94a3b8;
    font-size: 15px;
    flex-shrink: 0;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-mobile-pax-trigger__value {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 15px;
    font-weight: 600;
    color: #0f172a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-mobile-pax-trigger__chev {
    color: #94a3b8;
    font-size: 1.1rem;
    flex-shrink: 0;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-hero-search-submit.ota-mobile-search-submit {
    min-height: 54px;
    border-radius: 14px;
    font-size: 1.05rem;
    font-weight: 800;
    box-shadow: 0 8px 20px rgba(37, 99, 235, 0.35);
  }

  .ota-page-home .ota-mobile-home-metrics {
    margin-top: 1.25rem;
    padding: 0 4px;
  }

  .ota-page-home .ota-mobile-home-metrics .ota-metrics-band {
    background: transparent;
    border: 0;
    padding: 0;
  }

  .ota-page-home .ota-mobile-home-metrics .ota-container {
    padding: 0;
    max-width: 100%;
  }

  .ota-page-home .ota-mobile-home-metrics .metric-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
  }

  .ota-page-home .ota-mobile-home-metrics .metric-card {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0.5rem 0.25rem;
    min-height: 0;
    text-align: center;
  }

  .ota-page-home .ota-mobile-home-metrics .metric-card:hover {
    transform: none;
    box-shadow: none;
  }

  .ota-page-home .ota-mobile-home-metrics .metric-card-icon {
    width: 2rem;
    height: 2rem;
    margin: 0 auto 0.4rem;
    border-radius: 8px;
    background: #eff6ff;
    color: #2563eb;
    font-size: 0.95rem;
  }

  .ota-page-home .ota-mobile-home-metrics .metric-card-value {
    font-size: 0.88rem;
    font-weight: 800;
    color: #0f172a;
    margin-bottom: 0.15rem;
    letter-spacing: 0;
  }

  .ota-page-home .ota-mobile-home-metrics .metric-card-label {
    font-size: 0.72rem;
    font-weight: 500;
    color: #64748b;
    line-height: 1.3;
  }
}

.ota-footer-mobile-compact {
  display: none;
}
@media (max-width: 767.98px) {
  .ota-footer-desktop-content {
    display: none !important;
  }
  .ota-footer-mobile-compact {
    display: block;
    padding: 22px 18px calc(22px + env(safe-area-inset-bottom, 0));
    background: #f8fafc;
    border-top: 1px solid #e5eaf0;
  }
  .ota-footer-mobile-compact__brand {
    margin: 0 0 6px;
    font-weight: 800;
    font-size: 20px;
    color: #111827;
    line-height: 1.2;
  }
  .ota-footer-mobile-compact__text,
  .ota-footer-mobile-compact__contact,
  .ota-footer-mobile-compact__copy {
    margin: 0;
    font-size: 13px;
    color: #64748b;
    line-height: 1.45;
  }
  .ota-footer-mobile-compact__contact,
  .ota-footer-mobile-compact__copy {
    margin-top: 8px;
  }
  .ota-footer-mobile-compact__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
  }
  .ota-footer-mobile-compact__badge {
    border: 1px solid #d8e0ea;
    border-radius: 999px;
    padding: 6px 10px;
    font-size: 11px;
    font-weight: 700;
    color: #475569;
    background: #ffffff;
  }
}

@media (min-width: 768px) {
  .ota-page-home .ota-mobile-home-only {
    display: none !important;
  }

  .ota-page-home .ota-mobile-home-search-page .ota-mobile-date-trigger {
    display: none !important;
  }
}

/* ========== Sprint 3 — booking / customer responsive ========== */
.ota-booking-layout,
body.ota-public .ota-checkout-grid.ota-booking-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  gap: 24px;
  align-items: start;
}

.ota-booking-main,
.ota-booking-sidebar,
body.ota-public .ota-checkout-main,
body.ota-public .ota-checkout-aside {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 991.98px) {
  .ota-booking-layout,
  body.ota-public .ota-checkout-grid.ota-booking-layout {
    grid-template-columns: 1fr;
  }

  body.ota-public .ota-checkout-page .ota-checkout-aside {
    position: static !important;
    top: auto;
  }
}

.ota-booking-form-grid,
.ota-passenger-form-grid,
.ota-customer-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
  min-width: 0;
}

@media (max-width: 767.98px) {
  .ota-booking-form-grid,
  .ota-passenger-form-grid,
  .ota-customer-form-grid {
    grid-template-columns: 1fr;
  }
}

.ota-r-action-bar,
.ota-booking-actions,
.ota-customer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: flex-end;
  max-width: 100%;
  min-width: 0;
}

@media (max-width: 767.98px) {
  .ota-r-action-bar,
  .ota-booking-actions,
  .ota-customer-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .ota-r-action-bar .btn,
  .ota-r-action-bar .ota-account-btn,
  .ota-booking-actions .btn,
  .ota-booking-actions .ota-account-btn,
  .ota-customer-actions .btn,
  .ota-customer-actions .ota-account-btn {
    width: 100%;
    max-width: 100%;
    justify-content: center;
  }
}

.ota-responsive-table-wrap,
.ota-account-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

body.ota-public .ota-account-page-wrap,
body.ota-public .ota-account-page-inner,
body.ota-public .ota-account-wrap {
  min-width: 0;
  max-width: 100%;
}

body.ota-public .ota-account-subnav {
  max-width: 100%;
  min-width: 0;
}

body.ota-public .ota-account-filter-tabs {
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  flex-wrap: nowrap;
  padding-bottom: 0.2rem;
}

body.ota-public .ota-account-filter-tabs__link {
  flex: 0 0 auto;
}

body.ota-public .ota-checkout-page .ota-checkout-phone-row {
  display: grid;
  grid-template-columns: minmax(84px, 96px) minmax(0, 1fr);
  gap: 0.5rem;
  min-width: 0;
}

body.ota-public .ota-checkout-page .ota-checkout-country-code-select {
  min-width: 0;
  max-width: 100%;
  width: 100%;
}

body.ota-public .ota-checkout-page .ota-checkout-phone-number {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 767.98px) {
  body.ota-public .ota-book-wrap,
  body.ota-public .ota-rev-wrap {
    padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px));
  }

  body.ota-public .ota-checkout-main {
    padding-bottom: calc(4.5rem + env(safe-area-inset-bottom, 0px));
  }

  body.ota-public .ota-checkout-submit-bar.ota-booking-actions {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1060;
    margin: 0;
    padding: 0.85rem var(--ota-gutter-x) calc(0.85rem + env(safe-area-inset-bottom, 0px));
    background: linear-gradient(to top, rgba(241, 245, 249, 0.98) 70%, rgba(241, 245, 249, 0));
    border-top: 1px solid var(--ota-border);
    box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.08);
  }

  body.ota-public .ota-passenger-card__summary {
    margin-left: 0;
    margin-right: 0;
    padding-left: 1rem;
    padding-right: 1rem;
  }

  body.ota-public .ota-review-page .ota-review-submit-btn {
    width: 100%;
    max-width: 100%;
  }

  body.ota-public .ota-account-card__head {
    flex-direction: column;
    align-items: stretch;
  }

  body.ota-public .ota-account-card__head .ota-account-btn {
    width: 100%;
    max-width: 100%;
    justify-content: center;
  }

  body.ota-public .ota-checkout-aside .ota-btn-wa,
  body.ota-public .ota-checkout-aside .btn {
    width: 100%;
    max-width: 100%;
  }

  body.ota-public .ota-checkout-access-card__social {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    width: 100%;
  }

  body.ota-public .ota-checkout-social-pill {
    flex: 1 1 calc(50% - 0.45rem);
    min-width: 0;
    justify-content: center;
  }
}

body.ota-public .ota-confirmation-page .ota-confirm-hero-meta,
body.ota-public .ota-confirmation-page .ota-confirm-hero-facts {
  min-width: 0;
  max-width: 100%;
}

body.ota-public .ota-lookup-page .ota-lookup-main-row {
  min-width: 0;
}

body.ota-public .ota-account-list-card__ref,
body.ota-public .ota-account-list-card__meta {
  overflow-wrap: anywhere;
  word-break: break-word;
}

body.ota-public .ota-account-detail-grid > * {
  min-width: 0;
  max-width: 100%;
}

/* ===== Sprint 4 — Agent portal responsive ===== */
.ota-agent-shell,
.ota-agent-page,
.ota-agent-page-inner,
.ota-account-shell {
  max-width: 100%;
  min-width: 0;
}

body.ota-public .ota-agent-shell,
body.ota-public .ota-agent-page-inner {
  overflow-x: clip;
}

.ota-account-subnav-wrap,
.ota-agent-subnav-wrap {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  margin-bottom: 1.5rem;
}

.ota-account-subnav-wrap .ota-account-subnav,
.ota-agent-subnav-wrap .ota-account-subnav {
  margin-bottom: 0;
}

.ota-account-subnav__track,
.ota-agent-subnav__track {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.4rem;
  min-width: min-content;
  width: max-content;
  max-width: none;
}

.ota-account-subnav__track .ota-account-subnav__link,
.ota-agent-subnav__track .ota-account-subnav__link {
  flex: 0 0 auto;
  white-space: nowrap;
}

body.ota-public .ota-agent-subnav-wrap .ota-account-subnav,
body.ota-public .ota-agent-subnav-wrap .ota-agent-nav {
  display: block;
  width: max-content;
  min-width: 100%;
  max-width: none;
  overflow: visible;
}

.ota-agent-card-grid,
.ota-agent-kpi-grid,
.ota-agent-page .ota-account-grid--kpis,
.ota-agent-page .ota-account-grid--quick {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  min-width: 0;
}

.ota-agent-table-wrap,
.ota-agent-page .ota-account-table-wrap,
.ota-agent-page .ota-responsive-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.ota-agent-table,
.ota-agent-page .ota-account-table,
.ota-agent-staff-table {
  min-width: max-content;
}

.ota-agent-actions,
.ota-agent-page .ota-account-actions,
.ota-agent-page .ota-account-header-actions,
.ota-agent-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: flex-end;
  max-width: 100%;
  min-width: 0;
}

.ota-agent-form-grid,
.ota-agent-page .ota-agent-form-section .row.g-3 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
  min-width: 0;
}

.ota-agent-form-grid > *,
.ota-agent-page .ota-agent-form-section .row.g-3 > [class*='col-'] {
  min-width: 0;
  max-width: 100%;
}

body.ota-public .ota-agent-page .row {
  margin-left: 0;
  margin-right: 0;
  max-width: 100%;
}

body.ota-public .ota-agent-page .row > [class*='col-'] {
  min-width: 0;
  max-width: 100%;
}

body.ota-public .ota-agent-page .row.g-3,
body.ota-public .ota-agent-page .row.g-4 {
  margin-left: 0;
  margin-right: 0;
  width: 100%;
  max-width: 100%;
}

body.ota-public .ota-agent-page .card,
body.ota-public .ota-agent-page .card-body,
body.ota-public .ota-agent-page form {
  min-width: 0;
  max-width: 100%;
}

body.ota-public .ota-agent-page .form-control,
body.ota-public .ota-agent-page .form-select,
body.ota-public .ota-agent-page textarea.form-control {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

body.ota-public .ota-agent-page .ota-account-page-inner > * {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 767.98px) {
  .ota-agent-card-grid,
  .ota-agent-kpi-grid,
  .ota-agent-page .ota-account-grid--kpis,
  .ota-agent-page .ota-account-grid--quick {
    grid-template-columns: 1fr;
  }

  .ota-agent-actions,
  .ota-agent-page .ota-account-actions,
  .ota-agent-page .ota-account-header-actions,
  .ota-agent-form-actions,
  .ota-agent-page .ota-r-action-bar {
    flex-direction: column;
    align-items: stretch;
  }

  .ota-agent-actions .btn,
  .ota-agent-actions .ota-account-btn,
  .ota-agent-page .ota-account-actions .btn,
  .ota-agent-page .ota-account-actions .ota-account-btn,
  .ota-agent-page .ota-account-header-actions .btn,
  .ota-agent-page .ota-account-header-actions .ota-account-btn,
  .ota-agent-form-actions .btn,
  .ota-agent-form-actions .ota-account-btn,
  .ota-agent-page .ota-r-action-bar .btn,
  .ota-agent-page .ota-r-action-bar .ota-account-btn,
  .ota-agent-actions a,
  .ota-agent-page .ota-account-actions a,
  .ota-agent-page .ota-account-header-actions a {
    width: 100%;
    max-width: 100%;
    justify-content: center;
  }

  .ota-agent-form-grid,
  .ota-agent-page .ota-agent-form-section .row.g-3 {
    grid-template-columns: 1fr;
  }
}

/* Dashboard Layout Upgrade / DASH-UI-1C */
body.ota-public .ota-dashboard-shell {
  background:
    radial-gradient(circle at 12% 12%, rgba(59, 130, 246, 0.12), transparent 28rem),
    linear-gradient(180deg, #f8fbff 0%, #f3f6fb 100%);
}

body.ota-public .ota-dashboard-shell .ota-account-page-inner {
  max-width: 1320px;
  padding-top: 1.25rem;
}

body.ota-public .ota-dashboard-shell__grid {
  display: grid;
  grid-template-columns: minmax(220px, 250px) minmax(0, 1fr);
  gap: 1.5rem;
  align-items: start;
}

body.ota-public .ota-dashboard-main {
  min-width: 0;
}

body.ota-public .ota-dashboard-sidebar {
  position: sticky;
  top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
  padding: 1rem;
  border: 1px solid rgba(226, 232, 240, 0.95);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.08);
  backdrop-filter: blur(14px);
}

body.ota-public .ota-dashboard-sidebar__identity {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  padding: 0.25rem 0.25rem 0.75rem;
  border-bottom: 1px solid #eef2f7;
}

body.ota-public .ota-dashboard-sidebar__avatar,
body.ota-public .ota-dashboard-sidebar__mini-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 2.55rem;
  height: 2.55rem;
  border-radius: 14px;
  background: linear-gradient(135deg, #2563eb 0%, #0ea5e9 100%);
  color: #fff;
  font-weight: 800;
  box-shadow: 0 12px 24px rgba(37, 99, 235, 0.24);
}

body.ota-public .ota-dashboard-sidebar__identity strong,
body.ota-public .ota-dashboard-sidebar__mini strong {
  display: block;
  color: #0f172a;
  font-size: 0.875rem;
  line-height: 1.5;
  font-weight: 600;
  overflow-wrap: anywhere;
}

body.ota-public .ota-dashboard-sidebar__eyebrow,
body.ota-public .ota-dashboard-sidebar__mini span {
  display: block;
  color: #64748b;
  font-size: 0.75rem;
  line-height: 1.5;
  font-weight: 400;
}

body.ota-public .ota-dashboard-sidebar__eyebrow {
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

body.ota-public .ota-dashboard-sidebar__nav {
  display: grid;
  gap: 0.35rem;
}

body.ota-public .ota-dashboard-sidebar__link {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-width: 0;
  padding: 0.72rem 0.82rem;
  border: 1px solid transparent;
  border-radius: 14px;
  color: #334155;
  font-size: 0.86rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

body.ota-public .ota-dashboard-sidebar__link .ti {
  color: #2563eb;
  font-size: 1.05rem;
}

body.ota-public .ota-dashboard-sidebar__link:hover,
body.ota-public .ota-dashboard-sidebar__link:focus-visible,
body.ota-public .ota-dashboard-sidebar__link.is-active {
  background: #eff6ff;
  border-color: #dbeafe;
  color: #1d4ed8;
  transform: translateX(2px);
}

body.ota-public .ota-dashboard-sidebar__mini {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-top: auto;
  padding: 0.9rem;
  border: 1px solid #dbeafe;
  border-radius: 18px;
  background: linear-gradient(180deg, #eff6ff 0%, #ffffff 100%);
}

body.ota-public .ota-dashboard-sidebar__mini-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 12px;
  box-shadow: none;
}

body.ota-public .ota-dashboard-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 320px);
  gap: 1rem;
  min-height: 230px;
  margin-bottom: -2.15rem;
  padding: 2rem;
  overflow: hidden;
  border-radius: 28px;
  color: #fff;
  background:
    radial-gradient(circle at 80% 40%, rgba(125, 211, 252, 0.55), transparent 15rem),
    radial-gradient(circle at 72% 95%, rgba(56, 189, 248, 0.32), transparent 16rem),
    linear-gradient(135deg, #082f74 0%, #0f4eaa 50%, #0b76d1 100%);
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.18);
}

body.ota-public .ota-dashboard-hero::before,
body.ota-public .ota-dashboard-hero::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

body.ota-public .ota-dashboard-hero::before {
  inset: auto -4rem -6rem auto;
  width: 26rem;
  height: 26rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: radial-gradient(circle, rgba(255, 255, 255, 0.16), transparent 62%);
}

body.ota-public .ota-dashboard-hero::after {
  left: 28%;
  right: 7%;
  top: 2.35rem;
  height: 1px;
  border-top: 1px dashed rgba(255, 255, 255, 0.35);
  transform: rotate(-12deg);
}

body.ota-public .ota-dashboard-hero__content,
body.ota-public .ota-dashboard-hero__visual {
  position: relative;
  z-index: 1;
}

body.ota-public .ota-dashboard-hero__badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-bottom: 0.9rem;
  padding: 0.32rem 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: #dbeafe;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}

body.ota-public .ota-dashboard-hero h1 {
  max-width: 44rem;
  margin: 0;
  color: #fff;
  font-size: clamp(2rem, 4vw, 3.4rem);
  font-weight: 800;
  letter-spacing: -0.045em;
  line-height: 1.05;
}

body.ota-public .ota-dashboard-hero p {
  max-width: 42rem;
  margin: 0.75rem 0 0;
  color: rgba(239, 246, 255, 0.92);
  font-size: 1rem;
}

body.ota-public .ota-dashboard-hero__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin-top: 1.25rem;
}

body.ota-public .ota-dashboard-hero__chips span {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: #eff6ff;
  font-size: 0.82rem;
  font-weight: 700;
}

body.ota-public .ota-dashboard-hero__visual {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 12rem;
}

body.ota-public .ota-dashboard-hero__visual .ti {
  color: rgba(255, 255, 255, 0.9);
  font-size: clamp(6rem, 14vw, 12rem);
  filter: drop-shadow(0 24px 34px rgba(15, 23, 42, 0.28));
  transform: rotate(-10deg);
}

body.ota-public .ota-dashboard-actions {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  width: calc(100% - 3rem);
  margin: 0 auto 1.2rem;
  overflow: hidden;
  border: 1px solid rgba(226, 232, 240, 0.95);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.12);
}

body.ota-public .ota-dashboard-action {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  min-width: 0;
  padding: 1rem 1.1rem;
  color: #0f172a;
  text-decoration: none;
  border-right: 1px solid #e5edf7;
}

body.ota-public .ota-dashboard-action:last-child {
  border-right: 0;
}

body.ota-public .ota-dashboard-action:hover,
body.ota-public .ota-dashboard-action:focus-visible {
  background: #f8fbff;
}

body.ota-public .ota-dashboard-action__icon,
body.ota-public .ota-dashboard-kpi__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 14px;
  background: #eff6ff;
  color: #2563eb;
  font-size: 1.25rem;
}

body.ota-public .ota-dashboard-action strong,
body.ota-public .ota-dashboard-action small {
  display: block;
  overflow-wrap: anywhere;
}

body.ota-public .ota-dashboard-action strong {
  font-size: 0.92rem;
  font-weight: 800;
}

body.ota-public .ota-dashboard-action small {
  margin-top: 0.15rem;
  color: #64748b;
  font-size: 0.76rem;
  line-height: 1.3;
}

body.ota-public .ota-dashboard-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1.15rem;
}

body.ota-public .ota-dashboard-kpi {
  display: grid;
  gap: 0.45rem;
  min-width: 0;
  padding: 1.15rem;
  border: 1px solid #e4ebf5;
  border-top: 3px solid #2563eb;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.06);
}

body.ota-public .ota-dashboard-kpi--amber {
  border-top-color: #f59e0b;
}

body.ota-public .ota-dashboard-kpi--violet {
  border-top-color: #8b5cf6;
}

body.ota-public .ota-dashboard-kpi--emerald {
  border-top-color: #10b981;
}

body.ota-public .ota-dashboard-kpi__label {
  color: #2563eb;
  font-size: 0.70rem;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

body.ota-public .ota-dashboard-kpi strong {
  color: #0f172a;
  font-size: 1.55rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.1;
}

body.ota-public .ota-dashboard-kpi a {
  width: fit-content;
  color: #2563eb;
  font-size: 0.76rem;
  font-weight: 800;
  text-decoration: none;
}

body.ota-public .ota-dashboard-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
  gap: 1rem;
  align-items: start;
}

body.ota-public .ota-dashboard-content-grid--finance {
  grid-template-columns: minmax(0, 1fr);
}

body.ota-public .ota-dashboard-help-card {
  min-width: 0;
  padding: 1.25rem;
  border: 1px solid #e4ebf5;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.06);
}

body.ota-public .ota-dashboard-help-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  margin-bottom: 0.85rem;
  border-radius: 16px;
  background: #eff6ff;
  color: #2563eb;
  font-size: 1.4rem;
}

body.ota-public .ota-dashboard-help-card h2 {
  margin: 0;
  color: #0f172a;
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: 0;
}

body.ota-public .ota-dashboard-help-card p {
  margin: 0.4rem 0 1rem;
  color: #64748b;
  font-size: 0.875rem;
  line-height: 1.5;
  font-weight: 400;
}

body.ota-public .ota-dashboard-help-card ul {
  display: grid;
  gap: 0.55rem;
  margin: 0 0 1.1rem;
  padding: 0;
  list-style: none;
}

body.ota-public .ota-dashboard-help-card li {
  display: flex;
  gap: 0.45rem;
  color: #334155;
  font-size: 0.875rem;
  line-height: 1.5;
  font-weight: 400;
}

body.ota-public .ota-dashboard-help-card li .ti {
  color: #2563eb;
  margin-top: 0.1rem;
}

body.ota-public .ota-dashboard-shell .ota-account-card {
  border-radius: 20px;
}

body.ota-public .ota-dashboard-shell .ota-account-table-wrap {
  max-width: 100%;
  overflow-x: auto;
}

body.ota-public .ota-dashboard-shell .ota-account-table {
  min-width: 760px;
}

/* Dashboard Layout Polish / DASH-UI-1D */
body.ota-public .ota-dashboard-hero {
  min-height: 205px;
  margin-bottom: -1.5rem;
  padding: 1.65rem 1.8rem;
  background-color: var(--brand-secondary, #0c1929);
  background-image:
    linear-gradient(135deg, rgba(12, 25, 41, 0.74), rgba(19, 42, 71, 0.68)),
    radial-gradient(circle at 78% 22%, rgba(125, 211, 252, 0.34), transparent 13rem),
    radial-gradient(circle at 88% 86%, rgba(245, 158, 11, 0.22), transparent 12rem),
    linear-gradient(135deg, #07172c 0%, #0f315f 48%, #0b75bc 100%);
}

body.ota-public .ota-dashboard-hero::before {
  inset: auto -5rem -8rem auto;
  width: 25rem;
  height: 25rem;
  background:
    radial-gradient(circle, rgba(255, 255, 255, 0.14), transparent 60%),
    repeating-radial-gradient(circle, rgba(255, 255, 255, 0.12) 0 1px, transparent 1px 3.2rem);
}

body.ota-public .ota-dashboard-hero::after {
  left: 36%;
  right: 8%;
  top: 2.15rem;
  border-top-color: rgba(255, 255, 255, 0.4);
}

body.ota-public .ota-dashboard-hero h1 {
  font-size: clamp(1.9rem, 3.2vw, 3rem);
}

body.ota-public .ota-dashboard-hero__visual {
  min-height: 10rem;
  isolation: isolate;
}

body.ota-public .ota-dashboard-hero__globe,
body.ota-public .ota-dashboard-hero__plane,
body.ota-public .ota-dashboard-hero__cloud {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.92);
  pointer-events: none;
}

body.ota-public .ota-dashboard-hero__globe {
  right: 1.1rem;
  bottom: -0.3rem;
  width: 10.5rem;
  height: 10.5rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  font-size: 7rem;
  filter: drop-shadow(0 26px 38px rgba(15, 23, 42, 0.34));
}

body.ota-public .ota-dashboard-hero__plane {
  right: 4.85rem;
  top: 1.6rem;
  z-index: 2;
  font-size: 4.7rem;
  transform: rotate(-10deg);
  filter: drop-shadow(0 20px 26px rgba(15, 23, 42, 0.34));
}

body.ota-public .ota-dashboard-hero__cloud {
  color: rgba(219, 234, 254, 0.55);
  font-size: 2.4rem;
}

body.ota-public .ota-dashboard-hero__cloud--one {
  right: 10.8rem;
  top: 2rem;
}

body.ota-public .ota-dashboard-hero__cloud--two {
  right: 2.4rem;
  top: 5.2rem;
  font-size: 1.9rem;
}

body.ota-public .ota-dashboard-kpis {
  gap: 0.75rem;
  margin-bottom: 0.9rem;
}

body.ota-public .ota-dashboard-kpi {
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas:
    "icon label"
    "icon value"
    "link link";
  align-items: center;
  gap: 0.18rem 0.65rem;
  padding: 0.78rem 0.85rem;
  border-radius: 15px;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.045);
}

body.ota-public .ota-dashboard-kpi__icon {
  grid-area: icon;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 12px;
  font-size: 1.05rem;
}

body.ota-public .ota-dashboard-kpi__label {
  grid-area: label;
  font-size: 0.70rem;
  line-height: 1.5;
  font-weight: 700;
}

body.ota-public .ota-dashboard-kpi strong {
  grid-area: value;
  font-size: 1.28rem;
}

body.ota-public .ota-dashboard-kpi a {
  grid-area: link;
  margin-top: 0.25rem;
  font-size: 0.7rem;
}

body.ota-public .ota-dashboard-content-grid {
  grid-template-columns: minmax(0, 3fr) minmax(220px, 1fr);
  gap: 0.85rem;
}

body.ota-public .ota-dashboard-help-card {
  padding: 0.95rem;
  border-radius: 17px;
}

body.ota-public .ota-dashboard-help-card__icon {
  width: 2.35rem;
  height: 2.35rem;
  margin-bottom: 0.55rem;
  border-radius: 12px;
  font-size: 1.1rem;
}

body.ota-public .ota-dashboard-help-card h2 {
  font-size: 1rem;
}

body.ota-public .ota-dashboard-help-card p {
  margin: 0.28rem 0 0.7rem;
  font-size: 0.875rem;
  line-height: 1.5;
}

body.ota-public .ota-dashboard-help-card ul {
  gap: 0.38rem;
  margin-bottom: 0.85rem;
}

body.ota-public .ota-dashboard-help-card li {
  font-size: 0.875rem;
  line-height: 1.5;
}

body.ota-public .ota-dashboard-shell .ota-account-table-wrap {
  overflow-x: visible;
}

body.ota-public .ota-dashboard-shell .ota-account-table--dashboard {
  min-width: 0;
  table-layout: fixed;
  font-size: 0.77rem;
}

body.ota-public .ota-dashboard-shell .ota-account-table--dashboard th,
body.ota-public .ota-dashboard-shell .ota-account-table--dashboard td {
  padding: 0.62rem 0.58rem;
  vertical-align: middle;
}

body.ota-public .ota-dashboard-shell .ota-account-table--dashboard th {
  font-size: 0.66rem;
  letter-spacing: 0.035em;
}

body.ota-public .ota-dashboard-shell .ota-account-table--dashboard th:nth-child(1) {
  width: 18%;
}

body.ota-public .ota-dashboard-shell .ota-account-table--dashboard th:nth-child(2) {
  width: 23%;
}

body.ota-public .ota-dashboard-shell .ota-account-table--dashboard th:nth-child(3),
body.ota-public .ota-dashboard-shell .ota-account-table--dashboard th:nth-child(4) {
  width: 14%;
}

body.ota-public .ota-dashboard-shell .ota-account-table--dashboard th:nth-child(5) {
  width: 17%;
}

body.ota-public .ota-dashboard-shell .ota-account-table--dashboard th:nth-child(6) {
  width: 14%;
}

body.ota-public .ota-dashboard-booking-row {
  transition: background 0.15s ease, box-shadow 0.15s ease;
}

body.ota-public .ota-dashboard-booking-row:hover,
body.ota-public .ota-dashboard-booking-row:focus-within {
  background: #f8fbff;
}

body.ota-public .ota-dashboard-booking-link {
  display: block;
  min-width: 0;
  color: inherit;
  text-decoration: none;
  overflow-wrap: anywhere;
}

body.ota-public .ota-dashboard-booking-link:focus-visible {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
  border-radius: 8px;
}

/* Dashboard/Profile Final Polish / DASH-UI-1E */
body.ota-public .ota-customer-dashboard .ota-dashboard-hero--homepage-image {
  grid-template-columns: minmax(0, 1fr);
  min-height: clamp(220px, 28vw, 300px);
  background-color: var(--brand-secondary, #0c1929);
  background-image:
    linear-gradient(135deg, rgba(12, 25, 41, 0.62), rgba(19, 42, 71, 0.7)),
    var(--ota-hero-bg-image);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

body.ota-public .ota-customer-dashboard .ota-dashboard-hero--homepage-image::before,
body.ota-public .ota-customer-dashboard .ota-dashboard-hero--homepage-image::after {
  display: none;
}

body.ota-public .ota-customer-dashboard .ota-dashboard-hero--homepage-image .ota-dashboard-hero__content {
  max-width: 48rem;
}

body.ota-public .ota-customer-dashboard .ota-account-table--dashboard {
  font-size: 0.76rem;
}

body.ota-public .ota-customer-dashboard .ota-account-table--dashboard th,
body.ota-public .ota-customer-dashboard .ota-account-table--dashboard td {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  line-height: 1.35;
}

body.ota-public .ota-customer-dashboard .ota-account-table--dashboard th:nth-child(2) {
  width: 21%;
}

body.ota-public .ota-customer-dashboard .ota-account-table--dashboard th:nth-child(5) {
  width: 16%;
}

body.ota-public .ota-customer-dashboard .ota-account-table--dashboard th:nth-child(6) {
  width: 15%;
}

body.ota-public .ota-customer-dashboard .ota-account-table--dashboard td[data-label="Status"] {
  white-space: nowrap;
}

body.ota-public .ota-customer-dashboard .ota-account-table--dashboard td[data-label="Status"] .ota-dashboard-booking-link {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  overflow-wrap: normal;
  white-space: nowrap;
}

body.ota-public .ota-customer-dashboard .ota-account-table--dashboard td[data-label="Status"] .ota-account-status-badge,
body.ota-public .ota-customer-dashboard .ota-account-table--dashboard td[data-label="Status"] .ota-bstat {
  flex: 0 0 auto;
  min-width: max-content;
  padding-inline: 0.52rem;
  white-space: nowrap;
}

body.ota-public .ota-account-page .ota-profile-form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

body.ota-public .ota-account-page .ota-profile-grid--single {
  grid-template-columns: minmax(0, 1fr);
}

body.ota-public .ota-account-page .ota-profile-hero__upload {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.7rem;
  margin-top: 0.85rem;
}

body.ota-public .ota-account-page .ota-profile-hero__upload .ota-profile-file-hint,
body.ota-public .ota-account-page .ota-profile-hero__upload .ota-profile-file-name,
body.ota-public .ota-account-page .ota-profile-hero__upload .ota-profile-field-error {
  flex-basis: 100%;
}

body.ota-public .ota-account-page .ota-profile-hero__upload .ota-profile-check {
  width: auto;
  padding-top: 0;
}

/* Agent Dashboard Final Polish / DASH-UI-1F */
body.ota-public .ota-agent-dashboard .ota-dashboard-hero--homepage-image {
  grid-template-columns: minmax(0, 1fr);
  min-height: clamp(220px, 28vw, 300px);
  background-color: var(--brand-secondary, #0c1929);
  background-image:
    linear-gradient(135deg, rgba(12, 25, 41, 0.64), rgba(19, 42, 71, 0.72)),
    var(--ota-hero-bg-image);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-hero--homepage-image::before,
body.ota-public .ota-agent-dashboard .ota-dashboard-hero--homepage-image::after {
  display: none;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-hero--homepage-image .ota-dashboard-hero__content {
  max-width: 48rem;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-hero__chips {
  gap: 0.48rem;
  margin-top: 0.95rem;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-hero__chips span {
  padding: 0.28rem 0.55rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  font-size: 0.74rem;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-actions {
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  width: calc(100% - 1.5rem);
  margin-bottom: 0.95rem;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-action {
  gap: 0.65rem;
  padding: 0.82rem 0.88rem;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-action__icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 12px;
  font-size: 1.05rem;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-action strong {
  font-size: 0.84rem;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-action small {
  font-size: 0.7rem;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-kpis {
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-finance-grid {
  grid-template-columns: minmax(0, 760px);
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-finance-card .ota-account-card__head,
body.ota-public .ota-agent-dashboard .ota-agent-dashboard-finance-card .ota-account-card__body {
  padding-top: 0.95rem;
  padding-bottom: 0.95rem;
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-finance-card .ota-account-dl {
  display: grid;
  gap: 0.45rem;
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-finance-card .ota-account-dl__row {
  padding: 0.55rem 0;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-content-grid:not(.ota-agent-dashboard-finance-grid) {
  grid-template-columns: minmax(0, 2.7fr) minmax(210px, 0.82fr);
  align-items: start;
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-empty {
  padding-block: 1.35rem;
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-empty .ota-account-empty-icon {
  width: 2.75rem;
  height: 2.75rem;
  margin-bottom: 0.65rem;
  font-size: 1.25rem;
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-table {
  min-width: 0;
  table-layout: fixed;
  font-size: 0.74rem;
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-table th,
body.ota-public .ota-agent-dashboard .ota-agent-dashboard-table td {
  padding-left: 0.46rem;
  padding-right: 0.46rem;
  line-height: 1.35;
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-table th:last-child,
body.ota-public .ota-agent-dashboard .ota-agent-dashboard-table td:last-child {
  width: 4.8rem;
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-support-card {
  padding: 0.9rem;
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-support-card ul {
  margin-bottom: 0.75rem;
}

@media (max-width: 767.98px) {
  body.ota-public .ota-customer-dashboard .ota-dashboard-hero--homepage-image {
    min-height: 0;
    background-position: center;
  }

  body.ota-public .ota-agent-dashboard .ota-dashboard-hero--homepage-image {
    min-height: 0;
    background-position: center;
  }

  body.ota-public .ota-agent-dashboard .ota-agent-dashboard-finance-grid,
  body.ota-public .ota-agent-dashboard .ota-dashboard-content-grid:not(.ota-agent-dashboard-finance-grid) {
    grid-template-columns: minmax(0, 1fr);
  }

  body.ota-public .ota-customer-dashboard .ota-account-table--dashboard td[data-label="Status"] {
    white-space: normal;
  }

  body.ota-public .ota-account-page .ota-profile-hero__upload {
    align-items: flex-start;
  }
}

@media (max-width: 1199.98px) {
  body.ota-public .ota-dashboard-shell__grid {
    grid-template-columns: minmax(190px, 220px) minmax(0, 1fr);
    gap: 1rem;
  }

  body.ota-public .ota-dashboard-actions,
  body.ota-public .ota-dashboard-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.ota-public .ota-dashboard-actions {
    width: calc(100% - 1.5rem);
  }

  body.ota-public .ota-dashboard-content-grid {
    grid-template-columns: minmax(0, 2.4fr) minmax(210px, 0.9fr);
  }

  body.ota-public .ota-dashboard-action:nth-child(2n) {
    border-right: 0;
  }
}

@media (max-width: 991.98px) {
  body.ota-public .ota-dashboard-shell__grid,
  body.ota-public .ota-dashboard-content-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body.ota-public .ota-dashboard-sidebar {
    position: relative;
    top: auto;
  }

  body.ota-public .ota-dashboard-sidebar__nav {
    display: flex;
    gap: 0.5rem;
    overflow-x: auto;
    padding-bottom: 0.1rem;
    -webkit-overflow-scrolling: touch;
  }

  body.ota-public .ota-dashboard-sidebar__link {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  body.ota-public .ota-dashboard-sidebar__mini {
    display: none;
  }

  body.ota-public .ota-dashboard-hero {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    margin-bottom: 1rem;
  }

  body.ota-public .ota-dashboard-hero__visual {
    display: none;
  }

  body.ota-public .ota-dashboard-shell .ota-account-table-wrap {
    overflow-x: auto;
  }

  body.ota-public .ota-dashboard-actions {
    width: 100%;
    margin-top: 0;
  }
}

@media (max-width: 767.98px) {
  body.ota-public .ota-dashboard-shell .ota-account-table-wrap {
    overflow-x: visible;
  }

  body.ota-public .ota-dashboard-shell .ota-account-table--dashboard,
  body.ota-public .ota-dashboard-shell .ota-account-table--dashboard thead,
  body.ota-public .ota-dashboard-shell .ota-account-table--dashboard tbody,
  body.ota-public .ota-dashboard-shell .ota-account-table--dashboard tr,
  body.ota-public .ota-dashboard-shell .ota-account-table--dashboard th,
  body.ota-public .ota-dashboard-shell .ota-account-table--dashboard td {
    display: block;
    width: 100%;
  }

  body.ota-public .ota-dashboard-shell .ota-account-table--dashboard thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
  }

  body.ota-public .ota-dashboard-shell .ota-account-table--dashboard tr {
    margin: 0.65rem;
    padding: 0.72rem;
    border: 1px solid #e4ebf5;
    border-radius: 14px;
    background: #fff;
  }

  body.ota-public .ota-dashboard-shell .ota-account-table--dashboard td {
    display: grid;
    grid-template-columns: minmax(6.5rem, 0.42fr) minmax(0, 1fr);
    gap: 0.55rem;
    padding: 0.36rem 0;
    border: 0;
    font-size: 0.78rem;
  }

  body.ota-public .ota-dashboard-shell .ota-account-table--dashboard td::before {
    content: attr(data-label);
    color: #64748b;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.035em;
    text-transform: uppercase;
  }
}

@media (max-width: 575.98px) {
  body.ota-public .ota-dashboard-shell .ota-account-page-inner {
    padding-top: 0.75rem;
  }

  body.ota-public .ota-dashboard-sidebar {
    padding: 0.85rem;
    border-radius: 20px;
  }

  body.ota-public .ota-dashboard-hero {
    padding: 1.35rem;
    border-radius: 22px;
  }

  body.ota-public .ota-dashboard-hero h1 {
    font-size: 1.85rem;
  }

  body.ota-public .ota-dashboard-hero p {
    font-size: 0.92rem;
  }

  body.ota-public .ota-dashboard-actions,
  body.ota-public .ota-dashboard-kpis {
    grid-template-columns: minmax(0, 1fr);
  }

  body.ota-public .ota-dashboard-actions {
    border-radius: 18px;
  }

  body.ota-public .ota-dashboard-action {
    border-right: 0;
    border-bottom: 1px solid #e5edf7;
  }

  body.ota-public .ota-dashboard-action:last-child {
    border-bottom: 0;
  }

  body.ota-public .ota-dashboard-kpi {
    grid-template-columns: auto minmax(0, 1fr);
  }
}

/* Booking detail — customer/agent portal */
.ota-booking-detail-summary__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 1rem 1.25rem;
}
.ota-booking-detail-summary__icon {
  width: 3rem;
  height: 3rem;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, #eff6ff 0%, #dbeafe 100%);
  color: #1d4ed8;
  font-size: 1.35rem;
  flex: 0 0 auto;
}
.ota-booking-detail-summary__main {
  flex: 1 1 220px;
  min-width: 0;
}
.ota-booking-detail-summary__title {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 800;
  color: #0f172a;
}
.ota-booking-detail-summary__route {
  margin: 0.25rem 0 0;
  font-size: 1rem;
  font-weight: 700;
  color: #334155;
}
.ota-booking-detail-summary__meta {
  margin: 0.35rem 0 0;
  font-size: 0.875rem;
  color: #64748b;
}
.ota-booking-detail-summary__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
  margin-left: auto;
}
.ota-booking-detail-timeline {
  position: relative;
  padding-left: 0.15rem;
}
.ota-booking-detail-timeline__item {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: 0.75rem 1rem;
  padding-bottom: 1.15rem;
  position: relative;
}
.ota-booking-detail-timeline__item:not(:last-child)::before {
  content: "";
  position: absolute;
  left: 0.95rem;
  top: 1.65rem;
  bottom: 0.15rem;
  width: 2px;
  background: #e2e8f0;
}
.ota-booking-detail-timeline__marker {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f8fafc;
  border: 2px solid #e2e8f0;
  color: #94a3b8;
  z-index: 1;
}
.ota-booking-detail-timeline__item--completed .ota-booking-detail-timeline__marker {
  background: #ecfdf5;
  border-color: #22c55e;
  color: #16a34a;
}
.ota-booking-detail-timeline__item--active .ota-booking-detail-timeline__marker {
  background: #eff6ff;
  border-color: #3b82f6;
  color: #2563eb;
}
.ota-booking-detail-timeline__item--warning .ota-booking-detail-timeline__marker {
  background: #fffbeb;
  border-color: #f59e0b;
  color: #d97706;
}
.ota-booking-detail-timeline__label {
  font-weight: 700;
  color: #0f172a;
}
.ota-booking-detail-timeline__detail,
.ota-booking-detail-timeline__time {
  font-size: 0.875rem;
  color: #64748b;
  margin-top: 0.15rem;
}
.ota-booking-detail-itinerary-duration {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 0.75rem;
  border-radius: 10px;
  background: #eff6ff;
  color: #1e40af;
  font-size: 0.875rem;
  font-weight: 600;
}
.ota-booking-detail-passenger__name {
  font-weight: 700;
  color: #0f172a;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}
.ota-booking-detail-contact {
  margin-top: 0.75rem;
  padding-top: 0.85rem;
  border-top: 1px solid #eef2f7;
  display: grid;
  gap: 0.55rem;
}
.ota-booking-detail-contact__row {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.9rem;
  color: #334155;
}
.ota-booking-detail-contact__row .ti {
  color: #64748b;
}
.ota-booking-detail-updates-empty {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.5rem 0;
}
.ota-booking-detail-payment-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem 1rem;
}
.ota-booking-detail-payment-grid__label {
  font-size: 0.78rem;
  color: #64748b;
  margin-bottom: 0.15rem;
}
.ota-booking-detail-payment-grid__value {
  font-size: 0.95rem;
  font-weight: 700;
  color: #0f172a;
}
.ota-booking-detail-payment-grid__value--due {
  color: #dc2626;
}
.ota-booking-detail-proof-meta {
  padding: 0.75rem 0.85rem;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}
.ota-booking-detail-doc-list {
  display: flex;
  flex-direction: column;
}
.ota-booking-detail-doc-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.5rem 0.75rem;
  padding: 0.95rem 1.35rem;
  border-bottom: 1px solid #eef2f7;
  align-items: start;
}
.ota-booking-detail-doc-row:last-child {
  border-bottom: 0;
}
.ota-booking-detail-doc-row__title {
  font-weight: 700;
  color: #0f172a;
  font-size: 0.9rem;
}
.ota-booking-detail-doc-row__actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.ota-booking-detail-doc-action {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  border: 1px solid #dbe3ef;
  background: #fff;
  color: #1d4ed8;
  font-size: 0.78rem;
  font-weight: 600;
  text-decoration: none;
}
.ota-booking-detail-doc-action:hover:not(.is-disabled) {
  background: #eff6ff;
  border-color: #93c5fd;
  color: #1e40af;
}
.ota-booking-detail-doc-action.is-disabled {
  opacity: 0.45;
  cursor: not-allowed;
  color: #64748b;
  pointer-events: none;
}
.ota-booking-detail-doc-bulk {
  display: grid;
  gap: 0.55rem;
}
.ota-booking-detail-kv__row {
  display: grid;
  grid-template-columns: 8.5rem minmax(0, 1fr);
  gap: 0.5rem 0.75rem;
  padding: 0.2rem 0;
}
.ota-booking-detail-kv__row dt {
  margin: 0;
  font-size: 0.82rem;
  color: #64748b;
  font-weight: 600;
}
.ota-booking-detail-kv__row dd {
  margin: 0;
  font-size: 0.9rem;
  color: #0f172a;
  font-weight: 600;
}
.ota-booking-detail-cancel-req {
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 0.65rem 0.75rem;
  margin-bottom: 0.55rem;
  background: #f8fafc;
}
.ota-booking-detail-help {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem 1rem;
}
.ota-booking-detail-help__title {
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 0.2rem;
}
.ota-booking-detail-help__text {
  font-size: 0.875rem;
  color: #64748b;
}
@media (max-width: 767.98px) {
  .ota-booking-detail-summary__badges {
    margin-left: 0;
    width: 100%;
  }
  .ota-booking-detail-doc-row__actions {
    width: 100%;
  }
  .ota-booking-detail-doc-action {
    flex: 1 1 calc(33.333% - 0.45rem);
    justify-content: center;
    min-width: 5.5rem;
  }
  .ota-booking-detail-kv__row {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }
  .ota-booking-detail-help .ota-account-btn,
  .ota-booking-detail-help .btn {
    width: 100%;
    justify-content: center;
  }
}

/* Agent Portal Professional Polish / AGENT-UI-2 */
body.ota-public .ota-agent-page,
body.ota-public .ota-agent-dashboard,
body.ota-public .ota-agent-portal {
  --ota-agent-card-radius: 18px;
  --ota-agent-card-border: #e2e8f0;
  --ota-agent-card-shadow: 0 14px 34px rgba(15, 23, 42, 0.055);
  --ota-agent-row-border: #edf2f7;
}

body.ota-public .ota-agent-page-inner {
  width: 100%;
}

body.ota-public .ota-dashboard-shell .ota-account-page-inner {
  max-width: 1320px;
}

body.ota-public .ota-dashboard-main {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

body.ota-public .ota-dashboard-main > .ota-account-header {
  margin-bottom: 0;
}

body.ota-public .ota-agent-page .ota-account-card,
body.ota-public .ota-agent-dashboard .ota-account-card,
body.ota-public .ota-agent-dashboard .ota-dashboard-help-card,
body.ota-public .ota-agent-dashboard .ota-dashboard-kpi {
  border-color: var(--ota-agent-card-border);
  border-radius: var(--ota-agent-card-radius);
  box-shadow: var(--ota-agent-card-shadow);
}

body.ota-public .ota-agent-page .ota-account-card__head {
  align-items: center;
  gap: 0.85rem;
  padding: 1rem 1.1rem;
}

body.ota-public .ota-agent-page .ota-account-card__body {
  padding: 1.05rem 1.1rem;
}

body.ota-public .ota-agent-page .ota-account-card__body--flush {
  padding: 0;
}

body.ota-public .ota-agent-page .ota-account-btn,
body.ota-public .ota-agent-page .btn {
  min-height: 2.25rem;
  border-radius: 10px;
  white-space: nowrap;
}

body.ota-public .ota-agent-page .ota-account-badge,
body.ota-public .ota-agent-page .ota-account-status-badge,
body.ota-public .ota-agent-page .ota-bstat,
body.ota-public .ota-agent-status-badge {
  display: inline-flex;
  align-items: center;
  width: max-content;
  max-width: 100%;
  white-space: nowrap;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-hero {
  margin-bottom: 0;
  min-height: clamp(230px, 25vw, 310px);
  padding: clamp(1.35rem, 2vw, 2rem);
}

body.ota-public .ota-agent-dashboard .ota-dashboard-hero--homepage-image {
  min-height: clamp(245px, 27vw, 320px);
  background-image:
    linear-gradient(135deg, rgba(9, 20, 39, 0.58), rgba(14, 42, 80, 0.72)),
    var(--ota-hero-bg-image);
  background-position: center center;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-hero__badge {
  margin-bottom: 0.7rem;
  background: rgba(255, 255, 255, 0.16);
}

body.ota-public .ota-agent-dashboard .ota-dashboard-hero h1 {
  font-size: clamp(2rem, 3.5vw, 3.15rem);
}

body.ota-public .ota-agent-dashboard .ota-dashboard-actions {
  width: 100%;
  margin: 0;
  border-radius: var(--ota-agent-card-radius);
}

body.ota-public .ota-agent-dashboard .ota-dashboard-action {
  min-height: 4.7rem;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-kpis,
body.ota-public .ota-agent-kpi-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
}

body.ota-public .ota-agent-page .ota-account-kpi {
  display: grid;
  align-content: center;
  min-height: 6.35rem;
  padding: 0.95rem 1rem;
  border-radius: var(--ota-agent-card-radius);
  box-shadow: var(--ota-agent-card-shadow);
}

body.ota-public .ota-agent-page .ota-account-kpi__label {
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

body.ota-public .ota-agent-page .ota-account-kpi__value {
  font-variant-numeric: tabular-nums;
  line-height: 1.08;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-content-grid:not(.ota-agent-dashboard-finance-grid) {
  align-items: stretch;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-content-grid:not(.ota-agent-dashboard-finance-grid) > .ota-account-card,
body.ota-public .ota-agent-dashboard .ota-agent-dashboard-support-card {
  height: 100%;
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-finance-grid {
  grid-template-columns: minmax(0, 1fr);
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-finance-card .ota-account-dl {
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-finance-card .ota-account-dl__row {
  border: 1px solid var(--ota-agent-row-border);
  border-radius: 12px;
  padding: 0.65rem 0.75rem;
  background: #f8fafc;
}

body.ota-public .ota-agent-form-section--card {
  margin-bottom: 1rem;
  padding: 1rem;
  border: 1px solid var(--ota-agent-card-border);
  border-radius: var(--ota-agent-card-radius);
  background: #fff;
}

body.ota-public .ota-agent-form-section--card:last-of-type {
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--ota-agent-card-border);
}

body.ota-public .ota-agent-form-section--card .ota-agent-form-section__title {
  width: 100%;
  margin-bottom: 0.85rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid var(--ota-agent-row-border);
}

body.ota-public .ota-agent-form-grid--identity {
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
}

body.ota-public .ota-agent-logo-upload {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.85rem;
  align-items: center;
  padding: 0.85rem;
  border: 1px dashed #cbd5e1;
  border-radius: 14px;
  background: #f8fafc;
}

body.ota-public .ota-agent-logo-upload__field {
  min-width: 0;
}

body.ota-public .ota-agent-form-actions {
  justify-content: flex-end;
  margin-top: 1rem;
}

body.ota-public .ota-agent-finance-table,
body.ota-public .ota-agent-staff-table,
body.ota-public .ota-agent-ledger-table {
  font-size: 0.78rem;
}

body.ota-public .ota-agent-finance-table th,
body.ota-public .ota-agent-finance-table td,
body.ota-public .ota-agent-staff-table th,
body.ota-public .ota-agent-staff-table td {
  padding: 0.62rem 0.75rem;
  line-height: 1.35;
  vertical-align: middle;
}

body.ota-public .ota-agent-cell-ref {
  max-width: 15rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.ota-public .ota-agent-money {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

body.ota-public .ota-agent-wallet-layout {
  align-items: stretch;
}

body.ota-public .ota-agent-wallet-layout > *,
body.ota-public .ota-agent-wallet-layout .ota-account-quick__card {
  height: 100%;
}

body.ota-public .ota-agent-wallet-deposit-row {
  flex-wrap: nowrap;
}

body.ota-public .ota-agent-ledger-filters {
  padding: 0.85rem;
  border: 1px solid var(--ota-agent-card-border);
  border-radius: var(--ota-agent-card-radius);
  background: #fff;
  box-shadow: var(--ota-agent-card-shadow);
}

body.ota-public .ota-agent-ledger-filters .form-control,
body.ota-public .ota-agent-ledger-filters .form-select {
  min-height: 2.25rem;
}

body.ota-public .ota-agent-ledger-table-wrap {
  max-width: 100%;
  overflow-x: auto;
}

body.ota-public .ota-agent-ledger-table {
  min-width: 1080px;
  table-layout: fixed;
  font-size: 0.74rem;
}

body.ota-public .ota-agent-ledger-table th,
body.ota-public .ota-agent-ledger-table td {
  padding: 0.5rem 0.58rem;
  line-height: 1.28;
  vertical-align: middle;
}

body.ota-public .ota-agent-ledger-table th {
  font-size: 0.62rem;
  letter-spacing: 0.045em;
}

body.ota-public .ota-agent-ledger-table th:nth-child(1) { width: 6.25rem; }
body.ota-public .ota-agent-ledger-table th:nth-child(2) { width: 8.5rem; }
body.ota-public .ota-agent-ledger-table th:nth-child(3) { width: 10rem; }
body.ota-public .ota-agent-ledger-table th:nth-child(4) { width: 8rem; }
body.ota-public .ota-agent-ledger-table th:nth-child(5) { width: 15rem; }
body.ota-public .ota-agent-ledger-table th:nth-child(n+6) { width: 8.5rem; }

body.ota-public .ota-agent-ledger-date,
body.ota-public .ota-agent-ledger-user,
body.ota-public .ota-agent-ledger-details {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
}

body.ota-public .ota-agent-ledger-date,
body.ota-public .ota-agent-ledger-user,
body.ota-public .ota-agent-ledger-ref,
body.ota-public .ota-agent-ledger-type {
  white-space: nowrap;
}

body.ota-public .ota-agent-ledger-user span,
body.ota-public .ota-agent-ledger-ref,
body.ota-public .ota-agent-ledger-type {
  overflow: hidden;
  text-overflow: ellipsis;
}

body.ota-public .ota-agent-ledger-date small,
body.ota-public .ota-agent-ledger-user small,
body.ota-public .ota-agent-ledger-details small {
  color: #64748b;
  font-size: 0.68rem;
}

body.ota-public .ota-agent-ledger-details span {
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

body.ota-public .ota-agent-staff-table {
  min-width: 780px;
  table-layout: fixed;
}

body.ota-public .ota-agent-staff-table th:nth-child(1) { width: 30%; }
body.ota-public .ota-agent-staff-table th:nth-child(2) { width: 44%; }
body.ota-public .ota-agent-staff-table th:nth-child(3) { width: 11%; }
body.ota-public .ota-agent-staff-table th:nth-child(4) { width: 15%; }

body.ota-public .ota-agent-staff-person {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
}

body.ota-public .ota-agent-staff-person span {
  color: #0f172a;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.ota-public .ota-agent-staff-person small {
  color: #64748b;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.ota-public .ota-agent-role-form {
  display: grid;
  grid-template-columns: minmax(10rem, 1fr) auto;
  gap: 0.45rem;
  align-items: start;
}

body.ota-public .ota-agent-role-form__hint {
  grid-column: 1 / -1;
  max-width: 100%;
  color: #64748b;
  font-size: 0.875rem;
  line-height: 1.5;
  font-weight: 400;
}

body.ota-public .ota-agent-role-form__hint summary {
  width: fit-content;
  cursor: pointer;
  color: #475569;
  font-weight: 700;
  white-space: nowrap;
}

body.ota-public .ota-agent-role-form__hint span {
  display: block;
  margin-top: 0.25rem;
  max-width: 34rem;
  line-height: 1.5;
}

body.ota-public .ota-account-empty--compact {
  padding: 1.4rem 1rem;
}

@media (max-width: 1199.98px) {
  body.ota-public .ota-agent-dashboard .ota-dashboard-kpis,
  body.ota-public .ota-agent-kpi-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  body.ota-public .ota-agent-dashboard .ota-dashboard-kpis,
  body.ota-public .ota-agent-kpi-strip,
  body.ota-public .ota-agent-form-grid--identity,
  body.ota-public .ota-agent-logo-upload {
    grid-template-columns: minmax(0, 1fr);
  }

  body.ota-public .ota-agent-page .ota-account-card__head {
    align-items: flex-start;
  }

  body.ota-public .ota-agent-role-form {
    grid-template-columns: minmax(0, 1fr);
  }

  body.ota-public .ota-agent-role-form .ota-account-btn {
    width: 100%;
  }
}

/* Agent Portal Deep Alignment Polish / AGENT-UI-3 */
body.ota-public .ota-agent-dashboard .ota-dashboard-kpis {
  gap: 1rem;
  margin-top: 0.1rem;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-kpi {
  grid-template-areas:
    "icon label"
    "icon value";
  min-height: 5.9rem;
  padding: 1rem;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-kpi a.ota-dashboard-kpi__value-link {
  grid-area: value;
  width: fit-content;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  text-decoration: none;
  cursor: pointer;
  margin-top: 0;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-kpi a.ota-dashboard-kpi__value-link:hover,
body.ota-public .ota-agent-dashboard .ota-dashboard-kpi a.ota-dashboard-kpi__value-link:focus-visible {
  color: inherit;
  text-decoration: none;
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-finance-card .ota-account-card__body {
  display: grid;
  gap: 0.85rem;
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-finance-card .ota-account-dl {
  gap: 0.65rem;
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-finance-card .ota-account-dl__row {
  align-items: center;
  min-height: 4rem;
  padding: 0.75rem 0.85rem;
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-finance-card .ota-account-dl__row dt {
  color: #64748b;
  font-size: 0.72rem;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

body.ota-public .ota-agent-dashboard .ota-agent-dashboard-finance-card .ota-account-dl__row dd {
  margin: 0;
  color: #0f172a;
  font-size: 1rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

body.ota-public .ota-agent-finance-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  justify-content: flex-end;
  padding-top: 0.1rem;
}

body.ota-public .ota-agent-agency-form .ota-account-card__body,
body.ota-public .ota-agent-agency-form form {
  display: grid;
  gap: 0.9rem;
}

body.ota-public .ota-agent-agency-form .ota-agent-form-section--card {
  margin: 0;
  padding: 0.95rem;
}

body.ota-public .ota-agent-agency-form .ota-agent-form-section__title {
  display: flex;
  align-items: center;
  min-height: 1.8rem;
  margin-bottom: 0.75rem;
  padding-bottom: 0.55rem;
}

body.ota-public .ota-agent-agency-form .ota-agent-form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem 0.85rem;
}

body.ota-public .ota-agent-agency-form .ota-agent-field {
  display: grid;
  align-content: start;
  gap: 0.28rem;
  min-width: 0;
}

body.ota-public .ota-agent-agency-form .ota-agent-field--full {
  grid-column: 1 / -1;
}

body.ota-public .ota-agent-agency-form .form-label {
  margin: 0;
  color: #334155;
  font-size: 0.78rem;
  font-weight: 700;
}

body.ota-public .ota-agent-agency-form .form-control,
body.ota-public .ota-agent-agency-form .form-select {
  min-height: 2.55rem;
  border-color: #dbe4ef;
  border-radius: 12px;
}

body.ota-public .ota-agent-agency-form textarea.form-control {
  min-height: 5.4rem;
  resize: vertical;
}

body.ota-public .ota-agent-agency-form .form-text {
  margin: 0;
  color: #64748b;
  font-size: 0.875rem;
  line-height: 1.5;
  font-weight: 400;
}

body.ota-public .ota-agent-agency-form .ota-agent-logo-upload {
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.75rem;
  padding: 0.75rem;
}

body.ota-public .ota-agent-agency-form .ota-agent-agency-logo-preview img,
body.ota-public .ota-agent-agency-form .ota-agent-agency-profile__logo-placeholder {
  width: 3.25rem;
  height: 3.25rem;
}

body.ota-public .ota-agent-ledger-summary .ota-account-card__body {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  padding: 0.85rem;
}

body.ota-public .ota-agent-ledger-summary__item {
  min-width: 0;
  padding: 0.75rem;
  border: 1px solid var(--ota-agent-row-border);
  border-radius: 12px;
  background: #f8fafc;
}

body.ota-public .ota-agent-ledger-summary__item .fw-semibold {
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
}

body.ota-public .ota-agent-ledger-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(8.5rem, 1fr)) minmax(12rem, 1.35fr) auto;
  gap: 0.55rem;
  align-items: end;
  padding: 0.75rem;
}

body.ota-public .ota-agent-ledger-filter-field {
  display: grid;
  gap: 0.22rem;
  min-width: 0;
}

body.ota-public .ota-agent-ledger-filter-field label {
  margin: 0;
  color: #64748b;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

body.ota-public .ota-agent-ledger-filters .form-control,
body.ota-public .ota-agent-ledger-filters .form-select {
  width: 100%;
  max-width: none;
  min-height: 2.15rem;
  border-radius: 10px;
}

body.ota-public .ota-agent-ledger-filter-actions {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.45rem;
  justify-content: flex-end;
}

body.ota-public .ota-agent-ledger-table {
  min-width: 960px;
}

body.ota-public .ota-agent-ledger-table th:nth-child(1) { width: 7rem; }
body.ota-public .ota-agent-ledger-table th:nth-child(2) { width: 9rem; }
body.ota-public .ota-agent-ledger-table th:nth-child(3) { width: 8.5rem; }
body.ota-public .ota-agent-ledger-table th:nth-child(4) { width: 13rem; }
body.ota-public .ota-agent-ledger-table th:nth-child(5),
body.ota-public .ota-agent-ledger-table th:nth-child(6),
body.ota-public .ota-agent-ledger-table th:nth-child(7) { width: 8.5rem; }
body.ota-public .ota-agent-ledger-table th:nth-child(8) { width: 12rem; }

body.ota-public .ota-agent-ledger-table .ota-agent-ledger-ref {
  max-width: 13rem;
}

body.ota-public .ota-agent-ledger-details {
  justify-items: end;
  text-align: right;
}

body.ota-public .ota-agent-ledger-row-details {
  margin-top: 0.25rem;
}

body.ota-public .ota-agent-ledger-row-details summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.9rem;
  padding: 0.25rem 0.55rem;
  border: 1px solid #dbe4ef;
  border-radius: 9px;
  background: #fff;
  color: #334155;
  font-size: 0.72rem;
  font-weight: 800;
  cursor: pointer;
}

body.ota-public .ota-agent-ledger-row-details div {
  margin-top: 0.35rem;
  padding: 0.5rem;
  border: 1px solid var(--ota-agent-row-border);
  border-radius: 10px;
  background: #f8fafc;
  color: #334155;
  font-size: 0.72rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

body.ota-public .ota-agent-staff-table {
  min-width: 720px;
}

body.ota-public .ota-agent-staff-table th:nth-child(1) { width: 32%; }
body.ota-public .ota-agent-staff-table th:nth-child(2) { width: 42%; }
body.ota-public .ota-agent-staff-table th:nth-child(3) { width: 12%; }
body.ota-public .ota-agent-staff-table th:nth-child(4) { width: 14%; }

body.ota-public .ota-agent-staff-row td {
  vertical-align: middle;
}

body.ota-public .ota-agent-staff-status-cell {
  white-space: nowrap;
}

body.ota-public .ota-agent-staff-action-cell .ota-account-btn {
  min-width: 4.6rem;
  justify-content: center;
}

body.ota-public .ota-agent-role-form {
  grid-template-columns: minmax(12rem, 1fr) auto;
  align-items: center;
}

body.ota-public .ota-agent-role-form .form-select {
  min-height: 2.1rem;
  border-radius: 10px;
}

body.ota-public .ota-agent-role-form__hint {
  margin: 0.1rem 0 0;
}

body.ota-public .ota-agent-staff-permission-panel {
  display: grid;
  gap: 0.85rem;
}

body.ota-public .ota-agent-staff-permission-panel__head {
  display: grid;
  gap: 0.15rem;
}

body.ota-public .ota-agent-staff-access-clarification {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.7rem;
  padding: 0.75rem;
  border: 1px solid #dbeafe;
  border-radius: 14px;
  background: #eff6ff;
}

body.ota-public .ota-agent-staff-access-clarification__icon {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: #dbeafe;
  color: #1d4ed8;
}

body.ota-public .ota-agent-staff-access-clarification ul {
  display: grid;
  gap: 0.15rem;
  list-style: none;
}

body.ota-public .ota-agent-staff-role-info {
  display: grid;
  gap: 0.15rem;
  padding: 0.75rem;
  border: 1px solid var(--ota-agent-row-border);
  border-radius: 14px;
  background: #f8fafc;
}

body.ota-public .ota-agent-staff-role-info span {
  color: #64748b;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

body.ota-public .ota-agent-staff-role-info small {
  color: #64748b;
  line-height: 1.35;
}

body.ota-public .ota-agent-page .ota-access-matrix-body {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}

body.ota-public .ota-agent-page .ota-access-module {
  display: grid;
  align-content: start;
  gap: 0.5rem;
  min-width: 0;
  padding: 0.75rem;
  border: 1px solid var(--ota-agent-row-border);
  border-radius: 16px;
  background: #fff;
}

body.ota-public .ota-agent-page .ota-access-module__title {
  color: #0f172a;
  font-size: 0.8rem;
  font-weight: 800;
}

body.ota-public .ota-agent-page .ota-access-permission-tile {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.65rem;
  align-items: center;
  margin: 0;
  padding: 0.65rem;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #f8fafc;
  cursor: pointer;
}

body.ota-public .ota-agent-page .ota-access-toggle-row__label {
  display: grid;
  gap: 0.1rem;
  min-width: 0;
}

body.ota-public .ota-agent-page .ota-access-toggle-row__label strong {
  overflow: hidden;
  color: #0f172a;
  font-size: 0.82rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.ota-public .ota-agent-page .ota-access-toggle-row__label small {
  overflow: hidden;
  color: #64748b;
  font-size: 0.68rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.ota-public .ota-agent-page .ota-access-toggle-row__control {
  display: grid;
  justify-items: end;
  gap: 0.35rem;
}

body.ota-public .ota-agent-page .ota-access-state {
  font-size: 0.65rem;
}

body.ota-public .ota-agent-permission-switch {
  position: relative;
  display: inline-flex;
  width: 2.45rem;
  height: 1.35rem;
}

body.ota-public .ota-agent-permission-switch input {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

body.ota-public .ota-agent-permission-switch span {
  position: absolute;
  inset: 0;
  border-radius: 999px;
  background: #cbd5e1;
  transition: background-color 0.15s ease;
}

body.ota-public .ota-agent-permission-switch span::after {
  position: absolute;
  top: 0.18rem;
  left: 0.18rem;
  width: 0.99rem;
  height: 0.99rem;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 2px 5px rgba(15, 23, 42, 0.22);
  content: "";
  transition: transform 0.15s ease;
}

body.ota-public .ota-agent-permission-switch input:checked + span {
  background: #2563eb;
}

body.ota-public .ota-agent-permission-switch input:checked + span::after {
  transform: translateX(1.1rem);
}

body.ota-public .ota-agent-permission-switch input:focus-visible + span {
  outline: 3px solid rgba(37, 99, 235, 0.25);
  outline-offset: 2px;
}

body.ota-public .ota-agent-permission-actions,
body.ota-public .ota-agent-template-form,
body.ota-public .ota-agent-staff-disable-form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: center;
  justify-content: flex-end;
}

body.ota-public .ota-agent-template-form {
  justify-content: space-between;
  padding: 0.75rem;
  border: 1px solid var(--ota-agent-row-border);
  border-radius: 14px;
  background: #f8fafc;
}

body.ota-public .ota-agent-staff-disable-form {
  padding-top: 0.9rem;
  border-top: 1px solid var(--ota-agent-row-border);
}

@media (min-width: 1500px) {
  body.ota-public .ota-agent-page .ota-access-matrix-body {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 1199.98px) {
  body.ota-public .ota-agent-ledger-filters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.ota-public .ota-agent-ledger-filter-field--search,
  body.ota-public .ota-agent-ledger-filter-actions {
    grid-column: auto;
  }

  body.ota-public .ota-agent-page .ota-access-matrix-body {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  body.ota-public .ota-agent-finance-actions,
  body.ota-public .ota-agent-ledger-filter-actions,
  body.ota-public .ota-agent-template-form,
  body.ota-public .ota-agent-staff-disable-form {
    justify-content: stretch;
  }

  body.ota-public .ota-agent-finance-actions .ota-account-btn,
  body.ota-public .ota-agent-ledger-filter-actions .ota-account-btn,
  body.ota-public .ota-agent-template-form .ota-account-btn,
  body.ota-public .ota-agent-staff-disable-form .ota-account-btn {
    width: 100%;
    justify-content: center;
  }

  body.ota-public .ota-agent-agency-form .ota-agent-form-grid,
  body.ota-public .ota-agent-ledger-summary .ota-account-card__body,
  body.ota-public .ota-agent-ledger-filters,
  body.ota-public .ota-agent-page .ota-access-matrix-body {
    grid-template-columns: minmax(0, 1fr);
  }

  body.ota-public .ota-agent-agency-form .ota-agent-logo-upload {
    align-items: start;
  }
}

/* Agent Ledger Semantic Table / AGENT-UI-5 */
body.ota-public .ota-agent-ledger-filters {
  display: grid;
  grid-template-columns: minmax(7.4rem, 0.65fr) minmax(7.4rem, 0.65fr) minmax(8rem, 0.75fr) minmax(8.4rem, 0.8fr) minmax(12rem, 1.5fr) minmax(5.5rem, max-content);
  gap: 0.5rem;
  align-items: end;
  overflow: visible;
}

body.ota-public .ota-agent-ledger-filters .form-control,
body.ota-public .ota-agent-ledger-filters .form-select {
  height: 2.35rem;
  min-height: 2.35rem;
  padding: 0.43rem 0.72rem;
  border: 1px solid #dbe4ef;
  border-radius: 10px;
  color: #0f172a;
  font-size: 0.8125rem;
  line-height: 1.2;
  vertical-align: middle;
  box-shadow: none;
}

body.ota-public .ota-agent-ledger-filters .form-select {
  padding-right: 2rem;
}

body.ota-public .ota-agent-ledger-filter-actions {
  align-self: end;
  min-width: max-content;
}

body.ota-public .ota-agent-ledger-filter-actions .ota-account-btn {
  min-height: 2.35rem;
  padding-top: 0.42rem;
  padding-bottom: 0.42rem;
}

body.ota-public .ota-agent-ledger-table-wrap {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-inline: contain;
}

body.ota-public .ota-agent-ledger-table {
  width: 100%;
  min-width: 900px;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.78rem;
}

body.ota-public .ota-agent-ledger-table th,
body.ota-public .ota-agent-ledger-table td {
  padding: 0.58rem 0.62rem;
  border-bottom: 1px solid rgba(226, 232, 240, 0.9);
  line-height: 1.28;
  vertical-align: middle;
  overflow-wrap: normal;
  word-break: normal;
}

body.ota-public .ota-agent-ledger-table thead th {
  color: #64748b;
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  text-transform: uppercase;
  white-space: nowrap;
}

body.ota-public .ota-agent-ledger-table tbody tr {
  transition: background-color 0.16s ease;
}

body.ota-public .ota-agent-ledger-table tbody tr:hover {
  background-color: rgba(248, 250, 252, 0.85);
}

body.ota-public .ota-agent-ledger-table th:nth-child(1) { width: 12%; }
body.ota-public .ota-agent-ledger-table th:nth-child(2) { width: 22%; }
body.ota-public .ota-agent-ledger-table th:nth-child(3) { width: 18%; }
body.ota-public .ota-agent-ledger-table th:nth-child(4) { width: 12%; }
body.ota-public .ota-agent-ledger-table th:nth-child(5) { width: 12%; }
body.ota-public .ota-agent-ledger-table th:nth-child(6) { width: 12%; }
body.ota-public .ota-agent-ledger-table th:nth-child(7) { width: 12%; }

body.ota-public .ota-agent-ledger-date,
body.ota-public .ota-agent-ledger-user,
body.ota-public .ota-agent-ledger-type-ref {
  display: grid;
  gap: 0.05rem;
  min-width: 0;
}

body.ota-public .ota-agent-ledger-date span,
body.ota-public .ota-agent-ledger-user span,
body.ota-public .ota-agent-ledger-ref,
body.ota-public .ota-agent-ledger-type {
  display: block;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.ota-public .ota-agent-ledger-date small,
body.ota-public .ota-agent-ledger-user small,
body.ota-public .ota-agent-ledger-ref {
  display: block;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  color: #64748b;
  font-size: 0.66rem;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.ota-public .ota-agent-ledger-details {
  text-align: center;
}

body.ota-public .ota-agent-ledger-row-details {
  position: relative;
  display: inline-block;
  margin: 0;
}

body.ota-public .ota-agent-ledger-row-details summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.75rem;
  padding: 0.2rem 0.55rem;
  border: 1px solid #dbe4ef;
  border-radius: 999px;
  background: #fff;
  color: #334155;
  font-size: 0.7rem;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
}

body.ota-public .ota-agent-ledger-row-details div {
  position: absolute;
  z-index: 20;
  right: 0;
  width: min(22rem, calc(100vw - 2rem));
  margin-top: 0.35rem;
  text-align: left;
  box-shadow: 0 18px 34px rgba(15, 23, 42, 0.16);
}

body.ota-public .ota-agent-money {
  color: #0f172a;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

body.ota-public .ota-agent-money-empty {
  color: #94a3b8;
}

@media (max-width: 1199.98px) {
  body.ota-public .ota-agent-ledger-filters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  body.ota-public .ota-agent-ledger-filters {
    grid-template-columns: minmax(0, 1fr);
  }

  body.ota-public .ota-agent-ledger-filter-actions {
    min-width: 0;
  }

  body.ota-public .ota-agent-ledger-table {
    min-width: 900px;
  }

  body.ota-public .ota-agent-ledger-row-details div {
    position: static;
    width: min(18rem, calc(100vw - 2rem));
  }
}

/* Agent Emergency UI Fix / AGENT-UI-6 */
body.ota-public .ota-agent-dashboard .ota-dashboard-hero {
  grid-template-columns: minmax(0, 1fr);
}

body.ota-public .ota-agent-dashboard .ota-dashboard-hero--homepage-image {
  background-image:
    linear-gradient(135deg, rgba(12, 25, 41, 0.62), rgba(19, 42, 71, 0.7)),
    var(--ota-hero-bg-image);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-hero .ota-dashboard-hero__visual {
  display: none;
}

body.ota-public .ota-agent-dashboard .ota-dashboard-hero--homepage-image::before,
body.ota-public .ota-agent-dashboard .ota-dashboard-hero--homepage-image::after {
  display: none;
}

body.ota-public .ota-agent-ledger-table {
  width: 100%;
  min-width: 980px;
  table-layout: fixed;
}

body.ota-public .ota-agent-ledger-table th,
body.ota-public .ota-agent-ledger-table td {
  overflow: visible;
  vertical-align: middle;
}

body.ota-public .ota-agent-ledger-table th {
  white-space: nowrap;
}

body.ota-public .ota-agent-ledger-date,
body.ota-public .ota-agent-ledger-user,
body.ota-public .ota-agent-ledger-type-ref {
  min-width: 0;
  max-width: 100%;
}

body.ota-public .ota-agent-ledger-date span,
body.ota-public .ota-agent-ledger-date small,
body.ota-public .ota-agent-ledger-user span,
body.ota-public .ota-agent-ledger-user small,
body.ota-public .ota-agent-ledger-type,
body.ota-public .ota-agent-ledger-ref {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.ota-public .ota-agent-ledger-table .ota-agent-money {
  text-align: right;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

body.ota-public .ota-agent-ledger-details {
  text-align: center;
  white-space: nowrap;
}

body.ota-public .ota-agent-ledger-row-details {
  position: relative;
  display: inline-block;
  margin: 0;
}

body.ota-public .ota-agent-ledger-row-details summary {
  display: inline;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #2563eb;
  font-size: 0.74rem;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  cursor: pointer;
  list-style: none;
}

body.ota-public .ota-agent-ledger-row-details summary::-webkit-details-marker {
  display: none;
}

body.ota-public .ota-agent-ledger-detail-panel {
  position: absolute;
  z-index: 20;
  right: 0;
  width: min(22rem, calc(100vw - 2rem));
  margin-top: 0.45rem;
  padding: 0.65rem;
  border: 1px solid var(--ota-agent-row-border);
  border-radius: 12px;
  background: #fff;
  color: #334155;
  font-size: 0.74rem;
  line-height: 1.45;
  text-align: left;
  white-space: normal;
  overflow-wrap: anywhere;
  box-shadow: 0 18px 34px rgba(15, 23, 42, 0.16);
}

@media (max-width: 767.98px) {
  body.ota-public .ota-agent-ledger-table {
    min-width: 920px;
  }

  body.ota-public .ota-agent-ledger-detail-panel {
    position: static;
    width: min(18rem, calc(100vw - 2rem));
  }
}

/* Agent Ledger Table Rebuild / AGENT-UI-7 */
body.ota-public .ota-ledger-table-wrap {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-inline: contain;
}

body.ota-public .ota-ledger-table {
  display: table;
  width: 100%;
  min-width: 900px;
  table-layout: fixed;
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 0.8125rem;
}

body.ota-public .ota-ledger-table colgroup {
  display: table-column-group;
}

body.ota-public .ota-ledger-table col {
  display: table-column;
}

body.ota-public .ota-ledger-table thead {
  display: table-header-group;
}

body.ota-public .ota-ledger-table tbody {
  display: table-row-group;
}

body.ota-public .ota-ledger-table tr {
  display: table-row;
}

body.ota-public .ota-ledger-table th,
body.ota-public .ota-ledger-table td {
  display: table-cell;
  box-sizing: border-box;
  vertical-align: middle;
  overflow: hidden;
  border-bottom: 1px solid rgba(226, 232, 240, 0.92);
  line-height: 1.35;
  word-break: normal;
  overflow-wrap: normal;
}

body.ota-public .ota-ledger-table th {
  padding: 10px 12px;
  background: #f8fafc;
  color: #64748b;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  text-transform: uppercase;
  white-space: nowrap;
}

body.ota-public .ota-ledger-table td {
  padding: 12px;
  color: #0f172a;
}

body.ota-public .ota-ledger-row {
  cursor: default;
  transition: background-color 0.16s ease;
}

body.ota-public .ota-ledger-row:hover {
  background: rgba(248, 250, 252, 0.95);
}

body.ota-public .ota-ledger-detail-row td {
  padding: 0 12px 10px;
  background: #fbfdff;
  border-bottom-color: rgba(226, 232, 240, 0.75);
  overflow: visible;
}

body.ota-public .ota-ledger-date,
body.ota-public .ota-ledger-user,
body.ota-public .ota-ledger-type,
body.ota-public .ota-ledger-reference {
  min-width: 0;
}

body.ota-public .ota-ledger-date__day,
body.ota-public .ota-ledger-date__time,
body.ota-public .ota-ledger-user__name,
body.ota-public .ota-ledger-user__code,
body.ota-public .ota-ledger-type span,
body.ota-public .ota-ledger-reference span {
  display: block;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.ota-public .ota-ledger-date__time,
body.ota-public .ota-ledger-user__code {
  color: #64748b;
  font-size: 0.72rem;
}

body.ota-public .ota-ledger-user__code,
body.ota-public .ota-ledger-money {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-variant-numeric: tabular-nums;
}

body.ota-public .ota-ledger-type span {
  text-transform: capitalize;
}

body.ota-public .ota-ledger-money {
  text-align: right;
  white-space: nowrap;
}

body.ota-public .ota-ledger-money-empty {
  color: #94a3b8;
}

body.ota-public .ota-ledger-row-details {
  margin: 0.35rem 0 0;
}

body.ota-public .ota-ledger-row-details summary {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: #2563eb;
  font-size: 0.74rem;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  cursor: pointer;
}

body.ota-public .ota-ledger-detail-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.3rem 0.75rem;
  margin-top: 0.55rem;
  padding: 0.7rem;
  border: 1px solid rgba(219, 228, 239, 0.9);
  border-radius: 12px;
  background: #fff;
  color: #334155;
  font-size: 0.76rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

body.ota-public .ota-ledger-detail-panel div:first-child,
body.ota-public .ota-ledger-detail-panel div:nth-child(3) {
  grid-column: 1 / -1;
}

@media (max-width: 767.98px) {
  body.ota-public .ota-ledger-table {
    min-width: 900px;
  }

  body.ota-public .ota-ledger-detail-panel {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Agent Ledger Width Polish / AGENT-UI-7B */
body.ota-public .ota-ledger-table {
  min-width: 760px;
}

body.ota-public .ota-ledger-detail-row td {
  padding-right: 10px;
  padding-left: 10px;
}

body.ota-public .ota-ledger-detail-panel div:first-child,
body.ota-public .ota-ledger-detail-panel div:nth-child(3) {
  grid-column: auto;
}

body.ota-public .ota-ledger-detail-panel div:nth-child(2),
body.ota-public .ota-ledger-detail-panel div:nth-child(4) {
  grid-column: 1 / -1;
}

@media (max-width: 767.98px) {
  body.ota-public .ota-ledger-table {
    min-width: 760px;
  }
}

/* Umrah group packages (Al-Haider read-only) */
body.ota-public .ota-umrah-groups-page {
  padding-top: 1.5rem;
  padding-bottom: 2.5rem;
}

body.ota-public .ota-umrah-groups-hero {
  margin-bottom: 1.5rem;
}

body.ota-public .ota-umrah-groups-layout {
  display: grid;
  grid-template-columns: minmax(0, 280px) minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
}

body.ota-public .ota-umrah-groups-panel {
  background: var(--ota-surface, #fff);
  border: 1px solid var(--ota-border, #e5e7eb);
  border-radius: 12px;
  padding: 1rem 1.1rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

body.ota-public .ota-umrah-groups-panel__title {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0 0 0.85rem;
}

body.ota-public .ota-umrah-groups-form .form-group {
  margin-bottom: 0.85rem;
}

body.ota-public .ota-umrah-groups-form__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

body.ota-public .ota-umrah-groups-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
  gap: 1rem;
}

body.ota-public .ota-umrah-groups-card {
  border: 1px solid var(--ota-border, #e5e7eb);
  border-radius: 12px;
  padding: 1rem;
  background: var(--ota-surface, #fff);
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-height: 100%;
}

body.ota-public .ota-umrah-groups-card__head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.65rem;
  align-items: start;
}

body.ota-public .ota-umrah-groups-card__logo {
  width: 40px;
  height: 40px;
  object-fit: contain;
  border-radius: 8px;
  background: #f8fafc;
}

body.ota-public .ota-umrah-groups-card__title {
  font-size: 1rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.35;
}

body.ota-public .ota-umrah-groups-card__airline {
  margin: 0.15rem 0 0;
  font-size: 0.875rem;
  color: var(--ota-muted, #64748b);
}

body.ota-public .ota-umrah-groups-badge {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.2rem 0.45rem;
  border-radius: 999px;
  white-space: nowrap;
}

body.ota-public .ota-umrah-groups-badge--ok {
  background: #dcfce7;
  color: #166534;
}

body.ota-public .ota-umrah-groups-badge--warn {
  background: #fef3c7;
  color: #92400e;
}

body.ota-public .ota-umrah-groups-card__meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem 0.75rem;
  margin: 0;
}

body.ota-public .ota-umrah-groups-card__meta dt {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ota-muted, #64748b);
  margin: 0;
}

body.ota-public .ota-umrah-groups-card__meta dd {
  margin: 0.1rem 0 0;
  font-weight: 600;
  font-size: 0.9rem;
}

body.ota-public .ota-umrah-groups-card__foot {
  margin-top: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 0.75rem;
}

body.ota-public .ota-umrah-groups-card__price {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

body.ota-public .ota-umrah-groups-card__price-label,
body.ota-public .ota-umrah-groups-card__price-note {
  font-size: 0.78rem;
  color: var(--ota-muted, #64748b);
}

body.ota-public .ota-umrah-groups-card__price strong {
  font-size: 1.15rem;
  color: var(--ota-primary, #0f766e);
}

body.ota-public .ota-umrah-groups-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

body.ota-public .ota-umrah-groups-empty,
body.ota-public .ota-umrah-groups-notice {
  margin-bottom: 1rem;
}

body.ota-public .ota-umrah-groups-empty {
  border: 1px dashed var(--ota-border, #e5e7eb);
  border-radius: 12px;
  padding: 1.25rem;
  background: #f8fafc;
}

body.ota-public .ota-umrah-groups-empty__hint {
  margin: 0.35rem 0 0;
  color: var(--ota-muted, #64748b);
  font-size: 0.9rem;
}

body.ota-public .ota-umrah-groups-count {
  margin: 0 0 0.85rem;
  font-weight: 600;
}

body.ota-public .ota-umrah-groups-back {
  margin: 0 0 0.75rem;
}

body.ota-public .ota-umrah-groups-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1rem;
}

body.ota-public .ota-umrah-groups-detail-list {
  display: grid;
  gap: 0.65rem;
  margin: 0;
}

body.ota-public .ota-umrah-groups-detail-list dt {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ota-muted, #64748b);
}

body.ota-public .ota-umrah-groups-detail-list dd {
  margin: 0.1rem 0 0;
  font-weight: 600;
}

body.ota-public .ota-umrah-groups-pricing {
  list-style: none;
  margin: 0 0 0.75rem;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}

body.ota-public .ota-umrah-groups-pricing li {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
}

body.ota-public .ota-umrah-groups-detail-note {
  font-size: 0.85rem;
  color: var(--ota-muted, #64748b);
  margin: 0 0 0.85rem;
}

body.ota-public .ota-umrah-groups-legs-table {
  min-width: 640px;
}

@media (max-width: 991.98px) {
  body.ota-public .ota-umrah-groups-layout,
  body.ota-public .ota-umrah-groups-detail-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 575.98px) {
  body.ota-public .ota-umrah-groups-card__meta {
    grid-template-columns: minmax(0, 1fr);
  }

  body.ota-public .ota-umrah-groups-card__foot {
    flex-direction: column;
    align-items: stretch;
  }

  body.ota-public .ota-umrah-groups-card__actions {
    width: 100%;
  }

  body.ota-public .ota-umrah-groups-card__actions .ota-btn {
    flex: 1 1 auto;
    text-align: center;
  }
}

/* Homepage Groups tab search — isolated from flight .ota-hero-search-row grid */
body.ota-public .ota-hero-group-search-form {
  overflow: visible;
}

body.ota-public .ota-hero-group-search-row {
  display: grid;
  gap: 0.7rem 0.85rem;
  align-items: end;
  grid-template-columns:
    minmax(0, 1.15fr) minmax(0, 1.15fr)
    minmax(130px, 0.95fr) minmax(130px, 0.95fr)
    minmax(148px, auto) minmax(108px, auto);
}

body.ota-public .ota-hero-group-search-row .ota-hero-search-field {
  min-width: 0;
}

body.ota-public .ota-hero-group-search-row .ota-hero-search-control--select {
  display: block;
  width: 100%;
  min-height: 52px;
  padding: 0 0.85rem;
  border: 1px solid #dbe3ee;
  border-radius: 12px;
  background: #fff;
  font-size: 15px;
  font-weight: 600;
  color: #0f172a;
  box-sizing: border-box;
}

body.ota-public .ota-hero-group-search-row .ota-hero-search-control--select:focus {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
}

body.ota-public .ota-hero-group-search-row .ota-hero-search-field--submit,
body.ota-public .ota-hero-group-search-row .ota-hero-group-search-field--clear {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-self: end;
}

body.ota-public .ota-hero-group-search-clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px;
  padding: 0 1.15rem;
  border: 1px solid #dbe3ee;
  border-radius: 12px;
  background: #fff;
  color: #334155;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  text-align: center;
  box-sizing: border-box;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

body.ota-public .ota-hero-group-search-clear:hover {
  border-color: #94a3b8;
  background: #f8fafc;
  color: #0f172a;
  text-decoration: none;
}

@media (max-width: 767.98px) {
  body.ota-public .ota-hero-group-search-row {
    grid-template-columns: 1fr;
  }

  body.ota-public .ota-hero-group-search-row .ota-hero-search-field--submit,
  body.ota-public .ota-hero-group-search-row .ota-hero-group-search-field--clear {
    grid-column: 1 / -1;
  }
}

body.ota-public .ota-hero-search-product-tabs {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
  border-bottom: 1px solid var(--ota-border, #e2e8f0);
  padding-bottom: 0.5rem;
}

body.ota-public .ota-hero-search-product-tab {
  border: none;
  background: transparent;
  padding: 0.5rem 1rem;
  font-weight: 600;
  color: var(--ota-text-muted, #64748b);
  cursor: pointer;
  border-radius: 6px 6px 0 0;
}

body.ota-public .ota-hero-search-product-tab.is-active {
  color: var(--ota-primary, #0d6efd);
  box-shadow: inset 0 -2px 0 var(--ota-primary, #0d6efd);
}

body.ota-public .ota-group-result-card {
  margin-bottom: 1rem;
  padding: 1rem;
  border: 1px solid var(--ota-border, #e2e8f0);
  border-radius: 12px;
  background: #fff;
}

body.ota-public .ota-group-result-card--premium {
  padding: 1.1rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

body.ota-public .ota-group-result-card__top {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.65rem 1rem;
}

body.ota-public .ota-group-result-card__brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  flex: 1 1 12rem;
}

body.ota-public .ota-group-result-card__logo.ota-airline-logo {
  width: 44px;
  height: 44px;
  margin: 0;
  flex-shrink: 0;
  font-size: 0.75rem;
}

body.ota-public .ota-group-result-card__airline-text {
  min-width: 0;
}

body.ota-public .ota-group-result-card__airline-text .ota-airline-name {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.25;
}

body.ota-public .ota-group-result-card__package {
  margin: 0.15rem 0 0;
  font-size: 0.78rem;
  color: var(--ota-text-muted, #64748b);
  line-height: 1.35;
}

body.ota-public .ota-group-result-card__route-line {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ota-navy, #0f172a);
  line-height: 1.35;
}

body.ota-public .ota-group-result-card__sector-meta {
  margin: 0.2rem 0 0;
  font-size: 0.75rem;
  color: var(--ota-text-muted, #64748b);
}

body.ota-public .ota-group-result-card__details {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  gap: 0.65rem 1rem;
  margin: 0;
}

body.ota-public .ota-group-result-card__detail {
  margin: 0;
}

body.ota-public .ota-group-result-card__detail--wide {
  grid-column: 1 / -1;
}

body.ota-public .ota-group-result-card__detail dt {
  margin: 0 0 0.15rem;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ota-text-muted, #64748b);
}

body.ota-public .ota-group-result-card__detail dd {
  margin: 0;
  font-size: 0.9rem;
  color: var(--ota-text, #1e293b);
}

body.ota-public .ota-group-result-card__detail-sep {
  margin: 0 0.2rem;
  color: var(--ota-text-muted, #94a3b8);
}

body.ota-public .ota-group-result-card__date-short {
  display: none;
}

body.ota-public .ota-group-result-card__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding-top: 0.15rem;
  border-top: 1px solid var(--ota-border, #e2e8f0);
}

body.ota-public .ota-group-result-card__price {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

body.ota-public .ota-group-result-card__price strong {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--ota-navy, #0f172a);
  line-height: 1.2;
}

body.ota-public .ota-group-result-card__price span {
  font-size: 0.78rem;
  color: var(--ota-text-muted, #64748b);
}

@media (max-width: 640px) {
  body.ota-public .ota-group-result-card--premium {
    padding: 1rem;
    gap: 0.75rem;
  }

  body.ota-public .ota-group-result-card__route-line {
    font-size: 0.98rem;
  }

  body.ota-public .ota-group-result-card__details {
    grid-template-columns: 1fr;
  }

  body.ota-public .ota-group-result-card__date-full {
    display: none;
  }

  body.ota-public .ota-group-result-card__date-short {
    display: inline;
  }

  body.ota-public .ota-group-result-card__foot {
    flex-direction: column;
    align-items: stretch;
  }

  body.ota-public .ota-group-result-card__foot .ota-btn {
    width: 100%;
    text-align: center;
  }
}

body.ota-public .ota-group-result-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.5rem 1rem;
  margin-bottom: 0.75rem;
}

body.ota-public .ota-group-result-card__title {
  margin: 0;
  font-size: 1.1rem;
  flex: 1 1 auto;
}

body.ota-public .ota-group-result-card__meta {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.5rem;
  margin: 0 0 1rem;
  font-size: 0.9rem;
}

body.ota-public .ota-group-result-card__meta dt {
  font-weight: 600;
  color: var(--ota-text-muted, #64748b);
}

/* GROUP-TICKETING-3 — compact result rows on /groups/search */
body.ota-public .ota-group-search-inline {
  margin-bottom: 1.25rem;
}

body.ota-public .ota-umrah-groups-layout--rows {
  align-items: flex-start;
}

/* GROUP-RESULT-ROW-UI-2 — narrower filters + wider results on group search */
body.ota-public .ota-group-ticketing-page .ota-umrah-groups-layout--rows {
  grid-template-columns: minmax(0, 245px) minmax(0, 1fr);
  gap: 1rem;
}

body.ota-public .ota-group-ticketing-page .ota-umrah-groups-filters .ota-umrah-groups-panel {
  padding: 0.8rem 0.85rem;
}

body.ota-public .ota-group-ticketing-page .ota-umrah-groups-panel__title {
  font-size: 0.98rem;
  margin-bottom: 0.65rem;
}

body.ota-public .ota-group-ticketing-page .ota-umrah-groups-form .form-group {
  margin-bottom: 0.6rem;
}

body.ota-public .ota-group-ticketing-page .ota-umrah-groups-form .control-label {
  margin-bottom: 0.2rem;
  font-size: 0.82rem;
}

body.ota-public .ota-group-ticketing-page .ota-umrah-groups-form .form-control {
  min-height: 2.1rem;
  padding: 0.35rem 0.55rem;
  font-size: 0.875rem;
}

body.ota-public .ota-group-ticketing-page .ota-umrah-groups-form .form-check-label {
  font-size: 0.82rem;
  line-height: 1.35;
}

body.ota-public .ota-group-ticketing-page .ota-umrah-groups-form__actions {
  gap: 0.4rem;
}

body.ota-public .ota-group-ticketing-page .ota-umrah-groups-form__actions .ota-btn {
  padding: 0.4rem 0.65rem;
  font-size: 0.875rem;
}

body.ota-public .ota-group-results-list--rows {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

body.ota-public .ota-group-results-list.is-loading {
  opacity: 0.55;
  pointer-events: none;
}

body.ota-public .ota-group-result-row {
  display: grid;
  grid-template-columns: minmax(90px, 0.9fr) minmax(220px, 2fr) minmax(120px, 1fr) minmax(110px, 0.9fr) minmax(120px, auto);
  grid-template-rows: auto auto;
  gap: 0.35rem 0.85rem;
  align-items: center;
  padding: 0.75rem 0.9rem;
  border: 1px solid var(--ota-border, #e2e8f0);
  border-radius: 10px;
  background: #fff;
  box-sizing: border-box;
  min-width: 0;
}

body.ota-public .ota-group-result-row__brand {
  grid-column: 1;
  grid-row: 1 / 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-width: 0;
  text-align: center;
}

body.ota-public .ota-group-result-row__logo.ota-airline-logo {
  width: 44px;
  height: 44px;
  margin: 0;
  flex-shrink: 0;
  font-size: 0.72rem;
}

body.ota-public .ota-group-result-row__airline {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.05rem;
  min-width: 0;
  width: 100%;
}

body.ota-public .ota-group-result-row__airline-name {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--ota-navy, #0f172a);
  line-height: 1.25;
  overflow-wrap: anywhere;
}

body.ota-public .ota-group-result-row__sector-code {
  font-size: 0.72rem;
  color: var(--ota-text-muted, #64748b);
  font-weight: 600;
}

body.ota-public .ota-group-result-row__route {
  grid-column: 2;
  grid-row: 1 / 3;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.2rem;
  min-width: 0;
}

body.ota-public .ota-group-result-row__route-line {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--ota-text, #1e293b);
  line-height: 1.35;
  white-space: nowrap;
  max-width: 100%;
}

body.ota-public .ota-group-result-row__route-endpoint {
  flex-shrink: 0;
  white-space: nowrap;
}

body.ota-public .ota-group-result-row__route-icon {
  flex-shrink: 0;
  display: inline-block;
  width: 1em;
  height: 1em;
  color: var(--ota-text-muted, #64748b);
  vertical-align: middle;
}

body.ota-public .ota-group-result-row__baggage-line,
body.ota-public .ota-group-result-row__sector-line,
body.ota-public .ota-group-result-row__meal {
  margin: 0;
  font-size: 0.78rem;
  color: var(--ota-text-muted, #64748b);
  line-height: 1.35;
  overflow-wrap: anywhere;
}

body.ota-public .ota-group-result-row__meal {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin-top: 0.15rem;
}

body.ota-public .ota-group-result-row__meal--included {
  color: var(--ota-success, #15803d);
}

body.ota-public .ota-group-result-row__meal--excluded {
  color: var(--ota-text-muted, #64748b);
}

body.ota-public .ota-group-result-row__meal--unspecified {
  color: var(--ota-text-muted, #94a3b8);
}

body.ota-public .ota-group-result-row__meal-icon {
  flex-shrink: 0;
  opacity: 0.85;
}

body.ota-public .ota-group-result-row__meal-status {
  flex-shrink: 0;
}

body.ota-public .ota-group-result-row__meal-text {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 10rem;
}

body.ota-public .ota-group-result-row__date {
  grid-column: 3;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

body.ota-public .ota-group-result-row__sector-line {
  grid-column: 3;
  grid-row: 2;
  align-self: start;
}

body.ota-public .ota-group-result-row__date-label {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--ota-navy, #0f172a);
  line-height: 1.25;
}

body.ota-public .ota-group-result-row__date-value {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--ota-text-muted, #64748b);
}

body.ota-public .ota-group-result-row__arrival-time {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--ota-text-muted, #64748b);
}

body.ota-public .ota-group-result-row__price {
  grid-column: 4;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  min-width: 0;
  justify-self: start;
}

body.ota-public .ota-group-result-row__seats {
  grid-column: 4;
  grid-row: 2;
  min-width: 0;
  align-self: start;
  justify-self: start;
}

body.ota-public .ota-group-result-row__seats .ota-umrah-groups-badge {
  white-space: normal;
  text-align: left;
  line-height: 1.25;
  font-size: 0.62rem;
  padding: 0.2rem 0.45rem;
}

body.ota-public .ota-group-result-row__cta {
  grid-column: 5;
  grid-row: 1 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  justify-self: stretch;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  padding-inline: 0.15rem;
}

body.ota-public .ota-group-result-row__cta .ota-btn-sm {
  white-space: nowrap;
  max-width: 100%;
  box-sizing: border-box;
}

body.ota-public .ota-group-result-row__sep {
  margin: 0 0.15rem;
  color: var(--ota-text-muted, #94a3b8);
}

body.ota-public .ota-group-result-row__price strong {
  font-size: 1rem;
  font-weight: 800;
  color: var(--ota-navy, #0f172a);
}

body.ota-public .ota-group-result-row__price span {
  font-size: 0.72rem;
  color: var(--ota-text-muted, #64748b);
}

body.ota-public .ota-group-result-row__restricted {
  font-size: 0.78rem;
  color: var(--ota-text-muted, #64748b);
  font-weight: 600;
}

body.ota-public .ota-group-results-load-more {
  margin-top: 1rem;
  text-align: center;
}

@media (max-width: 1024px) {
  body.ota-public .ota-group-result-row {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: none;
    gap: 0.55rem 0.75rem;
    padding: 0.85rem 1rem;
  }

  body.ota-public .ota-group-result-row__brand {
    grid-column: 1 / -1;
    grid-row: auto;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    gap: 0.6rem;
  }

  body.ota-public .ota-group-result-row__airline {
    align-items: flex-start;
  }

  body.ota-public .ota-group-result-row__route {
    grid-column: 1 / -1;
    grid-row: auto;
  }

  body.ota-public .ota-group-result-row__route-line {
    display: flex;
    flex-wrap: wrap;
    white-space: normal;
  }

  body.ota-public .ota-group-result-row__route-endpoint {
    white-space: normal;
  }

  body.ota-public .ota-group-result-row__date {
    grid-column: 1;
    grid-row: auto;
  }

  body.ota-public .ota-group-result-row__sector-line {
    grid-column: 1;
    grid-row: auto;
  }

  body.ota-public .ota-group-result-row__price {
    grid-column: 2;
    grid-row: auto;
    justify-self: end;
    text-align: right;
  }

  body.ota-public .ota-group-result-row__seats {
    grid-column: 2;
    grid-row: auto;
    justify-self: end;
  }

  body.ota-public .ota-group-result-row__seats .ota-umrah-groups-badge {
    text-align: center;
  }

  body.ota-public .ota-group-result-row__cta {
    grid-column: 1 / -1;
    grid-row: auto;
    justify-self: stretch;
  }

  body.ota-public .ota-group-result-row__cta .ota-btn {
    width: 100%;
    text-align: center;
  }
}

@media (max-width: 480px) {
  body.ota-public .ota-group-result-row {
    grid-template-columns: 1fr;
  }

  body.ota-public .ota-group-result-row__brand,
  body.ota-public .ota-group-result-row__route,
  body.ota-public .ota-group-result-row__date,
  body.ota-public .ota-group-result-row__sector-line,
  body.ota-public .ota-group-result-row__price,
  body.ota-public .ota-group-result-row__seats,
  body.ota-public .ota-group-result-row__cta {
    grid-column: 1;
    grid-row: auto;
    justify-self: stretch;
    text-align: left;
  }

  body.ota-public .ota-group-result-row__price {
    text-align: left;
  }
}

/* GROUP-TICKETING-3B — shared checkout shell (group-first; flight can adopt later) */
body.ota-public .ota-checkout-page--group .ota-checkout-stepper__future {
  color: #94a3b8;
  font-weight: 600;
}
body.ota-public .ota-checkout-page--group .ota-checkout-stepper span[aria-current="step"] {
  color: #1d4ed8;
  font-weight: 800;
}
body.ota-public .ota-checkout-page--group .ota-checkout-product-pill {
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
body.ota-public .ota-checkout-page--group .ota-checkout-summary-meta {
  margin: 0 0 0.35rem;
  font-size: 0.875rem;
  line-height: 1.45;
  color: #475569;
}
body.ota-public .ota-checkout-page--group .ota-group-payment-status {
  margin-bottom: 1rem;
  border-color: #bfdbfe;
  background: #eff6ff;
}
body.ota-public .ota-checkout-page--group .ota-group-payment-status__label {
  font-size: 0.95rem;
  font-weight: 700;
  color: #1e40af;
}
body.ota-public .ota-checkout-page--group .ota-group-reservation-timer {
  margin-bottom: 1rem;
}
body.ota-public .ota-confirmation-page.ota-checkout-page--group .ota-checkout-stepper {
  margin-bottom: 1.25rem;
}

/* RETURN-SPLIT-SELECT-R1 */
body.ota-public .ota-return-split-steps {
  margin-bottom: 1rem;
}
body.ota-public .ota-return-split-steps__track {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin-top: 0.35rem;
  font-size: 0.9rem;
}
body.ota-public .ota-return-split-steps__step.is-active {
  font-weight: 700;
  color: #0f4c81;
}
body.ota-public .ota-return-split-steps__step.is-done {
  color: #166534;
}
body.ota-public .ota-return-split-card {
  display: grid;
  gap: 1rem;
  margin-bottom: 1rem;
  padding: 1rem;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #fff;
}
@media (min-width: 768px) {
  body.ota-public .ota-return-split-card {
    grid-template-columns: 1fr minmax(200px, 240px);
    align-items: center;
  }
}
body.ota-public .ota-return-split-card__price-label {
  display: block;
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
}
body.ota-public .ota-return-split-card__price-note {
  display: block;
  margin-top: 0.15rem;
}
body.ota-public .ota-return-split-card__price-total {
  display: block;
  font-size: 1.2rem;
  font-weight: 700;
}
body.ota-public .ota-return-split-selected-outbound {
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  border-radius: 10px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}
body.ota-public .ota-return-split-selected-outbound__title {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: #0f172a;
}
body.ota-public .ota-return-split-selected-outbound__body .ota-result-round-segment {
  margin-bottom: 0;
}
body.ota-public .ota-return-split-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
body.ota-public .ota-return-split-list .ota-return-split-pro-card,
body.ota-public .ota-return-split-list .ota-result-pro-card {
  margin-bottom: 0.75rem;
}
body.ota-public .ota-return-split-pro-card .ota-return-split-card__delta {
  margin: 0.25rem 0 0;
}
body.ota-public .ota-return-split-pro-card .ota-return-split-price {
  margin: 0.1rem 0 0.35rem;
}
body.ota-public .ota-return-split-pro-card .ota-return-split-price .ota-price-lg {
  font-size: 1.3rem;
  font-weight: 800;
  line-height: 1.15;
}
body.ota-public .ota-return-split-pro-card .ota-return-split-price .ota-price-sub {
  font-size: 0.72rem;
  line-height: 1.25;
  margin-top: 0.1rem;
}
body.ota-public .ota-return-split-pro-card .ota-result-col-price .ota-fare-breakdown-link {
  font-size: 0.72rem;
  padding: 0;
  margin-top: 0.15rem;
}
body.ota-public .ota-return-split-card--outbound .ota-result-round-segment__label,
body.ota-public .ota-return-split-card--return .ota-result-round-segment__label {
  color: #0f4c81;
  font-weight: 600;
}
body.ota-public .ota-return-split-card__action {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  justify-content: center;
}
body.ota-public .ota-return-split-card__form {
  margin: 0;
}
body.ota-public .ota-return-split-list-heading {
  margin: 1rem 0 0.35rem;
  font-weight: 700;
  color: #0f4c81;
}
body.ota-public .ota-return-split-combined-total {
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid #dbeafe;
  border-radius: 10px;
  background: #f8fbff;
  display: grid;
  gap: 0.35rem;
  max-width: 360px;
}
body.ota-public .ota-return-split-combined-total__row {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.88rem;
}
body.ota-public .ota-return-split-combined-total__row--total {
  margin-top: 0.25rem;
  padding-top: 0.45rem;
  border-top: 1px solid #dbeafe;
  font-size: 0.95rem;
  font-weight: 700;
}
body.ota-public .ota-return-split-selected-outbound__price {
  margin: 0.35rem 0 0;
  font-weight: 700;
  color: #0f4c81;
}
body.ota-public .ota-return-split-pro-card.is-selected-return {
  box-shadow: 0 0 0 2px rgba(15, 76, 129, 0.35);
}
body.ota-public .ota-return-split-pro-card .ota-result-col-route--oneway {
  flex: 1 1 auto;
  min-width: 0;
}
body.ota-public .ota-return-split-pro-card .ota-result-price-btn {
  min-width: 7.5rem;
}
body.ota-public .ota-checkout-journey-layovers {
  margin-top: 0.45rem;
  padding-top: 0.45rem;
  border-top: 1px dashed #e2e8f0;
}
body.ota-public .ota-checkout-journey-layovers__route {
  margin: 0 0 0.25rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: #334155;
}
body.ota-public .ota-checkout-journey-layovers__meta {
  margin: 0 0 0.25rem;
  font-size: 0.78rem;
  color: #64748b;
}
body.ota-public .ota-checkout-journey-layovers__list {
  margin: 0.25rem 0 0;
  padding-left: 1.1rem;
  font-size: 0.76rem;
  color: #475569;
}

/* ========== FLIGHT-SEARCH-MODAL-UI-POLISH-3 — flight details + modal consistency ========== */
.ota-date-modal--open,
.ota-date-modal:not([hidden]).ota-date-modal--open {
  padding: max(calc(var(--ota-fixed-header-height) + 8px), clamp(10px, 2.5vh, 20px)) 16px clamp(10px, 2.5vh, 20px);
}

.ota-date-modal--one-way .ota-return-range-picker__months {
  gap: 0;
}

.ota-date-modal:not(.ota-date-modal--one-way) .ota-return-range-picker__months {
  gap: 0.65rem;
}

.ota-fare-summary-modal--details-entry .ota-fare-summary-modal__subtitle {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #334155;
}

.ota-fare-summary-modal .ota-flight-detail-shell {
  margin: 0;
}

.ota-fare-summary-modal .ota-flight-detail-card {
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
  box-shadow: none;
}

.ota-fare-summary-modal .ota-flight-detail-journey-card {
  padding: 0.85rem 0.9rem 0.95rem;
  border-radius: 12px;
  border: 1px solid rgba(148, 163, 184, 0.22);
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

.ota-fare-summary-modal .ota-flight-detail-journey-card + .ota-flight-detail-journey-card {
  margin-top: 0.65rem;
}

.ota-fare-summary-modal .ota-flight-detail-journey-header {
  margin-bottom: 0.75rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid rgba(148, 163, 184, 0.18);
}

.ota-fare-summary-modal .ota-flight-detail-journey-header__title {
  font-size: 0.9375rem;
  font-weight: 800;
}

.ota-fare-summary-modal .ota-flight-detail-journey-header__route {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #475569;
}

.ota-fare-summary-modal .ota-flight-detail-journey-route {
  margin-bottom: 0.85rem;
  padding-bottom: 0.85rem;
}

.ota-fare-summary-modal .ota-flight-detail-journey-route__time {
  font-size: 1.0625rem;
}

.ota-fare-summary-modal .ota-flight-detail-journey-route__code {
  font-size: 0.8125rem;
}

.ota-fare-summary-modal .ota-flight-detail-journey-route__city,
.ota-fare-summary-modal .ota-flight-detail-journey-route__date,
.ota-fare-summary-modal .ota-flight-detail-journey-route__date-row {
  font-size: 0.6875rem;
}

.ota-fare-summary-modal .ota-flight-detail-journey-info {
  margin-bottom: 0.75rem;
  padding: 0.6rem 0.65rem;
  border-radius: 10px;
  background: #f8fafc;
}

.ota-fare-summary-modal .ota-flight-detail-segment-card {
  padding: 0.75rem 0.8rem;
  border-radius: 10px;
}

.ota-fare-summary-modal .ota-flight-detail-segment-card__head {
  margin-bottom: 0.6rem;
  padding-bottom: 0.55rem;
}

.ota-fare-summary-modal .ota-flight-detail-segment-card__time {
  font-size: 1rem;
}

.ota-fare-summary-modal .ota-flight-detail-segment-card__code {
  font-size: 0.8125rem;
}

.ota-fare-summary-modal .ota-flight-detail-segment-card__city,
.ota-fare-summary-modal .ota-flight-detail-segment-card__date {
  font-size: 0.6875rem;
}

.ota-fare-summary-modal .ota-flight-detail-layover-divider {
  margin: 0.35rem 0;
  padding: 0.5rem 0.65rem;
  background: #fffbeb;
  border: 1px dashed rgba(245, 158, 11, 0.35);
}

.ota-fare-summary-modal .ota-flight-detail-layover-divider__label {
  color: #b45309;
}

.ota-fare-summary-modal .ota-flight-detail-layover-divider__text {
  font-size: 0.75rem;
  color: #92400e;
}

.ota-fare-summary-modal__panel-content[data-fare-summary-panel="policy"] {
  padding-top: 0.15rem;
}

.ota-fare-summary-modal__panel-content[data-fare-summary-panel="policy"] .ota-mobile-flight-details__rules {
  margin: 0;
  padding: 0.65rem 0.85rem 0.65rem 1.35rem;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid rgba(148, 163, 184, 0.18);
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #334155;
}

.ota-fare-summary-modal__panel-content[data-fare-summary-panel="policy"] .ota-mobile-flight-details__rules li + li {
  margin-top: 0.35rem;
}

.ota-fare-summary-modal__panel-content[data-fare-summary-panel="details"] {
  padding-top: 0.1rem;
}

.ota-fare-summary-modal__disclaimer {
  margin: 0.35rem 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 0.68rem;
  color: #94a3b8;
  line-height: 1.35;
}

.ota-fare-summary-modal__baggage-segment + .ota-fare-summary-modal__baggage-segment {
  margin-top: 0.75rem;
}

.ota-fare-summary-modal__baggage-segment-title {
  margin: 0 0 0.45rem;
  font-size: 0.75rem;
  font-weight: 800;
  color: #334155;
}

.ota-fare-summary-modal__baggage-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
}

.ota-fare-summary-modal__baggage-card {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  padding: 0.45rem 0.55rem;
  border-radius: 8px;
  border: 1px solid rgba(148, 163, 184, 0.14);
  background: #f8fafc;
}

.ota-fare-summary-modal__policy-list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.78rem;
  line-height: 1.5;
  color: #334155;
}

@media (max-width: 575px) {
  .ota-date-modal--open:not(.ota-date-modal--sheet) .ota-date-modal__dialog,
  .ota-date-modal--open:not(.ota-date-modal--sheet).ota-date-modal--one-way .ota-date-modal__dialog {
    width: calc(100vw - 24px);
  }

  .ota-date-modal__footer {
    grid-template-columns: 1fr;
  }

  .ota-fare-summary-modal__tabs {
    flex-wrap: wrap;
  }

  .ota-fare-summary-modal__tab {
    flex: 1 1 calc(50% - 0.25rem);
    min-width: 0;
  }

  .ota-fare-summary-modal__footer {
    flex-direction: column;
    align-items: stretch;
  }

  .ota-fare-summary-modal__actions {
    width: 100%;
    margin-left: 0;
  }

  .ota-fare-summary-modal__actions .btn {
    flex: 1 1 auto;
  }
}

/* OTA-FLIGHT-RESULTS-UI-POLISH-4 — compact v3 cards, date strip, branded fares, modals */
.ota-result-card-v3 {
  padding: 0.85rem 1rem 0.75rem;
}

.ota-result-card-v3 .ota-result-card-main {
  display: grid;
  grid-template-columns: minmax(88px, 0.9fr) minmax(0, 2.4fr) minmax(120px, 0.95fr);
  gap: 0.75rem 1rem;
  align-items: center;
}

.ota-result-card-v3 .ota-price-stack {
  margin: 0;
}

.ota-result-card-v3 .ota-result-col-price .ota-price-lg {
  font-size: 1.45rem;
  line-height: 1.1;
}

.ota-result-card-v3 .ota-result-col-route--oneway .ota-time-lg {
  font-size: 1.35rem;
  line-height: 1.05;
}

.ota-result-card-v3 .ota-result-leg__date {
  font-size: 0.72rem;
  font-weight: 600;
}

.ota-result-card-v3 .ota-result-leg__city {
  font-size: 0.78rem;
  font-weight: 700;
  color: #334155;
}

.ota-result-card-v3 .ota-result-actions-book .ota-btn-book.btn-primary {
  min-width: 118px;
  min-height: 46px;
  padding: 0.55rem 0.85rem;
  font-size: 0.875rem;
  font-weight: 800;
  border-radius: 10px;
  box-shadow: 0 8px 16px rgba(30, 64, 175, 0.18);
}

.ota-result-col-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  text-align: center;
}

.ota-result-col-brand .ota-airline-name,
.ota-result-col-brand .ota-result-carrier-face__names {
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.25;
}

.ota-result-stops-badge {
  display: none;
}

.ota-result-col-route--oneway {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(72px, 0.8fr) minmax(0, 1fr);
  gap: 0.5rem 0.65rem;
  align-items: center;
}

.ota-result-col-route--stacked {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.ota-result-leg {
  min-width: 0;
}

.ota-result-leg--arr {
  text-align: right;
}

.ota-result-leg__date {
  font-size: 0.72rem;
  color: #64748b;
  margin-top: 0.1rem;
}

.ota-result-leg__city {
  font-size: 0.72rem;
  color: #475569;
  margin-top: 0.15rem;
}

.ota-result-route-line {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  text-align: center;
}

.ota-result-route-line__dur {
  font-size: 0.72rem;
  font-weight: 700;
  color: #334155;
}

.ota-result-route-line__track {
  display: block;
  width: 100%;
  max-width: 88px;
  height: 2px;
  background: linear-gradient(90deg, #cbd5e1 0%, #94a3b8 50%, #cbd5e1 100%);
  position: relative;
}

.ota-result-route-line__dot {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid #64748b;
}

.ota-result-route-line__stops {
  font-size: 0.68rem;
}

.ota-result-col-price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.45rem;
  text-align: right;
}

.ota-result-card-meta {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-top: 0.55rem;
  padding-top: 0.55rem;
  border-top: 1px solid rgba(148, 163, 184, 0.16);
}

.ota-result-card-v3__flight-details-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-top: 0.35rem;
  padding: 0;
  border: none;
}

.ota-result-card-v3__flight-details-row .ota-flight-details-trigger {
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  padding: 0;
  margin: 0;
}

.ota-result-card-v3.is-fare-options-open .ota-branded-fares-panel__body:not([hidden]) {
  margin-top: 0.35rem;
  padding-top: 0.4rem;
  border-top: 1px solid rgba(148, 163, 184, 0.12);
}

.ota-result-card-v3--round-compact .ota-result-card-v3__round {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(120px, 0.85fr);
  gap: 0.75rem;
  align-items: start;
}

.ota-date-price-strip {
  margin: 0 0 12px;
  width: 100%;
}

.ota-date-price-strip__inner {
  display: flex;
  gap: 0.55rem;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
}

.ota-date-price-strip__inner::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.ota-date-price-chip {
  flex: 1 1 0;
  min-width: 0;
  min-height: 68px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.22rem;
  padding: 0.62rem 0.75rem;
  border-radius: 10px;
  border: 1px solid rgba(148, 163, 184, 0.32);
  background: #f8fafc;
  text-decoration: none;
  color: inherit;
  box-shadow: none;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.ota-date-price-chip:hover,
.ota-date-price-chip:focus {
  border-color: var(--ota-brand-accent-line, rgba(245, 158, 11, 0.42));
  background: color-mix(in srgb, var(--brand-accent, #f59e0b) 6%, #fff);
  box-shadow: none;
  text-decoration: none;
  color: inherit;
}

.ota-date-price-chip.is-selected {
  border-color: color-mix(in srgb, var(--brand-accent, #f59e0b) 48%, transparent);
  background: var(--ota-brand-accent-soft, #fff7ed);
  box-shadow: none;
}

.ota-date-price-chip__date {
  font-size: var(--ota-fs-strip-date, 13px);
  font-weight: 500;
  color: var(--brand-accent, #f59e0b);
  line-height: 1.25;
  text-align: center;
  white-space: nowrap;
}

.ota-date-price-chip__price {
  font-size: var(--ota-fs-strip-price, 11px);
  font-weight: 400;
  color: #94a3b8;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}

.ota-date-price-chip.is-selected .ota-date-price-chip__price {
  color: #64748b;
}

.ota-date-price-chip__price.is-loading {
  color: #cbd5e1;
  font-weight: 400;
  letter-spacing: 0.08em;
}

.ota-date-price-chip__price.is-unavailable {
  color: #b0bcc9;
  font-weight: 400;
}

@media (max-width: 639px) {
  .ota-date-price-chip {
    flex: 0 0 auto;
    min-width: 112px;
  }
}

.ota-branded-fares-panel {
  margin-top: 0.35rem;
  padding-top: 0;
  border-top: none;
  --ota-branded-fares-visible: 3;
  --ota-branded-fares-gap: 0.75rem;
  --ota-branded-fare-card-width: 264px;
  --ota-branded-fare-card-width-max: 264px;
  width: 100%;
}

.ota-result-card-v3 .ota-branded-fares-panel {
  width: 100%;
}

.ota-branded-fares-panel__toggle {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
}

.ota-branded-fares-panel__body[hidden] {
  display: none !important;
}

.ota-branded-fares-panel__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.625rem;
  align-items: stretch;
}

.ota-branded-fares-panel__grid[data-fare-count="1"] {
  grid-template-columns: minmax(0, 1fr);
}

.ota-branded-fares-panel__grid--single-default {
  max-width: 26rem;
}

.ota-branded-fares-panel__grid--single-default .ota-branded-fare-card,
.ota-branded-fare-card--compact-default {
  min-height: 0;
}

.ota-branded-fares-panel__grid--single-default .ota-branded-fare-card__matrix,
.ota-branded-fare-card--compact-default .ota-branded-fare-card__matrix {
  flex: 0 0 auto;
  margin-bottom: 0.18rem;
}

.ota-branded-fare-card--compact-default .ota-branded-fare-card__footer {
  margin-top: 0;
}

.ota-branded-fare-card--compact-default .ota-branded-fare-card__header {
  margin-bottom: 0.15rem;
}

.ota-branded-fares-panel__grid[data-fare-count="2"] {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ota-branded-fares-panel__grid[data-fare-count="3"] {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 1023px) {
  .ota-branded-fares-panel {
    --ota-branded-fares-visible: 2;
  }

  .ota-branded-fares-panel__grid:not(.ota-branded-fares-panel__grid--slider)[data-fare-count="3"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 639px) {
  .ota-branded-fares-panel {
    --ota-branded-fares-visible: 1;
  }
}

@media (max-width: 639px) {
  .ota-branded-fares-panel__grid:not(.ota-branded-fares-panel__grid--slider) {
    grid-template-columns: minmax(0, 1fr);
  }
}

.ota-branded-fares-carousel {
  display: flex;
  align-items: stretch;
  gap: 0.35rem;
  width: 100%;
}

.ota-branded-fares-carousel__viewport {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  container-type: inline-size;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.ota-branded-fares-carousel__viewport::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.ota-branded-fares-panel__grid--slider {
  display: flex;
  flex-wrap: nowrap;
  gap: var(--ota-branded-fares-gap);
  width: max-content;
  min-width: 100%;
}

.ota-branded-fares-panel__grid--slider .ota-branded-fare-card {
  flex: 0 0 var(--ota-branded-fare-card-width, 264px);
  width: var(--ota-branded-fare-card-width, 264px);
  min-width: var(--ota-branded-fare-card-width, 264px);
  max-width: var(--ota-branded-fare-card-width, 264px);
  scroll-snap-align: start;
}

.ota-branded-fares-carousel__nav {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid rgba(148, 163, 184, 0.22);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: #94a3b8;
  font-size: 0.95rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.06);
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.ota-branded-fares-carousel__nav:hover {
  border-color: color-mix(in srgb, var(--brand-accent, #f59e0b) 35%, transparent);
  color: color-mix(in srgb, var(--brand-accent, #f59e0b) 78%, #64748b);
  background: var(--ota-brand-accent-soft, rgba(255, 247, 237, 0.92));
  box-shadow: 0 2px 6px color-mix(in srgb, var(--brand-accent, #f59e0b) 10%, transparent);
}

.ota-branded-fares-carousel__nav:disabled,
.ota-branded-fares-carousel__nav[aria-disabled="true"] {
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
}

.ota-branded-fares-carousel__nav span {
  display: block;
  margin-top: -0.08rem;
}

.ota-branded-fare-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 100%;
  padding: 0.5rem 0.5625rem;
  border-radius: 8px;
  border: 1px solid rgba(148, 163, 184, 0.26);
  background: #fff;
  box-shadow: none;
}

.ota-branded-fare-card[data-fare-option-card-wrap][role="button"] {
  cursor: pointer;
}

.ota-branded-fare-card[data-fare-option-card-wrap][role="button"]:hover {
  border-color: rgba(37, 99, 235, 0.35);
}

.ota-branded-fare-card.is-selected {
  border-color: rgba(37, 99, 235, 0.5);
  background: #f8fbff;
  box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.12);
}

.ota-branded-fare-card.is-cheapest:not(.is-selected) {
  border-color: rgba(15, 118, 110, 0.32);
}

.ota-branded-fare-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.25rem;
  margin-bottom: 0.2rem;
}

.ota-branded-fare-card__title-block {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.ota-branded-fare-card__badges {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.15rem;
  flex-shrink: 0;
}

.ota-branded-fare-card__badge {
  display: inline-block;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border-radius: 999px;
  padding: 0.08rem 0.32rem;
  line-height: 1.2;
  white-space: nowrap;
}

.ota-branded-fare-card__badge--cheapest {
  color: #0f766e;
  background: #ecfdf5;
}

.ota-branded-fare-card__badge--selected {
  color: #1d4ed8;
  background: #eff6ff;
}

.ota-branded-fare-card__badge[hidden] {
  display: none !important;
}

.ota-branded-fare-card__name {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.2;
}

.ota-branded-fare-card__code {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}

.ota-branded-fare-card__variant {
  margin: 0.12rem 0 0;
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.25;
  color: #64748b;
  letter-spacing: 0.01em;
}

.ota-branded-fare-card__matrix {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  flex: 1 1 auto;
  margin-bottom: 0.22rem;
}

.ota-branded-fare-card__row {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr) auto;
  gap: 0.22rem 0.32rem;
  align-items: center;
  min-height: 1.1rem;
  font-size: 0.6875rem;
  line-height: 1.15;
}

.ota-branded-fare-card__row-icon {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  background-color: #94a3b8;
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
}

.ota-branded-fare-card__row-icon--carry {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='black'%3E%3Cpath d='M4 4.5h8v1H4zm0 2.5h8v1H4zm0 2.5h5.5v1H4z'/%3E%3Crect x='2' y='3' width='12' height='10' rx='1' fill='none' stroke='black' stroke-width='1.2'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='black'%3E%3Cpath d='M4 4.5h8v1H4zm0 2.5h8v1H4zm0 2.5h5.5v1H4z'/%3E%3Crect x='2' y='3' width='12' height='10' rx='1' fill='none' stroke='black' stroke-width='1.2'/%3E%3C/svg%3E");
}

.ota-branded-fare-card__row-icon--checked,
.ota-branded-fare-card__row-icon--baggage {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='black'%3E%3Cpath d='M5 5V4a3 3 0 0 1 6 0v1h2v8H3V5h2zm2-1a1 1 0 0 1 2 0v1H7V4z'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='black'%3E%3Cpath d='M5 5V4a3 3 0 0 1 6 0v1h2v8H3V5h2zm2-1a1 1 0 0 1 2 0v1H7V4z'/%3E%3C/svg%3E");
}

.ota-branded-fare-card__row-icon--seat {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='black'%3E%3Cpath d='M4 7h8v2.5a1.5 1.5 0 0 1-1.5 1.5H9v2H7v-2H5.5A1.5 1.5 0 0 1 4 9.5V7z'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='black'%3E%3Cpath d='M4 7h8v2.5a1.5 1.5 0 0 1-1.5 1.5H9v2H7v-2H5.5A1.5 1.5 0 0 1 4 9.5V7z'/%3E%3C/svg%3E");
}

.ota-branded-fare-card__row-icon--meal {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='black'%3E%3Cpath d='M3 3v10h1.5V8H6v5h1V3H6v3H4.5V3H3zm7 0v10h1V3h-1z'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='black'%3E%3Cpath d='M3 3v10h1.5V8H6v5h1V3H6v3H4.5V3H3zm7 0v10h1V3h-1z'/%3E%3C/svg%3E");
}

.ota-branded-fare-card__row-icon--change,
.ota-branded-fare-card__row-icon--cancel,
.ota-branded-fare-card__row-icon--refund,
.ota-branded-fare-card__row-icon--noshow,
.ota-branded-fare-card__row-icon--priority,
.ota-branded-fare-card__row-icon--lounge,
.ota-branded-fare-card__row-icon--benefit {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='black'%3E%3Ccircle cx='8' cy='8' r='5' fill='none' stroke='black' stroke-width='1.2'/%3E%3Cpath d='M8 5v3.2l2 1.2' stroke='black' stroke-width='1.2' fill='none'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='black'%3E%3Ccircle cx='8' cy='8' r='5' fill='none' stroke='black' stroke-width='1.2'/%3E%3Cpath d='M8 5v3.2l2 1.2' stroke='black' stroke-width='1.2' fill='none'/%3E%3C/svg%3E");
}

.ota-branded-fare-card__row-label {
  color: #64748b;
  font-weight: 500;
  font-size: 0.6875rem;
  min-width: 0;
  line-height: 1.15;
}

.ota-branded-fare-card__row-value {
  color: #334155;
  font-weight: 600;
  font-size: 0.6875rem;
  text-align: right;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 48%;
  min-width: 0;
  line-height: 1.15;
}

.ota-branded-fare-card__footer {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 0.18rem;
  padding-top: 0.2rem;
  border-top: 1px solid rgba(148, 163, 184, 0.12);
}

.ota-branded-fare-card__price {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1f2f46;
  line-height: 1.1;
}

.ota-branded-fare-card__actions {
  display: flex;
  align-items: stretch;
  gap: 0.3rem;
  width: 100%;
}

.ota-branded-fare-card__details {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  min-height: 34px;
  padding: 0.22rem 0.45rem;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.15;
  border: 1px solid rgba(37, 99, 235, 0.45);
  border-radius: 7px;
  background: #fff;
  color: #2563eb;
  cursor: pointer;
  box-shadow: none;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.ota-branded-fare-card__details:hover,
.ota-branded-fare-card__details:focus {
  border-color: #2563eb;
  background: #eff6ff;
  color: #1d4ed8;
  outline: none;
}

.ota-branded-fare-card__details:focus-visible {
  outline: 2px solid rgba(37, 99, 235, 0.35);
  outline-offset: 1px;
}

.ota-branded-fare-card__cta {
  flex: 1 1 auto;
  width: auto;
  min-height: 34px;
  padding: 0.22rem 0.45rem;
  font-size: 12px;
  font-weight: 700;
  border-radius: 7px;
  line-height: 1.15;
}

.ota-branded-fare-card.is-selected .ota-branded-fare-card__cta {
  opacity: 1;
}

.ota-branded-fare-card__features {
  list-style: none;
  margin: 0 0 0.55rem;
  padding: 0;
  display: grid;
  gap: 0.25rem;
}

.ota-branded-fare-card__feature {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.72rem;
}

.ota-branded-fare-card__feature-label {
  color: #64748b;
}

.ota-branded-fare-card__feature-value {
  color: #0f172a;
  font-weight: 600;
  text-align: right;
}

.ota-branded-fare-card__head {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.45rem;
}

.ota-branded-fare-card__radio {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid #94a3b8;
  flex-shrink: 0;
}

.ota-branded-fare-card.is-selected .ota-branded-fare-card__radio {
  border-color: #2563eb;
  background: radial-gradient(circle at center, #2563eb 0 45%, transparent 50%);
}

.ota-branded-fare-card__actions {
  margin-top: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
}

.ota-branded-fare-card__actions .ota-btn-details,
.ota-branded-fare-card__select {
  min-height: 32px;
}

.ota-branded-fare-card__select {
  appearance: none;
  border: 1px solid rgba(37, 99, 235, 0.35);
  background: #fff;
  color: #2563eb;
  border-radius: 8px;
  padding: 0.35rem 0.65rem;
  font-size: 0.72rem;
  font-weight: 700;
  cursor: pointer;
}

.ota-branded-fare-card.is-selected .ota-branded-fare-card__select {
  background: #2563eb;
  color: #fff;
}

.ota-result-card-v3[data-has-branded-fares] [data-flight-card-summary] {
  cursor: pointer;
}

.ota-result-card-v3[data-has-branded-fares] .ota-result-actions-book,
.ota-result-card-v3[data-has-branded-fares] .ota-branded-fares-panel,
.ota-result-card-v3[data-has-branded-fares] .ota-branded-fares-panel * {
  cursor: auto;
}

.ota-result-card-v3[data-has-branded-fares] .ota-flight-details-trigger {
  cursor: pointer;
}

.ota-result-card-v3[data-has-branded-fares] .ota-branded-fares-panel button,
.ota-result-card-v3[data-has-branded-fares] .ota-branded-fares-panel a {
  cursor: pointer;
}

.ota-fare-family-selection-hint {
  margin: 0.45rem 0 0;
  font-size: 0.75rem;
  color: #b45309;
}

.ota-fare-summary-table-wrap {
  overflow-x: auto;
}

.ota-fare-summary-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
}

.ota-fare-summary-table th,
.ota-fare-summary-table td {
  padding: 0.4rem 0.5rem;
  border-bottom: 1px solid rgba(148, 163, 184, 0.12);
  text-align: left;
}

.ota-fare-summary-table--total-only .ota-fare-summary-table__num--total {
  font-weight: 700;
}

.ota-fare-summary-table__num {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.ota-fare-summary-table__qty {
  text-align: center;
  font-weight: 700;
  color: #334155;
  white-space: nowrap;
}

.ota-fare-summary-table__passenger {
  font-weight: 700;
}

.ota-fare-summary-table__passenger .ota-fare-summary-table__qty {
  display: none;
}

.ota-fare-summary-table__grand-label {
  display: block;
  font-weight: 800;
  color: #0f172a;
}

.ota-fare-summary-table__grand-note {
  display: block;
  font-size: 0.68rem;
  color: #64748b;
  margin-top: 0.1rem;
}

.ota-fare-summary-table__grand-total {
  font-size: 0.95rem;
  font-weight: 800;
  color: #0f172a;
}

.ota-fare-summary-modal__total-note {
  display: block;
  font-size: 0.68rem;
  color: #64748b;
}

.ota-flight-details-modal {
  position: fixed;
  inset: 0;
  z-index: 2200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.ota-flight-details-modal[hidden] {
  display: none !important;
}

.ota-flight-details-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
}

.ota-flight-details-modal__panel {
  position: relative;
  width: min(760px, calc(100vw - 2rem));
  max-height: min(88vh, 820px);
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.18);
  overflow: hidden;
}

.ota-flight-details-modal__head,
.ota-flight-details-modal__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid rgba(148, 163, 184, 0.16);
}

.ota-flight-details-modal__footer {
  border-bottom: 0;
  border-top: 1px solid rgba(148, 163, 184, 0.16);
  justify-content: flex-end;
}

.ota-flight-details-modal__body {
  overflow: auto;
  padding: 0.85rem 1rem 1rem;
}

.ota-flight-details-modal__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 800;
}

.ota-flight-details-modal__subtitle,
.ota-flight-details-modal__route {
  margin: 0.2rem 0 0;
  font-size: 0.75rem;
  color: #64748b;
}

.ota-flight-details-modal__route {
  display: none !important;
}

.ota-flight-details-modal__close {
  appearance: none;
  border: 0;
  background: transparent;
  font-size: 1.4rem;
  line-height: 1;
  color: #64748b;
  cursor: pointer;
}

body.ota-flight-details-modal-open {
  overflow: hidden;
}

@media (max-width: 991px) {
  .ota-result-card-v3 .ota-result-card-main {
    grid-template-columns: minmax(0, 1fr) minmax(110px, 0.85fr);
  }

  .ota-result-col-route--oneway {
    grid-column: 1 / -1;
  }
}

@media (max-width: 767px) {
  .ota-result-card-v3 .ota-result-card-main {
    grid-template-columns: 1fr;
  }

  .ota-result-col-price {
    align-items: flex-start;
    text-align: left;
  }

  .ota-result-col-route--oneway {
    grid-template-columns: 1fr;
    gap: 0.45rem;
  }

  .ota-result-leg--arr {
    text-align: left;
  }

  .ota-branded-fares-panel__grid:not(.ota-branded-fares-panel__grid--slider) {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ==========================================================================
   OTA-PUBLIC-FONT-SCALE-12PX-1 — compact public typography + density pass
   Scoped to body.ota-public and public OTA component classes only.
   ========================================================================== */

/* —— Header / nav —— */
body.ota-public .ota-nav-inner {
  min-height: 3rem;
  padding: 0.6rem var(--ota-gutter-x);
}

body.ota-public .ota-brand {
  font-size: 1.05rem;
}

body.ota-public .ota-brand-mark {
  width: 40px;
  height: 40px;
  font-size: 1rem;
}

body.ota-public .ota-brand-mark--logo {
  width: auto;
  height: auto;
  max-width: min(180px, 44vw);
  max-height: 52px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.ota-public .ota-brand-logo-img {
  max-height: 50px;
  max-width: min(180px, 44vw);
}

@media (max-width: 991px) {
  body.ota-public .ota-brand-mark--logo {
    max-height: 44px;
    max-width: min(140px, 40vw);
  }

  body.ota-public .ota-brand-logo-img {
    max-height: 42px;
    max-width: min(140px, 40vw);
  }
}

body.ota-public .ota-nav-links a {
  font-size: var(--ota-fs-nav);
  padding: 0.45rem 0.7rem;
}

body.ota-public .ota-nav-btn {
  min-height: 34px;
  padding: 0.35rem 0.7rem;
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .public-signup-dropdown a {
  font-size: var(--ota-fs-input-lg);
  padding: 0.45rem 0.7rem;
}

body.ota-public .ota-slim-topbar {
  font-size: var(--ota-fs-nav);
}

body.ota-public .ota-slim-topbar-inner {
  padding: 0.4rem var(--ota-gutter-x);
}

/* —— Hero (home) —— */
body.ota-public .ota-hero h1 {
  font-size: clamp(1.75rem, 3.6vw, 2.25rem);
  margin-bottom: 0.85rem;
}

body.ota-public .ota-hero-lead {
  font-size: 13px;
  margin-bottom: 1.25rem;
}

body.ota-public .ota-btn-white,
body.ota-public .ota-btn-ghost {
  padding: 0.6rem 1rem;
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-hero-help-hint {
  font-size: var(--ota-fs-meta-lg);
}

body.ota-public .ota-hero-badge {
  font-size: var(--ota-fs-meta-lg);
  padding: 0.28rem 0.55rem;
}

@media (min-width: 992px) {
  body.ota-public .ota-hero--banner {
    padding: 2.75rem 0 2.25rem;
    min-height: clamp(480px, 62vh, 680px);
  }
}

/* —— Hero / results flight search —— */
body.ota-public .ota-hero-search-card {
  padding: 0.9rem 1rem 1rem;
  border-radius: 14px;
}

body.ota-public .ota-hero-search-alert {
  font-size: var(--ota-fs-input-lg);
  margin-bottom: 0.65rem;
}

body.ota-public .ota-hero-search-toolbar {
  margin-bottom: 0.75rem;
  padding-bottom: 0.65rem;
}

body.ota-public .ota-hero-search-mode,
body.ota-public .ota-hero-search-direct {
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-hero-search-label {
  font-size: var(--ota-fs-meta);
  margin-bottom: 0.28rem;
}

body.ota-public .ota-hero-search-input {
  min-height: 44px;
  padding: 0 0.7rem;
  border-radius: 10px;
}

body.ota-public .ota-hero-search-input > i,
body.ota-public .ota-hero-search-input__icon {
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-hero-search-input--date .ota-hero-search-control--date {
  min-height: 44px;
  padding: 0.5rem 2.35rem 0.5rem 0.7rem;
}

body.ota-public .ota-hero-search-control {
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-hero-search-control--select {
  min-height: 38px;
}

body.ota-public .ota-hero-search-swap {
  width: 42px;
  height: 44px;
  border-radius: 10px;
}

body.ota-public .ota-hero-search-dates .ota-hero-search-date-trigger[data-return-range-trigger="depart"],
body.ota-public .ota-hero-search-dates--round .ota-hero-search-date-trigger[data-return-range-trigger="return"] {
  min-height: 44px;
  padding: 0.4rem 0.7rem;
  font-size: var(--ota-fs-input-lg);
  border-radius: 10px;
}

/* —— Date picker modal —— */
body.ota-public .ota-date-modal .ota-date-modal__title {
  font-size: 0.9375rem;
}

body.ota-public .ota-date-modal .ota-return-range-picker__month-title {
  font-size: 0.8125rem;
}

body.ota-public .ota-date-modal .ota-return-range-picker__dow {
  font-size: 0.6875rem;
}

body.ota-public .ota-date-modal .ota-return-range-picker__day {
  font-size: 0.8125rem;
}

body.ota-public .ota-date-modal .ota-return-range-picker__hint {
  font-size: 0.75rem;
}

body.ota-public .ota-date-modal .ota-return-range-picker__btn {
  font-size: 0.8125rem;
  min-height: 2.25rem;
}

/* —— Results page head —— */
body.ota-public .ota-results-pro-head {
  padding: 1.25rem 0 3.5rem;
}

body.ota-public .ota-results-pro-kicker {
  font-size: var(--ota-fs-meta);
}

body.ota-public .ota-results-pro-title {
  font-size: clamp(1.35rem, 2.2vw, 1.65rem);
}

body.ota-public .ota-results-pro-sub {
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-results-pro-pill {
  font-size: var(--ota-fs-meta);
}

body.ota-public .ota-results-pro-body {
  padding-bottom: 2rem;
}

body.ota-public .ota-results-widget-wide .ota-hero-search-card {
  padding: 0.85rem 0.95rem 0.95rem;
}

/* —— Filters sidebar —— */
body.ota-public .ota-filter-card-head {
  margin-bottom: 0.75rem;
}

body.ota-public .ota-filter-title {
  font-size: var(--ota-fs-filter-title);
}

body.ota-public .ota-filter-section {
  padding: 0 0.7rem;
  margin-bottom: 0.5rem;
}

body.ota-public .ota-filter-section > summary {
  padding: 0.5rem 0;
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-filter-section .checkbox label {
  font-size: var(--ota-fs-input);
}

body.ota-public .ota-filter-section .form-group:last-child {
  margin-bottom: 0.65rem;
}

body.ota-public .ota-results-mobile-bar {
  padding: 8px 0 10px;
}

body.ota-public .ota-results-mobile-bar .btn {
  font-size: var(--ota-fs-input-lg);
}

/* —— Result cards (v2 + v3 shared) —— */
body.ota-public .ota-time-lg {
  font-size: var(--ota-fs-time-lg);
}

body.ota-public .ota-price-lg {
  font-size: var(--ota-fs-price-lg);
}

body.ota-public .ota-time-sub,
body.ota-public .ota-dur-line {
  font-size: var(--ota-fs-meta-lg);
}

body.ota-public .ota-price-sub {
  font-size: var(--ota-fs-meta-lg);
}

body.ota-public .ota-price-stack {
  margin: 0.5rem 0 0.6rem;
}

body.ota-public .ota-result-tags {
  margin-top: 0.55rem;
  font-size: var(--ota-fs-meta-lg);
}

body.ota-public .ota-flight-details-trigger {
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-result-card-actions-row {
  margin-top: 0.45rem;
  padding-top: 0.45rem;
}

/* —— Result card v3 (compact OTA layout) —— */
body.ota-public .ota-result-card-v3 {
  padding: 0.65rem 0.85rem 0.6rem;
}

body.ota-public .ota-result-card-v3 .ota-result-card-main {
  gap: 0.55rem 0.75rem;
}

body.ota-public .ota-result-card-v3 .ota-result-col-price .ota-price-lg {
  font-size: var(--ota-fs-price-lg);
}

body.ota-public .ota-result-card-v3 .ota-result-col-route--oneway .ota-time-lg {
  font-size: var(--ota-fs-time-lg);
}

body.ota-public .ota-result-card-v3 .ota-result-leg__date,
body.ota-public .ota-result-leg__date {
  font-size: var(--ota-fs-meta-lg);
}

body.ota-public .ota-result-card-v3 .ota-result-leg__city,
body.ota-public .ota-result-leg__city {
  font-size: var(--ota-fs-input);
}

body.ota-public .ota-result-col-brand .ota-airline-name,
body.ota-public .ota-result-col-brand .ota-result-carrier-face__names {
  font-size: var(--ota-fs-card-airline);
}

body.ota-public .ota-result-route-line__dur {
  font-size: var(--ota-fs-meta-lg);
}

body.ota-public .ota-result-route-line__stops {
  font-size: var(--ota-fs-meta);
}

body.ota-public .ota-result-card-v3 .ota-result-actions-book .ota-btn-book.btn-primary {
  min-width: 108px;
  min-height: 38px;
  padding: 0.45rem 0.7rem;
  font-size: var(--ota-fs-input-lg);
  border-radius: 8px;
}

body.ota-public .ota-result-card-meta {
  margin-top: 0.4rem;
  padding-top: 0.4rem;
  gap: 0.5rem;
}

/* —— Nearby date price strip —— */
body.ota-public .ota-date-price-strip {
  margin: 0 0 10px;
}

body.ota-public .ota-date-price-strip__inner {
  gap: 0.5rem;
}

body.ota-public .ota-date-price-chip {
  min-height: 66px;
  padding: 0.58rem 0.7rem;
  border-radius: 9px;
}

body.ota-public .ota-date-price-chip__date {
  font-size: var(--ota-fs-strip-date);
}

body.ota-public .ota-date-price-chip__price {
  font-size: var(--ota-fs-strip-price);
}

/* —— Branded fares panel —— */
body.ota-public .ota-branded-fares-panel {
  margin-top: 0.3rem;
  padding-top: 0;
  border-top: none;
}

body.ota-public .ota-branded-fares-panel__toggle {
  font-size: var(--ota-fs-input);
}

body.ota-public .ota-branded-fares-panel__grid {
  gap: 0.625rem;
  margin-top: 0.45rem;
}

body.ota-public .ota-branded-fare-card {
  min-width: 0;
  padding: 0.625rem 0.6875rem;
  border-radius: 10px;
}

body.ota-public .ota-branded-fare-card__name {
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-branded-fare-card__feature {
  font-size: var(--ota-fs-meta-lg);
}

body.ota-public .ota-branded-fare-card__price {
  font-size: 15px;
}

body.ota-public .ota-branded-fare-card__select {
  font-size: var(--ota-fs-meta-lg);
  min-height: 30px;
  padding: 0.3rem 0.55rem;
}

body.ota-public .ota-fare-family-selection-hint {
  font-size: var(--ota-fs-meta-lg);
}

/* —— Fare summary modal —— */
body.ota-public .ota-fare-summary-modal__head {
  padding: 12px 14px 8px;
}

body.ota-public .ota-fare-summary-modal__title,
body.ota-public .ota-fare-breakdown-modal__title {
  font-size: var(--ota-fs-modal-title);
}

body.ota-public .ota-fare-summary-modal__subtitle,
body.ota-public .ota-fare-summary-modal__route {
  font-size: var(--ota-fs-modal-label);
}

body.ota-public .ota-fare-summary-modal__body {
  font-size: var(--ota-fs-modal-body);
}

body.ota-public .ota-fare-summary-modal__tab {
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-fare-summary-modal__baggage-label {
  font-size: var(--ota-fs-modal-label);
}

body.ota-public .ota-fare-summary-modal__baggage-value {
  font-size: var(--ota-fs-modal-body);
}

body.ota-public .ota-fare-summary-modal__total-label {
  font-size: var(--ota-fs-meta-lg);
}

body.ota-public .ota-fare-summary-modal__total-value {
  font-size: 20px;
}

body.ota-public .ota-fare-summary-modal__actions .btn {
  font-size: var(--ota-fs-input-lg);
  min-height: 36px;
}

body.ota-public .ota-fare-summary-table {
  font-size: var(--ota-fs-input);
}

body.ota-public .ota-fare-summary-table__grand-note {
  font-size: var(--ota-fs-meta);
}

body.ota-public .ota-fare-summary-table__grand-total {
  font-size: 16px;
}

body.ota-public .ota-fare-summary-modal .ota-flight-detail-journey-header__title {
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-fare-summary-modal .ota-flight-detail-journey-route__time,
body.ota-public .ota-fare-summary-modal .ota-flight-detail-segment-card__time {
  font-size: 15px;
}

body.ota-public .ota-fare-summary-modal .ota-flight-detail-journey-route__code,
body.ota-public .ota-fare-summary-modal .ota-flight-detail-segment-card__code {
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-fare-summary-modal .ota-flight-detail-journey-route__city,
body.ota-public .ota-fare-summary-modal .ota-flight-detail-journey-route__date,
body.ota-public .ota-fare-summary-modal .ota-flight-detail-segment-card__city,
body.ota-public .ota-fare-summary-modal .ota-flight-detail-segment-card__date {
  font-size: var(--ota-fs-modal-label);
}

body.ota-public .ota-fare-summary-modal__baggage-segment-title {
  font-size: var(--ota-fs-input-lg);
}

/* —— Flight details modal —— */
body.ota-public .ota-flight-details-modal__head,
body.ota-public .ota-flight-details-modal__footer {
  padding: 0.65rem 0.85rem;
}

body.ota-public .ota-flight-details-modal__body {
  padding: 0.65rem 0.85rem 0.85rem;
  font-size: var(--ota-fs-modal-body);
}

body.ota-public .ota-flight-details-modal__title {
  font-size: var(--ota-fs-modal-title);
}

body.ota-public .ota-flight-details-modal__subtitle {
  font-size: var(--ota-fs-modal-label);
}

/* —— Public form cards (lookup/support/group pages on ota-public layout) —— */
body.ota-public .ota-form-card,
body.ota-public .ota-checkout-card {
  font-size: var(--ota-fs-base);
}

body.ota-public .ota-form-card label,
body.ota-public .ota-checkout-card label {
  font-size: var(--ota-fs-meta-lg);
}

body.ota-public .ota-form-card .form-control,
body.ota-public .ota-checkout-card .form-control,
body.ota-public .ota-form-card select,
body.ota-public .ota-checkout-card select,
body.ota-public .ota-form-card textarea,
body.ota-public .ota-checkout-card textarea {
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-btn-primary,
body.ota-public .ota-form-card .btn-primary,
body.ota-public .ota-checkout-card .btn-primary {
  font-size: var(--ota-fs-input-lg);
  min-height: 36px;
}

/* ==========================================================================
   OTA-FLIGHT-RESULTS-COMPACT-DENSITY-1 — slim results cards, filters, strip,
   branded fares, modals. CSS-only; scoped to .ota-results-pro + public modals.
   ========================================================================== */

/* —— Page shell / search header —— */
body.ota-public .ota-results-pro .ota-results-pro-head {
  padding: 1rem 0 2.75rem;
}

body.ota-public .ota-results-pro .ota-results-pro-head-grid {
  gap: 0.65rem 1rem;
}

body.ota-public .ota-results-pro .ota-results-pro-title {
  margin-bottom: 0.25rem;
}

body.ota-public .ota-results-pro .ota-results-pro-body {
  padding-bottom: 1.5rem;
}

body.ota-public .ota-results-pro .ota-results-pro-body--pullup {
  margin-top: -1.65rem;
}

body.ota-public .ota-results-pro .ota-results-widget-wide {
  margin-bottom: 0.75rem;
}

body.ota-public .ota-results-pro .ota-results-refine-card {
  padding: 0.75rem 0.85rem;
  margin-bottom: 0.75rem;
  border-radius: 12px;
}

body.ota-public .ota-results-pro .ota-trip-switcher {
  margin-bottom: 0.55rem;
}

body.ota-public .ota-results-pro .ota-trip-switcher__btn {
  padding: 0.4rem 0.75rem;
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-results-pro .ota-results-inline-search__primary {
  gap: 0.55rem 0.6rem;
}

body.ota-public .ota-results-pro .ota-refine-label {
  font-size: var(--ota-fs-meta);
  margin-bottom: 0.15rem;
}

body.ota-public .ota-results-pro .ota-refine-shell {
  height: 40px;
  min-height: 40px;
  padding: 0 0.4rem 0 0.35rem;
  border-radius: 8px;
}

body.ota-public .ota-results-pro .ota-refine-date-main {
  font-size: var(--ota-fs-input-lg);
  line-height: 1.15;
}

body.ota-public .ota-results-pro .ota-refine-date-day,
body.ota-public .ota-results-pro .ota-refine-sub {
  font-size: var(--ota-fs-meta-lg);
}

body.ota-public .ota-results-pro .ota-refine-stack {
  padding: 0.12rem 0;
}

body.ota-public .ota-results-pro .ota-results-inline-search__actions {
  padding-top: 0.85rem;
}

body.ota-public .ota-results-pro .ota-results-inline-search__submit {
  min-height: 40px;
  font-size: var(--ota-fs-input-lg);
  border-radius: 8px;
}

body.ota-public .ota-results-pro .ota-refine-swap-btn {
  width: 34px;
  height: 34px;
}

body.ota-public .ota-results-pro [data-results-summary] {
  margin-bottom: 0.45rem;
  font-size: var(--ota-fs-input);
}

body.ota-public .ota-results-pro [data-active-filter-chips] {
  margin-bottom: 0.45rem !important;
}

/* —— Filter sidebar —— */
body.ota-public .ota-results-pro .ota-filter-card {
  padding: 0.85rem 0.9rem;
}

body.ota-public .ota-results-pro .ota-filter-card-head {
  margin-bottom: 0.55rem;
}

body.ota-public .ota-results-pro .ota-filter-title {
  font-size: var(--ota-fs-filter-title);
}

body.ota-public .ota-results-pro .ota-filter-section {
  padding: 0 0.55rem;
  margin-bottom: 0.4rem;
  border-radius: 8px;
}

body.ota-public .ota-results-pro .ota-filter-section:last-of-type {
  margin-bottom: 0.65rem;
}

body.ota-public .ota-results-pro .ota-filter-section > summary {
  padding: 0.42rem 0;
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-results-pro .ota-filter-section .form-group {
  margin-bottom: 0.45rem;
}

body.ota-public .ota-results-pro .ota-filter-section .form-group:last-child {
  margin-bottom: 0.55rem;
}

body.ota-public .ota-results-pro .ota-filter-section .control-label {
  margin-bottom: 0.2rem;
  font-size: var(--ota-fs-meta-lg);
  font-weight: 700;
  color: #64748b;
}

body.ota-public .ota-results-pro .ota-filter-section .form-control {
  height: 36px;
  min-height: 36px;
  padding: 0.35rem 0.55rem;
  font-size: var(--ota-fs-input);
  border-radius: 8px;
}

body.ota-public .ota-results-pro .ota-filter-section .checkbox {
  margin-top: 0.28rem;
  margin-bottom: 0.3rem;
}

body.ota-public .ota-results-pro .ota-filter-section .checkbox label {
  font-size: var(--ota-fs-input);
  gap: 0.4rem;
  line-height: 1.2;
}

body.ota-public .ota-results-pro .ota-filter-actions {
  margin-top: 0.35rem;
}

body.ota-public .ota-results-pro .ota-filter-actions .btn {
  min-height: 34px;
  padding: 0.35rem 0.65rem;
  font-size: var(--ota-fs-input);
}

body.ota-public .ota-results-pro .ota-filter-actions .btn + .btn {
  margin-top: 0.35rem;
}

/* —— Results list spacing —— */
body.ota-public .ota-results-pro [data-results-list] {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

body.ota-public .ota-results-pro .ota-result-pro-card {
  margin-bottom: 0;
}

/* —— Result card v3 (slim row) —— */
body.ota-public .ota-results-pro .ota-result-pro-card.ota-result-card-v3 {
  padding: 12px 16px 10px;
  border-radius: 12px;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.06);
}

body.ota-public .ota-results-pro .ota-result-card-v3 .ota-result-card-main {
  grid-template-columns: minmax(76px, 0.82fr) minmax(0, 2.5fr) minmax(112px, 0.92fr);
  gap: 10px 12px;
  align-items: center;
}

body.ota-public .ota-results-pro .ota-result-col-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 0.25rem;
}

body.ota-public .ota-results-pro .ota-result-col-brand .ota-airline-logo {
  width: 46px;
  height: 46px;
  margin: 0 auto;
  border-radius: 10px;
  font-size: 0.7rem;
  flex-shrink: 0;
}

body.ota-public .ota-results-pro .ota-result-col-brand .ota-airline-logo--img {
  padding: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
}

body.ota-public .ota-results-pro .ota-result-col-brand .ota-airline-logo--img img {
  width: 40px;
  height: 40px;
  object-fit: contain;
}

body.ota-public .ota-results-pro .ota-result-col-brand .ota-result-brand-logo {
  margin-bottom: 0;
}

body.ota-public .ota-results-pro .ota-result-col-brand .ota-airline-name,
body.ota-public .ota-results-pro .ota-result-col-brand .ota-result-carrier-face__names {
  font-size: var(--ota-fs-card-airline);
  font-weight: 600;
  line-height: 1.2;
  width: 100%;
  text-align: center;
}

/* Results skeleton cards (search / re-search / bfcache refresh) */
@keyframes ota-skeleton-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
body.ota-public .ota-result-skeleton-card {
  pointer-events: none;
  user-select: none;
}
body.ota-public .ota-result-skeleton-card .ota-result-card-main {
  min-height: 88px;
}
body.ota-public .ota-skeleton {
  border-radius: 8px;
  background: linear-gradient(90deg, #e8edf3 0%, #f4f7fa 45%, #e8edf3 90%);
  background-size: 200% 100%;
  animation: ota-skeleton-shimmer 1.35s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  body.ota-public .ota-skeleton {
    animation: none;
    background: #e8edf3;
  }
}
body.ota-public .ota-skeleton--logo {
  width: 46px;
  height: 46px;
  border-radius: 10px;
  margin: 0 auto;
}
body.ota-public .ota-skeleton--line {
  height: 10px;
  border-radius: 6px;
}
body.ota-public .ota-skeleton--line-lg { width: 72%; max-width: 5.5rem; height: 18px; }
body.ota-public .ota-skeleton--line-sm { width: 58%; max-width: 4.5rem; margin: 0 auto; }
body.ota-public .ota-skeleton--line-xs { width: 46%; max-width: 3.5rem; margin-top: 0.35rem; }
body.ota-public .ota-skeleton-block--mid {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
}
body.ota-public .ota-skeleton-block--end { margin-left: auto; text-align: right; }
body.ota-public .ota-skeleton-block--end .ota-skeleton { margin-left: auto; }
body.ota-public .ota-skeleton--pill {
  width: 3.25rem;
  height: 18px;
  border-radius: 999px;
}
body.ota-public .ota-skeleton--btn {
  width: 7.5rem;
  height: 38px;
  border-radius: 10px;
  margin-left: auto;
}
body.ota-public .ota-skeleton--price-meta {
  width: 5rem;
  margin-left: auto;
  margin-top: 0.4rem;
}
@media (max-width: 767.98px) {
  body.ota-public .ota-results-pro .ota-result-col-brand .ota-airline-logo {
    width: 38px;
    height: 38px;
  }
  body.ota-public .ota-results-pro .ota-result-col-brand .ota-airline-logo--img img {
    width: 34px;
    height: 34px;
  }
  body.ota-public .ota-skeleton--logo {
    width: 38px;
    height: 38px;
  }
}

body.ota-public .ota-results-pro .ota-result-col-route--oneway {
  grid-template-columns: minmax(0, 1fr) minmax(68px, 0.72fr) minmax(0, 1fr);
  gap: 0.35rem 0.55rem;
  align-items: center;
}

body.ota-public .ota-results-pro .ota-result-col-route--stacked {
  gap: 0.3rem;
}

body.ota-public .ota-results-pro .ota-result-leg {
  min-height: 0;
}

body.ota-public .ota-results-pro .ota-result-col-route--oneway .ota-time-lg,
body.ota-public .ota-results-pro .ota-result-leg .ota-time-lg {
  font-size: 22px;
  line-height: 1.05;
  letter-spacing: -0.02em;
}

body.ota-public .ota-results-pro .ota-result-leg__date {
  font-size: var(--ota-fs-meta-lg);
  margin-top: 0.05rem;
  line-height: 1.2;
}

body.ota-public .ota-results-pro .ota-result-leg__code {
  font-size: 12px;
  font-weight: 600;
  margin-top: 0.08rem;
  letter-spacing: 0.03em;
}

body.ota-public .ota-results-pro .ota-result-leg__city {
  font-size: var(--ota-fs-meta-lg);
  margin-top: 0.04rem;
  line-height: 1.2;
  font-weight: 500;
}

body.ota-public .ota-results-pro .ota-result-route-line {
  gap: 0.15rem;
}

body.ota-public .ota-results-pro .ota-result-route-line__dur {
  font-size: var(--ota-fs-meta-lg);
  line-height: 1.2;
}

body.ota-public .ota-results-pro .ota-result-route-line__track {
  max-width: 76px;
  margin: 0.05rem 0;
}

body.ota-public .ota-results-pro .ota-result-route-line__dot {
  width: 6px;
  height: 6px;
  border-width: 1.5px;
}

body.ota-public .ota-results-pro .ota-result-route-line__stops {
  font-size: var(--ota-fs-meta);
  line-height: 1.2;
}

body.ota-public .ota-results-pro .ota-result-stops-badge {
  display: none;
}

body.ota-public .ota-results-pro .ota-result-col-price {
  gap: 0.3rem;
}

body.ota-public .ota-results-pro .ota-result-col-price .ota-price-stack {
  display: none;
  margin: 0;
}

body.ota-public .ota-results-pro .ota-result-actions-book {
  flex: 0 0 auto;
  width: 100%;
  max-width: 118px;
}

body.ota-public .ota-results-pro .ota-result-price-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
}

body.ota-public .ota-results-pro .ota-result-price-btn__amount {
  font-size: 16px;
  font-style: italic;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.01em;
}

body.ota-public .ota-results-pro .ota-result-passenger-mix {
  font-size: 11px;
  line-height: 1.25;
  color: #64748b;
  margin: 0;
  text-align: right;
}

body.ota-public .ota-results-pro .ota-result-action-meta {
  margin: 0;
  padding: 0;
  border: none;
  text-align: right;
}

body.ota-public .ota-results-pro .ota-result-action-meta .ota-flight-details-trigger {
  font-size: 10px;
  font-weight: 500;
  color: #94a3b8;
  padding: 0;
  text-align: right;
}

body.ota-public .ota-results-pro .ota-result-action-meta .ota-flight-details-trigger:hover,
body.ota-public .ota-results-pro .ota-result-action-meta .ota-flight-details-trigger:focus {
  color: #64748b;
  text-decoration: underline;
  background: transparent;
}

body.ota-public .ota-results-pro .flight-card-source-badge,
body.ota-public .flight-card-source-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 11px;
  line-height: 1;
  padding: 4px 7px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.04);
  color: #64748b;
  border: 1px solid rgba(148, 163, 184, 0.25);
  white-space: nowrap;
  margin-top: 6px;
  margin-left: auto;
}

body.ota-public .ota-results-pro .ota-result-col-price .flight-card-source-badge {
  display: inline-flex;
  width: fit-content;
  margin-left: auto;
  margin-right: 0;
}

body.ota-public .ota-results-pro .ota-result-card-v3 .ota-result-actions-book .ota-btn-book.btn-primary {
  min-width: 0;
  width: 100%;
  min-height: 36px;
  padding: 0.4rem 0.65rem;
  font-size: var(--ota-fs-input-lg);
  font-weight: 700;
  border-radius: 8px;
  box-shadow: 0 4px 10px rgba(30, 64, 175, 0.14);
}

body.ota-public .ota-results-pro .ota-result-card-meta {
  margin-top: 0.35rem;
  padding-top: 0.35rem;
  min-height: 0;
  gap: 0.45rem;
}

body.ota-public .ota-results-pro .ota-result-card-v3__flight-details-row {
  margin-top: 0.28rem;
}

body.ota-public .ota-results-pro .ota-result-card-v3__flight-details-row .ota-flight-details-trigger {
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  padding: 0;
  font-size: var(--ota-fs-input);
  font-weight: 600;
  line-height: 1.25;
}

body.ota-public .ota-results-pro .ota-flight-details-trigger {
  font-size: var(--ota-fs-input);
  font-weight: 600;
  padding: 0.1rem 0;
  line-height: 1.25;
}

body.ota-public .ota-results-pro .ota-result-card-v3--round-compact .ota-result-card-v3__round {
  gap: 0.55rem;
}

body.ota-public .ota-results-pro .ota-result-card-v3--round-compact {
  padding: 10px 14px 8px;
}

/* —— Nearby date strip —— */
body.ota-public .ota-results-pro .ota-date-price-strip {
  margin: 0 0 8px;
}

body.ota-public .ota-results-pro .ota-date-price-strip__inner {
  gap: 0.45rem;
}

body.ota-public .ota-results-pro .ota-date-price-chip {
  min-height: 64px;
  padding: 9px 12px;
  gap: 0.18rem;
  border-radius: 9px;
}

body.ota-public .ota-results-pro .ota-date-price-chip__date {
  font-size: var(--ota-fs-strip-date);
  line-height: 1.25;
}

body.ota-public .ota-results-pro .ota-date-price-chip__price {
  font-size: var(--ota-fs-strip-price);
  line-height: 1.2;
}

/* —— Branded fare cards —— */
body.ota-public .ota-results-pro .ota-branded-fares-panel {
  margin-top: 0.28rem;
  padding-top: 0;
  border-top: none;
}

body.ota-public .ota-results-pro .ota-result-card-v3.is-fare-options-open .ota-branded-fares-panel__body:not([hidden]) {
  margin-top: 0.28rem;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(148, 163, 184, 0.12);
}

body.ota-public .ota-results-pro .ota-branded-fares-panel__toggle {
  font-size: var(--ota-fs-input);
  padding: 0.05rem 0;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel__grid {
  gap: 0.625rem;
  margin-top: 0.35rem;
  align-items: stretch;
}

body.ota-public .ota-results-pro .ota-branded-fare-card {
  min-width: 0;
  padding: 8px 9px;
  border-radius: 8px;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__head {
  gap: 0.28rem;
  margin-bottom: 0.22rem;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__name {
  font-size: 0.8125rem;
  line-height: 1.15;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__variant {
  margin-top: 0.1rem;
  font-size: 0.6875rem;
  line-height: 1.2;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__features {
  gap: 0.12rem;
  margin-bottom: 0.22rem;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__feature {
  font-size: 0.6875rem;
  gap: 0.28rem;
  line-height: 1.15;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__feature-label {
  font-size: 0.6875rem;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__feature-value {
  font-size: 0.6875rem;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__price {
  margin-bottom: 0;
  font-size: 0.9375rem;
  line-height: 1.1;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__actions {
  gap: 0.25rem;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__details,
body.ota-public .ota-results-pro .ota-branded-fare-card__cta {
  min-height: 34px;
  padding: 0.22rem 0.45rem;
  font-size: 12px;
  border-radius: 7px;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__details {
  border: 1px solid rgba(37, 99, 235, 0.45);
  background: #fff;
  color: #2563eb;
  font-weight: 600;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__details:hover,
body.ota-public .ota-results-pro .ota-branded-fare-card__details:focus {
  border-color: #2563eb;
  background: #eff6ff;
  color: #1d4ed8;
}

body.ota-public .ota-results-pro .ota-fare-family-selection-hint {
  margin-top: 0.3rem;
  font-size: var(--ota-fs-meta-lg);
}

/* —— Flight Details modal —— */
body.ota-public .ota-flight-details-modal__panel {
  width: min(800px, calc(100vw - 2rem));
  max-height: min(86vh, 780px);
  border-radius: 12px;
}

body.ota-public .ota-flight-details-modal__head,
body.ota-public .ota-flight-details-modal__footer {
  padding: 0.55rem 0.75rem;
}

body.ota-public .ota-flight-details-modal__body {
  padding: 0.55rem 0.75rem 0.7rem;
}

body.ota-public .ota-flight-details-modal__title {
  font-size: 17px;
  line-height: 1.2;
}

body.ota-public .ota-flight-details-modal__subtitle {
  font-size: var(--ota-fs-meta-lg);
  margin-top: 0.12rem;
}

body.ota-public .ota-flight-details-modal__footer .btn {
  min-height: 36px;
  padding: 0.35rem 0.85rem;
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-tabs-wrap {
  margin-bottom: 0.45rem;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-tabs {
  gap: 0.25rem;
  padding: 0.15rem;
  margin-bottom: 0.45rem;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-tab {
  min-width: 4.75rem;
  padding: 0.35rem 0.55rem;
  font-size: var(--ota-fs-input);
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-journeys-stack {
  gap: 0.55rem;
  margin-bottom: 0.45rem;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-journey-card {
  padding: 0.55rem 0.65rem 0.6rem;
  border-radius: 8px;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-journey-header {
  gap: 0.45rem;
  margin-bottom: 0.45rem;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-journey-header__logo.ota-airline-logo {
  width: 32px;
  height: 32px;
  font-size: 0.62rem;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-journey-header__logo.ota-airline-logo--img img {
  width: 32px;
  height: 32px;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-journey-header__title {
  font-size: var(--ota-fs-input-lg);
  margin-bottom: 0.08rem;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-journey-header__route {
  font-size: var(--ota-fs-input);
  margin-bottom: 0.25rem;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-journey-header__chip {
  font-size: var(--ota-fs-meta);
  padding: 0.16rem 0.4rem;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-journey-route {
  gap: 0.35rem 0.45rem;
  margin-bottom: 0.45rem;
  padding-bottom: 0.45rem;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-journey-route__time {
  font-size: 22px;
  line-height: 1.05;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-journey-route__code {
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-journey-route__city,
body.ota-public .ota-flight-details-modal .ota-flight-detail-journey-route__date,
body.ota-public .ota-flight-details-modal .ota-flight-detail-journey-route__date-row {
  font-size: var(--ota-fs-meta-lg);
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-segments {
  gap: 0.4rem;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-segment-card {
  padding: 0.5rem 0.6rem;
  border-radius: 8px;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-segment-card__head {
  gap: 0.3rem 0.4rem;
  margin-bottom: 0.35rem;
  padding-bottom: 0.35rem;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-segment-card__badge {
  font-size: var(--ota-fs-meta);
  padding: 0.12rem 0.4rem;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-segment-card__airline {
  font-size: var(--ota-fs-input);
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-segment-card__fn {
  font-size: var(--ota-fs-meta-lg);
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-segment-card__time {
  font-size: 22px;
  line-height: 1.05;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-segment-card__code {
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-segment-card__city,
body.ota-public .ota-flight-details-modal .ota-flight-detail-segment-card__date {
  font-size: var(--ota-fs-meta-lg);
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-segment-card__meta {
  gap: 0.25rem 0.45rem;
  margin-top: 0.25rem;
  padding-top: 0.25rem;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-segment-card__meta-item {
  font-size: var(--ota-fs-meta-lg);
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-layover-divider {
  margin: 0.1rem 0;
  padding: 0.35rem 0.5rem;
  border-radius: 8px;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-layover-divider__label {
  font-size: var(--ota-fs-meta);
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-layover-divider__text {
  font-size: var(--ota-fs-meta-lg);
  line-height: 1.3;
}

/* —— Fare Summary modal —— */
body.ota-public .ota-fare-summary-modal__panel {
  max-width: min(540px, calc(100vw - 2rem));
  border-radius: 12px;
}

body.ota-public .ota-fare-summary-modal__head {
  padding: 10px 12px 6px;
}

body.ota-public .ota-fare-summary-modal__title,
body.ota-public .ota-fare-breakdown-modal__title {
  font-size: 17px;
}

body.ota-public .ota-fare-summary-modal__subtitle,
body.ota-public .ota-fare-summary-modal__route {
  font-size: var(--ota-fs-meta-lg);
  margin-top: 2px;
}

body.ota-public .ota-fare-summary-modal__tabs-wrap {
  padding: 0 12px 6px;
}

body.ota-public .ota-fare-summary-modal__tab {
  padding: 0.32rem 0.4rem;
  font-size: var(--ota-fs-input);
  min-width: 4.25rem;
}

body.ota-public .ota-fare-summary-modal__body {
  padding: 2px 12px 8px;
  font-size: var(--ota-fs-input);
}

body.ota-public .ota-fare-summary-modal__baggage-row {
  padding: 0.45rem 0.55rem;
  gap: 0.45rem;
  border-radius: 8px;
}

body.ota-public .ota-fare-summary-modal__baggage-row i {
  width: 1.5rem;
  height: 1.5rem;
  font-size: var(--ota-fs-meta-lg);
}

body.ota-public .ota-fare-summary-modal__baggage-label {
  font-size: var(--ota-fs-meta-lg);
}

body.ota-public .ota-fare-summary-modal__baggage-value {
  font-size: var(--ota-fs-input);
  margin-top: 0.08rem;
}

body.ota-public .ota-fare-summary-modal__panel-content[data-fare-summary-panel="baggage"] {
  gap: 0.35rem;
  padding: 0.4rem;
  border-radius: 8px;
}

body.ota-public .ota-fare-summary-table th,
body.ota-public .ota-fare-summary-table td {
  padding: 0.38rem 0.45rem;
}

body.ota-public .ota-fare-summary-table {
  font-size: var(--ota-fs-input);
}

body.ota-public .ota-fare-summary-table__grand-note {
  font-size: var(--ota-fs-meta);
}

body.ota-public .ota-fare-summary-table__grand-total {
  font-size: 15px;
}

body.ota-public .ota-fare-summary-modal__footer {
  padding: 8px 12px 10px;
  gap: 0.5rem;
}

body.ota-public .ota-fare-summary-modal__total-label {
  font-size: var(--ota-fs-meta-lg);
}

body.ota-public .ota-fare-summary-modal__total-value {
  font-size: 1.125rem;
  line-height: 1.1;
}

body.ota-public .ota-fare-summary-modal__actions .btn {
  min-height: 36px;
  padding: 0.35rem 0.75rem;
  font-size: var(--ota-fs-input-lg);
}

body.ota-public .ota-fare-summary-modal__disclaimer {
  font-size: var(--ota-fs-meta);
  margin-top: 0.25rem;
}

body.ota-public .ota-fare-summary-modal .ota-flight-detail-journey-route__time,
body.ota-public .ota-fare-summary-modal .ota-flight-detail-segment-card__time {
  font-size: 21px;
}

body.ota-public .ota-fare-summary-modal .ota-flight-detail-segment-card {
  padding: 0.45rem 0.55rem;
}

body.ota-public .ota-fare-summary-modal .ota-flight-detail-layover-divider {
  margin: 0.25rem 0;
  padding: 0.35rem 0.5rem;
}

@media (max-width: 991px) {
  body.ota-public .ota-results-pro .ota-result-card-v3 .ota-result-card-main {
    grid-template-columns: minmax(0, 1fr) minmax(104px, 0.82fr);
    gap: 8px 10px;
  }

  body.ota-public .ota-results-pro .ota-result-col-route--oneway {
    grid-column: 1 / -1;
  }
}

@media (max-width: 767px) {
  body.ota-public .ota-results-pro .ota-result-pro-card.ota-result-card-v3 {
    padding: 10px 12px 8px;
  }

  body.ota-public .ota-results-pro .ota-result-card-v3 .ota-result-card-main {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  body.ota-public .ota-results-pro .ota-result-col-price {
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-start;
    text-align: right;
    gap: 0.3rem;
    padding-top: 0.35rem;
    border-top: 1px solid rgba(148, 163, 184, 0.18);
  }

  body.ota-public .ota-results-pro .ota-result-passenger-mix,
  body.ota-public .ota-results-pro .ota-result-action-meta {
    text-align: right;
    width: 100%;
    max-width: 118px;
  }

  body.ota-public .ota-results-pro .ota-result-actions-book {
    max-width: 112px;
  }

  body.ota-public .ota-results-pro .ota-branded-fares-panel__grid:not(.ota-branded-fares-panel__grid--slider) {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ==========================================================================
   OTA-FLIGHT-DETAILS-MODAL-CLEANUP-1 — itinerary-only modal; hide fare-policy block
   ========================================================================== */

body.ota-public .ota-flight-details-modal .ota-flight-detail-journey-info {
  display: none !important;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-journey-card {
  padding: 0.45rem 0 0.5rem;
  background: transparent;
  border: 0;
  box-shadow: none;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-journey-header {
  margin-bottom: 0.3rem;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-journey-route {
  margin-bottom: 0.3rem;
  padding-bottom: 0.3rem;
  border-bottom: 1px solid rgba(148, 163, 184, 0.14);
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-journeys-stack {
  gap: 0.45rem;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-segments {
  gap: 0.3rem;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-segment-card {
  background: #f8fafc;
  border-color: rgba(148, 163, 184, 0.22);
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-layover-divider {
  margin: 0.08rem 0;
  padding: 0.28rem 0.45rem;
  background: #fffbeb;
  border-style: dashed;
}

body.ota-public .ota-flight-details-modal .ota-flight-detail-tabs-wrap {
  margin-bottom: 0.35rem;
}

body.ota-public .ota-flight-details-modal__body {
  padding: 0.5rem 0.75rem 0.65rem;
}

body.ota-public .ota-flight-details-modal__footer {
  padding: 0.45rem 0.75rem;
}

/* ==========================================================================
   OTA-PUBLIC-BRANDED-FARE-CORRECTNESS-SOFTENING-1 — softer type, aligned fares, compact modal
   ========================================================================== */

body.ota-public .ota-results-pro .ota-result-card-v3 .ota-airline-name,
body.ota-public .ota-results-pro .ota-result-col-brand .ota-result-carrier-face__names {
  font-weight: 600;
  color: #3d4f63;
}

body.ota-public .ota-results-pro .ota-result-card-v3 .ota-result-leg__date,
body.ota-public .ota-results-pro .ota-result-card-v3 .ota-result-leg__city,
body.ota-public .ota-results-pro .ota-result-route-line__dur,
body.ota-public .ota-results-pro .ota-result-route-line__stops {
  font-weight: 400;
  color: #64748b;
}

body.ota-public .ota-results-pro .ota-result-card-v3 .ota-result-leg__city {
  font-weight: 500;
  color: #566578;
}

body.ota-public .ota-results-pro .ota-result-card-v3 .ota-price-lg {
  font-weight: 600;
  color: #2f3f56;
}

body.ota-public .ota-results-pro .ota-filter-title,
body.ota-public .ota-results-pro .ota-filter-card h4 {
  font-weight: 600;
  color: #475569;
}

body.ota-public .ota-results-pro .ota-filter-section > summary {
  font-weight: 500;
  color: #64748b;
}

body.ota-public .ota-branded-fare-card__name {
  font-weight: 600;
  color: #334155;
}

body.ota-public .ota-branded-fare-card__code {
  font-weight: 500;
  color: #94a3b8;
}

body.ota-public .ota-branded-fare-card__badge {
  font-weight: 600;
}

body.ota-public .ota-branded-fare-card__row-label {
  font-weight: 400;
  color: #64748b;
}

body.ota-public .ota-branded-fare-card__row-value {
  font-weight: 500;
  color: #475569;
}

body.ota-public .ota-branded-fare-card__price {
  font-weight: 600;
  color: #2f3f56;
}

body.ota-public .ota-branded-fare-card__details {
  font-weight: 500;
}

body.ota-public .ota-branded-fare-card__cta {
  font-weight: 600;
}

body.ota-public .ota-branded-fare-card__matrix {
  gap: 0.1rem;
}

body.ota-public .ota-branded-fare-card__footer {
  padding-top: 0.2rem;
  border-top-color: rgba(148, 163, 184, 0.1);
}

body.ota-public .ota-fare-summary-modal__title,
body.ota-public .ota-fare-breakdown-modal__title {
  font-weight: 600;
  color: #334155;
}

body.ota-public .ota-fare-summary-modal__subtitle,
body.ota-public .ota-fare-summary-modal__route {
  font-weight: 400;
  color: #64748b;
}

body.ota-public .ota-fare-summary-modal__tab {
  font-weight: 500;
  color: #64748b;
}

body.ota-public .ota-fare-summary-modal__tab.is-active {
  font-weight: 600;
  color: #334155;
}

body.ota-public .ota-fare-summary-modal__baggage-label {
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  color: #64748b;
}

body.ota-public .ota-fare-summary-modal__baggage-value {
  font-weight: 500;
  color: #475569;
}

body.ota-public .ota-fare-summary-modal__panel-content[data-fare-summary-panel="baggage"] {
  background: #fafbfc;
  border-color: rgba(148, 163, 184, 0.12);
}

body.ota-public .ota-fare-summary-table th {
  font-weight: 500;
  color: #64748b;
  font-size: 0.6875rem;
}

body.ota-public .ota-fare-summary-table td {
  font-weight: 400;
  color: #475569;
}

body.ota-public .ota-fare-summary-table__passenger {
  font-weight: 500;
}

body.ota-public .ota-fare-summary-table__qty {
  font-weight: 500;
  color: #64748b;
}

body.ota-public .ota-fare-summary-table__num--total {
  font-weight: 600;
  color: #334155;
}

body.ota-public .ota-fare-summary-modal__total-label {
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
}

body.ota-public .ota-fare-summary-modal__total-value {
  font-weight: 600;
  color: #2f3f56;
}

body.ota-public .ota-fare-summary-modal__disclaimer,
body.ota-public .ota-fare-breakdown-modal__disclaimer {
  font-size: 0.6rem;
  color: #94a3b8;
}

body.ota-public .ota-fare-summary-modal__policy-list strong {
  font-weight: 600;
  color: #475569;
}

body.ota-public .ota-fare-summary-modal__head {
  padding: 10px 12px 6px;
  border-bottom-color: rgba(148, 163, 184, 0.1);
}

body.ota-public .ota-fare-summary-modal__footer {
  border-top-color: rgba(148, 163, 184, 0.1);
}

body.ota-public .ota-fare-summary-modal__panel,
body.ota-public .ota-fare-breakdown-modal__panel {
  border-color: rgba(148, 163, 184, 0.12);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.1);
}

body.ota-public .ota-result-card-v3__flight-details-row .ota-flight-details-trigger {
  font-weight: 500;
  color: #2563eb;
}

/* ==========================================================================
   OTA-RESULT-CARD-PRICE-BUTTON-LOGO-TUNE-1 — header logo visibility + price-in-button CTA
   ========================================================================== */

body.ota-public .ota-results-pro .ota-result-col-price {
  gap: 0.28rem;
}

body.ota-public .ota-results-pro .ota-result-actions-book {
  order: 1;
}

body.ota-public .ota-results-pro .ota-result-passenger-mix {
  order: 2;
}

body.ota-public .ota-results-pro .ota-result-action-meta {
  order: 3;
}

/* ==========================================================================
   OTA-BRANDED-FARE-LAYOUT-MATCH-SAMPLE-1 — full-width grid, no carousel ≤3
   ========================================================================== */

body.ota-public .ota-results-pro .ota-result-card-v3 > .ota-branded-fares-panel {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  flex: 1 1 100%;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel__body {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: visible;
}

body.ota-public .ota-branded-fares-panel__heading {
  margin: 0 0 0.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #64748b;
  line-height: 1.3;
}

/* Grid mode (1–3 fare options): plain grid, no carousel behaviour */
body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--grid,
body.ota-public .ota-results-pro .ota-branded-fares-panel__grid[data-fare-count] {
  display: grid !important;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  gap: 0.75rem;
  overflow: visible;
  flex-wrap: unset !important;
  scroll-snap-type: none !important;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--grid[data-fare-count="1"] {
  grid-template-columns: minmax(0, 1fr);
  max-width: 360px;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--grid[data-fare-count="2"] {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--grid[data-fare-count="3"] {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Desktop: force 3 equal columns for exactly 3 options */
@media (min-width: 1024px) {
  body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--grid[data-fare-count="3"] {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* Tablet: 2 columns for 3 options when narrow */
@media (min-width: 640px) and (max-width: 1023px) {
  body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--grid[data-fare-count="3"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Mobile: stack all grid-mode cards */
@media (max-width: 639px) {
  body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--grid[data-fare-count] {
    grid-template-columns: minmax(0, 1fr) !important;
    max-width: none;
  }
}

/* Grid-mode cards: equal height, no clipping */
body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--grid .ota-branded-fare-card {
  width: auto;
  max-width: none;
  min-width: 0;
  flex: unset;
  padding: 8px 9px;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--grid .ota-branded-fare-card__name {
  font-size: 0.8125rem;
  font-weight: 600;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--grid .ota-branded-fare-card__row {
  grid-template-columns: 12px minmax(0, 1fr) auto;
  gap: 0.2rem 0.3rem;
  min-height: 1.1rem;
  font-size: 0.6875rem;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--grid .ota-branded-fare-card__row-label {
  font-size: 0.6875rem;
}

/* Grid mode: show full short values — no ellipsis clipping */
body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--grid .ota-branded-fare-card__row-value {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  max-width: none;
  min-width: 0;
  font-size: 0.6875rem;
  word-break: break-word;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--grid .ota-branded-fare-card__price {
  font-size: 0.9375rem;
  font-weight: 600;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--grid .ota-branded-fare-card__details,
body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--grid .ota-branded-fare-card__cta {
  min-height: 34px;
  font-size: 12px;
}

/* Carousel only when >3 options — hide nav if grid mode is active */
body.ota-public .ota-results-pro .ota-branded-fares-panel__body:not(:has(.ota-branded-fares-panel__grid--slider)) .ota-branded-fares-carousel__nav {
  display: none !important;
}

/* Carousel mode (>3): 3 cards per viewport on desktop */
body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--slider {
  display: flex !important;
  flex-wrap: nowrap;
  gap: var(--ota-branded-fares-gap);
  width: max-content;
  min-width: 100%;
}

body.ota-public .ota-results-pro .ota-branded-fares-carousel__viewport {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

body.ota-public .ota-results-pro .ota-branded-fares-carousel__viewport::-webkit-scrollbar {
  display: none;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--slider .ota-branded-fare-card {
  flex: 0 0 var(--ota-branded-fare-card-width, 264px);
  width: var(--ota-branded-fare-card-width, 264px);
  min-width: var(--ota-branded-fare-card-width, 264px);
  max-width: var(--ota-branded-fare-card-width, 264px);
  scroll-snap-align: start;
}

/* ==========================================================================
   OTA-BRANDED-FARE-LAYOUT-HARD-FIX-2 — rendered count grid, 3-up carousel, no clip
   ========================================================================== */

body.ota-public .ota-results-pro .ota-result-pro-card.ota-result-card-v3 {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

body.ota-public .ota-results-pro .ota-result-card-v3 > .ota-branded-fares-panel {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  flex: 0 0 auto;
  align-self: stretch;
}

body.ota-public .ota-results-pro .ota-branded-fares-carousel {
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

body.ota-public .ota-results-pro .ota-branded-fares-carousel__viewport {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  container-type: inline-size;
  container-name: branded-fares-viewport;
}

body.ota-public .ota-results-pro .ota-branded-fares-carousel__nav {
  position: absolute;
  top: 50%;
  z-index: 3;
  transform: translateY(-50%);
  margin: 0;
}

body.ota-public .ota-results-pro .ota-branded-fares-carousel__nav--prev {
  left: -6px;
}

body.ota-public .ota-results-pro .ota-branded-fares-carousel__nav--next {
  right: -6px;
}

body.ota-public .ota-results-pro .ota-branded-fares-carousel[data-nav-hidden="true"] .ota-branded-fares-carousel__nav,
body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-carousel__nav {
  display: none !important;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--slider {
  gap: var(--ota-branded-fares-gap);
}

body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--grid,
body.ota-public .ota-results-pro .ota-branded-fares-panel__grid[data-fare-count] {
  overflow: visible !important;
  scroll-snap-type: none !important;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-carousel,
body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-carousel__viewport {
  overflow: visible !important;
  scroll-snap-type: none !important;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__row {
  grid-template-columns: 14px minmax(0, 1fr) max-content !important;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__row-value {
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
  max-width: none !important;
  min-width: max-content !important;
  word-break: normal !important;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__row-value.is-long-policy {
  min-width: 0 !important;
  max-width: 12rem !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__actions {
  display: flex;
  align-items: stretch;
  gap: 0.35rem;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__details,
body.ota-public .ota-results-pro .ota-branded-fare-card__cta {
  flex: 1 1 0;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ==========================================================================
   OTA-BRANDED-FARES-3UP-HARD-FIX-3 — authoritative grid/carousel layout overrides
   ========================================================================== */

/* Full-width branded fare panel under result card main row */
body.ota-public .ota-results-pro .ota-result-pro-card.ota-result-card-v3 {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
}

body.ota-public .ota-results-pro .ota-result-card-v3 .ota-branded-fares-panel,
body.ota-public .ota-results-pro .ota-result-card-v3 > .ota-branded-fares-panel {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  flex: 0 0 100% !important;
  grid-column: 1 / -1 !important;
  align-self: stretch !important;
  box-sizing: border-box !important;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel__body {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: visible !important;
}

/* Grid mode (1–3 rendered cards): no carousel behaviour */
body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-panel__grid {
  display: grid !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  gap: 10px !important;
  overflow: visible !important;
  flex-wrap: unset !important;
  scroll-snap-type: none !important;
  transform: none !important;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-panel__grid[data-fare-count="1"] {
  grid-template-columns: minmax(0, 1fr) !important;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-panel__grid[data-fare-count="2"] {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-panel__grid[data-fare-count="3"] {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
  width: 100% !important;
  overflow: visible !important;
}

/* Desktop: always 3 equal columns when exactly 3 rendered options */
@media (min-width: 1024px) {
  body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-panel__grid[data-fare-count="3"] {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* Tablet: 2 columns for 3 options */
@media (min-width: 640px) and (max-width: 1023px) {
  body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-panel__grid[data-fare-count="3"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Mobile: stack grid-mode cards */
@media (max-width: 639px) {
  body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-panel__grid[data-fare-count] {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* Hide slider arrows whenever grid mode is active or rendered count is 1–3 */
body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-carousel__nav,
body.ota-public .ota-results-pro .ota-branded-fares-panel[data-rendered-fare-count="1"] .ota-branded-fares-carousel__nav,
body.ota-public .ota-results-pro .ota-branded-fares-panel[data-rendered-fare-count="2"] .ota-branded-fares-carousel__nav,
body.ota-public .ota-results-pro .ota-branded-fares-panel[data-rendered-fare-count="3"] .ota-branded-fares-carousel__nav,
body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="false"] [data-branded-fares-prev],
body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="false"] [data-branded-fares-next] {
  display: none !important;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-carousel,
body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-carousel__viewport {
  overflow: visible !important;
  scroll-snap-type: none !important;
}

/* Carousel mode (>3): full-width viewport, nav outside flow */
body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="true"] .ota-branded-fares-carousel {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="true"] .ota-branded-fares-carousel__viewport {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: hidden !important;
  overflow-y: hidden !important;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
  container-type: inline-size !important;
  container-name: branded-fares-viewport !important;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="true"] .ota-branded-fares-carousel__viewport::-webkit-scrollbar {
  display: none;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="true"] .ota-branded-fares-carousel__nav {
  position: absolute !important;
  top: 50% !important;
  z-index: 4 !important;
  transform: translateY(-50%) !important;
  flex: none !important;
  margin: 0 !important;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="true"] .ota-branded-fares-carousel__nav--prev {
  left: -8px !important;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="true"] .ota-branded-fares-carousel__nav--next {
  right: -8px !important;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="true"] .ota-branded-fares-carousel[data-nav-hidden="true"] .ota-branded-fares-carousel__nav {
  display: none !important;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="true"] .ota-branded-fares-panel__grid--slider {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: var(--ota-branded-fares-gap) !important;
  width: max-content !important;
  min-width: 100% !important;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="true"] .ota-branded-fares-panel__grid--slider .ota-branded-fare-card {
  flex: 0 0 calc((100cqw - (var(--ota-branded-fares-visible) - 1) * var(--ota-branded-fares-gap)) / var(--ota-branded-fares-visible)) !important;
  max-width: calc((100cqw - (var(--ota-branded-fares-visible) - 1) * var(--ota-branded-fares-gap)) / var(--ota-branded-fares-visible)) !important;
  min-width: 0 !important;
  width: auto !important;
  scroll-snap-align: start;
}

/* Compact fare-option cards */
body.ota-public .ota-results-pro .ota-branded-fare-card {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
  min-height: 100% !important;
  padding: 10px 12px !important;
  gap: 8px !important;
  border: 1px solid rgba(148, 163, 184, 0.26) !important;
  border-radius: 10px !important;
  background: #fff !important;
  box-shadow: none !important;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__name {
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__matrix {
  gap: 7px !important;
  margin: 0 !important;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__row {
  display: grid !important;
  grid-template-columns: 14px minmax(0, 1fr) max-content !important;
  align-items: center !important;
  column-gap: 7px !important;
  font-size: 11px !important;
  line-height: 1.25 !important;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__row-label {
  font-size: 11px !important;
  min-width: 0 !important;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__row-value {
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
  max-width: none !important;
  min-width: max-content !important;
  justify-self: end !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__row-value.is-long-policy {
  min-width: 0 !important;
  max-width: 11rem !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  text-overflow: clip !important;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__price {
  font-size: 16px !important;
  font-weight: 700 !important;
  margin: 0 !important;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__details,
body.ota-public .ota-results-pro .ota-branded-fare-card__cta {
  min-height: 32px !important;
  height: 32px !important;
  font-size: 11px !important;
  padding: 0 0.5rem !important;
  border-radius: 8px !important;
  line-height: 1.2 !important;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__footer {
  margin-top: auto !important;
  padding-top: 8px !important;
  border-top: 1px solid rgba(148, 163, 184, 0.12) !important;
}

body.ota-public .ota-results-pro .ota-branded-fare-card__actions {
  display: flex !important;
  align-items: stretch !important;
  gap: 6px !important;
}

/* ========== OTA-POPUP-OVERLAY-PRIORITY-CALENDAR-COMPACT-1 — overlay stack ========== */
body.ota-public .ota-date-modal--open,
body.ota-public .ota-date-modal:not([hidden]).ota-date-modal--open {
  z-index: var(--ota-z-date-popover);
}

body.ota-public .ota-date-modal--open.ota-date-modal--sheet,
body.ota-public .ota-date-modal:not([hidden]).ota-date-modal--open.ota-date-modal--sheet {
  z-index: var(--ota-z-date-sheet);
}

body.ota-public .ota-account-dropdown,
body.ota-public .public-signup-dropdown {
  z-index: var(--ota-z-dropdown);
}

body.ota-public .ota-airport-suggest,
body.ota-public .ota-refine-field--airport .ota-airport-suggest {
  z-index: var(--ota-z-autocomplete);
}

body.ota-public .ota-hero-search-pax__panel {
  z-index: var(--ota-z-dropdown);
}

body.ota-public .ota-fare-summary-modal,
body.ota-public .ota-fare-breakdown-modal {
  z-index: var(--ota-z-modal);
}

body.ota-public .ota-filter-backdrop {
  z-index: var(--ota-z-modal-backdrop);
}

body.ota-public .flatpickr-calendar,
body.ota-public .daterangepicker,
body.ota-public .litepicker,
body.ota-public .air-datepicker,
body.ota-public .ui-datepicker {
  z-index: var(--ota-z-date-popover) !important;
}

body.ota-public .modal-backdrop {
  z-index: var(--ota-z-modal-backdrop) !important;
}

body.ota-public .modal {
  z-index: var(--ota-z-modal) !important;
}

body.ota-public .dropdown-menu {
  z-index: var(--ota-z-dropdown);
}

body.ota-public .swal2-container {
  z-index: var(--ota-z-toast) !important;
}

body.ota-public .toast-container,
body.ota-public .toast {
  z-index: var(--ota-z-toast);
}

body.ota-public .ota-hero-search-validate-overlay {
  z-index: var(--ota-z-toast);
}

/* Compact calendar — mobile viewport fit */
@media (max-width: 767.98px) {
  body.ota-public .ota-date-modal--open.ota-date-modal--sheet .ota-date-modal__dialog {
    max-height: calc(100dvh - var(--ota-fixed-header-height) - 16px);
  }

  body.ota-public .ota-date-modal__body {
    max-height: calc(100dvh - var(--ota-fixed-header-height) - 148px);
  }

  body.ota-public .ota-return-range-picker__grid {
    grid-template-columns: repeat(7, minmax(30px, 1fr));
    gap: 4px;
  }

  body.ota-public .ota-return-range-picker__day {
    min-width: 30px;
    min-height: 30px;
    font-size: 0.8125rem;
  }
}

/* ==========================================================================
   OTA-PLATFORM-WIDE-COMPACT-UI-AUDIT-AND-POLISH-1
   Shared compact typography/spacing for public shell. CSS-only; no layout
   moves. Excludes .ota-results-pro and .ota-checkout-page (prior sprints).
   ========================================================================== */

/* —— Auth access: login, register, forgot, reset —— */
body.ota-public .ota-auth-page--login .ota-auth-shell.auth-shell {
  min-height: auto;
  padding-top: 0.85rem;
  padding-bottom: clamp(1.25rem, 3vw, 2rem);
}

body.ota-public .ota-auth-access .ota-login-title,
body.ota-public .ota-auth-access .ota-register-title,
body.ota-public .ota-auth-access .ota-forgot-title,
body.ota-public .ota-auth-access .ota-auth-flow__header h2 {
  font-size: var(--ota-compact-fs-page-title);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: var(--ota-compact-lh-tight);
  color: var(--ota-compact-text);
}

body.ota-public .ota-auth-access .ota-login-subtitle,
body.ota-public .ota-auth-access .ota-register-subtitle,
body.ota-public .ota-auth-access .ota-forgot-subtitle,
body.ota-public .ota-auth-access .ota-auth-help {
  font-size: var(--ota-compact-fs-body-md);
  line-height: var(--ota-compact-lh);
  color: var(--ota-compact-text-soft);
  font-weight: 400;
}

body.ota-public .ota-auth-access .ota-label,
body.ota-public .ota-auth-access .ota-auth-label {
  font-size: var(--ota-compact-fs-label-md);
  font-weight: 600;
  color: var(--ota-compact-text);
}

body.ota-public .ota-auth-access .ota-input,
body.ota-public .ota-auth-access .ota-select,
body.ota-public .ota-auth-access .ota-auth-input {
  min-height: var(--ota-compact-input-h);
  padding: 0.45rem 0.75rem;
  font-size: var(--ota-compact-fs-body-md);
  line-height: var(--ota-compact-lh-tight);
  border-radius: var(--ota-compact-radius);
  border-color: var(--ota-compact-border-soft);
}

body.ota-public .ota-auth-access .ota-field,
body.ota-public .ota-auth-access .ota-auth-group {
  gap: var(--ota-compact-gap-field);
}

body.ota-public .ota-auth-access .ota-login-form,
body.ota-public .ota-auth-access .ota-register-form,
body.ota-public .ota-auth-access .ota-forgot-form,
body.ota-public .ota-auth-access .ota-auth-flow__form {
  gap: var(--ota-compact-gap-form);
}

body.ota-public .ota-auth-access .ota-login-compact,
body.ota-public .ota-auth-access .ota-register-compact,
body.ota-public .ota-auth-access .ota-forgot-compact,
body.ota-public .ota-auth-access .ota-auth-flow {
  gap: var(--ota-compact-gap-section);
}

body.ota-public .ota-auth-access .ota-btn-primary,
body.ota-public .ota-auth-access .ota-auth-btn {
  min-height: var(--ota-compact-btn-h-lg);
  font-size: var(--ota-compact-fs-body-md);
  font-weight: 700;
  border-radius: var(--ota-compact-radius);
}

body.ota-public .ota-auth-access .ota-alert,
body.ota-public .ota-auth-access .ota-auth-alert {
  padding: 0.55rem 0.7rem;
  border-radius: var(--ota-compact-radius);
  font-size: var(--ota-compact-fs-body-md);
  line-height: var(--ota-compact-lh);
}

body.ota-public .ota-auth-access .ota-error,
body.ota-public .ota-auth-access .ota-auth-error,
body.ota-public .ota-auth-access .field-error {
  font-size: var(--ota-compact-fs-label);
  line-height: var(--ota-compact-lh);
}

body.ota-public .ota-auth-access .ota-auth-field-hint {
  margin: 0;
  font-size: var(--ota-compact-fs-body);
  line-height: var(--ota-compact-lh);
  color: var(--ota-compact-text-soft);
}

body.ota-public .ota-auth-access .auth-card {
  border-radius: var(--ota-compact-radius-card);
  padding: clamp(1rem, 2.8vw, 1.45rem);
}

body.ota-public .ota-auth-access .ota-auth-brand {
  margin-bottom: 0.85rem;
}

body.ota-public .ota-auth-access .ota-auth-brand-text strong {
  font-size: 0.9375rem;
  font-weight: 700;
}

body.ota-public .ota-auth-access .ota-auth-brand-text small {
  font-size: var(--ota-compact-fs-label);
  font-weight: 500;
}

body.ota-public .ota-auth-access .ota-auth-brand-mark {
  width: 40px;
  height: 40px;
  border-radius: var(--ota-compact-radius);
}

body.ota-public .ota-auth-access .ota-auth-row,
body.ota-public .ota-auth-access .ota-login-options,
body.ota-public .ota-auth-access .ota-register-terms {
  font-size: var(--ota-compact-fs-body-md);
  color: var(--ota-compact-text-soft);
}

body.ota-public .ota-auth-access .auth-social-btn {
  min-height: var(--ota-compact-input-h);
  font-size: var(--ota-compact-fs-body-md);
}

body.ota-public .ota-auth-access .ota-login-footer-links,
body.ota-public .ota-auth-access .ota-register-links,
body.ota-public .ota-auth-access .ota-forgot-links,
body.ota-public .ota-auth-access .ota-auth-flow__footer {
  padding-top: 0.75rem;
  font-size: var(--ota-compact-fs-body);
}

/* Login page refinements */
body.ota-public .ota-auth-page--login .auth-card.auth-card--login-premium {
  max-width: 420px;
  padding: clamp(1rem, 2.8vw, 1.5rem);
  border-radius: var(--ota-compact-radius-card);
}

body.ota-public .ota-auth-page--login .ota-auth-brand {
  padding: 0.65rem 0.85rem;
  border-radius: 12px;
}

body.ota-public .ota-auth-page--login .ota-login-card-inner {
  gap: var(--ota-compact-gap-section);
}

body.ota-public .ota-auth-page--login .ota-login-header {
  gap: 0.3rem;
  margin-bottom: 0;
}

body.ota-public .ota-auth-page--login .ota-login-input {
  min-height: var(--ota-compact-input-h);
  padding: 0.45rem 0.75rem;
  font-size: var(--ota-compact-fs-body-md);
  border-radius: var(--ota-compact-radius);
}

body.ota-public .ota-auth-page--login .ota-password-field .ota-login-input {
  padding-right: 2.65rem;
}

body.ota-public .ota-auth-page--login .ota-password-toggle {
  width: 2.25rem;
  height: 2.25rem;
}

body.ota-public .ota-auth-page--login .ota-password-toggle i {
  font-size: 0.85rem;
}

body.ota-public .ota-auth-page--login .ota-login-remember,
body.ota-public .ota-auth-page--login .ota-login-forgot {
  font-size: var(--ota-compact-fs-body-md);
  font-weight: 500;
}

body.ota-public .ota-auth-page--login .ota-login-options {
  margin-top: 0;
  gap: 0.5rem 0.75rem;
}

body.ota-public .ota-auth-page--login .ota-login-submit {
  min-height: var(--ota-compact-btn-h-lg);
  margin-top: 0.15rem;
  font-size: var(--ota-compact-fs-body-md);
}

body.ota-public .ota-auth-page--login .ota-login-social {
  gap: 0.65rem;
  margin-top: 0.1rem;
}

body.ota-public .ota-auth-page--login .ota-login-divider {
  font-size: var(--ota-compact-fs-label);
}

body.ota-public .ota-auth-page--login .ota-login-footer-links {
  margin-top: 0.1rem;
  padding-top: 0.75rem;
}

/* —— Lookup, support, and other public form pages —— */
body.ota-public .ota-form-page .ota-section-head .ota-section-title,
body.ota-public .ota-form-page h1.ota-section-title {
  font-size: clamp(1.25rem, 2.8vw, 1.55rem);
  line-height: var(--ota-compact-lh-tight);
  letter-spacing: -0.02em;
}

body.ota-public .ota-form-page .ota-section-desc,
body.ota-public .ota-form-page .ota-support-form-card-desc,
body.ota-public .ota-form-page .ota-lookup-hero-desc {
  font-size: var(--ota-compact-fs-body-md);
  line-height: var(--ota-compact-lh);
  color: var(--ota-compact-text-soft);
}

body.ota-public .ota-form-page .ota-form-card .ota-support-form-card-title,
body.ota-public .ota-form-page .ota-form-card > h2:first-of-type {
  font-size: var(--ota-compact-fs-title-md);
  font-weight: 700;
  line-height: var(--ota-compact-lh-tight);
  color: var(--ota-compact-text);
}

body.ota-public .ota-form-page .ota-form-card label,
body.ota-public .ota-form-page .ota-form-card .ota-label {
  font-size: var(--ota-compact-fs-label-md);
  font-weight: 600;
  margin-bottom: 0.3rem;
  color: var(--ota-compact-text);
}

body.ota-public .ota-form-page .ota-form-card input.ota-input,
body.ota-public .ota-form-page .ota-form-card select.ota-input,
body.ota-public .ota-form-page .ota-form-card textarea.ota-input,
body.ota-public .ota-form-page .ota-form-card .form-control {
  min-height: var(--ota-compact-input-h);
  padding: 0.45rem 0.75rem;
  font-size: var(--ota-compact-fs-body-md);
  border-radius: var(--ota-compact-radius);
  border-color: var(--ota-compact-border-soft);
  line-height: var(--ota-compact-lh-tight);
}

body.ota-public .ota-form-page .ota-form-card input.ota-input:focus,
body.ota-public .ota-form-page .ota-form-card select.ota-input:focus,
body.ota-public .ota-form-page .ota-form-card textarea.ota-input:focus,
body.ota-public .ota-form-page .ota-form-card .form-control:focus {
  border-color: var(--ota-blue);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
  outline: 0;
}

body.ota-public .ota-form-page .ota-form-card form > .ota-btn-primary,
body.ota-public .ota-form-page .ota-form-card .ota-support-submit {
  min-height: var(--ota-compact-btn-h-lg);
  font-size: var(--ota-compact-fs-body-md);
  font-weight: 700;
}

body.ota-public .ota-form-page .ota-about-panel-title {
  font-size: var(--ota-compact-fs-title-sm);
  font-weight: 700;
  line-height: var(--ota-compact-lh-tight);
  color: var(--ota-compact-text);
}

body.ota-public .ota-form-page .ota-about-panel,
body.ota-public .ota-form-page .ota-lookup-info-lead,
body.ota-public .ota-form-page .ota-lookup-info-text,
body.ota-public .ota-form-page .ota-support-list,
body.ota-public .ota-form-page .ota-lookup-tip {
  font-size: var(--ota-compact-fs-body-md);
  line-height: var(--ota-compact-lh);
  color: var(--ota-compact-text-soft);
}

body.ota-public .ota-form-page .ota-section-kicker {
  font-size: var(--ota-compact-fs-label);
  letter-spacing: 0.06em;
}

/* —— Shared public alerts and helper text —— */
body.ota-public .ota-alert {
  padding: 0.55rem 0.7rem;
  border-radius: var(--ota-compact-radius);
  font-size: var(--ota-compact-fs-body-md);
  line-height: var(--ota-compact-lh);
}

body.ota-public .ota-error {
  font-size: var(--ota-compact-fs-label);
  line-height: var(--ota-compact-lh);
}

body.ota-public .ota-section-desc {
  font-size: var(--ota-compact-fs-body-md);
  line-height: var(--ota-compact-lh);
}

/* —— Soft card density (homepage / CMS sections; no layout shift) —— */
body.ota-public .site-card {
  border-radius: var(--ota-compact-radius-card);
}

body.ota-public .ota-section-head--compact .ota-section-title {
  font-size: var(--ota-compact-fs-title-md);
  line-height: var(--ota-compact-lh-tight);
}

/* IATI / non-branded fallback flight details tabs */
body.ota-public .ota-flight-fallback-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0 0 0.85rem;
}

body.ota-public .ota-flight-fallback-tab {
  border: 1px solid var(--ota-border, #d7dee8);
  background: #fff;
  color: var(--ota-text, #1f2937);
  border-radius: 999px;
  padding: 0.3rem 0.7rem;
  font-size: 0.78rem;
  line-height: 1.2;
  cursor: pointer;
}

body.ota-public .ota-flight-fallback-tab.is-active {
  background: var(--ota-primary, #0b5cab);
  border-color: var(--ota-primary, #0b5cab);
  color: #fff;
}

body.ota-public .ota-flight-fallback-kv-list {
  margin: 0;
  display: grid;
  gap: 0.45rem;
}

body.ota-public .ota-flight-fallback-kv {
  display: grid;
  grid-template-columns: minmax(7rem, 34%) 1fr;
  gap: 0.5rem;
  font-size: 0.84rem;
  line-height: 1.35;
}

body.ota-public .ota-flight-fallback-kv dt {
  margin: 0;
  color: var(--ota-muted, #64748b);
  font-weight: 500;
}

body.ota-public .ota-flight-fallback-kv dd {
  margin: 0;
  color: var(--ota-text, #1f2937);
}

body.ota-public .ota-flight-fallback-note {
  margin: 0.75rem 0 0;
  font-size: 0.8rem;
  color: var(--ota-muted, #64748b);
}

body.ota-public .ota-flight-fallback-panel__title {
  margin: 0 0 0.65rem;
  font-size: 0.92rem;
  font-weight: 600;
}

/* ==========================================================================
   OTA-FARE-OPTION-CARD-WIDTH-FIX — fixed card width, carousel loop, refund summary
   ========================================================================== */

body.ota-public .ota-branded-fares-panel {
  --ota-branded-fare-card-width: 264px;
  --ota-branded-fare-card-width-max: 264px;
  --ota-branded-fare-card-gap: 10px;
}

.ota-fare-summary-modal__policy-block {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-top: 0.15rem;
}

.ota-fare-summary-modal__policy-segment {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.ota-fare-summary-modal__policy-segment-label {
  font-weight: 600;
  color: #475569;
}

.ota-fare-summary-modal__policy-segment-value,
.ota-fare-summary-modal__policy-text {
  color: #334155;
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: anywhere;
}

body.ota-public .ota-results-pro .ota-branded-fare-card {
  flex: 0 0 var(--ota-branded-fare-card-width) !important;
  width: var(--ota-branded-fare-card-width) !important;
  min-width: var(--ota-branded-fare-card-width) !important;
  max-width: var(--ota-branded-fare-card-width) !important;
  box-sizing: border-box;
}

/* Grid mode (1–3): flex wrap — cards keep fixed width, no stretch */
body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-panel__grid--grid,
body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-panel__grid[data-fare-count] {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  gap: var(--ota-branded-fare-card-gap) !important;
  grid-template-columns: none !important;
  max-width: none !important;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--grid[data-fare-count="1"] {
  max-width: none !important;
}

/* Carousel mode (>3): fixed-width cards in horizontal rail */
body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="true"] .ota-branded-fares-panel__grid--slider .ota-branded-fare-card,
body.ota-public .ota-results-pro .ota-branded-fares-panel__grid--slider .ota-branded-fare-card {
  scroll-snap-align: start;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="true"] .ota-branded-fares-carousel__viewport {
  padding-inline: 1.35rem;
  box-sizing: border-box;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="true"] .ota-branded-fares-carousel__nav--prev {
  left: -2px !important;
}

body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="true"] .ota-branded-fares-carousel__nav--next {
  right: -2px !important;
}

/* Refund row on cards: short labels only */
body.ota-public .ota-results-pro .ota-branded-fare-card__row-value.is-long-policy {
  max-width: none !important;
  min-width: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

@media (max-width: 639px) {
  body.ota-public .ota-branded-fares-panel {
    --ota-branded-fare-card-width: min(264px, calc(100% - 1.25rem));
  }

  body.ota-public .ota-results-pro .ota-branded-fares-panel[data-slider-active="true"] .ota-branded-fares-carousel__viewport {
    padding-inline: 1.1rem;
  }
}

/* ==========================================================================
   Homepage — Group Departures preview (FINAL OVERRIDE — wins cascade)
   DO NOT APPLY JS/SCROLL TRANSFORMS TO THIS SECTION.
   ========================================================================== */
body.ota-public .ota-home-groups-preview {
  padding: 56px 16px !important;
  background: #f6f9fc !important;
}

body.ota-public .ota-home-groups-preview__inner {
  width: min(100%, 1040px) !important;
  margin: 0 auto !important;
}

body.ota-public .ota-home-groups-preview__header {
  text-align: center !important;
  margin: 0 0 28px !important;
}

body.ota-public .ota-home-groups-preview__title {
  margin: 0 0 8px !important;
  font-size: clamp(1.25rem, 2vw, 1.75rem) !important;
  font-weight: 800 !important;
  color: #0f172a !important;
}

body.ota-public .ota-home-groups-preview__subtitle {
  max-width: 620px !important;
  margin: 0 auto !important;
  color: #64748b !important;
  font-size: .95rem !important;
  line-height: 1.5 !important;
}

body.ota-public .ota-home-groups-preview__grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(240px, 280px)) !important;
  justify-content: center !important;
  align-items: stretch !important;
  gap: 24px !important;
  width: 100% !important;
  margin: 0 auto !important;
}

body.ota-public .ota-home-groups-preview__card {
  display: grid !important;
  grid-template-rows: 125px 82px !important;
  width: 100% !important;
  max-width: 280px !important;
  min-width: 0 !important;
  overflow: hidden !important;
  border: 1px solid rgba(148, 163, 184, .28) !important;
  border-radius: 14px !important;
  background: #fff !important;
  text-decoration: none !important;
  color: #0f172a !important;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .08) !important;
  transform: none !important;
}

body.ota-public .ota-home-groups-preview__image-wrap {
  width: 100% !important;
  height: 125px !important;
  overflow: hidden !important;
  background: #e2e8f0 !important;
}

body.ota-public .ota-home-groups-preview__image {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
}

body.ota-public .ota-home-groups-preview__image-placeholder {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  font-size: 1.75rem !important;
  color: #2563eb !important;
  background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 55%, #f8fafc 100%) !important;
}

body.ota-public .ota-home-groups-preview__body {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 82px !important;
  padding: 16px !important;
  background: #fff !important;
}

body.ota-public .ota-home-groups-preview__card-title {
  margin: 0 !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  text-align: center !important;
  color: #0f172a !important;
}

body.ota-public .ota-home-groups-preview__cta {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
  margin-top: 32px !important;
  position: relative !important;
  z-index: 5 !important;
}

body.ota-public .ota-home-groups-preview__cta-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .75rem !important;
  width: min(100%, 360px) !important;
  min-height: 54px !important;
  padding: 0 1.5rem !important;
  border-radius: 16px !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}

body.ota-public .ota-home-groups-preview__cta-link.public-btn-primary {
  background: var(--brand-primary, var(--ota-blue)) !important;
  border-color: var(--brand-primary, var(--ota-blue)) !important;
  color: #fff !important;
  box-shadow: 0 2px 10px color-mix(in srgb, var(--brand-primary, #2563eb) 35%, transparent) !important;
}

body.ota-public .ota-home-groups-preview__cta-link.public-btn-primary:hover,
body.ota-public .ota-home-groups-preview__cta-link.public-btn-primary:focus-visible {
  background: #fff !important;
  color: var(--ota-text) !important;
  border-color: var(--ota-blue) !important;
}

@media (max-width: 880px) {
  body.ota-public .ota-home-groups-preview__grid {
    grid-template-columns: repeat(2, minmax(220px, 280px)) !important;
  }
}

@media (max-width: 640px) {
  body.ota-public .ota-home-groups-preview {
    padding: 36px 16px !important;
  }

  body.ota-public .ota-home-groups-preview__grid {
    grid-template-columns: minmax(0, 340px) !important;
  }

  body.ota-public .ota-home-groups-preview__card {
    max-width: 340px !important;
    grid-template-rows: 105px 76px !important;
  }

  body.ota-public .ota-home-groups-preview__image-wrap {
    height: 105px !important;
  }

  body.ota-public .ota-home-groups-preview__cta {
    margin-top: 24px !important;
  }

  body.ota-public .ota-home-groups-preview__cta-link {
    max-width: 340px !important;
  }
}

/* ==========================================================================
   Homepage — safe CSS micro-interactions (no layout/transform on grids/sections)
   ========================================================================== */
body.ota-page-home .ota-metrics-band,
body.ota-page-home .ota-home-groups-preview,
body.ota-page-home .ota-section {
  animation: ota-home-section-reveal 0.5s ease both;
}

@keyframes ota-home-section-reveal {
  from {
    opacity: 0.92;
  }

  to {
    opacity: 1;
  }
}

body.ota-page-home .public-btn-primary,
body.ota-page-home .ota-btn-primary,
body.ota-page-home .ota-hero-search-submit,
body.ota-public .ota-site-header .ota-nav-btn-primary,
body.ota-public .ota-site-header .ota-nav-btn.ota-nav-btn-primary,
body.ota-public .ota-site-header a.public-signup-button,
body.ota-public .ota-site-header .ota-nav-mobile-action--primary {
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease;
}

body.ota-page-home .public-btn-primary:hover,
body.ota-page-home .public-btn-primary:focus-visible,
body.ota-page-home .ota-btn-primary:hover,
body.ota-page-home .ota-btn-primary:focus-visible,
body.ota-page-home .ota-hero-search-submit:hover,
body.ota-page-home .ota-hero-search-submit:focus-visible,
body.ota-public .ota-site-header .ota-nav-btn-primary:hover,
body.ota-public .ota-site-header .ota-nav-btn.ota-nav-btn-primary:hover,
body.ota-public .ota-site-header a.public-signup-button:hover,
body.ota-public .ota-site-header a.public-signup-button:focus-visible,
body.ota-public .ota-site-header .ota-nav-mobile-action--primary:hover,
body.ota-public .ota-site-header .ota-nav-mobile-action--primary:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 12px 26px color-mix(in srgb, var(--brand-primary, var(--ota-blue, #2563eb)) 38%, transparent);
}

body.ota-page-home .ota-home-groups-preview__cta-link.public-btn-primary:hover,
body.ota-page-home .ota-home-groups-preview__cta-link.public-btn-primary:focus-visible {
  transform: translateY(-1px) !important;
  box-shadow: 0 12px 26px color-mix(in srgb, var(--brand-primary, var(--ota-blue, #2563eb)) 38%, transparent) !important;
}

body.ota-page-home .ota-home-groups-preview__card,
body.ota-page-home .fare-preview-card,
body.ota-page-home .ota-route-card,
body.ota-page-home .ota-why-item,
body.ota-page-home .metric-card {
  transition:
    border-color 0.22s ease,
    box-shadow 0.22s ease,
    transform 0.22s ease;
}

body.ota-page-home .ota-home-groups-preview__card:hover,
body.ota-page-home .ota-home-groups-preview__card:focus-visible {
  border-color: rgba(148, 163, 184, 0.55) !important;
  box-shadow: 0 16px 32px rgba(15, 23, 42, 0.12) !important;
  transform: translateY(-2px) !important;
}

body.ota-page-home .fare-preview-card:hover,
body.ota-page-home .fare-preview-card:focus-within,
body.ota-page-home .ota-route-card:hover,
body.ota-page-home .ota-route-card:focus-visible,
body.ota-page-home .ota-why-item:hover,
body.ota-page-home .ota-why-item:focus-within,
body.ota-page-home .metric-card:hover,
body.ota-page-home .metric-card:focus-within {
  border-color: var(--ota-brand-accent-line, #cbd5e1);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.1);
  transform: translateY(-2px);
}

body.ota-page-home .ota-home-groups-preview__image {
  transition: transform 0.35s ease;
}

body.ota-page-home .ota-home-groups-preview__card:hover .ota-home-groups-preview__image,
body.ota-page-home .ota-home-groups-preview__card:focus-visible .ota-home-groups-preview__image {
  transform: scale(1.02) !important;
}

@media (prefers-reduced-motion: reduce) {
  body.ota-page-home *,
  body.ota-page-home *::before,
  body.ota-page-home *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  body.ota-page-home .ota-metrics-band,
  body.ota-page-home .ota-home-groups-preview,
  body.ota-page-home .ota-section,
  body.ota-page-home .ota-home-groups-preview__card,
  body.ota-page-home .fare-preview-card,
  body.ota-page-home .ota-route-card,
  body.ota-page-home .ota-why-item,
  body.ota-page-home .metric-card,
  body.ota-page-home .public-btn-primary,
  body.ota-page-home .ota-hero-search-submit {
    animation: none !important;
    transform: none !important;
  }

  body.ota-page-home .ota-home-groups-preview__image {
    transform: none !important;
  }
}

/* ==========================================================================
   R12O-F — flight results layout recovery (scoped to .ota-results-pro only)
   Replaces R12O-A page-level grid that fought Bootstrap row clearfix.
   ========================================================================== */

@media (min-width: 992px) {
  body.ota-public .ota-results-pro .ota-results-pro-body--wide.container {
    width: min(1360px, calc(100% - 32px));
    max-width: 1360px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
  }

  body.ota-public .ota-results-pro .ota-results-pro-body--wide > .row {
    display: grid;
    grid-template-columns: minmax(240px, 260px) minmax(0, 1fr);
    gap: 28px;
    margin-left: 0;
    margin-right: 0;
  }

  /* Bootstrap 3 clearfix pseudo-elements must not become grid cells */
  body.ota-public .ota-results-pro .ota-results-pro-body--wide > .row::before,
  body.ota-public .ota-results-pro .ota-results-pro-body--wide > .row::after {
    display: none;
    content: none;
  }

  body.ota-public .ota-results-pro .ota-results-filters[data-filter-panel] {
    grid-column: 1;
    grid-row: 1;
    width: auto;
    max-width: none;
    min-width: 0;
    float: none;
    padding-left: 0;
    padding-right: 0;
  }

  body.ota-public .ota-results-pro [data-results-root] {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    width: auto;
    max-width: none;
    float: none;
    padding-left: 0;
    padding-right: 0;
  }
}

@media (min-width: 1200px) {
  body.ota-public .ota-results-pro .ota-results-pro-body--wide.container {
    width: min(1400px, calc(100% - 32px));
    max-width: 1400px;
  }

  body.ota-public .ota-results-pro .ota-results-pro-body--wide > .row {
    grid-template-columns: minmax(248px, 272px) minmax(0, 1fr);
    gap: 32px;
  }

  body.ota-public .ota-results-pro [data-results-root],
  body.ota-public .ota-results-pro [data-results-list] {
    min-width: 0;
    width: 100%;
    max-width: none;
  }

  body.ota-public .ota-results-pro .ota-result-pro-card.ota-result-card-v3,
  body.ota-public .ota-results-pro [data-flight-card] {
    width: 100%;
    max-width: none;
    min-width: 0;
    box-sizing: border-box;
  }

  body.ota-public .ota-results-pro .ota-result-card-v3 .ota-result-card-main {
    grid-template-columns: minmax(76px, 88px) minmax(0, 1fr) minmax(112px, 128px);
    gap: 10px 14px;
  }

  body.ota-public .ota-results-pro .ota-result-card-v3 .ota-result-col-price {
    flex-shrink: 0;
    min-width: 112px;
  }

  body.ota-public .ota-results-pro .ota-result-card-v3 .ota-result-col-route--oneway {
    min-width: 0;
  }

  /* Branded fares: 3-up only inside the card when space allows */
  body.ota-public .ota-results-pro .ota-result-card-v3 .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-panel__grid[data-fare-count="3"] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }
}

@media (min-width: 640px) and (max-width: 1199px) {
  body.ota-public .ota-results-pro .ota-result-card-v3 .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-panel__grid[data-fare-count="3"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Branded fare benefit text: truncate inside cards only */
body.ota-public .ota-results-pro .ota-result-card-v3 .ota-branded-fares-panel__grid--grid .ota-branded-fare-card__row-value,
body.ota-public .ota-results-pro .ota-result-card-v3 .ota-branded-fares-panel[data-slider-active="false"] .ota-branded-fares-panel__grid .ota-branded-fare-card__row-value {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  min-width: 0;
}

body.ota-public .ota-results-pro .ota-result-card-v3 .ota-branded-fares-panel__grid--grid .ota-branded-fare-card {
  padding: 8px;
  min-width: 0;
}

body.ota-public .ota-results-pro .ota-result-card-v3 .ota-branded-fares-panel__grid--grid .ota-branded-fare-card__row-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 991px) {
  body.ota-public .ota-results-pro .ota-results-pro-body--wide > .row {
    display: block;
  }

  body.ota-public .ota-results-pro .ota-results-filters[data-filter-panel],
  body.ota-public .ota-results-pro [data-results-root] {
    width: 100%;
    max-width: none;
    float: none;
    padding-left: 15px;
    padding-right: 15px;
  }
}
