@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=Cormorant+Garamond:wght@400;500;600;700&display=swap");

/* ═══════════════════════════════════════════════════════════
   QATAR AIRWAYS — Brand Study
   Source: qatarairways.com
   Prefix: qr-
   Typography: Jotia (brand) → Plus Jakarta Sans (study sub)
   Palette: Burgundy #5C0632 / White / Grey #666 / Gold #B8860B
   ═══════════════════════════════════════════════════════════ */

:root,
.qr {
  /* ── COLORS ── */
  --qr-burgundy: #5C0632;
  --qr-burgundy-dark: #3E0422;
  --qr-burgundy-light: #7A1A4E;
  --qr-burgundy-soft: rgba(92, 6, 50, 0.08);
  --qr-burgundy-hover: #4A0528;
  --qr-gold: #B8860B;
  --qr-gold-light: #D4A843;
  --qr-gold-soft: rgba(184, 134, 11, 0.1);
  --qr-white: #FFFFFF;
  --qr-bg: #FFFFFF;
  --qr-bg-warm: #FAF8F6;
  --qr-bg-light: #F5F3F0;
  --qr-bg-panel: #F0EDEA;
  --qr-bg-dark: #1A1A1A;
  --qr-bg-hero: #5C0632;
  --qr-text: #1A1A1A;
  --qr-text-secondary: #555555;
  --qr-text-muted: #888888;
  --qr-text-on-burgundy: #FFFFFF;
  --qr-text-on-dark: #FFFFFF;
  --qr-text-on-dark-muted: rgba(255, 255, 255, 0.65);
  --qr-grey: #666666;
  --qr-grey-light: #E0DCDA;
  --qr-grey-dark: #333333;
  --qr-border: #E0DCDA;
  --qr-border-light: #EEEBE8;
  --qr-border-focus: #5C0632;
  --qr-success: #1B8A4E;
  --qr-warning: #D4870E;
  --qr-error: #C62828;
  --qr-info: #1565C0;

  /* ── TYPOGRAPHY ── */
  --qr-font: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --qr-font-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --qr-text-xs: 400 0.6875rem/1.5 var(--qr-font);
  --qr-text-sm: 400 0.8125rem/1.6 var(--qr-font);
  --qr-text-base: 400 0.9375rem/1.6 var(--qr-font);
  --qr-text-md: 500 1.0625rem/1.5 var(--qr-font);
  --qr-text-lg: 600 1.25rem/1.4 var(--qr-font);
  --qr-text-xl: 600 1.5rem/1.3 var(--qr-font);
  --qr-text-2xl: 500 2rem/1.2 var(--qr-font);
  --qr-text-3xl: 500 2.5rem/1.15 var(--qr-font-display);
  --qr-text-4xl: 400 3.25rem/1.1 var(--qr-font-display);
  --qr-text-5xl: 400 4.5rem/1.05 var(--qr-font-display);
  --qr-label: 600 0.6875rem/1.2 var(--qr-font);

  /* ── SHAPE ── */
  --qr-radius-xs: 4px;
  --qr-radius-sm: 6px;
  --qr-radius-md: 10px;
  --qr-radius-lg: 16px;
  --qr-radius-xl: 24px;
  --qr-radius-full: 9999px;

  /* ── SPACING ── */
  --qr-space-1: 4px;
  --qr-space-2: 8px;
  --qr-space-3: 12px;
  --qr-space-4: 16px;
  --qr-space-5: 20px;
  --qr-space-6: 24px;
  --qr-space-8: 32px;
  --qr-space-10: 40px;
  --qr-space-12: 48px;
  --qr-space-16: 64px;
  --qr-space-20: 80px;

  /* ── SHADOW ── */
  --qr-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05);
  --qr-shadow-sm: 0 1px 4px rgba(0, 0, 0, 0.08);
  --qr-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.1);
  --qr-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.12);
  --qr-shadow-xl: 0 16px 48px rgba(0, 0, 0, 0.16);
  --qr-shadow-booking: 0 4px 20px rgba(92, 6, 50, 0.12);

  /* ── MOTION ── */
  --qr-duration-fast: 150ms;
  --qr-duration-normal: 250ms;
  --qr-duration-slow: 400ms;
  --qr-easing: cubic-bezier(0.25, 0.1, 0.25, 1);
  --qr-easing-decel: cubic-bezier(0, 0, 0.2, 1);

  /* ── FOCUS ── */
  --qr-focus-ring: 2px solid var(--qr-burgundy);
  --qr-focus-offset: 2px;
}

/* ── DARK MODE ── */
.qr.dark,
.qr[data-theme="dark"] {
  --qr-bg: #0D0D0D;
  --qr-bg-warm: #161616;
  --qr-bg-light: #1E1E1E;
  --qr-bg-panel: #252525;
  --qr-text: #F0ECE8;
  --qr-text-secondary: #B0A8A0;
  --qr-text-muted: #777070;
  --qr-border: #333030;
  --qr-border-light: #2A2727;
  --qr-shadow-sm: 0 1px 4px rgba(0, 0, 0, 0.3);
  --qr-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4);
  --qr-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.5);
}


/* ═══════════════════════════════════════════════════════════
   BUTTON
   ═══════════════════════════════════════════════════════════ */
.qr-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font: var(--qr-text-base);
  font-weight: 600;
  border-radius: var(--qr-radius-sm);
  padding: 12px 28px;
  border: 2px solid transparent;
  cursor: pointer;
  text-decoration: none;
  transition: all var(--qr-duration-normal) var(--qr-easing);
  white-space: nowrap;
  letter-spacing: 0.01em;
  line-height: 1;
}
.qr-btn:active { transform: translateY(1px); }
.qr-btn:focus-visible {
  outline: var(--qr-focus-ring);
  outline-offset: var(--qr-focus-offset);
}

/* Primary — Burgundy solid */
.qr-btn--primary {
  background: var(--qr-burgundy);
  color: var(--qr-text-on-burgundy);
}
.qr-btn--primary:hover {
  background: var(--qr-burgundy-hover);
  box-shadow: var(--qr-shadow-md);
}

/* Secondary — White with burgundy border */
.qr-btn--secondary {
  background: var(--qr-white);
  color: var(--qr-burgundy);
  border-color: var(--qr-burgundy);
}
.qr-btn--secondary:hover {
  background: var(--qr-burgundy-soft);
}

/* Ghost — Transparent */
.qr-btn--ghost {
  background: transparent;
  color: var(--qr-burgundy);
  border-color: transparent;
  padding: 12px 16px;
}
.qr-btn--ghost:hover {
  background: var(--qr-burgundy-soft);
}

/* Ghost on dark */
.qr-btn--ghost-light {
  background: transparent;
  color: var(--qr-text-on-dark);
  border-color: rgba(255, 255, 255, 0.3);
}
.qr-btn--ghost-light:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.5);
}

/* Gold — Premium CTA */
.qr-btn--gold {
  background: var(--qr-gold);
  color: #FFFFFF;
}
.qr-btn--gold:hover {
  background: var(--qr-gold-light);
  box-shadow: var(--qr-shadow-md);
}

/* White — On dark/burgundy backgrounds */
.qr-btn--white {
  background: var(--qr-white);
  color: var(--qr-burgundy);
}
.qr-btn--white:hover {
  background: #F5F3F0;
}

/* Sizes */
.qr-btn--sm { padding: 8px 18px; font-size: 0.8125rem; }
.qr-btn--lg { padding: 16px 36px; font-size: 1.0625rem; }
.qr-btn--icon {
  padding: 10px;
  border-radius: var(--qr-radius-full);
  min-width: 40px;
  min-height: 40px;
}
.qr-btn--pill { border-radius: var(--qr-radius-full); }
.qr-btn--block { width: 100%; }
.qr-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}


/* ═══════════════════════════════════════════════════════════
   CARD
   ═══════════════════════════════════════════════════════════ */
.qr-card {
  background: var(--qr-bg);
  border: 1px solid var(--qr-border-light);
  border-radius: var(--qr-radius-md);
  overflow: hidden;
  transition: box-shadow var(--qr-duration-normal) var(--qr-easing),
              transform var(--qr-duration-normal) var(--qr-easing);
}
.qr-card:hover {
  box-shadow: var(--qr-shadow-lg);
  transform: translateY(-2px);
}
.qr-card__media {
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  position: relative;
}
.qr-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--qr-duration-slow) var(--qr-easing);
}
.qr-card:hover .qr-card__media img {
  transform: scale(1.04);
}
.qr-card__media-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.5) 0%, transparent 60%);
}
.qr-card__body {
  padding: var(--qr-space-5) var(--qr-space-6);
}
.qr-card__tag {
  font: var(--qr-label);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--qr-burgundy);
  margin-bottom: 6px;
  display: block;
}
.qr-card__title {
  font: var(--qr-text-lg);
  color: var(--qr-text);
  margin: 0 0 6px;
}
.qr-card__description {
  font: var(--qr-text-sm);
  color: var(--qr-text-secondary);
  margin: 0;
}
.qr-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--qr-space-4) var(--qr-space-6);
  border-top: 1px solid var(--qr-border-light);
}
.qr-card__price {
  font: var(--qr-text-xl);
  color: var(--qr-burgundy);
}
.qr-card__price-label {
  font: var(--qr-text-xs);
  color: var(--qr-text-muted);
  display: block;
}

/* Destination card — image-heavy with overlay text */
.qr-card--destination .qr-card__media {
  aspect-ratio: 4 / 5;
}
.qr-card--destination .qr-card__content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: var(--qr-space-6);
  color: #fff;
  z-index: 1;
}
.qr-card--destination .qr-card__city {
  font: var(--qr-text-2xl);
  color: #FFFFFF;
  margin: 0 0 4px;
  text-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
.qr-card--destination .qr-card__route {
  font: var(--qr-text-sm);
  color: rgba(255, 255, 255, 0.85);
}
.qr-card--destination .qr-card__from {
  font: var(--qr-text-xs);
  color: rgba(255, 255, 255, 0.7);
  margin-top: 8px;
}
.qr-card--destination .qr-card__from strong {
  font: var(--qr-text-lg);
  color: #FFFFFF;
}

/* Offer card — promotional */
.qr-card--offer {
  border: none;
  background: var(--qr-bg-warm);
}
.qr-card--offer .qr-card__media {
  aspect-ratio: 2 / 1;
}
.qr-card--offer .qr-card__badge {
  position: absolute;
  top: var(--qr-space-3);
  left: var(--qr-space-3);
  z-index: 1;
}

/* Service card — icon-based */
.qr-card--service {
  text-align: center;
  padding: var(--qr-space-8) var(--qr-space-6);
  border: 1px solid var(--qr-border);
}
.qr-card--service:hover {
  border-color: var(--qr-burgundy);
}
.qr-card--service .qr-card__icon {
  width: 48px;
  height: 48px;
  margin: 0 auto var(--qr-space-4);
  color: var(--qr-burgundy);
}


/* ═══════════════════════════════════════════════════════════
   INPUT
   ═══════════════════════════════════════════════════════════ */
.qr-input-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.qr-label {
  font: var(--qr-label);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--qr-text-secondary);
}
.qr-input {
  font: var(--qr-text-base);
  padding: 12px 16px;
  background: var(--qr-bg);
  border: 1px solid var(--qr-border);
  border-radius: var(--qr-radius-sm);
  color: var(--qr-text);
  transition: border-color var(--qr-duration-fast) var(--qr-easing),
              box-shadow var(--qr-duration-fast) var(--qr-easing);
  width: 100%;
  box-sizing: border-box;
}
.qr-input::placeholder {
  color: var(--qr-text-muted);
}
.qr-input:focus {
  outline: none;
  border-color: var(--qr-burgundy);
  box-shadow: 0 0 0 3px var(--qr-burgundy-soft);
}
.qr-input:disabled {
  background: var(--qr-bg-light);
  color: var(--qr-text-muted);
  cursor: not-allowed;
}
.qr-input--error {
  border-color: var(--qr-error);
}
.qr-input--error:focus {
  box-shadow: 0 0 0 3px rgba(198, 40, 40, 0.1);
}

/* Select */
.qr-select {
  font: var(--qr-text-base);
  padding: 12px 40px 12px 16px;
  background: var(--qr-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23666666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") right 14px center no-repeat;
  border: 1px solid var(--qr-border);
  border-radius: var(--qr-radius-sm);
  color: var(--qr-text);
  appearance: none;
  width: 100%;
  box-sizing: border-box;
  cursor: pointer;
  transition: border-color var(--qr-duration-fast) var(--qr-easing);
}
.qr-select:focus {
  outline: none;
  border-color: var(--qr-burgundy);
  box-shadow: 0 0 0 3px var(--qr-burgundy-soft);
}

/* Textarea */
.qr-textarea {
  font: var(--qr-text-base);
  padding: 12px 16px;
  background: var(--qr-bg);
  border: 1px solid var(--qr-border);
  border-radius: var(--qr-radius-sm);
  color: var(--qr-text);
  resize: vertical;
  min-height: 100px;
  width: 100%;
  box-sizing: border-box;
  transition: border-color var(--qr-duration-fast) var(--qr-easing);
}
.qr-textarea:focus {
  outline: none;
  border-color: var(--qr-burgundy);
  box-shadow: 0 0 0 3px var(--qr-burgundy-soft);
}

/* Checkbox / Radio */
.qr-check {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font: var(--qr-text-base);
  color: var(--qr-text);
  cursor: pointer;
}
.qr-check input[type="checkbox"],
.qr-check input[type="radio"] {
  width: 20px;
  height: 20px;
  accent-color: var(--qr-burgundy);
  cursor: pointer;
}

/* On-dark inputs */
.qr-input--on-dark {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  color: var(--qr-text-on-dark);
}
.qr-input--on-dark::placeholder {
  color: rgba(255, 255, 255, 0.4);
}
.qr-input--on-dark:focus {
  border-color: rgba(255, 255, 255, 0.6);
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.08);
}

/* Helper text */
.qr-helper {
  font: var(--qr-text-xs);
  color: var(--qr-text-muted);
  margin-top: 4px;
}
.qr-helper--error {
  color: var(--qr-error);
}


/* ═══════════════════════════════════════════════════════════
   BADGE
   ═══════════════════════════════════════════════════════════ */
.qr-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font: var(--qr-label);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 5px 12px;
  border-radius: var(--qr-radius-xs);
  background: var(--qr-bg-light);
  color: var(--qr-text-secondary);
}
.qr-badge--burgundy {
  background: var(--qr-burgundy);
  color: #FFFFFF;
}
.qr-badge--gold {
  background: var(--qr-gold-soft);
  color: #8B6914;
  border: 1px solid rgba(184, 134, 11, 0.2);
}
.qr-badge--success {
  background: rgba(27, 138, 78, 0.1);
  color: var(--qr-success);
}
.qr-badge--warning {
  background: rgba(212, 135, 14, 0.1);
  color: var(--qr-warning);
}
.qr-badge--error {
  background: rgba(198, 40, 40, 0.1);
  color: var(--qr-error);
}
.qr-badge--outline {
  background: transparent;
  border: 1px solid var(--qr-border);
  color: var(--qr-text-secondary);
}
/* Class badges */
.qr-badge--economy { background: #E8F4EC; color: #1B8A4E; }
.qr-badge--business { background: var(--qr-burgundy-soft); color: var(--qr-burgundy); }
.qr-badge--first { background: var(--qr-gold-soft); color: #8B6914; }


/* ═══════════════════════════════════════════════════════════
   ALERT
   ═══════════════════════════════════════════════════════════ */
.qr-alert {
  display: flex;
  gap: 14px;
  padding: 16px 20px;
  border-radius: var(--qr-radius-md);
  border: 1px solid var(--qr-border);
  background: var(--qr-bg-warm);
}
.qr-alert__icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}
.qr-alert__body {
  flex: 1;
}
.qr-alert__title {
  font: var(--qr-text-md);
  color: var(--qr-text);
  margin: 0 0 4px;
}
.qr-alert__text {
  font: var(--qr-text-sm);
  color: var(--qr-text-secondary);
  margin: 0;
}
.qr-alert--info {
  background: #EFF5FC;
  border-color: #B3D4F0;
}
.qr-alert--info .qr-alert__icon { color: var(--qr-info); }
.qr-alert--success {
  background: #EDF7F0;
  border-color: #B3DFC4;
}
.qr-alert--success .qr-alert__icon { color: var(--qr-success); }
.qr-alert--warning {
  background: #FDF5E6;
  border-color: #E8D5A8;
}
.qr-alert--warning .qr-alert__icon { color: var(--qr-warning); }
.qr-alert--error {
  background: #FCEAEA;
  border-color: #E8AAAA;
}
.qr-alert--error .qr-alert__icon { color: var(--qr-error); }


/* ═══════════════════════════════════════════════════════════
   NAVIGATION — Top Bar
   ═══════════════════════════════════════════════════════════ */
.qr-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--qr-space-8);
  height: 64px;
  background: var(--qr-burgundy);
  color: var(--qr-text-on-burgundy);
  position: relative;
  z-index: 100;
}
.qr-nav__logo {
  display: flex;
  align-items: center;
  gap: 12px;
  font: var(--qr-text-lg);
  font-weight: 700;
  color: inherit;
  text-decoration: none;
  letter-spacing: 0.02em;
}
.qr-nav__logo svg,
.qr-nav__logo img {
  height: 32px;
  width: auto;
}
.qr-nav__links {
  display: flex;
  align-items: center;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  height: 100%;
}
.qr-nav__link {
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 18px;
  font: var(--qr-text-sm);
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  transition: background var(--qr-duration-fast), color var(--qr-duration-fast);
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}
.qr-nav__link:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #FFFFFF;
}
.qr-nav__link--active {
  color: #FFFFFF;
  border-bottom-color: var(--qr-gold);
}
.qr-nav__actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Sub-nav — secondary horizontal bar */
.qr-subnav {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 0 var(--qr-space-8);
  height: 48px;
  background: var(--qr-burgundy-dark);
  overflow-x: auto;
}
.qr-subnav__link {
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 16px;
  font: var(--qr-text-xs);
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--qr-duration-fast);
}
.qr-subnav__link:hover { color: #FFFFFF; }
.qr-subnav__link--active { color: var(--qr-gold); }


/* ═══════════════════════════════════════════════════════════
   TABS — Trip type & section tabs
   ═══════════════════════════════════════════════════════════ */
.qr-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--qr-border);
}
.qr-tab {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 12px 20px;
  font: var(--qr-text-sm);
  font-weight: 500;
  color: var(--qr-text-secondary);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: color var(--qr-duration-fast), border-color var(--qr-duration-fast);
  margin-bottom: -1px;
  white-space: nowrap;
}
.qr-tab:hover {
  color: var(--qr-burgundy);
}
.qr-tab--active {
  color: var(--qr-burgundy);
  border-bottom-color: var(--qr-burgundy);
  font-weight: 600;
}
.qr-tab__icon {
  width: 18px;
  height: 18px;
}
.qr-tab-panel {
  display: none;
}
.qr-tab-panel--active {
  display: block;
}

/* Pill tabs (trip type selector) */
.qr-tabs--pills {
  border: none;
  gap: 4px;
  background: var(--qr-bg-light);
  padding: 4px;
  border-radius: var(--qr-radius-full);
  display: inline-flex;
}
.qr-tabs--pills .qr-tab {
  border-bottom: none;
  border-radius: var(--qr-radius-full);
  padding: 8px 20px;
  margin-bottom: 0;
  font-size: 0.8125rem;
}
.qr-tabs--pills .qr-tab--active {
  background: var(--qr-burgundy);
  color: #FFFFFF;
  box-shadow: var(--qr-shadow-sm);
}

/* On-dark tabs */
.qr-tabs--dark {
  border-bottom-color: rgba(255, 255, 255, 0.15);
}
.qr-tabs--dark .qr-tab {
  color: rgba(255, 255, 255, 0.6);
}
.qr-tabs--dark .qr-tab:hover,
.qr-tabs--dark .qr-tab--active {
  color: #FFFFFF;
}
.qr-tabs--dark .qr-tab--active {
  border-bottom-color: var(--qr-gold);
}


/* ═══════════════════════════════════════════════════════════
   BOOKING WIDGET — The hero search form
   ═══════════════════════════════════════════════════════════ */
.qr-booking {
  background: var(--qr-bg);
  border-radius: var(--qr-radius-lg);
  box-shadow: var(--qr-shadow-xl);
  padding: var(--qr-space-6) var(--qr-space-8);
  max-width: 960px;
  margin: 0 auto;
}
.qr-booking__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--qr-space-5);
}
.qr-booking__trip-types {
  display: inline-flex;
  gap: 4px;
  background: var(--qr-bg-light);
  padding: 3px;
  border-radius: var(--qr-radius-full);
}
.qr-booking__trip-type {
  padding: 7px 18px;
  font: var(--qr-text-sm);
  font-weight: 500;
  color: var(--qr-text-secondary);
  background: none;
  border: none;
  border-radius: var(--qr-radius-full);
  cursor: pointer;
  transition: all var(--qr-duration-fast);
  white-space: nowrap;
}
.qr-booking__trip-type--active {
  background: var(--qr-burgundy);
  color: #FFFFFF;
  box-shadow: var(--qr-shadow-xs);
}

/* Booking form grid */
.qr-booking__form {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0;
  align-items: end;
  position: relative;
}
.qr-booking__form--full {
  grid-template-columns: 1fr auto 1fr 1fr 1fr auto;
}

/* Swap button between origin/destination */
.qr-booking__swap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--qr-radius-full);
  background: var(--qr-bg-warm);
  border: 1px solid var(--qr-border);
  cursor: pointer;
  transition: all var(--qr-duration-fast);
  margin: 0 -8px;
  z-index: 2;
  align-self: center;
  color: var(--qr-burgundy);
}
.qr-booking__swap:hover {
  background: var(--qr-burgundy-soft);
  border-color: var(--qr-burgundy);
  transform: rotate(180deg);
}

/* Booking field */
.qr-booking__field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px 16px;
  border: 1px solid var(--qr-border);
  border-radius: var(--qr-radius-sm);
  background: var(--qr-bg);
  cursor: pointer;
  transition: border-color var(--qr-duration-fast);
  position: relative;
}
.qr-booking__field:hover {
  border-color: var(--qr-burgundy);
}
.qr-booking__field:focus-within {
  border-color: var(--qr-burgundy);
  box-shadow: 0 0 0 3px var(--qr-burgundy-soft);
}
.qr-booking__field-label {
  font: var(--qr-label);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--qr-text-muted);
}
.qr-booking__field-value {
  font: var(--qr-text-md);
  color: var(--qr-text);
  border: none;
  outline: none;
  padding: 0;
  background: none;
  width: 100%;
  cursor: pointer;
}
.qr-booking__field-value::placeholder {
  color: var(--qr-text-muted);
}
.qr-booking__field-code {
  font: var(--qr-text-2xl);
  font-weight: 700;
  color: var(--qr-text);
  line-height: 1;
}
.qr-booking__field-city {
  font: var(--qr-text-xs);
  color: var(--qr-text-muted);
}
.qr-booking__field-icon {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  color: var(--qr-text-muted);
}

/* Search button */
.qr-booking__search {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 32px;
  background: var(--qr-burgundy);
  color: #FFFFFF;
  font: var(--qr-text-base);
  font-weight: 700;
  border: none;
  border-radius: var(--qr-radius-sm);
  cursor: pointer;
  transition: all var(--qr-duration-normal);
  white-space: nowrap;
  height: 100%;
  min-height: 56px;
  letter-spacing: 0.02em;
}
.qr-booking__search:hover {
  background: var(--qr-burgundy-hover);
  box-shadow: var(--qr-shadow-booking);
}

/* Promo code toggle */
.qr-booking__promo {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: var(--qr-space-4);
  font: var(--qr-text-sm);
  color: var(--qr-burgundy);
  cursor: pointer;
}
.qr-booking__promo:hover {
  text-decoration: underline;
}


/* ═══════════════════════════════════════════════════════════
   AIRPORT AUTOCOMPLETE DROPDOWN
   ═══════════════════════════════════════════════════════════ */
.qr-autocomplete {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  background: var(--qr-bg);
  border: 1px solid var(--qr-border);
  border-radius: var(--qr-radius-md);
  box-shadow: var(--qr-shadow-lg);
  z-index: 50;
  max-height: 320px;
  overflow-y: auto;
}
.qr-autocomplete__item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  cursor: pointer;
  transition: background var(--qr-duration-fast);
}
.qr-autocomplete__item:hover {
  background: var(--qr-bg-warm);
}
.qr-autocomplete__item--active {
  background: var(--qr-burgundy-soft);
}
.qr-autocomplete__icon {
  width: 20px;
  height: 20px;
  color: var(--qr-text-muted);
  flex-shrink: 0;
}
.qr-autocomplete__city {
  font: var(--qr-text-base);
  color: var(--qr-text);
}
.qr-autocomplete__code {
  font: var(--qr-text-sm);
  font-weight: 600;
  color: var(--qr-burgundy);
  margin-left: auto;
}
.qr-autocomplete__airport {
  font: var(--qr-text-xs);
  color: var(--qr-text-muted);
}


/* ═══════════════════════════════════════════════════════════
   DATE PICKER
   ═══════════════════════════════════════════════════════════ */
.qr-datepicker {
  background: var(--qr-bg);
  border: 1px solid var(--qr-border);
  border-radius: var(--qr-radius-md);
  box-shadow: var(--qr-shadow-xl);
  padding: var(--qr-space-6);
  min-width: 600px;
}
.qr-datepicker__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--qr-space-5);
}
.qr-datepicker__month {
  font: var(--qr-text-lg);
  color: var(--qr-text);
}
.qr-datepicker__nav {
  display: flex;
  gap: 8px;
}
.qr-datepicker__nav-btn {
  width: 32px;
  height: 32px;
  border-radius: var(--qr-radius-full);
  border: 1px solid var(--qr-border);
  background: var(--qr-bg);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--qr-text-secondary);
  transition: all var(--qr-duration-fast);
}
.qr-datepicker__nav-btn:hover {
  border-color: var(--qr-burgundy);
  color: var(--qr-burgundy);
}
.qr-datepicker__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}
.qr-datepicker__weekday {
  font: var(--qr-label);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--qr-text-muted);
  text-align: center;
  padding: 8px 0;
}
.qr-datepicker__day {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 1;
  border-radius: var(--qr-radius-sm);
  font: var(--qr-text-sm);
  color: var(--qr-text);
  background: none;
  border: none;
  cursor: pointer;
  transition: all var(--qr-duration-fast);
  position: relative;
}
.qr-datepicker__day:hover {
  background: var(--qr-burgundy-soft);
}
.qr-datepicker__day--today {
  font-weight: 700;
  color: var(--qr-burgundy);
}
.qr-datepicker__day--selected {
  background: var(--qr-burgundy);
  color: #FFFFFF;
  font-weight: 600;
}
.qr-datepicker__day--range {
  background: var(--qr-burgundy-soft);
  border-radius: 0;
}
.qr-datepicker__day--range-start {
  border-radius: var(--qr-radius-sm) 0 0 var(--qr-radius-sm);
}
.qr-datepicker__day--range-end {
  border-radius: 0 var(--qr-radius-sm) var(--qr-radius-sm) 0;
}
.qr-datepicker__day--disabled {
  color: var(--qr-text-muted);
  opacity: 0.4;
  cursor: not-allowed;
}
.qr-datepicker__day-price {
  font: var(--qr-text-xs);
  font-size: 0.5625rem;
  color: var(--qr-success);
  margin-top: 2px;
}
.qr-datepicker__day--selected .qr-datepicker__day-price {
  color: rgba(255, 255, 255, 0.8);
}


/* ═══════════════════════════════════════════════════════════
   PASSENGER SELECTOR
   ═══════════════════════════════════════════════════════════ */
.qr-passengers {
  background: var(--qr-bg);
  border: 1px solid var(--qr-border);
  border-radius: var(--qr-radius-md);
  box-shadow: var(--qr-shadow-lg);
  padding: var(--qr-space-5);
  min-width: 320px;
}
.qr-passengers__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 0;
  border-bottom: 1px solid var(--qr-border-light);
}
.qr-passengers__row:last-child {
  border-bottom: none;
}
.qr-passengers__type {
  display: flex;
  flex-direction: column;
}
.qr-passengers__type-name {
  font: var(--qr-text-base);
  font-weight: 500;
  color: var(--qr-text);
}
.qr-passengers__type-desc {
  font: var(--qr-text-xs);
  color: var(--qr-text-muted);
}
.qr-passengers__counter {
  display: flex;
  align-items: center;
  gap: 14px;
}
.qr-passengers__counter-btn {
  width: 34px;
  height: 34px;
  border-radius: var(--qr-radius-full);
  border: 1px solid var(--qr-border);
  background: var(--qr-bg);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.125rem;
  color: var(--qr-burgundy);
  transition: all var(--qr-duration-fast);
}
.qr-passengers__counter-btn:hover {
  background: var(--qr-burgundy-soft);
  border-color: var(--qr-burgundy);
}
.qr-passengers__counter-btn:disabled {
  color: var(--qr-text-muted);
  opacity: 0.4;
  cursor: not-allowed;
}
.qr-passengers__counter-value {
  font: var(--qr-text-lg);
  min-width: 24px;
  text-align: center;
}
.qr-passengers__done {
  margin-top: var(--qr-space-4);
}


/* ═══════════════════════════════════════════════════════════
   FARE CARD — Flight result / class selection
   ═══════════════════════════════════════════════════════════ */
.qr-fare {
  border: 1px solid var(--qr-border);
  border-radius: var(--qr-radius-md);
  overflow: hidden;
  transition: border-color var(--qr-duration-normal);
}
.qr-fare:hover {
  border-color: var(--qr-burgundy);
}
.qr-fare--selected {
  border-color: var(--qr-burgundy);
  box-shadow: 0 0 0 2px var(--qr-burgundy-soft);
}
.qr-fare__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--qr-space-4) var(--qr-space-5);
  background: var(--qr-bg-warm);
  border-bottom: 1px solid var(--qr-border-light);
}
.qr-fare__class {
  font: var(--qr-text-md);
  font-weight: 600;
  color: var(--qr-text);
}
.qr-fare__price {
  font: var(--qr-text-xl);
  font-weight: 700;
  color: var(--qr-burgundy);
}
.qr-fare__price-unit {
  font: var(--qr-text-xs);
  color: var(--qr-text-muted);
  font-weight: 400;
}
.qr-fare__body {
  padding: var(--qr-space-5);
}
.qr-fare__features {
  list-style: none;
  margin: 0;
  padding: 0;
}
.qr-fare__feature {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 0;
  font: var(--qr-text-sm);
  color: var(--qr-text-secondary);
}
.qr-fare__feature-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--qr-success);
}
.qr-fare__feature--excluded .qr-fare__feature-icon {
  color: var(--qr-text-muted);
  opacity: 0.4;
}
.qr-fare__footer {
  padding: var(--qr-space-4) var(--qr-space-5);
  border-top: 1px solid var(--qr-border-light);
}

/* Premium fare card variants */
.qr-fare--business .qr-fare__header {
  background: var(--qr-burgundy);
  border-bottom-color: var(--qr-burgundy);
}
.qr-fare--business .qr-fare__class,
.qr-fare--business .qr-fare__price {
  color: #FFFFFF;
}
.qr-fare--business .qr-fare__price-unit {
  color: rgba(255, 255, 255, 0.7);
}
.qr-fare--first .qr-fare__header {
  background: linear-gradient(135deg, #1A1A1A 0%, #333 100%);
  border-bottom-color: #333;
}
.qr-fare--first .qr-fare__class {
  color: var(--qr-gold);
}
.qr-fare--first .qr-fare__price {
  color: #FFFFFF;
}
.qr-fare--first .qr-fare__price-unit {
  color: rgba(255, 255, 255, 0.6);
}


/* ═══════════════════════════════════════════════════════════
   FLIGHT RESULT CARD
   ═══════════════════════════════════════════════════════════ */
.qr-flight {
  display: flex;
  align-items: center;
  gap: var(--qr-space-6);
  padding: var(--qr-space-5) var(--qr-space-6);
  border: 1px solid var(--qr-border);
  border-radius: var(--qr-radius-md);
  background: var(--qr-bg);
  transition: border-color var(--qr-duration-fast), box-shadow var(--qr-duration-fast);
  cursor: pointer;
}
.qr-flight:hover {
  border-color: var(--qr-burgundy);
  box-shadow: var(--qr-shadow-md);
}
.qr-flight--selected {
  border-color: var(--qr-burgundy);
  box-shadow: 0 0 0 2px var(--qr-burgundy-soft);
}
.qr-flight__times {
  display: flex;
  align-items: center;
  gap: var(--qr-space-5);
  flex: 1;
}
.qr-flight__time {
  font: var(--qr-text-2xl);
  font-weight: 700;
  color: var(--qr-text);
  line-height: 1;
}
.qr-flight__airport {
  font: var(--qr-text-xs);
  color: var(--qr-text-muted);
  margin-top: 4px;
}
.qr-flight__route {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
  min-width: 100px;
}
.qr-flight__duration {
  font: var(--qr-text-xs);
  color: var(--qr-text-muted);
  margin-bottom: 6px;
}
.qr-flight__line {
  width: 100%;
  height: 1px;
  background: var(--qr-border);
  position: relative;
}
.qr-flight__line::before {
  content: '';
  position: absolute;
  right: -3px;
  top: -3px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--qr-burgundy);
}
.qr-flight__stops {
  font: var(--qr-text-xs);
  color: var(--qr-success);
  margin-top: 6px;
}
.qr-flight__stops--connecting {
  color: var(--qr-warning);
}
.qr-flight__price-col {
  text-align: right;
  min-width: 100px;
}
.qr-flight__price {
  font: var(--qr-text-xl);
  font-weight: 700;
  color: var(--qr-burgundy);
  line-height: 1;
}
.qr-flight__price-label {
  font: var(--qr-text-xs);
  color: var(--qr-text-muted);
  margin-top: 4px;
}


/* ═══════════════════════════════════════════════════════════
   HERO — Full-width banner
   ═══════════════════════════════════════════════════════════ */
.qr-hero {
  position: relative;
  min-height: 520px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--qr-burgundy);
}
.qr-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.6;
}
.qr-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(92, 6, 50, 0.85) 0%,
    rgba(62, 4, 34, 0.7) 50%,
    rgba(26, 26, 26, 0.6) 100%
  );
}
.qr-hero__content {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: var(--qr-space-12) var(--qr-space-8);
  max-width: 720px;
}
.qr-hero__tagline {
  font: var(--qr-label);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--qr-gold);
  margin-bottom: var(--qr-space-4);
}
.qr-hero__title {
  font: var(--qr-text-5xl);
  color: #FFFFFF;
  margin: 0 0 var(--qr-space-5);
}
.qr-hero__subtitle {
  font: var(--qr-text-md);
  color: rgba(255, 255, 255, 0.8);
  margin: 0 0 var(--qr-space-8);
  max-width: 540px;
  margin-left: auto;
  margin-right: auto;
}
.qr-hero__actions {
  display: flex;
  gap: var(--qr-space-4);
  justify-content: center;
}


/* ═══════════════════════════════════════════════════════════
   PRIVILEGE CLUB / LOYALTY SECTION
   ═══════════════════════════════════════════════════════════ */
.qr-loyalty {
  background: linear-gradient(135deg, var(--qr-burgundy-dark) 0%, var(--qr-burgundy) 100%);
  border-radius: var(--qr-radius-lg);
  padding: var(--qr-space-10) var(--qr-space-8);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  gap: var(--qr-space-10);
}
.qr-loyalty__content {
  flex: 1;
}
.qr-loyalty__tier {
  font: var(--qr-label);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--qr-gold);
  margin-bottom: var(--qr-space-3);
}
.qr-loyalty__title {
  font: var(--qr-text-3xl);
  color: #FFFFFF;
  margin: 0 0 var(--qr-space-4);
}
.qr-loyalty__text {
  font: var(--qr-text-base);
  color: rgba(255, 255, 255, 0.75);
  margin: 0 0 var(--qr-space-6);
  max-width: 480px;
}
.qr-loyalty__stats {
  display: flex;
  gap: var(--qr-space-8);
}
.qr-loyalty__stat-value {
  font: var(--qr-text-2xl);
  font-weight: 700;
  color: var(--qr-gold);
}
.qr-loyalty__stat-label {
  font: var(--qr-text-xs);
  color: rgba(255, 255, 255, 0.6);
  margin-top: 4px;
}


/* ═══════════════════════════════════════════════════════════
   CAROUSEL / SLIDER
   ═══════════════════════════════════════════════════════════ */
.qr-carousel {
  position: relative;
  overflow: hidden;
}
.qr-carousel__track {
  display: flex;
  gap: var(--qr-space-5);
  scroll-snap-type: x mandatory;
  overflow-x: auto;
  scroll-behavior: smooth;
  -ms-overflow-style: none;
  scrollbar-width: none;
  padding: var(--qr-space-2) 0;
}
.qr-carousel__track::-webkit-scrollbar { display: none; }
.qr-carousel__slide {
  flex: 0 0 calc(33.333% - 14px);
  scroll-snap-align: start;
  min-width: 280px;
}
.qr-carousel__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  border-radius: var(--qr-radius-full);
  background: var(--qr-bg);
  border: 1px solid var(--qr-border);
  box-shadow: var(--qr-shadow-md);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--qr-text);
  transition: all var(--qr-duration-fast);
  z-index: 2;
}
.qr-carousel__nav:hover {
  background: var(--qr-burgundy);
  color: #FFFFFF;
  border-color: var(--qr-burgundy);
}
.qr-carousel__nav--prev { left: 8px; }
.qr-carousel__nav--next { right: 8px; }
.qr-carousel__dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: var(--qr-space-5);
}
.qr-carousel__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--qr-border);
  border: none;
  cursor: pointer;
  transition: all var(--qr-duration-fast);
}
.qr-carousel__dot--active {
  background: var(--qr-burgundy);
  width: 24px;
  border-radius: 4px;
}


/* ═══════════════════════════════════════════════════════════
   STEPPER — Multi-step booking flow
   ═══════════════════════════════════════════════════════════ */
.qr-stepper {
  display: flex;
  align-items: center;
  gap: 0;
  padding: var(--qr-space-4) var(--qr-space-8);
  background: var(--qr-bg-warm);
  border-bottom: 1px solid var(--qr-border-light);
}
.qr-stepper__step {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  position: relative;
}
.qr-stepper__step::after {
  content: '';
  flex: 1;
  height: 2px;
  background: var(--qr-border);
  margin: 0 12px;
}
.qr-stepper__step:last-child::after { display: none; }
.qr-stepper__number {
  width: 28px;
  height: 28px;
  border-radius: var(--qr-radius-full);
  border: 2px solid var(--qr-border);
  display: flex;
  align-items: center;
  justify-content: center;
  font: var(--qr-text-sm);
  font-weight: 600;
  color: var(--qr-text-muted);
  flex-shrink: 0;
}
.qr-stepper__label {
  font: var(--qr-text-sm);
  font-weight: 500;
  color: var(--qr-text-muted);
  white-space: nowrap;
}
.qr-stepper__step--active .qr-stepper__number {
  border-color: var(--qr-burgundy);
  background: var(--qr-burgundy);
  color: #FFFFFF;
}
.qr-stepper__step--active .qr-stepper__label {
  color: var(--qr-burgundy);
  font-weight: 600;
}
.qr-stepper__step--complete .qr-stepper__number {
  border-color: var(--qr-success);
  background: var(--qr-success);
  color: #FFFFFF;
}
.qr-stepper__step--complete::after {
  background: var(--qr-success);
}
.qr-stepper__step--complete .qr-stepper__label {
  color: var(--qr-text);
}


/* ═══════════════════════════════════════════════════════════
   SEAT MAP (simplified)
   ═══════════════════════════════════════════════════════════ */
.qr-seatmap {
  display: inline-grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 6px;
  padding: var(--qr-space-5);
}
.qr-seat {
  width: 36px;
  height: 36px;
  border-radius: var(--qr-radius-xs);
  border: 1px solid var(--qr-border);
  background: var(--qr-bg);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font: var(--qr-text-xs);
  font-weight: 500;
  color: var(--qr-text-secondary);
  transition: all var(--qr-duration-fast);
}
.qr-seat:hover {
  border-color: var(--qr-burgundy);
  background: var(--qr-burgundy-soft);
}
.qr-seat--selected {
  background: var(--qr-burgundy);
  border-color: var(--qr-burgundy);
  color: #FFFFFF;
}
.qr-seat--occupied {
  background: var(--qr-bg-panel);
  color: var(--qr-text-muted);
  cursor: not-allowed;
  opacity: 0.5;
}
.qr-seat--premium {
  border-color: var(--qr-gold);
  background: var(--qr-gold-soft);
  color: var(--qr-gold);
}
.qr-seat--aisle { margin-right: 18px; }


/* ═══════════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════════ */
.qr-footer {
  background: var(--qr-bg-dark);
  color: var(--qr-text-on-dark);
  padding: var(--qr-space-16) var(--qr-space-8) var(--qr-space-8);
}
.qr-footer__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--qr-space-10);
  margin-bottom: var(--qr-space-12);
}
.qr-footer__heading {
  font: var(--qr-text-sm);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.9);
  margin: 0 0 var(--qr-space-5);
}
.qr-footer__links {
  list-style: none;
  margin: 0;
  padding: 0;
}
.qr-footer__link {
  display: block;
  font: var(--qr-text-sm);
  color: rgba(255, 255, 255, 0.55);
  text-decoration: none;
  padding: 6px 0;
  transition: color var(--qr-duration-fast);
}
.qr-footer__link:hover {
  color: #FFFFFF;
}
.qr-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: var(--qr-space-8);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.qr-footer__copy {
  font: var(--qr-text-xs);
  color: rgba(255, 255, 255, 0.4);
}
.qr-footer__social {
  display: flex;
  gap: 16px;
}
.qr-footer__social-link {
  width: 36px;
  height: 36px;
  border-radius: var(--qr-radius-full);
  border: 1px solid rgba(255, 255, 255, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.5);
  text-decoration: none;
  transition: all var(--qr-duration-fast);
}
.qr-footer__social-link:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.3);
  color: #FFFFFF;
}


/* ═══════════════════════════════════════════════════════════
   TOGGLE / SWITCH
   ═══════════════════════════════════════════════════════════ */
.qr-toggle {
  position: relative;
  display: inline-flex;
  width: 44px;
  height: 24px;
  cursor: pointer;
}
.qr-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
  position: absolute;
}
.qr-toggle__track {
  width: 100%;
  height: 100%;
  background: var(--qr-border);
  border-radius: var(--qr-radius-full);
  transition: background var(--qr-duration-fast);
}
.qr-toggle__thumb {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #FFFFFF;
  box-shadow: var(--qr-shadow-xs);
  transition: transform var(--qr-duration-fast) var(--qr-easing);
}
.qr-toggle input:checked + .qr-toggle__track {
  background: var(--qr-burgundy);
}
.qr-toggle input:checked ~ .qr-toggle__thumb {
  transform: translateX(20px);
}


/* ═══════════════════════════════════════════════════════════
   TOOLTIP
   ═══════════════════════════════════════════════════════════ */
.qr-tooltip {
  position: relative;
  display: inline-flex;
}
.qr-tooltip__content {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  padding: 8px 14px;
  background: var(--qr-bg-dark);
  color: var(--qr-text-on-dark);
  font: var(--qr-text-xs);
  border-radius: var(--qr-radius-xs);
  white-space: nowrap;
  box-shadow: var(--qr-shadow-md);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--qr-duration-fast);
}
.qr-tooltip:hover .qr-tooltip__content {
  opacity: 1;
}
.qr-tooltip__content::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 5px solid transparent;
  border-top-color: var(--qr-bg-dark);
}


/* ═══════════════════════════════════════════════════════════
   MODAL / DIALOG
   ═══════════════════════════════════════════════════════════ */
.qr-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  backdrop-filter: blur(4px);
}
.qr-modal {
  background: var(--qr-bg);
  border-radius: var(--qr-radius-lg);
  box-shadow: var(--qr-shadow-xl);
  max-width: 560px;
  width: 90%;
  max-height: 90vh;
  overflow-y: auto;
}
.qr-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--qr-space-5) var(--qr-space-6);
  border-bottom: 1px solid var(--qr-border-light);
}
.qr-modal__title {
  font: var(--qr-text-lg);
  color: var(--qr-text);
  margin: 0;
}
.qr-modal__close {
  width: 32px;
  height: 32px;
  border-radius: var(--qr-radius-full);
  border: none;
  background: var(--qr-bg-light);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--qr-text-secondary);
  transition: all var(--qr-duration-fast);
}
.qr-modal__close:hover {
  background: var(--qr-bg-panel);
}
.qr-modal__body {
  padding: var(--qr-space-6);
}
.qr-modal__footer {
  display: flex;
  justify-content: flex-end;
  gap: var(--qr-space-3);
  padding: var(--qr-space-4) var(--qr-space-6);
  border-top: 1px solid var(--qr-border-light);
}


/* ═══════════════════════════════════════════════════════════
   DIVIDER
   ═══════════════════════════════════════════════════════════ */
.qr-divider {
  border: none;
  border-top: 1px solid var(--qr-border);
  margin: var(--qr-space-6) 0;
}
.qr-divider--light {
  border-color: var(--qr-border-light);
}


/* ═══════════════════════════════════════════════════════════
   SKELETON LOADING
   ═══════════════════════════════════════════════════════════ */
.qr-skeleton {
  background: linear-gradient(90deg, var(--qr-bg-light) 25%, var(--qr-bg-warm) 50%, var(--qr-bg-light) 75%);
  background-size: 200% 100%;
  animation: qr-shimmer 1.5s ease-in-out infinite;
  border-radius: var(--qr-radius-sm);
}
.qr-skeleton--text {
  height: 16px;
  width: 80%;
  margin-bottom: 8px;
}
.qr-skeleton--title {
  height: 24px;
  width: 60%;
  margin-bottom: 12px;
}
.qr-skeleton--image {
  aspect-ratio: 16 / 10;
  width: 100%;
}
@keyframes qr-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}


/* ═══════════════════════════════════════════════════════════
   BOARDING PASS (showcase component)
   ═══════════════════════════════════════════════════════════ */
.qr-boardingpass {
  background: var(--qr-bg);
  border-radius: var(--qr-radius-lg);
  overflow: hidden;
  box-shadow: var(--qr-shadow-lg);
  max-width: 480px;
}
.qr-boardingpass__header {
  background: var(--qr-burgundy);
  padding: var(--qr-space-4) var(--qr-space-6);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.qr-boardingpass__airline {
  font: var(--qr-text-sm);
  font-weight: 700;
  color: #FFFFFF;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.qr-boardingpass__class {
  font: var(--qr-text-xs);
  color: var(--qr-gold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.qr-boardingpass__route {
  padding: var(--qr-space-6);
  display: flex;
  align-items: center;
  gap: var(--qr-space-6);
}
.qr-boardingpass__city-code {
  font: var(--qr-text-4xl);
  font-weight: 700;
  color: var(--qr-text);
  line-height: 1;
}
.qr-boardingpass__city-name {
  font: var(--qr-text-xs);
  color: var(--qr-text-muted);
  margin-top: 4px;
}
.qr-boardingpass__flight-line {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.qr-boardingpass__flight-icon {
  color: var(--qr-burgundy);
  margin-bottom: 4px;
}
.qr-boardingpass__flight-duration {
  font: var(--qr-text-xs);
  color: var(--qr-text-muted);
}
.qr-boardingpass__details {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--qr-border-light);
  border-top: 1px solid var(--qr-border-light);
}
.qr-boardingpass__detail {
  background: var(--qr-bg);
  padding: var(--qr-space-4);
  text-align: center;
}
.qr-boardingpass__detail-label {
  font: var(--qr-label);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--qr-text-muted);
  margin-bottom: 4px;
}
.qr-boardingpass__detail-value {
  font: var(--qr-text-md);
  font-weight: 700;
  color: var(--qr-text);
}
.qr-boardingpass__barcode {
  padding: var(--qr-space-4) var(--qr-space-6);
  border-top: 1px dashed var(--qr-border);
  text-align: center;
}


/* ═══════════════════════════════════════════════════════════
   UTILITY CLASSES
   ═══════════════════════════════════════════════════════════ */
.qr-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.qr-text-burgundy { color: var(--qr-burgundy); }
.qr-text-gold { color: var(--qr-gold); }
.qr-text-muted { color: var(--qr-text-muted); }
.qr-bg-burgundy { background: var(--qr-burgundy); color: #FFFFFF; }
.qr-bg-warm { background: var(--qr-bg-warm); }
.qr-bg-light { background: var(--qr-bg-light); }
