/* ==========================================================================
   DESTINY WORLD | AIRLINES & LUXURY VACATION SUITES
   Official Aviation & Travel Design System — 2026/2027
   Theme: High-End Airline & First-Class Travel Deck
   Typography: Outfit (Airline Titles), Plus Jakarta Sans (UI), JetBrains Mono (Flight Data)
   Colors: Architectural White (#FFFFFF), Flight Deck Black (#0f0049), Aviation Gold (#eb0046)
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700;800&family=Outfit:wght@300;400;500;600;700;800;900&family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap');

:root {
  /* LATAM Airlines Core Palette */
  --latam-indigo: #0f0049;
  --latam-indigo-dark: #070026;
  --latam-indigo-light: #1b0088;
  --latam-coral: #eb0046;
  --latam-coral-hover: #c90038;
  --latam-coral-light: rgba(235, 0, 70, 0.08);
  --latam-blue: #0019a5;
  --latam-blue-light: #e8eeff;

  /* Color Architecture */
  --bg-primary: #ffffff;
  --bg-secondary: #f8fafc;
  --bg-tertiary: #f1f5f9;
  --bg-card: #ffffff;
  --bg-glass: rgba(255, 255, 255, 0.95);
  
  --color-black: #0f0049;
  --color-black-pure: #000000;
  --color-flight-deck: #0f1420;
  --color-white: #ffffff;
  
  /* Aviation Signal Accents */
  --flight-gold: #eb0046;
  --flight-gold-light: #eb0046;
  --flight-gold-bright: #eb0046;
  --flight-amber: #d97706;
  --flight-green: #10b981;
  --flight-blue: #0284c7;
  
  --gold-primary: #eb0046;
  --gold-light: #eb0046;
  --gold-bright: #eb0046;
  --gold-dark: #6e4e16;
  --gold-glow: rgba(197, 160, 89, 0.2);
  --gold-gradient: linear-gradient(135deg, #0b0f19 0%, #000000 100%);
  --gold-border: rgba(197, 160, 89, 0.35);
  
  /* High-Contrast Airline Typography */
  --text-white: #0f0049;
  --text-primary: #1e293b;
  --text-secondary: #475569;
  --text-muted: #64748b;
  --text-light: #334155;
  
  --border-subtle: rgba(0, 0, 0, 0.08);
  --border-medium: rgba(0, 0, 0, 0.14);
  --border-strong: rgba(0, 0, 0, 0.22);
  --border-gold-subtle: rgba(197, 160, 89, 0.25);
  
  /* Airline Typography Stack */
  --font-display: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-serif: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-sans: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
  
  /* Aerodynamic Multi-Layer Shadows */
  --shadow-sm: 0 4px 14px rgba(0, 0, 0, 0.04);
  --shadow-md: 0 12px 30px rgba(0, 0, 0, 0.08), 0 3px 8px rgba(0, 0, 0, 0.03);
  --shadow-lg: 0 24px 55px rgba(0, 0, 0, 0.11), 0 8px 18px rgba(0, 0, 0, 0.04);
  --shadow-xl: 0 35px 80px rgba(0, 0, 0, 0.16), 0 12px 28px rgba(0, 0, 0, 0.06);
  --shadow-card: 0 10px 30px rgba(15, 23, 42, 0.07), 0 2px 6px rgba(15, 23, 42, 0.03);
  --shadow-hover: 0 25px 50px rgba(15, 23, 42, 0.14), 0 8px 18px rgba(15, 23, 42, 0.06);
  --shadow-widget: 0 30px 80px rgba(0, 0, 0, 0.18), 0 8px 24px rgba(0, 0, 0, 0.08);
  --shadow-gold: 0 8px 25px rgba(197, 160, 89, 0.18);
  
  /* Layout */
  --max-width: 1360px;
  --transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --radius-full: 9999px;
}

/* ==========================================================================
   BASE & RESET
   ========================================================================== */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  color-scheme: light;
  overflow-x: hidden;
  width: 100%;
  max-width: 100vw;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  touch-action: pan-y;
}

body {
  font-family: var(--font-sans);
  background-color: var(--bg-primary);
  color: var(--text-primary);
  line-height: 1.6;
  overflow-x: hidden;
  width: 100%;
  max-width: 100vw;
  position: relative;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
  transition: var(--transition);
}

button {
  cursor: pointer;
  border: none;
  background: none;
  font-family: inherit;
  transition: var(--transition);
}

select, input, textarea {
  font-family: var(--font-sans);
  color: var(--text-primary);
  background-color: transparent;
  outline: none;
  border: none;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 8px;
}
::-webkit-scrollbar-track {
  background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--flight-gold);
}

body.no-scroll {
  overflow: hidden !important;
  touch-action: none;
}

/* Container */
.container {
  width: 100%;
  max-width: var(--max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(1rem, 3.5vw, 2.2rem);
  padding-right: clamp(1rem, 3.5vw, 2.2rem);
}

.w-full {
  width: 100%;
}

/* ==========================================================================
   TYPOGRAPHY & AIRLINE STYLES
   ========================================================================== */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--text-white);
}

.section-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-mono);
  font-size: 0.74rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--flight-gold);
  margin-bottom: 0.85rem;
  font-weight: 700;
  background: rgba(197, 160, 89, 0.08);
  padding: 0.35rem 0.9rem;
  border-radius: var(--radius-full);
  border: 1px solid rgba(197, 160, 89, 0.2);
}

.section-title {
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  line-height: 1.1;
  margin-bottom: 1.1rem;
  color: var(--text-white);
  letter-spacing: -0.03em;
}

.section-subtitle {
  color: var(--text-secondary);
  font-size: 1.05rem;
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
  font-weight: 400;
  line-height: 1.65;
}

.text-center {
  text-align: center;
}

/* Badges & Buttons */
.badge-gold {
  background: rgba(197, 160, 89, 0.1);
  border: 1px solid var(--gold-border);
  color: var(--gold-light);
  font-family: var(--font-mono);
  font-size: 0.74rem;
  padding: 0.35rem 0.85rem;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.btn-primary {
  background: var(--latam-coral, #eb0046);
  color: #ffffff;
  font-family: var(--font-display);
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  padding: 0.75rem 1.6rem;
  border-radius: var(--radius-full, 9999px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  border: none;
  box-shadow: 0 4px 16px rgba(235, 0, 70, 0.28);
  position: relative;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.btn-primary:hover {
  background: var(--latam-coral-hover, #c90038);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(235, 0, 70, 0.38);
  color: #ffffff;
}

.btn-primary:hover {
  background: #000000;
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.35);
  color: #ffffff;
}

.btn-gold {
  background: #ffffff;
  color: #0f0049;
  border: 1.5px solid #0f0049;
  padding: 0.85rem 1.8rem;
  font-family: var(--font-display);
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  border-radius: var(--radius-sm);
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
}

.btn-gold:hover {
  background: #0f0049;
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

.btn-gold-lg {
  background: #0f0049;
  color: #ffffff;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  padding: 1.1rem 2.4rem;
  border-radius: var(--radius-sm);
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
  border: 1px solid #0f0049;
}

.btn-gold-lg:hover {
  transform: translateY(-2px);
  background: #000000;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.35);
  color: #ffffff;
}

.btn-ghost {
  color: #0f0049;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: var(--radius-sm);
  padding: 0.65rem 1rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  position: relative;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.btn-ghost:hover {
  background: #f8fafc;
  border-color: #0f0049;
  color: #0f0049;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
}

.nav-btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: #ffffff;
  border: 1.5px solid #0f0049;
  color: #0f0049;
  padding: 0.65rem 1.1rem;
  border-radius: var(--radius-sm);
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  transition: var(--transition);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
}

.nav-btn-outline:hover {
  background: #0f0049;
  color: #ffffff;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15);
}

.badge-count {
  background: #0f0049;
  color: #ffffff;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  font-weight: 800;
  padding: 0.1rem 0.45rem;
  border-radius: var(--radius-full);
}

/* ==========================================================================
   TOP BAR (HUD AVIATION STATUS)
   ========================================================================== */
.top-bar {
  background-color: #0f0049;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: #cbd5e1;
  padding: 0.5rem 0;
}

.top-bar-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}

.top-bar-left, .top-bar-right {
  display: flex;
  align-items: center;
  gap: 1.2rem;
}

.top-bar .badge-gold {
  background: rgba(197, 160, 89, 0.2);
  border: 1px solid rgba(197, 160, 89, 0.4);
  color: #f1c40f;
}

.top-bar-left .top-text {
  color: #e2e8f0;
}

.badge-rnt-top {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.2);
  font-size: 0.72rem;
  padding: 0.25rem 0.65rem;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-weight: 700;
}

.selector-group {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  color: #94a3b8;
}

.selector-group select {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  cursor: pointer;
  color: #ffffff;
}

.selector-group select option {
  background-color: #0f0049;
  color: #ffffff;
}

.concierge-phone {
  color: #e2e8f0;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.concierge-phone:hover {
  color: #ffffff;
}

/* ==========================================================================
   AERODYNAMIC FLIGHT DECK NAVBAR
   ========================================================================== */
.navbar {
  position: sticky;
  top: 0;
  z-index: 1000;
  background-color: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  transition: var(--transition);
  padding: 1.1rem 0;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
}

.navbar.scrolled {
  padding: 0.8rem 0;
  background-color: #ffffff;
  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
  box-shadow: 0 10px 35px rgba(0, 0, 0, 0.08);
}

.nav-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Brand Logo */
.brand-logo {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1;
}

.brand-sub {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.35em;
  color: var(--flight-gold);
  text-transform: uppercase;
  margin-bottom: 2px;
  font-weight: 700;
}

.brand-title {
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2.4vw, 1.95rem);
  font-weight: 900;
  letter-spacing: 0.05em;
  color: #0f0049;
  white-space: nowrap;
}

.brand-detail {
  font-family: var(--font-mono);
  font-size: 0.54rem;
  letter-spacing: 0.25em;
  color: #64748b;
  text-transform: uppercase;
  margin-top: 2px;
  font-weight: 600;
}

.nav-overlay {
  display: none;
}
.mobile-drawer-header, .mobile-drawer-footer {
  display: none;
}

.nav-links, .nav-links-list {
  display: flex;
  align-items: center;
  gap: 2rem;
}

.nav-link {
  font-family: var(--font-display);
  font-size: 0.92rem;
  color: #0f0049;
  letter-spacing: 0.02em;
  font-weight: 700;
  position: relative;
  padding: 0.3rem 0;
}

.nav-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background: #0f0049;
  transition: var(--transition);
}

.nav-link:hover {
  color: var(--flight-gold);
}

.nav-link:hover::after {
  width: 100%;
}

.nav-link.highlight-nav {
  color: #0f0049;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.nav-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.mobile-toggle {
  display: none;
  font-size: 1.4rem;
  color: #0f0049;
  padding: 0.4rem;
}

/* ==========================================================================
   HERO SECTION: "THE FLIGHT DECK / DEPARTURE TERMINAL"
   ========================================================================== */
.hero-section {
  position: relative;
  min-height: 94vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 2.5rem 0 6rem;
  overflow: hidden;
}

.hero-aura-glow {
  position: absolute;
  top: 25%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 900px;
  height: 500px;
  background: radial-gradient(ellipse at center, rgba(197, 160, 89, 0.16) 0%, rgba(197, 160, 89, 0.05) 50%, transparent 75%);
  pointer-events: none;
  z-index: 2;
  filter: blur(40px);
}

.hero-media {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.hero-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transform: scale(1.08);
  transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), transform 12s ease-out;
  pointer-events: none;
}

.hero-slide.active {
  opacity: 1;
  transform: scale(1.02);
  pointer-events: auto;
}

.hero-bg-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  background: linear-gradient(
    180deg,
    rgba(8, 11, 17, 0.72) 0%,
    rgba(8, 11, 17, 0.38) 40%,
    rgba(8, 11, 17, 0.75) 80%,
    #ffffff 100%
  );
}

/* Telemetry Bar (Aviation HUD) */
.hero-telemetry-bar {
  position: relative;
  z-index: 4;
  margin-bottom: 2rem;
  padding-top: 1rem;
}

.telemetry-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  flex-wrap: wrap;
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.85);
  background: rgba(8, 11, 17, 0.75);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--radius-full);
  padding: 0.5rem 1.6rem;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
}

.telemetry-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.destination-telemetry strong {
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.gold-icon {
  color: var(--flight-gold);
}

.telemetry-sep {
  color: rgba(255, 255, 255, 0.25);
  font-weight: 300;
}

.hero-audio-pill {
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid var(--gold-border);
  color: #ffffff;
  font-size: 0.76rem;
  padding: 0.35rem 0.85rem;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  transition: var(--transition);
}

.hero-audio-pill:hover {
  background: rgba(255, 255, 255, 0.28);
}

.hero-audio-pill.playing {
  background: var(--flight-gold);
  color: #0f0049;
  border-color: transparent;
  font-weight: 700;
}

.audio-waves {
  display: none;
  align-items: center;
  gap: 2px;
  height: 12px;
}

.hero-audio-pill.playing .audio-waves {
  display: flex;
}

.audio-waves span {
  width: 2px;
  height: 100%;
  background: #0f0049;
  border-radius: 1px;
  animation: audioWave 1s ease-in-out infinite;
}

.audio-waves span:nth-child(2) { animation-delay: 0.2s; }
.audio-waves span:nth-child(3) { animation-delay: 0.4s; }

@keyframes audioWave {
  0%, 100% { height: 4px; }
  50% { height: 12px; }
}

.hero-content {
  position: relative;
  z-index: 3;
  text-align: center;
  max-width: 1080px;
  margin: 0 auto;
}

.hero-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(14px);
  padding: 0.45rem 1.4rem;
  border-radius: var(--radius-full);
  font-family: var(--font-mono);
  font-size: 0.78rem;
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 1.8rem;
  letter-spacing: 0.05em;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
}

.hero-title {
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 5.8vw, 5.2rem);
  line-height: 1.05;
  margin-bottom: 1.5rem;
  font-weight: 900;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: -0.03em;
  text-shadow: 0 4px 25px rgba(0, 0, 0, 0.7);
}

.shimmer-gold {
  color: #fce7b0;
  font-style: normal;
  font-weight: 900;
  background: linear-gradient(110deg, #dfba76 0%, #ffffff 35%, #c9a96e 55%, #dfba76 100%);
  background-size: 250% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: goldShineText 6s linear infinite;
}

@keyframes goldShineText {
  0% { background-position: 0% center; }
  100% { background-position: 250% center; }
}

.hero-subtitle {
  font-size: clamp(1.05rem, 1.8vw, 1.25rem);
  color: rgba(245, 245, 245, 0.92);
  max-width: 820px;
  margin: 0 auto 2.5rem;
  font-weight: 400;
  line-height: 1.65;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.8);
}

/* Destination Pills */
.hero-dest-pills {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 2.5rem;
  flex-wrap: wrap;
}

.dest-pill {
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.28);
  backdrop-filter: blur(12px);
  padding: 0.55rem 1.4rem;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  font-family: var(--font-display);
  font-size: 0.88rem;
  color: #ffffff;
  font-weight: 700;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  transition: var(--transition);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.dest-pill .pill-num {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--flight-gold);
  font-weight: 800;
}

.dest-pill:hover {
  background: rgba(255, 255, 255, 0.28);
  transform: translateY(-2px);
}

.dest-pill.active {
  border-color: #ffffff;
  color: #0f0049;
  background: #ffffff;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.35);
}

.pill-progress {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 2px;
  width: 0;
  background: #0f0049;
}

.dest-pill.active .pill-progress {
  width: 100%;
  animation: pillProgress 6.5s linear infinite;
}

@keyframes pillProgress {
  from { width: 0; }
  to { width: 100%; }
}

/* ==========================================================================
   FLIGHT BOOKING CONSOLE (BUSCADOR DE DESPEGUE)
   ========================================================================== */
.booking-widget {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-radius: var(--radius-lg);
  box-shadow: 0 25px 65px rgba(0, 0, 0, 0.18), 0 5px 15px rgba(0, 0, 0, 0.06);
  padding: 1.6rem 2.2rem 2.2rem;
  text-align: left;
}

.widget-tabs {
  display: flex;
  gap: 0.8rem;
  border-bottom: 1px solid var(--border-subtle);
  padding-bottom: 0.85rem;
  margin-bottom: 1.2rem;
}

.tab-btn {
  font-family: var(--font-display);
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--text-secondary);
  padding: 0.4rem 1rem;
  border-radius: var(--radius-sm);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  letter-spacing: 0.04em;
}

.tab-btn:hover {
  color: #0f0049;
}

.tab-btn.active {
  color: #ffffff;
  background: #0f0049;
}

.booking-form {
  display: grid;
  grid-template-columns: 1.8fr 1.6fr 1.6fr auto;
  gap: 1.2rem;
  align-items: center;
}

.form-cell {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.65rem 1rem;
  border-radius: 12px;
  background: #f8fafc;
  border: 1.5px solid #e2e8f0;
  transition: var(--transition);
}

.form-cell:hover, .form-cell:focus-within {
  border-color: #0f0049;
  background: #ffffff;
  box-shadow: 0 6px 20px rgba(8, 11, 17, 0.08);
}

.form-cell label {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #0f0049;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.custom-select-wrapper select {
  width: 100%;
  font-family: var(--font-display);
  font-size: 0.94rem;
  font-weight: 700;
  cursor: pointer;
  color: #0f0049;
}

.custom-select-wrapper select option {
  background: #ffffff;
  color: #0f0049;
}

.date-inputs {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.date-inputs input[type="date"] {
  font-family: var(--font-mono);
  font-size: 0.88rem;
  font-weight: 600;
  color: #0f0049;
  cursor: pointer;
}

.date-sep {
  color: #94a3b8;
  font-weight: 600;
}

.form-cell .hint {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  color: #64748b;
  font-weight: 500;
}

.btn-search {
  background: #0f0049;
  color: #ffffff;
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 700;
  padding: 1.15rem 2rem;
  border-radius: 12px;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  white-space: nowrap;
  box-shadow: 0 10px 25px rgba(8, 11, 17, 0.25);
  cursor: pointer;
  transition: var(--transition);
}

.btn-search:hover {
  background: #000000;
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.35);
  color: #ffffff;
}

/* Hero Stats Bar */
.hero-stats {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.8rem;
  margin-top: 3.5rem;
  flex-wrap: wrap;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
  border-radius: var(--radius-md);
  padding: 1.4rem 2.5rem;
}

.stat-item {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.stat-number {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 3.2vw, 2.3rem);
  font-weight: 900;
  color: #0f0049;
  line-height: 1;
}

.stat-label {
  font-family: var(--font-mono);
  font-size: 0.74rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-secondary);
  margin-top: 0.35rem;
  font-weight: 600;
}

.stat-divider {
  width: 1px;
  height: 36px;
  background: #e2e8f0;
}

/* ==========================================================================
   SECTIONS GENERAL
   ========================================================================== */
.section {
  padding: 6.5rem 0;
}

.section-header {
  margin-bottom: 3.5rem;
}

/* Filter Bar */
.filter-bar {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-bottom: 3rem;
}

.filter-chip {
  padding: 0.65rem 1.5rem;
  font-family: var(--font-display);
  font-size: 0.85rem;
  border-radius: var(--radius-full);
  background: #ffffff;
  border: 1.5px solid #e2e8f0;
  color: #1e293b;
  transition: var(--transition);
  font-weight: 700;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
}

.filter-chip:hover {
  border-color: #0f0049;
  color: #0f0049;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
}

.filter-chip.active {
  background: #0f0049;
  border-color: #0f0049;
  color: #ffffff;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.22);
}

/* ==========================================================================
   AIRLINE BOARDING PASS TICKET CARDS (.hotel-card)
   ========================================================================== */
.collection-section {
  background: #f8fafc;
}

.hotel-grid {
  display: flex;
  flex-direction: column;
  gap: 1.8rem;
  max-width: 1220px;
  margin: 0 auto;
}

.hotel-card {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: grid;
  grid-template-columns: 310px 1fr 260px;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease, border-color 0.35s ease;
  position: relative;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.07), 0 2px 6px rgba(15, 23, 42, 0.03);
}

.hotel-card:hover {
  transform: translateY(-6px);
  border-color: rgba(8, 11, 17, 0.25);
  box-shadow: 0 25px 50px rgba(15, 23, 42, 0.14), 0 8px 18px rgba(15, 23, 42, 0.06);
}

/* Card Media (Left) */
.card-media {
  position: relative;
  height: 100%;
  min-height: 250px;
  overflow: hidden;
}

.card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.hotel-card:hover .card-media img {
  transform: scale(1.06);
}

.card-badge {
  position: absolute;
  top: 1.1rem;
  left: 1.1rem;
  z-index: 2;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(0, 0, 0, 0.08);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.35rem 0.85rem;
  border-radius: var(--radius-full);
  color: #0f0049;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
}

.card-badge.gold {
  background: #0f0049;
  color: #ffffff;
  border: 1px solid #0f0049;
}

.card-wishlist {
  position: absolute;
  top: 1.1rem;
  right: 1.1rem;
  z-index: 2;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(0, 0, 0, 0.1);
  color: #0f0049;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  transition: var(--transition);
}

.card-wishlist:hover {
  background: #0f0049;
  color: #ffffff;
}

.card-wishlist.active {
  background: #0f0049;
  color: #ffffff;
}

.card-overlay-gradient {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(8, 11, 17, 0.8) 100%);
  z-index: 1;
}

.card-floating-info {
  position: absolute;
  bottom: 0.9rem;
  left: 1.2rem;
  right: 1.2rem;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-mono);
  font-size: 0.74rem;
  color: #ffffff;
}

.card-floating-info .location {
  color: #fce7b0;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.card-floating-info .rating {
  color: #ffffff;
  display: flex;
  align-items: center;
  gap: 0.3rem;
}

.card-floating-info .rating i {
  color: #f1c40f;
}

/* Card Body (Center Flight & Hotel Itinerary) */
.card-body {
  padding: 1.8rem 2.2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #ffffff;
}

.plan-num-tag {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--flight-gold);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 0.3rem;
  display: inline-block;
}

.card-title {
  font-family: var(--font-display);
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 0.5rem;
  color: #0f0049;
  letter-spacing: -0.01em;
}

.card-desc {
  font-size: 0.88rem;
  color: #475569;
  line-height: 1.6;
  margin-bottom: 1.2rem;
}

.tours-badges-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.tour-chip {
  font-size: 0.75rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  padding: 0.35rem 0.75rem;
  border-radius: 6px;
  color: #1e293b;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-weight: 600;
}

.tour-chip i {
  color: #0f0049;
}

/* Card Footer (Right Tear-off Boarding Pass Stub) */
.card-footer {
  background: #fcfdfe;
  border-left: 2px dashed #cbd5e1;
  padding: 1.8rem 1.6rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  text-align: center;
  position: relative;
}

/* Semicircular Boarding Pass notches */
.card-footer::before, .card-footer::after {
  content: '';
  position: absolute;
  left: -12px;
  width: 22px;
  height: 22px;
  background: #f8fafc;
  border-radius: 50%;
  z-index: 5;
}

.card-footer::before { top: -11px; }
.card-footer::after { bottom: -11px; }

.price-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  width: 100%;
}

.price-label {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  color: #64748b;
  letter-spacing: 0.1em;
  font-weight: 700;
}

.price-val {
  font-family: var(--font-display);
  font-size: 1.65rem;
  font-weight: 900;
  color: #0f0049;
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin: 0.25rem 0;
}

.price-period {
  font-family: var(--font-mono);
  font-size: 0.76rem;
  color: var(--flight-gold);
  font-weight: 700;
}

.btn-card-action {
  width: 100%;
  background: #0f0049;
  color: #ffffff;
  font-family: var(--font-display);
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 0.85rem 1.1rem;
  border-radius: var(--radius-sm);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  box-shadow: 0 6px 18px rgba(8, 11, 17, 0.2);
  cursor: pointer;
  transition: var(--transition);
}

.btn-card-action:hover {
  background: #000000;
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
  color: #ffffff;
}

/* Off-market CTA Box */
.collection-cta-box {
  margin-top: 4.5rem;
  background: #0f0049;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-md);
  padding: 2.5rem 3rem;
  box-shadow: 0 20px 50px rgba(8, 11, 17, 0.25);
  color: #ffffff;
}

.cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}

.cta-icon {
  font-size: 2.4rem;
  color: var(--flight-gold);
}

.cta-texts {
  flex: 1;
  min-width: min(280px, 100%);
  max-width: 100%;
}

.cta-texts h3 {
  font-size: 1.6rem;
  margin-bottom: 0.4rem;
  color: #ffffff;
}

.cta-texts p {
  color: #cbd5e1;
  font-size: 0.94rem;
}

/* ==========================================================================
   AIRPORT FLIGHT DEPARTURES BOARD (.rates-table)
   ========================================================================== */
.quick-rates-wrapper {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--radius-lg);
  padding: 2.2rem 2.5rem;
  margin-bottom: 3.5rem;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.07);
}

.rates-table-header {
  text-align: center;
  margin-bottom: 1.8rem;
}

.rates-table-header .table-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  color: var(--flight-gold);
  text-transform: uppercase;
  background: rgba(197, 160, 89, 0.1);
  border: 1px solid var(--gold-border);
  padding: 0.35rem 0.9rem;
  border-radius: 999px;
  margin-bottom: 0.8rem;
  font-weight: 700;
}

.rates-table-header h3 {
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2.5vw, 1.85rem);
  color: #0f0049;
  margin-bottom: 0.4rem;
}

.rates-table-header p {
  font-size: 0.92rem;
  color: var(--text-muted);
}

.table-responsive {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.rates-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
  text-align: left;
}

.rates-table th {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #ffffff;
  padding: 1.1rem 1.2rem;
  background: #0f0049;
  border-bottom: 2px solid #0f0049;
  white-space: nowrap;
}

.rates-table td {
  padding: 1.1rem 1.2rem;
  border-bottom: 1px solid #f1f5f9;
  color: #1e293b;
  vertical-align: middle;
}

.rates-table tbody tr {
  transition: background 0.25s ease;
}

.rates-table tbody tr:hover {
  background: #f8fafc;
}

.rates-table td strong {
  font-family: var(--font-display);
  font-weight: 700;
  color: #0f0049;
}

.rates-table .table-price {
  font-family: var(--font-mono);
  font-weight: 700;
  color: #0f0049;
}

.btn-table-action {
  background: #0f0049;
  border: 1px solid #0f0049;
  color: #ffffff;
  padding: 0.5rem 1.1rem;
  border-radius: var(--radius-sm);
  font-family: var(--font-display);
  font-size: 0.84rem;
  font-weight: 700;
  cursor: pointer;
  transition: var(--transition);
  box-shadow: 0 4px 12px rgba(8, 11, 17, 0.15);
}

.btn-table-action:hover {
  background: #000000;
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.25);
}

/* ==========================================================================
   FLIGHT & VACATION CONFIGURATOR (#configurador)
   ========================================================================== */
.calculator-section {
  background: #f8fafc;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  position: relative;
  overflow: hidden;
}

.calculator-card {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  backdrop-filter: blur(20px);
  border-radius: var(--radius-lg);
  padding: clamp(1.8rem, 3.5vw, 3.2rem);
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.08);
}

.calculator-grid {
  display: grid;
  grid-template-columns: 1.45fr 1fr;
  gap: 3rem;
  align-items: flex-start;
}

.calc-group {
  margin-bottom: 2.2rem;
}

.calc-label {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 800;
  color: #0f0049;
  letter-spacing: 0.02em;
  margin-bottom: 1.2rem;
  text-transform: uppercase;
}

.calc-step {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  font-weight: 800;
  color: #ffffff;
  background: #0f0049;
  border: 1px solid #0f0049;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Destinations Choice Grid */
.calc-destinations-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.9rem;
}

.dest-choice {
  background: #ffffff;
  border: 1.5px solid #e2e8f0;
  border-radius: var(--radius-sm);
  padding: 0.85rem;
  display: flex;
  align-items: center;
  gap: 0.9rem;
  text-align: left;
  cursor: pointer;
  transition: var(--transition);
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}

.dest-choice:hover {
  background: #f8fafc;
  border-color: #0f0049;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.07);
}

.dest-choice.active {
  background: #f8fafc;
  border-color: #0f0049;
  border-width: 2px;
  box-shadow: 0 8px 24px rgba(8, 11, 17, 0.12);
}

.choice-thumb {
  width: 54px;
  height: 54px;
  border-radius: 8px;
  background-size: cover;
  background-position: center;
  flex-shrink: 0;
  border: 1px solid #e2e8f0;
}

.choice-text {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.choice-text strong {
  font-family: var(--font-display);
  font-size: 0.95rem;
  color: #0f0049;
  font-weight: 800;
}

.choice-text span {
  font-size: 0.74rem;
  color: var(--text-secondary);
}

.choice-price-tag {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--flight-gold);
  font-weight: 700;
}

/* Duration Buttons Row */
.calc-durations-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.8rem;
}

.duration-btn {
  background: #ffffff;
  border: 1.5px solid #e2e8f0;
  border-radius: var(--radius-sm);
  padding: 0.9rem 0.6rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  cursor: pointer;
  transition: var(--transition);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}

.duration-btn .nights {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f0049;
  margin-bottom: 0.2rem;
}

.duration-btn .desc {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  color: var(--text-muted);
}

.duration-btn:hover {
  background: #f8fafc;
  border-color: #0f0049;
}

.duration-btn.active {
  background: #0f0049;
  border-color: #0f0049;
  box-shadow: 0 6px 20px rgba(8, 11, 17, 0.2);
}

.duration-btn.active .nights {
  color: #ffffff;
}

.duration-btn.active .desc {
  color: #cbd5e1;
}

/* VIP Addons */
.calc-addons-list {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.addon-item {
  background: #ffffff;
  border: 1.5px solid #e2e8f0;
  border-radius: var(--radius-sm);
  padding: 0.85rem 1.1rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  cursor: pointer;
  transition: var(--transition);
  position: relative;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}

.addon-item:hover {
  background: #f8fafc;
  border-color: #0f0049;
}

.addon-checkbox {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}

.custom-check {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  border: 1.5px solid #cbd5e1;
  background: #f8fafc;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: var(--transition);
}

.addon-checkbox:checked + .custom-check {
  background: #0f0049;
  border-color: #0f0049;
}

.addon-checkbox:checked + .custom-check::after {
  content: '\f00c';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  font-size: 0.72rem;
  color: #ffffff;
}

.addon-info {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

.addon-name {
  font-family: var(--font-display);
  font-size: 0.9rem;
  font-weight: 700;
  color: #0f0049;
  margin-bottom: 0.15rem;
}

.addon-desc {
  font-size: 0.76rem;
  color: var(--text-secondary);
}

.addon-price {
  font-family: var(--font-mono);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--flight-gold);
}

/* Flight Summary Column (Aviation Boarding Pass Stub Terminal) */
.calc-summary-column {
  position: sticky;
  top: 100px;
}

.summary-box {
  background: #0f0049;
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-md);
  padding: 2.2rem;
  box-shadow: 0 25px 60px rgba(8, 11, 17, 0.25), 0 8px 20px rgba(8, 11, 17, 0.15);
  position: relative;
  overflow: hidden;
}

.summary-box::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, #eb0046, #eb0046, #eb0046);
}

.summary-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #f1c40f;
  background: rgba(241, 196, 15, 0.12);
  padding: 0.3rem 0.8rem;
  border-radius: var(--radius-full);
  margin-bottom: 1rem;
  font-weight: 700;
}

.summary-box h3 {
  font-size: 1.65rem;
  line-height: 1.2;
  margin-bottom: 0.35rem;
  color: #ffffff;
}

.summary-sub {
  font-size: 0.82rem;
  color: #94a3b8;
}

.summary-divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.12);
  margin: 1.4rem 0;
}

.summary-lines {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.summary-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.84rem;
}

.summary-line .line-label {
  color: #cbd5e1;
}

.summary-line .line-val {
  font-family: var(--font-mono);
  font-size: 0.98rem;
  font-weight: 700;
  color: #ffffff;
}

.summary-line .text-gold {
  color: #fce7b0;
  font-family: var(--font-mono);
}

.total-investment-block {
  margin-bottom: 1.6rem;
}

.total-label {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #94a3b8;
  display: block;
  margin-bottom: 0.3rem;
  font-weight: 700;
}

.total-price-row {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
}

.total-currency {
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.2vw, 2.6rem);
  font-weight: 900;
  color: #f1c40f;
  line-height: 1;
  letter-spacing: -0.02em;
}

.total-note {
  font-family: var(--font-mono);
  font-size: 0.76rem;
  color: #94a3b8;
}

.summary-cta {
  background: #ffffff !important;
  color: #0f0049 !important;
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  font-size: 0.95rem !important;
  padding: 1.1rem 1.4rem;
  margin-bottom: 1.4rem;
  justify-content: center;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  gap: 0.6rem;
  box-shadow: 0 8px 24px rgba(255, 255, 255, 0.2) !important;
  cursor: pointer;
  transition: var(--transition);
}

.summary-cta:hover {
  background: #f8fafc !important;
  color: #000000 !important;
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(255, 255, 255, 0.3) !important;
}

.summary-guarantee-badges {
  display: flex;
  justify-content: space-between;
  gap: 0.4rem;
}

.guarantee-chip {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  color: #94a3b8;
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-weight: 600;
}

.guarantee-chip i {
  color: var(--flight-gold);
}

/* ==========================================================================
   EXPERIENCES SECTION
   ========================================================================== */
.experiences-section {
  background: #ffffff;
  border-top: 1px solid var(--border-subtle);
  border-bottom: 1px solid var(--border-subtle);
}

.section-header-split {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 3rem;
  margin-bottom: 3.5rem;
}

.section-desc-side {
  max-width: 480px;
  color: var(--text-secondary);
  font-size: 0.95rem;
  line-height: 1.7;
}

.exp-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  gap: 1.8rem;
}

/* Experiences Cards (High-Contrast LATAM Theme) */
.exp-card {
  position: relative;
  min-height: 460px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(15, 0, 73, 0.12);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 2.2rem;
  background: var(--latam-indigo, #0f0049);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease;
  box-shadow: 0 12px 32px rgba(15, 0, 73, 0.14);
}

.exp-card:hover {
  border-color: rgba(15, 0, 73, 0.3);
  transform: translateY(-6px);
  box-shadow: 0 22px 48px rgba(15, 0, 73, 0.26);
}

.exp-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  transition: transform 0.8s ease;
  z-index: 1;
}

.exp-card:hover .exp-bg {
  transform: scale(1.06);
}

/* Deep LATAM Indigo Gradient Scrim ensuring 100% text legibility */
.exp-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(15, 0, 73, 0.22) 0%,
    rgba(15, 0, 73, 0.58) 35%,
    rgba(15, 0, 73, 0.92) 70%,
    rgba(15, 0, 73, 0.99) 100%
  );
  z-index: 2;
  pointer-events: none;
}

.exp-content {
  position: relative;
  z-index: 3;
}

/* 1. Pill: 5D / 4N • Cancún */
.exp-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: var(--latam-coral, #eb0046);
  color: #ffffff;
  font-family: var(--font-mono, monospace);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.35rem 0.85rem;
  border-radius: var(--radius-full, 9999px);
  margin-bottom: 0.85rem;
  box-shadow: 0 4px 14px rgba(235, 0, 70, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.25);
}

/* 2. Title: Chichén Itzá, Cenotes Mayas & Ruinas de Tulum */
.exp-title {
  font-family: var(--font-display, 'Outfit', sans-serif);
  font-size: 1.55rem;
  line-height: 1.28;
  margin-bottom: 0.85rem;
  color: #ffffff;
  font-weight: 800;
  letter-spacing: -0.01em;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.85), 0 4px 24px rgba(15, 0, 73, 0.95);
}

/* 3. Summary: Descubra una de las Nuevas Maravillas... */
.exp-summary {
  font-family: var(--font-sans, 'Plus Jakarta Sans', sans-serif);
  font-size: 0.92rem;
  color: #f1f5f9;
  line-height: 1.62;
  margin-bottom: 1.35rem;
  font-weight: 500;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.8);
}

/* 4. Meta row */
.exp-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding-top: 1.15rem;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
  flex-wrap: wrap;
}

/* 5. Included: Incluido en Plan Cancún */
.exp-price {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-family: var(--font-mono, monospace);
  font-size: 0.82rem;
  font-weight: 800;
  color: #34d399;
  background: rgba(16, 185, 129, 0.18);
  border: 1px solid rgba(52, 211, 153, 0.4);
  padding: 0.38rem 0.8rem;
  border-radius: var(--radius-full, 9999px);
  letter-spacing: 0.03em;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.7);
}

.exp-price i {
  color: #34d399;
  font-size: 0.88rem;
}

/* 6. Link: Ver plan completo -> */
.exp-meta .btn-link {
  background: rgba(255, 255, 255, 0.95);
  color: var(--latam-indigo, #0f0049);
  font-family: var(--font-display, 'Outfit', sans-serif);
  font-size: 0.82rem;
  font-weight: 800;
  padding: 0.45rem 1.05rem;
  border-radius: var(--radius-full, 9999px);
  border: 1px solid rgba(255, 255, 255, 0.5);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  transition: all 0.2s ease;
  text-decoration: none;
}

.exp-meta .btn-link:hover {
  background: #ffffff;
  color: var(--latam-coral, #eb0046);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.4);
}

.exp-meta .btn-link i {
  color: var(--latam-coral, #eb0046);
  font-size: 0.82rem;
  transition: transform 0.2s ease;
}

.exp-meta .btn-link:hover i {
  transform: translateX(4px);
}

/* ==========================================================================
   STANDARD & CONCIERGE (FIRST CLASS PRIVATE LOUNGE)
   ========================================================================== */
.standard-section {
  background: #f8fafc;
}

.standard-grid {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 4.5rem;
  align-items: center;
}

.visual-stack {
  position: relative;
}

.visual-stack .img-main {
  border-radius: var(--radius-md);
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow-lg);
  width: 100%;
}

.visual-badge-floating {
  position: absolute;
  bottom: -25px;
  right: -25px;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  padding: 1.2rem 1.6rem;
  border-radius: var(--radius-md);
  max-width: 320px;
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.12);
}

.badge-icon {
  font-size: 1.6rem;
  color: var(--flight-gold);
}

.visual-badge-floating strong {
  display: block;
  font-size: 0.92rem;
  color: #0f0049;
  margin-bottom: 0.2rem;
  font-weight: 700;
}

.visual-badge-floating p {
  font-size: 0.78rem;
  color: #475569;
  line-height: 1.4;
}

.standard-lead {
  font-size: 1.12rem;
  color: var(--text-primary);
  margin-bottom: 2.2rem;
  line-height: 1.7;
}

.standard-lead em {
  color: var(--flight-gold-light);
  font-style: normal;
  font-weight: 700;
}

.perks-list {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  margin-bottom: 2.6rem;
}

.perk-item {
  display: flex;
  gap: 1.2rem;
  align-items: flex-start;
}

.perk-icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #0f0049;
  font-size: 1.1rem;
  flex-shrink: 0;
}

.perk-text h4 {
  font-family: var(--font-display);
  font-size: 1.18rem;
  margin-bottom: 0.25rem;
  color: #0f0049;
  font-weight: 800;
}

.perk-text p {
  font-size: 0.86rem;
  color: var(--text-secondary);
  line-height: 1.5;
}

.concierge-cta-row {
  display: flex;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
}

.advisor-signature {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.advisor-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--flight-gold);
}

.advisor-name {
  display: block;
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 800;
  color: #0f0049;
}

.advisor-title {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  color: var(--text-muted);
}

/* ==========================================================================
   PRESS & QUOTES
   ========================================================================== */
.press-section {
  background: #ffffff;
  border-top: 1px solid var(--border-subtle);
  border-bottom: 1px solid var(--border-subtle);
  padding: 5rem 0;
}

.press-logos {
  display: flex;
  justify-content: space-around;
  align-items: center;
  flex-wrap: wrap;
  gap: 2rem;
  margin-bottom: 4rem;
  color: #0f0049;
  opacity: 0.5;
}

.press-logo {
  font-family: var(--font-display);
  font-size: 1.1rem;
  letter-spacing: 0.25em;
  font-weight: 900;
}

.quote-box {
  max-width: 860px;
  margin: 0 auto;
  text-align: center;
}

.quote-stars {
  color: #f1c40f;
  font-size: 0.9rem;
  display: flex;
  justify-content: center;
  gap: 0.35rem;
  margin-bottom: 1.5rem;
}

.quote-text {
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2.6vw, 2.1rem);
  line-height: 1.45;
  color: #0f0049;
  font-weight: 800;
  margin-bottom: 1.8rem;
  letter-spacing: -0.01em;
}

.quote-author strong {
  display: block;
  font-family: var(--font-display);
  font-size: 1rem;
  color: var(--flight-gold);
  font-weight: 800;
}

.quote-author span {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--text-muted);
}

/* ==========================================================================
   PLANNER BANNER (DEPARTURE PASSENGER LOUNGE)
   ========================================================================== */
.planner-banner {
  padding: 5.5rem 0;
}

.banner-card {
  position: relative;
  background: #0f0049;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-lg);
  padding: 4.5rem 3.5rem;
  text-align: center;
  box-shadow: 0 25px 60px rgba(8, 11, 17, 0.25);
  overflow: hidden;
}

.banner-card::before {
  content: '';
  position: absolute;
  top: -50%;
  left: 50%;
  transform: translateX(-50%);
  width: 600px;
  height: 350px;
  background: radial-gradient(ellipse at center, rgba(197, 160, 89, 0.2) 0%, transparent 70%);
  pointer-events: none;
}

.banner-content {
  position: relative;
  z-index: 2;
  max-width: 760px;
  margin: 0 auto;
}

.banner-title {
  font-family: var(--font-display);
  font-size: clamp(2.3rem, 3.8vw, 3.5rem);
  margin-bottom: 1.2rem;
  color: #ffffff;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.banner-sub {
  color: #cbd5e1;
  font-size: 1.05rem;
  line-height: 1.7;
  margin-bottom: 2.6rem;
}

.banner-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.2rem;
}

.banner-guarantee {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.footer {
  background: #050608;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding: 5.5rem 0 2rem;
  font-size: 0.88rem;
  color: #94a3b8;
}

.footer-main {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  gap: 3.5rem;
  margin-bottom: 4rem;
}

.brand-col .footer-desc {
  margin-top: 1.2rem;
  line-height: 1.7;
  color: #94a3b8;
}

.footer-heading {
  font-family: var(--font-display);
  font-size: 0.9rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #ffffff;
  margin-bottom: 1.4rem;
  font-weight: 800;
}

.footer-links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.footer-links a {
  color: #cbd5e1;
  transition: var(--transition);
}

.footer-links a:hover {
  color: #ffffff;
  padding-left: 0.4rem;
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1.2rem;
  font-size: 0.8rem;
  color: #64748b;
}

.footer-legal {
  display: flex;
  gap: 1.8rem;
}

.footer-legal a:hover {
  color: #ffffff;
}

/* ==========================================================================
   MODAL WINDOWS (DETALLE DE PLAN & CHECKOUT AIRLINE)
   ========================================================================== */
.modal-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(8, 11, 17, 0.78);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  z-index: 2000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.modal-backdrop.active {
  display: flex;
  opacity: 1;
}

.modal-dialog {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: var(--radius-lg);
  width: 100%;
  max-width: 960px;
  max-height: 90vh;
  overflow-y: auto;
  position: relative;
  box-shadow: 0 35px 90px rgba(0, 0, 0, 0.3);
  transform: translateY(20px) scale(0.97);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  padding: 2.2rem;
  color: #1e293b;
}

.modal-backdrop.active .modal-dialog {
  transform: translateY(0) scale(1);
}

.modal-dialog.modal-narrow {
  max-width: 600px;
}

.modal-close {
  position: absolute;
  top: 1.2rem;
  right: 1.2rem;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  color: #0f0049;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  z-index: 10;
  cursor: pointer;
  transition: var(--transition);
}

.modal-close:hover {
  background: #0f0049;
  color: #ffffff;
}

/* Modal Content Grid */
.modal-grid-inner {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 2.2rem;
}

.modal-gallery-main {
  height: 340px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  margin-bottom: 0.8rem;
  position: relative;
}

.modal-gallery-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.modal-duration-tag {
  position: absolute;
  top: 1rem;
  left: 1rem;
  background: #0f0049;
  color: #ffffff;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  padding: 0.3rem 0.7rem;
  border-radius: var(--radius-sm);
  font-weight: 700;
}

.modal-thumbs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.6rem;
}

.modal-thumbs img {
  height: 75px;
  width: 100%;
  object-fit: cover;
  border-radius: 6px;
  cursor: pointer;
  opacity: 0.65;
  transition: var(--transition);
  border: 1px solid #e2e8f0;
}

.modal-thumbs img.active, .modal-thumbs img:hover {
  opacity: 1;
  outline: 2px solid #0f0049;
}

.modal-badge-row {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 0.8rem;
  flex-wrap: wrap;
}

.badge-rnt {
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  color: #0f0049;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.3rem 0.7rem;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.modal-info-col h2 {
  font-size: 2rem;
  line-height: 1.15;
  margin-bottom: 0.5rem;
  color: #0f0049;
}

.modal-location {
  color: var(--flight-gold);
  font-family: var(--font-mono);
  font-size: 0.84rem;
  font-weight: 700;
  margin-bottom: 1.2rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.modal-description {
  font-size: 0.88rem;
  color: #475569;
  line-height: 1.6;
  margin-bottom: 1.4rem;
}

.modal-subheading {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 800;
  color: #0f0049;
  margin: 1.2rem 0 0.6rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  text-transform: uppercase;
}

.modal-tours-list {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  margin-bottom: 1.2rem;
}

.modal-tour-card {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-sm);
  padding: 0.8rem 1rem;
}

.modal-tour-card strong {
  display: block;
  font-size: 0.88rem;
  color: #0f0049;
  margin-bottom: 0.15rem;
}

.modal-tour-card p {
  font-size: 0.78rem;
  color: #475569;
}

.specs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.8rem;
  margin-bottom: 1.6rem;
  padding: 1rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-sm);
}

.spec-cell {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.82rem;
  color: #1e293b;
  font-weight: 600;
}

.spec-cell i {
  color: #0f0049;
}

.modal-minors-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.8rem;
  margin-bottom: 1.2rem;
}

.minor-card {
  background: #f8fafc;
  border: 1.5px solid #e2e8f0;
  border-radius: var(--radius-sm);
  padding: 0.8rem;
  text-align: center;
}

.minor-card .minor-age {
  display: block;
  font-size: 0.72rem;
  color: #64748b;
  font-weight: 600;
}

.minor-card .minor-val {
  display: block;
  font-family: var(--font-mono);
  font-size: 1rem;
  font-weight: 800;
  color: #0f0049;
  margin-top: 0.2rem;
}

.modal-booking-terms {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.4rem;
}

.term-pill {
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  color: #1e293b;
  font-family: var(--font-mono);
  font-size: 0.74rem;
  font-weight: 700;
  padding: 0.35rem 0.7rem;
  border-radius: var(--radius-sm);
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.term-pill.highlight {
  background: rgba(197, 160, 89, 0.15);
  border-color: var(--flight-gold);
  color: #0f0049;
}

.modal-price-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 1.2rem;
  border-top: 1px solid #e2e8f0;
  flex-wrap: wrap;
  gap: 1rem;
}

/* ==========================================================================
   CHECKOUT & PAYMENT GATEWAY MODAL
   ========================================================================== */
.checkout-dialog {
  max-width: 720px !important;
}

.checkout-plan-card {
  background: #f8fafc;
  border: 1.5px solid #e2e8f0;
  border-radius: var(--radius-sm);
  padding: 1.1rem 1.3rem;
  margin-bottom: 1.2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8rem;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
}

.checkout-plan-title strong {
  display: block;
  font-family: var(--font-display);
  font-size: 1.1rem;
  color: #0f0049;
  font-weight: 800;
}

.checkout-plan-title span {
  font-family: var(--font-mono);
  font-size: 0.76rem;
  color: #64748b;
}

.checkout-coupon-box {
  background: #f8fafc;
  border: 1.5px dashed #cbd5e1;
  border-radius: var(--radius-sm);
  padding: 0.9rem 1.1rem;
  margin-bottom: 1.2rem;
}

.coupon-input-row {
  display: flex;
  gap: 0.6rem;
  margin-top: 0.4rem;
}

.coupon-input-row input {
  flex: 1;
  background: #ffffff;
  border: 1.5px solid #e2e8f0;
  border-radius: var(--radius-sm);
  padding: 0.65rem 0.9rem;
  font-family: var(--font-mono);
  font-size: 0.88rem;
  font-weight: 700;
  text-transform: uppercase;
  color: #0f0049;
  letter-spacing: 0.08em;
}

.btn-apply-coupon {
  background: #0f0049;
  color: #ffffff;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.85rem;
  padding: 0.65rem 1.2rem;
  border-radius: var(--radius-sm);
  white-space: nowrap;
  transition: var(--transition);
}

.btn-apply-coupon:hover {
  background: #000000;
  transform: translateY(-1px);
}

.coupon-feedback {
  font-size: 0.78rem;
  margin-top: 0.4rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.coupon-feedback.success { color: #10b981; }
.coupon-feedback.error { color: #ef4444; }

.payment-method-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem;
  margin-bottom: 1.2rem;
}

.pay-tab-btn {
  background: #f8fafc;
  border: 1.5px solid #e2e8f0;
  border-radius: var(--radius-sm);
  padding: 0.8rem;
  color: #475569;
  font-family: var(--font-display);
  font-size: 0.86rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  cursor: pointer;
  transition: var(--transition);
}

.pay-tab-btn.active {
  background: #0f0049;
  border-color: #0f0049;
  color: #ffffff;
  box-shadow: 0 6px 18px rgba(8, 11, 17, 0.2);
}

.pay-tab-panel {
  display: none;
  background: #f8fafc;
  border: 1.5px solid #e2e8f0;
  border-radius: var(--radius-sm);
  padding: 1.2rem;
  margin-bottom: 1.4rem;
  text-align: center;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
  color: #0f0049;
}

.pay-tab-panel.active {
  display: block;
}

.checkout-qr-img {
  width: 170px;
  height: 170px;
  object-fit: contain;
  background: #fff;
  padding: 8px;
  border-radius: var(--radius-sm);
  margin: 0.6rem auto;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.12);
  border: 1px solid #e2e8f0;
}

.checkout-llave-card {
  background: #ffffff;
  border: 1.5px dashed var(--flight-gold);
  border-radius: var(--radius-sm);
  padding: 1rem 1.2rem;
  text-align: left;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.llave-info-text strong {
  display: block;
  font-size: 1.15rem;
  color: #0f0049;
  font-family: var(--font-mono);
  font-weight: 800;
}

.btn-copy-llave {
  background: #0f0049;
  color: #ffffff;
  padding: 0.55rem 1rem;
  border-radius: var(--radius-sm);
  font-family: var(--font-display);
  font-size: 0.8rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  transition: var(--transition);
}

.btn-copy-llave:hover {
  background: #000000;
}

.deposit-choices-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.6rem;
  margin-bottom: 1.2rem;
}

.deposit-choice-btn {
  background: #ffffff;
  border: 1.5px solid #e2e8f0;
  border-radius: var(--radius-sm);
  padding: 0.75rem 0.5rem;
  text-align: center;
  cursor: pointer;
  transition: var(--transition);
}

.deposit-choice-btn strong {
  display: block;
  font-family: var(--font-display);
  font-size: 0.88rem;
  color: #0f0049;
  font-weight: 800;
}

.deposit-choice-btn span {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  color: var(--text-muted);
}

.deposit-choice-btn.active {
  background: #0f0049;
  border-color: #0f0049;
  color: #ffffff;
  box-shadow: 0 4px 14px rgba(8, 11, 17, 0.2);
}

.deposit-choice-btn.active strong {
  color: #ffffff;
}

.deposit-choice-btn.active span {
  color: #cbd5e1;
}

.checkout-breakdown-row {
  display: flex;
  justify-content: space-between;
  font-size: 0.86rem;
  color: var(--text-secondary);
  padding: 0.25rem 0;
}

.checkout-total-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-top: 0.8rem;
  margin-top: 0.6rem;
  border-top: 1px solid #e2e8f0;
}

.checkout-total-row strong {
  font-family: var(--font-display);
  font-size: 1.55rem;
  color: #0f0049;
  font-weight: 900;
}

.inquiry-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.field-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.field-wrap label {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #0f0049;
  font-weight: 700;
}

.field-wrap input, .field-wrap select, .field-wrap textarea {
  background: #f8fafc;
  border: 1.5px solid #e2e8f0;
  border-radius: var(--radius-sm);
  padding: 0.75rem 1rem;
  font-size: 0.88rem;
  color: #0f0049;
}

.field-wrap input:focus, .field-wrap select:focus, .field-wrap textarea:focus {
  border-color: #0f0049;
  background: #ffffff;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
}

.btn-gold-submit {
  margin-top: 0.6rem;
  background: #0f0049;
  color: #ffffff;
  font-family: var(--font-display);
  font-size: 0.98rem;
  font-weight: 800;
  padding: 1.05rem;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  box-shadow: 0 10px 25px rgba(8, 11, 17, 0.25);
  cursor: pointer;
  transition: var(--transition);
}

.btn-gold-submit:hover {
  background: #000000;
  transform: translateY(-2px);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.35);
}

.form-privacy-note {
  font-size: 0.72rem;
  color: var(--text-muted);
  text-align: center;
  line-height: 1.4;
}

/* Success View */
.checkout-success-view {
  text-align: center;
  padding: 1.5rem 0.5rem;
}

.checkout-success-view .success-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: rgba(16, 185, 129, 0.15);
  border: 2px solid #10b981;
  color: #10b981;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  margin-bottom: 1rem;
}

.btn-whatsapp-confirm {
  background: #25d366;
  color: #ffffff;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 0.95rem;
  padding: 0.95rem 1.6rem;
  border-radius: var(--radius-sm);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  width: 100%;
  margin-top: 1.2rem;
  box-shadow: 0 6px 20px rgba(37, 211, 102, 0.35);
  transition: var(--transition);
}

.btn-whatsapp-confirm:hover {
  background: #1eb956;
  transform: translateY(-2px);
}

/* Passenger Selector */
.checkout-passengers-box {
  background: #f8fafc;
  border: 1.5px solid #e2e8f0;
  border-radius: var(--radius-sm);
  padding: 1.1rem 1.25rem;
  margin-bottom: 1.25rem;
}

.passengers-box-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.8rem;
  flex-wrap: wrap;
}

.passengers-box-title {
  font-family: var(--font-display);
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #0f0049;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.passengers-box-badge {
  background: #0f0049;
  color: #ffffff;
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 0.74rem;
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
}

.passengers-box-sub {
  font-size: 0.75rem;
  color: var(--text-muted);
  margin: 0.35rem 0 0.9rem;
}

.passengers-counter-grid {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.passenger-counter-card {
  background: #ffffff;
  border: 1.5px solid #e2e8f0;
  border-radius: var(--radius-sm);
  padding: 0.85rem 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.8rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

.p-counter-info {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.p-counter-icon {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #f1f5f9;
  color: #0f0049;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
  flex-shrink: 0;
}

.p-counter-icon.child-icon {
  background: rgba(16, 185, 129, 0.12);
  color: #10b981;
}

.p-counter-info strong {
  display: block;
  font-family: var(--font-display);
  font-size: 0.92rem;
  color: #0f0049;
  font-weight: 800;
}

.p-counter-info span {
  display: block;
  font-size: 0.73rem;
  color: var(--text-muted);
}

.p-counter-ctrl {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-sm);
  padding: 0.25rem 0.35rem;
}

.btn-qty-ctrl {
  width: 32px;
  height: 32px;
  border-radius: 6px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  color: #0f0049;
  font-size: 0.84rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition);
}

.btn-qty-ctrl:hover {
  background: #0f0049;
  color: #ffffff;
  border-color: #0f0049;
}

.qty-display {
  min-width: 28px;
  text-align: center;
  font-weight: 800;
  font-size: 1.05rem;
  color: #0f0049;
  font-family: var(--font-mono);
}

.children-section-wrapper {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-sm);
  padding: 0.9rem 1rem;
}

.child-subcounter-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.8rem;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 0.6rem 0.85rem;
}

.child-subcounter-text strong {
  font-size: 0.85rem;
  color: #0f0049;
  font-weight: 700;
}

.child-price-tag {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  color: var(--flight-gold) !important;
  font-weight: 700;
}

.change-dest-wrap {
  position: relative;
  display: inline-block;
  margin-top: 0.25rem;
}

.change-dest-trigger {
  font-family: var(--font-mono);
  font-size: 0.73rem;
  color: var(--flight-gold);
  text-decoration: underline;
  cursor: pointer;
}

.chk-dest-select {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.checkout-plan-thumb {
  width: 60px !important;
  height: 60px !important;
  max-width: 60px !important;
  max-height: 60px !important;
  border-radius: var(--radius-sm);
  object-fit: cover !important;
  flex-shrink: 0;
  border: 1px solid #e2e8f0;
}

/* ==========================================================================
   FLOATING VIP CONCIERGE DESK
   ========================================================================== */
.vip-concierge-widget {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  z-index: 1500;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.concierge-bubble {
  background: #0f0049;
  color: #ffffff;
  border: 1.5px solid var(--flight-gold);
  padding: 0.6rem 1.2rem 0.6rem 0.6rem;
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  gap: 0.75rem;
  box-shadow: 0 12px 35px rgba(8, 11, 17, 0.3);
  cursor: pointer;
  transition: var(--transition);
}

.concierge-bubble:hover {
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 16px 40px rgba(8, 11, 17, 0.45);
}

.bubble-avatar {
  position: relative;
  width: 38px;
  height: 38px;
}

.bubble-avatar img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--flight-gold);
}

.pulse-ring {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 10px;
  height: 10px;
  background: #10b981;
  border: 2px solid #0f0049;
  border-radius: 50%;
}

.bubble-text-group {
  display: flex;
  flex-direction: column;
  text-align: left;
}

.bubble-status {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #f1c40f;
  font-weight: 700;
}

.bubble-name {
  font-family: var(--font-display);
  font-size: 0.88rem;
  font-weight: 800;
  color: #ffffff;
}

.toggle-arrow {
  font-size: 0.75rem;
  color: #ffffff;
  transition: transform 0.3s ease;
  margin-left: 0.2rem;
}

.vip-concierge-widget.open .toggle-arrow {
  transform: rotate(180deg);
}

.concierge-card {
  position: absolute;
  bottom: calc(100% + 1rem);
  right: 0;
  width: 360px;
  max-width: 90vw;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: var(--radius-md);
  box-shadow: 0 25px 70px rgba(0, 0, 0, 0.25);
  overflow: hidden;
  opacity: 0;
  transform: translateY(20px) scale(0.96);
  pointer-events: none;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
}

.vip-concierge-widget.open .concierge-card {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.concierge-card-header {
  background: #0f0049;
  padding: 1rem 1.2rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #ffffff;
}

.concierge-profile {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.avatar-wrap {
  position: relative;
  width: 42px;
  height: 42px;
}

.avatar-wrap img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--flight-gold);
}

.online-indicator {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 11px;
  height: 11px;
  background: #10b981;
  border: 2px solid #0f0049;
  border-radius: 50%;
}

.profile-info strong {
  display: block;
  font-family: var(--font-display);
  font-size: 0.95rem;
  color: #ffffff;
  font-weight: 800;
}

.profile-info span {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--flight-gold);
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.concierge-call-btn, .concierge-close-btn {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  transition: var(--transition);
}

.concierge-card-body {
  padding: 1.2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.chat-message-bubble {
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 12px 12px 12px 2px;
  padding: 0.9rem;
  font-size: 0.84rem;
  line-height: 1.5;
  color: #1e293b;
}

.chat-timestamp {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  color: var(--text-muted);
  margin-top: 0.5rem;
}

.concierge-quick-prompts {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.prompt-title {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #64748b;
  font-weight: 700;
}

.prompt-chip {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-sm);
  padding: 0.55rem 0.85rem;
  color: #0f0049;
  font-size: 0.82rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  text-align: left;
  cursor: pointer;
  transition: var(--transition);
}

.prompt-chip:hover {
  background: #0f0049;
  border-color: #0f0049;
  color: #ffffff;
  transform: translateX(3px);
}

.prompt-chip.whatsapp {
  border-color: rgba(37, 211, 102, 0.4);
  color: #059669;
}

.prompt-chip.whatsapp i {
  color: #10b981;
}

.prompt-chip.whatsapp:hover {
  background: #25d366;
  color: #ffffff;
}

.concierge-card-footer {
  padding: 0.8rem 1.2rem 1.2rem;
  border-top: 1px solid var(--border-subtle);
}

.quick-chat-form {
  display: flex;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.quick-chat-form input {
  padding: 0.65rem 0.85rem;
  width: 100%;
  font-size: 0.84rem;
  color: #0f0049;
}

.quick-chat-form button {
  background: #0f0049;
  color: #ffffff;
  padding: 0 1rem;
  font-size: 0.85rem;
  transition: var(--transition);
}

/* Toast Notifications */
.toast-notification {
  position: fixed;
  bottom: 2rem;
  left: 2rem;
  z-index: 2500;
  background: #0f0049;
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--radius-sm);
  padding: 0.9rem 1.2rem;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.35);
  display: flex;
  align-items: center;
  gap: 0.8rem;
  transform: translateY(120%);
  opacity: 0;
  transition: all 0.35s ease;
  pointer-events: none;
}

.toast-notification.active {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

.toast-icon {
  font-size: 1.2rem;
  color: var(--flight-gold);
}

.toast-body strong {
  display: block;
  font-size: 0.85rem;
  font-family: var(--font-display);
}

.toast-body span {
  font-size: 0.75rem;
  color: #cbd5e1;
}

/* ==========================================================================
   ADVANCED RESPONSIVE MEDIA QUERIES (MOBILE AIRLINE DECK)
   ========================================================================== */
@media (max-width: 992px) {
  .top-bar {
    display: none;
  }

  .desktop-only-btn {
    display: none !important;
  }

  .mobile-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: var(--radius-sm);
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    color: #0f0049;
    font-size: 1.25rem;
  }

  /* Mobile Navbar */
  .navbar {
    position: sticky;
    top: 0;
    z-index: 2500 !important;
    background-color: #ffffff !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
  }

  /* Backdrop Overlay */
  .nav-overlay {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(8, 11, 17, 0.75) !important;
    z-index: 2400 !important;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
  }

  .nav-overlay.active {
    opacity: 1;
    pointer-events: auto;
  }

  /* Off-canvas Navigation Drawer */
  .nav-links {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    width: min(340px, 86vw) !important;
    height: 100vh !important;
    height: 100dvh !important;
    background: #ffffff !important;
    border-left: 1px solid #e2e8f0 !important;
    box-shadow: -15px 0 50px rgba(0, 0, 0, 0.15) !important;
    z-index: 2600 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    padding: 1.6rem 1.4rem !important;
    transform: translateX(105%) !important;
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
    overflow-y: auto !important;
  }

  .nav-links.open {
    transform: translateX(0) !important;
  }

  .mobile-drawer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 1.2rem;
    border-bottom: 1px solid #e2e8f0;
    margin-bottom: 1.5rem;
  }

  .drawer-close {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    color: #0f0049;
    font-size: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
  }

  .nav-links-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
  }

  .nav-link {
    font-size: 1.05rem;
    padding: 0.75rem 0.5rem;
    display: block;
    border-bottom: 1px solid #f1f5f9;
  }

  .mobile-drawer-footer {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding-top: 1.5rem;
    border-top: 1px solid #e2e8f0;
    margin-top: 2rem;
  }

  .mobile-selectors {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
  }

  .selector-group-mobile {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: var(--radius-sm);
    padding: 0.45rem 0.65rem;
  }

  .selector-group-mobile label {
    font-family: var(--font-mono);
    font-size: 0.68rem;
    text-transform: uppercase;
    color: #0f0049;
    font-weight: 700;
  }

  .selector-group-mobile select {
    font-size: 16px !important;
    color: #0f0049;
    cursor: pointer;
    min-height: 38px;
  }

  .mobile-concierge-call {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    font-size: 0.85rem;
    color: #0f0049;
    font-weight: 700;
    padding: 0.75rem;
    border: 1.5px dashed #cbd5e1;
    background: #f8fafc;
    border-radius: var(--radius-sm);
  }

  .mobile-rnt-tag {
    font-family: var(--font-mono);
    font-size: 0.78rem;
    color: #64748b;
    text-align: center;
  }

  /* Boarding Pass Grid stack on tablets and phones */
  .hotel-card {
    grid-template-columns: 1fr !important;
  }

  .card-media {
    height: 220px !important;
    min-height: 220px !important;
  }

  .card-footer {
    border-left: none !important;
    border-top: 2px dashed #cbd5e1 !important;
    padding: 1.4rem !important;
  }

  .card-footer::before {
    top: -11px !important;
    left: -11px !important;
  }

  .card-footer::after {
    top: -11px !important;
    right: -11px !important;
    left: auto !important;
  }

  .booking-form {
    grid-template-columns: 1fr !important;
    gap: 0.8rem !important;
  }

  .calculator-grid {
    grid-template-columns: 1fr !important;
  }

  .calc-summary-column {
    position: static !important;
  }

  .calc-destinations-grid {
    grid-template-columns: 1fr !important;
  }

  .calc-durations-row {
    grid-template-columns: 1fr 1fr !important;
  }

  .exp-grid {
    grid-template-columns: 1fr !important;
  }

  .standard-grid {
    grid-template-columns: 1fr !important;
  }

  .footer-main {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }
}

@media (max-width: 768px) {
  .modal-backdrop {
    padding: 0 !important;
    align-items: flex-end !important;
  }

  .modal-dialog, .checkout-dialog {
    width: 100% !important;
    max-width: 100% !important;
    max-height: 92dvh !important;
    border-radius: 24px 24px 0 0 !important;
    padding: 1.5rem 1.2rem !important;
    background: #ffffff !important;
  }

  .modal-grid-inner {
    grid-template-columns: 1fr !important;
    gap: 1.2rem !important;
  }

  .form-row {
    grid-template-columns: 1fr !important;
  }

  .deposit-choices-row {
    grid-template-columns: 1fr !important;
  }

  .payment-method-tabs {
    grid-template-columns: 1fr !important;
  }

  .hero-stats {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 1.2rem !important;
    padding: 1.2rem !important;
  }

  .stat-divider {
    display: none !important;
  }
}


/* ==========================================================================
   ENHANCED AIRLINE SUITE SPECIFICATIONS
   ========================================================================== */

/* Route badge on card media (Top-Left under duration badge) */
.flight-route-badge {
  position: absolute;
  top: 3.15rem;
  bottom: auto;
  left: 1.1rem;
  z-index: 3;
  background: var(--latam-coral, #eb0046);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
  font-family: var(--font-mono, monospace);
  font-size: 0.72rem;
  font-weight: 800;
  padding: 0.28rem 0.65rem;
  border-radius: var(--radius-sm, 6px);
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  letter-spacing: 0.05em;
  box-shadow: 0 4px 12px rgba(235, 0, 70, 0.35);
}

.flight-route-badge i {
  color: var(--flight-gold);
}

/* Card Body Airline Inclusions */
.card-flight-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.4rem;
}

.flight-status-chip {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.2rem 0.55rem;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: #f0fdf4;
  color: #166534;
  border: 1px solid #bbf7d0;
}

.airline-specs-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.75rem;
}

.airline-spec-chip {
  font-family: var(--font-body);
  font-size: 0.73rem;
  font-weight: 600;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  color: #334155;
  padding: 0.25rem 0.55rem;
  border-radius: 5px;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.airline-spec-chip i {
  color: #0f0049;
  font-size: 0.75rem;
}

/* Tear-off Stub Details */
.stub-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  border-bottom: 1px solid #f1f5f9;
  padding-bottom: 0.6rem;
  margin-bottom: 0.5rem;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.stub-top strong {
  color: #0f0049;
  font-weight: 800;
}

.stub-perks {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  width: 100%;
  margin: 0.6rem 0;
  font-size: 0.74rem;
  color: #475569;
  text-align: left;
}

.stub-perks span {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.stub-perks i {
  color: #16a34a;
  font-size: 0.7rem;
}

.stub-barcode {
  width: 100%;
  margin-top: 0.8rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  opacity: 0.85;
}

.barcode-lines {
  width: 100%;
  height: 24px;
  background: repeating-linear-gradient(
    90deg,
    #0f0049 0px,
    #0f0049 2px,
    transparent 2px,
    transparent 4px,
    #0f0049 4px,
    #0f0049 7px,
    transparent 7px,
    transparent 9px,
    #0f0049 9px,
    #0f0049 10px,
    transparent 10px,
    transparent 13px,
    #0f0049 13px,
    #0f0049 16px,
    transparent 16px,
    transparent 18px
  );
  border-radius: 2px;
}

.barcode-text {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  color: #94a3b8;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

/* Flight Departures Board Badges */
.flight-no-badge {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  font-weight: 800;
  background: #0f0049;
  color: #ffffff;
  padding: 0.25rem 0.6rem;
  border-radius: 4px;
  letter-spacing: 0.08em;
  display: inline-block;
}

.flight-route-text {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: #64748b;
  display: block;
  margin-top: 0.15rem;
}

.flight-status-badge {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.25rem 0.6rem;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  letter-spacing: 0.04em;
}

.flight-status-badge.on-time {
  background: #f0fdf4;
  color: #16a34a;
  border: 1px solid #bbf7d0;
}

.flight-status-badge.boarding {
  background: #eff6ff;
  color: #2563eb;
  border: 1px solid #bfdbfe;
}

.flight-status-badge.limited {
  background: #fffbeb;
  color: #b45309;
  border: 1px solid #fde68a;
}

/* Responsive adjustment for Boarding Pass at <= 992px */
@media (max-width: 992px) {
  .hotel-card {
    grid-template-columns: 1fr !important;
  }
  
  .card-media {
    min-height: 240px !important;
    height: 240px !important;
  }
  
  .card-footer {
    border-left: none !important;
    border-top: 2px dashed #cbd5e1 !important;
    padding: 1.5rem !important;
  }
  
  .card-footer::before, .card-footer::after {
    top: -11px !important;
    bottom: auto !important;
  }
  
  .card-footer::before {
    left: -11px !important;
  }
  
  .card-footer::after {
    left: auto !important;
    right: -11px !important;
  }
}


/* ==========================================================================
   COMPREHENSIVE MOBILE RESPONSIVENESS OVERHAUL (PHONES & TABLETS)
   Resolves all viewport overflows, broken paddings, collisions & layout issues
   ========================================================================== */

/* Universal Mobile Safeguards */
html, body {
  overflow-x: hidden !important;
  max-width: 100vw !important;
  width: 100% !important;
  position: relative !important;
}

*, *::before, *::after {
  max-width: 100%;
}

/* ==========================================================================
   BREAKPOINT: TABLETS & MOBILE DEVICES (<= 992px)
   ========================================================================== */
@media (max-width: 992px) {
  .top-bar {
    display: none !important;
  }

  .desktop-only-btn {
    display: none !important;
  }

  .mobile-toggle {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: var(--radius-sm);
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    color: #0f0049;
    font-size: 1.2rem;
    flex-shrink: 0;
  }

  /* Navbar */
  .navbar {
    position: sticky;
    top: 0;
    z-index: 2500 !important;
    background-color: #ffffff !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
    padding: 0.75rem 0 !important;
  }

  .nav-content {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 0.8rem !important;
  }

  .nav-actions {
    display: flex !important;
    align-items: center !important;
    gap: 0.6rem !important;
    flex-shrink: 0 !important;
  }

  /* Brand Logo Sizing */
  .brand-logo {
    min-width: 0 !important;
    flex: 1 !important;
  }

  .brand-sub {
    font-size: 0.58rem !important;
    letter-spacing: 0.12em !important;
    margin-bottom: 1px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .brand-title {
    font-size: 1.35rem !important;
    letter-spacing: 0.03em !important;
    line-height: 1.1 !important;
  }

  .brand-detail {
    font-size: 0.52rem !important;
    letter-spacing: 0.1em !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  /* Hero Section */
  .hero-section {
    min-height: auto !important;
    padding: 1.5rem 0 3.5rem !important;
  }

  .hero-pill {
    font-size: 0.72rem !important;
    padding: 0.35rem 0.85rem !important;
    max-width: 100% !important;
    white-space: normal !important;
    text-align: center !important;
    line-height: 1.4 !important;
  }

  .hero-title {
    font-size: clamp(2rem, 6.5vw, 2.8rem) !important;
    line-height: 1.15 !important;
    margin-bottom: 1rem !important;
    letter-spacing: -0.01em !important;
  }

  .hero-subtitle {
    font-size: 0.92rem !important;
    line-height: 1.55 !important;
    margin-bottom: 1.5rem !important;
  }

  /* Telemetry Bar */
  .hero-telemetry-bar {
    margin-bottom: 1.5rem !important;
    padding-top: 0 !important;
  }

  .telemetry-inner {
    border-radius: var(--radius-md) !important;
    padding: 0.65rem 1rem !important;
    gap: 0.5rem 0.8rem !important;
    font-size: 0.72rem !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .telemetry-sep {
    display: none !important;
  }

  /* Destination Carousel Pills */
  .hero-dest-pills {
    gap: 0.5rem !important;
    margin-bottom: 1.8rem !important;
  }

  .dest-pill {
    padding: 0.45rem 0.9rem !important;
    font-size: 0.8rem !important;
  }

  /* Booking Search Widget */
  .booking-widget {
    padding: 1.4rem 1.1rem !important;
    border-radius: var(--radius-md) !important;
  }

  .booking-form {
    grid-template-columns: 1fr !important;
    gap: 0.9rem !important;
  }

  .form-cell {
    padding: 0.75rem 0.9rem !important;
  }

  .form-cell select, 
  .form-cell input {
    font-size: 16px !important; /* Prevents auto-zoom on iOS */
    max-width: 100% !important;
  }

  .date-inputs {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
  }

  .date-inputs input[type="date"] {
    flex: 1 !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  .btn-search {
    width: 100% !important;
    justify-content: center !important;
    padding: 1rem !important;
    font-size: 0.95rem !important;
  }

  /* Hero Stats */
  .hero-stats {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 1.2rem !important;
    padding: 1.2rem 1rem !important;
    margin-top: 2rem !important;
  }

  .stat-divider {
    display: none !important;
  }

  /* Filter Bar */
  .filter-bar {
    gap: 0.5rem !important;
    margin-bottom: 2rem !important;
  }

  .filter-chip {
    padding: 0.5rem 1rem !important;
    font-size: 0.78rem !important;
  }

  /* Hotel Card (Boarding Pass on Tablets & Phones) */
  .hotel-card {
    grid-template-columns: 1fr !important;
    border-radius: var(--radius-md) !important;
  }

  .card-media {
    min-height: 230px !important;
    height: 230px !important;
  }

  .flight-route-badge {
    top: 2.9rem !important;
    bottom: auto !important;
    left: 0.9rem !important;
    font-size: 0.7rem !important;
    padding: 0.25rem 0.55rem !important;
  }

  .card-floating-info {
    left: 0.9rem !important;
    right: 0.9rem !important;
    bottom: 0.75rem !important;
    font-size: 0.72rem !important;
  }

  .card-body {
    padding: 1.3rem 1.1rem !important;
  }

  .card-title {
    font-size: 1.35rem !important;
    margin-bottom: 0.4rem !important;
  }

  .airline-specs-row {
    gap: 0.35rem !important;
    margin-bottom: 0.65rem !important;
  }

  .airline-spec-chip {
    font-size: 0.7rem !important;
    padding: 0.2rem 0.45rem !important;
  }

  .card-desc {
    font-size: 0.84rem !important;
    line-height: 1.5 !important;
    margin-bottom: 1rem !important;
  }

  .tours-badges-row {
    gap: 0.35rem !important;
  }

  .tour-chip {
    font-size: 0.72rem !important;
    padding: 0.25rem 0.55rem !important;
  }

  /* Boarding Pass Tear-off Stub on Mobile */
  .card-footer {
    border-left: none !important;
    border-top: 2px dashed #cbd5e1 !important;
    padding: 1.3rem 1.1rem !important;
    gap: 0.8rem !important;
  }

  /* Semicircular notches placed cleanly on the horizontal dashed line */
  .card-footer::before {
    top: -11px !important;
    bottom: auto !important;
    left: -11px !important;
    right: auto !important;
    width: 20px !important;
    height: 20px !important;
  }

  .card-footer::after {
    top: -11px !important;
    bottom: auto !important;
    right: -11px !important;
    left: auto !important;
    width: 20px !important;
    height: 20px !important;
  }

  .price-wrap {
    gap: 0.15rem !important;
  }

  .price-val {
    font-size: 1.5rem !important;
  }

  .stub-perks {
    font-size: 0.72rem !important;
    text-align: center !important;
    align-items: center !important;
  }

  .btn-card-action {
    width: 100% !important;
    padding: 0.85rem !important;
    font-size: 0.88rem !important;
  }

  .stub-barcode {
    margin-top: 0.4rem !important;
  }

  /* Guarantee / Off-market CTA Box */
  .collection-cta-box {
    margin-top: 2.5rem !important;
    padding: 1.6rem 1.2rem !important;
    border-radius: var(--radius-md) !important;
  }

  .cta-inner {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 1.2rem !important;
  }

  .cta-inner button, .cta-inner .btn-gold {
    width: 100% !important;
    justify-content: center !important;
  }

  /* Calculator Section */
  .calculator-card {
    padding: 1.3rem 1rem !important;
    border-radius: var(--radius-md) !important;
  }

  .calculator-grid {
    grid-template-columns: 1fr !important;
    gap: 1.8rem !important;
  }

  .calc-destinations-grid {
    grid-template-columns: 1fr !important;
    gap: 0.6rem !important;
  }

  .dest-choice {
    padding: 0.7rem 0.8rem !important;
  }

  .dest-choice .choice-thumb {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
  }

  .dest-choice .choice-text strong {
    font-size: 0.88rem !important;
  }

  .dest-choice .choice-text span {
    font-size: 0.72rem !important;
  }

  .choice-price-tag {
    font-size: 0.72rem !important;
  }

  .calc-durations-row {
    grid-template-columns: 1fr !important;
    gap: 0.6rem !important;
  }

  .duration-btn {
    padding: 0.75rem 0.9rem !important;
  }

  .calc-summary-column {
    position: static !important;
  }

  .summary-box {
    padding: 1.4rem 1.1rem !important;
    border-radius: var(--radius-md) !important;
  }

  /* Experiences Grid */
  .exp-grid {
    grid-template-columns: 1fr !important;
    gap: 1.2rem !important;
  }

  .exp-card {
    min-height: 320px !important;
    padding: 1.5rem 1.2rem !important;
  }

  /* Standard Grid (VIP Concierge section) */
  .standard-grid {
    grid-template-columns: 1fr !important;
    gap: 2.5rem !important;
  }

  .visual-stack {
    position: relative !important;
    overflow: visible !important;
  }

  /* Fix the right -25px horizontal overflow bug */
  .visual-badge-floating {
    position: static !important;
    margin-top: 1rem !important;
    max-width: 100% !important;
    right: auto !important;
    bottom: auto !important;
    padding: 1rem 1.2rem !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08) !important;
  }

  /* Press logos & Quotes */
  .press-logos {
    gap: 1rem 1.5rem !important;
    margin-bottom: 2.2rem !important;
  }

  .press-logo {
    font-size: 0.85rem !important;
    letter-spacing: 0.12em !important;
  }

  .quote-text {
    font-size: 1rem !important;
    line-height: 1.6 !important;
  }

  /* Banner Card */
  .banner-card {
    padding: 2.2rem 1.2rem !important;
    border-radius: var(--radius-md) !important;
  }

  .banner-title {
    font-size: 1.6rem !important;
  }

  .banner-actions button {
    width: 100% !important;
    justify-content: center !important;
  }

  /* Footer */
  .footer-main {
    grid-template-columns: 1fr !important;
    gap: 2.2rem !important;
  }

  .footer-bottom {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 1rem !important;
  }

  /* Fix legal links horizontal overflow */
  .footer-legal {
    flex-wrap: wrap !important;
    gap: 0.6rem 1rem !important;
  }

  /* Modals on Mobile (Bottom Sheet UX) */
  .modal-backdrop {
    padding: 0 !important;
    align-items: flex-end !important;
  }

  .modal-dialog, 
  .checkout-dialog {
    width: 100% !important;
    max-width: 100% !important;
    max-height: 94dvh !important;
    border-radius: 20px 20px 0 0 !important;
    padding: 1.4rem 1.1rem !important;
    margin: 0 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .modal-close {
    top: 1rem !important;
    right: 1rem !important;
    width: 34px !important;
    height: 34px !important;
  }

  .modal-grid-inner {
    grid-template-columns: 1fr !important;
    gap: 1.2rem !important;
  }

  .modal-gallery-main {
    height: 220px !important;
  }

  .modal-thumbs {
    gap: 0.4rem !important;
  }

  .modal-thumbs img {
    height: 52px !important;
  }

  .form-row {
    grid-template-columns: 1fr !important;
    gap: 0.8rem !important;
  }

  .deposit-choices-row {
    grid-template-columns: 1fr !important;
    gap: 0.5rem !important;
  }

  .payment-method-tabs {
    grid-template-columns: 1fr !important;
    gap: 0.5rem !important;
  }

  .checkout-plan-card {
    padding: 0.9rem !important;
    flex-direction: column !important;
    align-items: flex-start !important;
  }

  .checkout-plan-card > div:last-child {
    width: 100% !important;
    align-items: flex-start !important;
    text-align: left !important;
  }

  .passenger-counter-card {
    padding: 0.75rem 0.85rem !important;
  }

  .p-counter-info {
    min-width: 0 !important;
    flex: 1 !important;
  }

  .p-counter-info span {
    font-size: 0.72rem !important;
    line-height: 1.3 !important;
  }

  /* VIP Floating Concierge Widget on Mobile */
  .vip-concierge-widget {
    bottom: 1.2rem !important;
    right: 1.2rem !important;
  }

  .concierge-bubble {
    padding: 0.5rem 0.85rem !important;
    gap: 0.5rem !important;
  }

  .bubble-avatar {
    width: 32px !important;
    height: 32px !important;
  }

  .bubble-status {
    font-size: 0.65rem !important;
  }

  .bubble-name {
    font-size: 0.76rem !important;
  }

  .concierge-card {
    width: min(340px, calc(100vw - 2.4rem)) !important;
    right: 0 !important;
  }

  /* Toast Notification */
  .toast-notification {
    bottom: 1.2rem !important;
    left: 1rem !important;
    right: 1rem !important;
    max-width: calc(100vw - 2rem) !important;
    padding: 0.75rem 1rem !important;
  }
}

/* ==========================================================================
   BREAKPOINT: COMPACT PHONES (<= 480px / 360px - 414px)
   ========================================================================== */
@media (max-width: 480px) {
  .container {
    padding-left: 0.9rem !important;
    padding-right: 0.9rem !important;
  }

  .brand-title {
    font-size: 1.18rem !important;
  }

  .brand-sub {
    font-size: 0.52rem !important;
    letter-spacing: 0.08em !important;
  }

  .brand-detail {
    display: none !important;
  }

  .hero-title {
    font-size: 1.85rem !important;
  }

  .hero-stats {
    grid-template-columns: 1fr 1fr !important;
    gap: 0.8rem !important;
    padding: 0.9rem 0.7rem !important;
  }

  .stat-number {
    font-size: 1.55rem !important;
  }

  .stat-label {
    font-size: 0.66rem !important;
  }

  .card-media {
    min-height: 200px !important;
    height: 200px !important;
  }

  .flight-route-badge {
    top: 2.6rem !important;
    bottom: auto !important;
    left: 0.8rem !important;
    font-size: 0.66rem !important;
  }

  .card-floating-info {
    font-size: 0.68rem !important;
  }

  .card-body {
    padding: 1.1rem 0.9rem !important;
  }

  .card-footer {
    padding: 1.1rem 0.9rem !important;
  }

  .price-val {
    font-size: 1.38rem !important;
  }

  .calculator-card {
    padding: 1rem 0.75rem !important;
  }

  .calc-label {
    font-size: 0.85rem !important;
  }

  .dest-choice {
    padding: 0.6rem 0.65rem !important;
  }

  .bubble-text-group {
    display: none !important;
  }

  .concierge-bubble {
    padding: 0.4rem !important;
    border-radius: 50% !important;
  }

  .concierge-bubble .toggle-arrow {
    display: none !important;
  }
}


/* ==========================================================================
   IMAGE LOCK & EXPANSION PREVENTION (PC & ALL SCREENS)
   Guarantees card media and images NEVER stretch or enlarge on tab change
   ========================================================================== */
.hotel-card {
  display: grid !important;
  grid-template-columns: 310px 1fr 260px !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: 1220px !important;
  margin: 0 auto !important;
  overflow: hidden !important;
  background: #ffffff !important;
  border-radius: var(--radius-lg) !important;
}

.card-media {
  width: 310px !important;
  min-width: 310px !important;
  max-width: 310px !important;
  height: 100% !important;
  min-height: 250px !important;
  position: relative !important;
  overflow: hidden !important;
  flex-shrink: 0 !important;
}

.card-media img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.hotel-card:hover .card-media img {
  transform: scale(1.05) !important;
}

/* ==========================================================================
   BOOKING WIDGET (BULLETPROOF RESPONSIVE FLIGHT CONSOLE)
   ========================================================================== */
.booking-widget {
  background: #ffffff !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: 0 25px 65px rgba(0, 0, 0, 0.18), 0 5px 15px rgba(0, 0, 0, 0.06) !important;
  padding: 1.5rem 1.8rem 1.8rem !important;
  width: 100% !important;
  max-width: 1120px !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
  text-align: left !important;
}

.booking-form {
  display: grid !important;
  grid-template-columns: 1.6fr 1.4fr 1.3fr auto !important;
  gap: 1rem !important;
  align-items: stretch !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.form-cell {
  background: #f8fafc !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 12px !important;
  padding: 0.65rem 0.95rem !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 0.35rem !important;
  min-width: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
  transition: var(--transition) !important;
}

.form-cell:hover, 
.form-cell:focus-within {
  border-color: #0f0049 !important;
  background: #ffffff !important;
  box-shadow: 0 4px 14px rgba(8, 11, 17, 0.08) !important;
}

.form-cell label {
  font-family: var(--font-mono) !important;
  font-size: 0.68rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: #0f0049 !important;
  font-weight: 800 !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

.form-cell label i {
  color: var(--flight-gold) !important;
  font-size: 0.75rem !important;
}

.custom-select-wrapper {
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  display: flex !important;
  align-items: center !important;
}

.custom-select-wrapper select {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  font-family: var(--font-display) !important;
  font-size: 0.92rem !important;
  font-weight: 700 !important;
  color: #0f0049 !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
  text-overflow: ellipsis !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  padding: 0.2rem 1.4rem 0.2rem 0 !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
}

.custom-select-wrapper::after {
  content: '\f107' !important;
  font-family: 'Font Awesome 6 Free' !important;
  font-weight: 900 !important;
  position: absolute !important;
  right: 0.2rem !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  color: #64748b !important;
  font-size: 0.8rem !important;
  pointer-events: none !important;
}

.form-cell .hint {
  font-family: var(--font-mono) !important;
  font-size: 0.65rem !important;
  color: #64748b !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.date-inputs {
  display: flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

.date-inputs input[type="date"] {
  flex: 1 !important;
  min-width: 0 !important;
  width: 100% !important;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  font-family: var(--font-mono) !important;
  font-size: 0.84rem !important;
  font-weight: 700 !important;
  color: #0f0049 !important;
  padding: 0.15rem 0 !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
}

.date-sep {
  color: #94a3b8 !important;
  font-weight: 700 !important;
  font-size: 0.8rem !important;
  flex-shrink: 0 !important;
}

/* Action button cell */
.form-cell.action-cell {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  box-shadow: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.form-cell.action-cell:hover,
.form-cell.action-cell:focus-within {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.btn-search {
  width: 100% !important;
  height: 100% !important;
  min-height: 52px !important;
  background: #0f0049 !important;
  color: #ffffff !important;
  font-family: var(--font-display) !important;
  font-size: 0.92rem !important;
  font-weight: 800 !important;
  padding: 0.85rem 1.6rem !important;
  border-radius: 12px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.6rem !important;
  white-space: nowrap !important;
  box-shadow: 0 8px 22px rgba(8, 11, 17, 0.25) !important;
  cursor: pointer !important;
  transition: var(--transition) !important;
  border: none !important;
  box-sizing: border-box !important;
}

.btn-search:hover {
  background: #000000 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35) !important;
  color: #ffffff !important;
}

/* ==========================================================================
   MOBILE MEDIA OVERRIDES (TABLETS & PHONES <= 992px)
   ========================================================================== */
@media (max-width: 992px) {
  .hotel-card {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
  }
  
  .card-media {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    height: 230px !important;
    min-height: 230px !important;
    max-height: 230px !important;
  }

  .card-media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  .booking-widget {
    padding: 1.2rem 1rem !important;
    border-radius: var(--radius-md) !important;
    margin: 0 auto !important;
    width: 100% !important;
  }

  .booking-form {
    grid-template-columns: 1fr !important;
    gap: 0.85rem !important;
    width: 100% !important;
  }

  .form-cell {
    padding: 0.75rem 0.9rem !important;
    width: 100% !important;
  }

  .custom-select-wrapper select {
    font-size: 16px !important; /* Prevents auto-zoom on iOS */
    padding: 0.35rem 1.5rem 0.35rem 0 !important;
  }

  .date-inputs {
    display: grid !important;
    grid-template-columns: 1fr auto 1fr !important;
    gap: 0.4rem !important;
    width: 100% !important;
  }

  .date-inputs input[type="date"] {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 0.45rem 0.5rem !important;
    font-size: 16px !important;
    width: 100% !important;
  }

  .form-cell.action-cell .btn-search {
    min-height: 50px !important;
    width: 100% !important;
    padding: 0.95rem 1.2rem !important;
    font-size: 0.95rem !important;
  }
}

/* ==========================================================================
   MOBILE MEDIA OVERRIDES (COMPACT PHONES <= 480px / 360px - 414px)
   ========================================================================== */
@media (max-width: 480px) {
  .booking-widget {
    padding: 1rem 0.75rem !important;
    border-radius: 14px !important;
  }

  .booking-form {
    gap: 0.7rem !important;
  }

  .form-cell {
    padding: 0.65rem 0.75rem !important;
    border-radius: 10px !important;
  }

  .form-cell label {
    font-size: 0.64rem !important;
  }

  .custom-select-wrapper select {
    font-size: 0.88rem !important;
    padding: 0.25rem 1.2rem 0.25rem 0 !important;
  }

  /* Stack dates vertically on small phones so they NEVER collide */
  .date-inputs {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.35rem !important;
    width: 100% !important;
  }

  .date-sep {
    display: none !important;
  }

  .date-inputs input[type="date"] {
    width: 100% !important;
    padding: 0.45rem 0.65rem !important;
    font-size: 0.82rem !important;
  }

  .form-cell .hint {
    font-size: 0.62rem !important;
  }

  .form-cell.action-cell .btn-search {
    min-height: 48px !important;
    font-size: 0.9rem !important;
    padding: 0.85rem 1rem !important;
  }
}


/* ==========================================================================
   REVIEWS & REPUTATION DECK (AUTHENTIC PASSENGER FEEDBACK)
   ========================================================================== */
.reviews-section {
  background: #f8fafc;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  padding: 5.5rem 0;
}

.traveler-reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.8rem;
  margin-top: 2rem;
}

.review-ticket-card {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--radius-md);
  padding: 2rem 1.8rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1.4rem;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.05);
  transition: var(--transition);
  position: relative;
}

.review-ticket-card:hover {
  transform: translateY(-5px);
  border-color: #0f0049;
  box-shadow: 0 20px 45px rgba(15, 23, 42, 0.1);
}

.review-ticket-card.featured {
  border-color: rgba(197, 160, 89, 0.4);
  background: linear-gradient(180deg, #ffffff 0%, #fdfcf9 100%);
  box-shadow: 0 12px 35px rgba(197, 160, 89, 0.08);
}

.review-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  flex-wrap: wrap;
}

.review-flight-badge {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 800;
  background: #0f0049;
  color: #ffffff;
  padding: 0.25rem 0.65rem;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  letter-spacing: 0.05em;
}

.review-flight-badge i {
  color: var(--flight-gold);
}

.review-stars {
  color: #f59e0b;
  font-size: 0.82rem;
  display: flex;
  gap: 0.2rem;
}

.review-text {
  font-family: var(--font-sans);
  font-size: 0.94rem;
  color: #334155;
  line-height: 1.65;
  font-style: italic;
  margin: 0;
}

.review-traveler-footer {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  border-top: 1px solid #f1f5f9;
  padding-top: 1.1rem;
}

.traveler-avatar-initials {
  width: 42px;
  height: 42px;
  min-width: 42px;
  border-radius: 50%;
  background: #0f0049;
  color: var(--flight-gold);
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 0.88rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(197, 160, 89, 0.3);
}

.traveler-meta {
  flex: 1;
  min-width: 0;
}

.traveler-meta strong {
  display: block;
  font-family: var(--font-display);
  font-size: 0.95rem;
  color: #0f0049;
  font-weight: 800;
  line-height: 1.2;
}

.traveler-meta span {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  color: #64748b;
  margin-top: 0.2rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.verified-pill {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  font-weight: 700;
  background: #f0fdf4;
  color: #16a34a;
  border: 1px solid #bbf7d0;
  padding: 0.2rem 0.5rem;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  flex-shrink: 0;
}

/* ==========================================================================
   MODERN BESPOKE FLIGHT BANNER (ARCHITECTURAL & HIGH-CONVERSION)
   ========================================================================== */
.planner-banner {
  padding: 5rem 0;
  background: #ffffff;
}

.bespoke-flight-banner {
  background: #0f0049;
  border: 1.5px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-lg);
  padding: 3.5rem 3.8rem;
  color: #ffffff;
  position: relative;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(8, 11, 17, 0.28);
}

.bespoke-flight-banner::before {
  content: '';
  position: absolute;
  top: -120px;
  right: -120px;
  width: 450px;
  height: 450px;
  background: radial-gradient(circle, rgba(197, 160, 89, 0.18) 0%, transparent 70%);
  pointer-events: none;
}

.banner-badge-row {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}

.banner-pill {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
  font-family: var(--font-mono);
  font-size: 0.74rem;
  font-weight: 700;
  padding: 0.35rem 0.9rem;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.banner-pill i {
  color: var(--flight-gold);
}

.banner-rnt-tag {
  font-family: var(--font-mono);
  font-size: 0.74rem;
  color: #cbd5e1;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.banner-layout-grid {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 3.5rem;
  align-items: center;
  position: relative;
  z-index: 2;
}

.banner-main-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.5vw, 2.8rem);
  font-weight: 900;
  line-height: 1.15;
  color: #ffffff;
  margin-bottom: 1rem;
  letter-spacing: -0.02em;
}

.banner-lead-desc {
  font-size: 1rem;
  line-height: 1.65;
  color: #cbd5e1;
  margin-bottom: 1.8rem;
}

.banner-features-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.banner-feature-item {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  font-size: 0.86rem;
  color: #e2e8f0;
  line-height: 1.45;
}

.banner-feature-item i {
  color: var(--flight-gold);
  font-size: 1rem;
  margin-top: 0.15rem;
  flex-shrink: 0;
}

/* Action Box on the right */
.banner-action-box {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(14px);
  border-radius: 18px;
  padding: 2.2rem;
  text-align: center;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.2);
}

.banner-action-box h3 {
  font-family: var(--font-display);
  font-size: 1.35rem;
  color: #ffffff;
  font-weight: 800;
  margin-bottom: 0.5rem;
}

.banner-action-box p {
  font-size: 0.86rem;
  color: #cbd5e1;
  line-height: 1.5;
  margin-bottom: 1.6rem;
}

.banner-btn-stack {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.btn-banner-primary {
  width: 100%;
  background: #ffffff;
  color: #0f0049;
  font-family: var(--font-display);
  font-size: 0.94rem;
  font-weight: 800;
  padding: 0.95rem 1.4rem;
  border-radius: var(--radius-sm);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  border: none;
  cursor: pointer;
  transition: var(--transition);
  box-shadow: 0 8px 24px rgba(255, 255, 255, 0.15);
}

.btn-banner-primary:hover {
  background: #f1f5f9;
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(255, 255, 255, 0.25);
}

.btn-banner-whatsapp {
  width: 100%;
  background: #25d366;
  color: #ffffff;
  font-family: var(--font-display);
  font-size: 0.94rem;
  font-weight: 800;
  padding: 0.95rem 1.4rem;
  border-radius: var(--radius-sm);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  transition: var(--transition);
  box-shadow: 0 8px 24px rgba(37, 211, 102, 0.25);
}

.btn-banner-whatsapp:hover {
  background: #1eb857;
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(37, 211, 102, 0.4);
}

.banner-security-badge {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  color: #94a3b8;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  margin-top: 1.2rem;
}

/* Responsive for Reviews and Banner */
@media (max-width: 992px) {
  .traveler-reviews-grid {
    grid-template-columns: 1fr !important;
    gap: 1.2rem !important;
  }

  .bespoke-flight-banner {
    padding: 2.2rem 1.4rem !important;
  }

  .banner-layout-grid {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }

  .banner-features-grid {
    grid-template-columns: 1fr !important;
    gap: 0.8rem !important;
  }

  .banner-action-box {
    padding: 1.6rem 1.2rem !important;
  }
}


/* ==========================================================================
   PERFECTED REVIEWS & TRUST SECTION (PC & MOBILE)
   ========================================================================== */
.reviews-section {
  background: #f8fafc !important;
  border-top: 1px solid #e2e8f0 !important;
  border-bottom: 1px solid #e2e8f0 !important;
  padding: 5rem 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Trust Metrics Bar */
.reviews-metrics-bar {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 1.2rem !important;
  flex-wrap: wrap !important;
  margin-top: 2rem !important;
}

.metric-chip {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: var(--radius-full) !important;
  padding: 0.55rem 1.2rem !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.04) !important;
  text-align: left !important;
}

.metric-chip i {
  font-size: 1.25rem !important;
  color: var(--flight-gold) !important;
}

.metric-chip strong {
  display: block !important;
  font-family: var(--font-display) !important;
  font-size: 0.95rem !important;
  color: #0f0049 !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
}

.metric-chip span {
  display: block !important;
  font-family: var(--font-mono) !important;
  font-size: 0.68rem !important;
  color: #64748b !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
}

/* 3-Column Reviews Grid on PC */
.traveler-reviews-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1.8rem !important;
  margin-top: 2.8rem !important;
  align-items: stretch !important;
}

.review-ticket-card {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: var(--radius-md) !important;
  padding: 2.2rem 1.8rem 1.8rem !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  gap: 1.4rem !important;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.05), 0 2px 6px rgba(15, 23, 42, 0.02) !important;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease, border-color 0.3s ease !important;
  position: relative !important;
  overflow: hidden !important;
  height: 100% !important;
  box-sizing: border-box !important;
}

.review-ticket-card:hover {
  transform: translateY(-6px) !important;
  border-color: #0f0049 !important;
  box-shadow: 0 20px 45px rgba(15, 23, 42, 0.1), 0 6px 14px rgba(15, 23, 42, 0.04) !important;
}

.review-card-top-accent {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 4px !important;
  background: #0f0049 !important;
}

.review-card-top-accent.gold {
  background: linear-gradient(90deg, #eb0046 0%, #e2c17c 100%) !important;
}

.review-card-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0.6rem !important;
  width: 100% !important;
}

.review-flight-badge {
  font-family: var(--font-mono) !important;
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  background: #0f0049 !important;
  color: #ffffff !important;
  padding: 0.3rem 0.65rem !important;
  border-radius: 6px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  letter-spacing: 0.06em !important;
}

.review-flight-badge i {
  color: var(--flight-gold) !important;
}

.review-flight-badge.gold {
  background: #0f0049 !important;
  border: 1px solid rgba(197, 160, 89, 0.4) !important;
}

.review-score-wrap {
  display: flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
}

.review-stars {
  color: #f59e0b !important;
  font-size: 0.82rem !important;
  display: flex !important;
  gap: 0.15rem !important;
}

.review-score-num {
  font-family: var(--font-mono) !important;
  font-size: 0.78rem !important;
  font-weight: 800 !important;
  color: #0f0049 !important;
}

.review-quote-body {
  position: relative !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

.quote-icon {
  font-size: 1.4rem !important;
  color: rgba(197, 160, 89, 0.25) !important;
  margin-bottom: 0.6rem !important;
}

.review-text {
  font-family: var(--font-sans) !important;
  font-size: 0.94rem !important;
  color: #334155 !important;
  line-height: 1.65 !important;
  margin: 0 !important;
  font-style: normal !important;
  font-weight: 500 !important;
}

.review-traveler-footer {
  display: flex !important;
  align-items: center !important;
  gap: 0.85rem !important;
  border-top: 1px solid #f1f5f9 !important;
  padding-top: 1.1rem !important;
  width: 100% !important;
}

.traveler-avatar-initials {
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  border-radius: 50% !important;
  background: #0f0049 !important;
  color: var(--flight-gold) !important;
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  font-size: 0.92rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1.5px solid rgba(197, 160, 89, 0.35) !important;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1) !important;
}

.traveler-avatar-initials.gold {
  background: #0f0049 !important;
  border-color: var(--flight-gold) !important;
  color: #fce7b0 !important;
}

.traveler-meta {
  flex: 1 !important;
  min-width: 0 !important;
}

.traveler-meta strong {
  display: block !important;
  font-family: var(--font-display) !important;
  font-size: 0.95rem !important;
  color: #0f0049 !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.traveler-meta span {
  display: block !important;
  font-family: var(--font-mono) !important;
  font-size: 0.7rem !important;
  color: #64748b !important;
  margin-top: 0.2rem !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.verified-pill {
  font-family: var(--font-mono) !important;
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  background: #f0fdf4 !important;
  color: #166534 !important;
  border: 1px solid #bbf7d0 !important;
  padding: 0.25rem 0.6rem !important;
  border-radius: var(--radius-full) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.3rem !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

.verified-pill.gold {
  background: #fdfaf3 !important;
  color: #855d14 !important;
  border-color: #f3dfba !important;
}

/* ==========================================================================
   MOBILE RESPONSIVENESS OVERRIDES (TABLETS & PHONES <= 992px)
   ========================================================================== */
@media (max-width: 992px) {
  .reviews-section {
    padding: 3.5rem 0 !important;
  }

  .reviews-metrics-bar {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0.75rem !important;
    margin-top: 1.5rem !important;
  }

  .metric-chip {
    padding: 0.5rem 0.85rem !important;
    border-radius: var(--radius-sm) !important;
    justify-content: flex-start !important;
  }

  .metric-chip i {
    font-size: 1.1rem !important;
  }

  .metric-chip strong {
    font-size: 0.88rem !important;
  }

  .metric-chip span {
    font-size: 0.64rem !important;
  }

  .traveler-reviews-grid {
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
    margin-top: 2rem !important;
  }

  .review-ticket-card {
    padding: 1.5rem 1.2rem !important;
    border-radius: var(--radius-md) !important;
  }

  .review-flight-badge {
    font-size: 0.68rem !important;
    padding: 0.25rem 0.55rem !important;
  }

  .review-stars {
    font-size: 0.75rem !important;
  }

  .review-text {
    font-size: 0.88rem !important;
    line-height: 1.6 !important;
  }

  .traveler-avatar-initials {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    font-size: 0.82rem !important;
  }

  .traveler-meta strong {
    font-size: 0.88rem !important;
  }

  .traveler-meta span {
    font-size: 0.68rem !important;
  }

  .verified-pill {
    font-size: 0.64rem !important;
    padding: 0.2rem 0.5rem !important;
  }
}

/* ==========================================================================
   COMPACT PHONES (<= 480px / 360px - 414px)
   ========================================================================== */
@media (max-width: 480px) {
  .reviews-metrics-bar {
    grid-template-columns: 1fr 1fr !important;
    gap: 0.5rem !important;
  }

  .metric-chip {
    padding: 0.45rem 0.65rem !important;
    gap: 0.5rem !important;
  }

  .metric-chip i {
    font-size: 1rem !important;
  }

  .metric-chip strong {
    font-size: 0.82rem !important;
  }

  .review-ticket-card {
    padding: 1.3rem 1rem !important;
  }

  .review-card-header {
    flex-wrap: wrap !important;
    gap: 0.5rem !important;
  }

  .review-flight-badge {
    font-size: 0.65rem !important;
  }

  .review-traveler-footer {
    gap: 0.65rem !important;
  }
}


/* ==========================================================================
   LATAM AIRLINES DESIGN SYSTEM STYLES (OVERHAUL)
   Official Aviation & Package Booking System
   ========================================================================== */

/* Typography & Titles */
body {
  font-family: var(--font-sans) !important;
  color: var(--text-secondary) !important;
  background-color: #ffffff !important;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display) !important;
  color: var(--latam-indigo) !important;
}

/* --------------------------------------------------------------------------
   NAVBAR (LATAM AIRLINES STYLE)
   -------------------------------------------------------------------------- */
.navbar {
  background: #ffffff !important;
  border-bottom: 1px solid var(--border-subtle) !important;
  box-shadow: 0 2px 12px rgba(15, 0, 73, 0.06) !important;
  padding: 0.85rem 0 !important;
}

.brand-logo {
  display: flex !important;
  align-items: center !important;
  gap: 0.85rem !important;
  text-decoration: none !important;
}

.brand-wing-symbol {
  width: 40px !important;
  height: 40px !important;
  background: linear-gradient(135deg, var(--latam-indigo) 0%, var(--latam-indigo-light) 100%) !important;
  color: #ffffff !important;
  border-radius: 10px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 1.2rem !important;
  box-shadow: 0 4px 12px rgba(15, 0, 73, 0.15) !important;
  transition: transform 0.2s ease !important;
}

.brand-logo:hover .brand-wing-symbol {
  transform: scale(1.05) rotate(-3deg) !important;
}

.brand-titles-wrap {
  display: flex !important;
  flex-direction: column !important;
  text-align: left !important;
}

.brand-title {
  font-family: var(--font-display) !important;
  font-size: 1.35rem !important;
  font-weight: 800 !important;
  color: var(--latam-indigo) !important;
  letter-spacing: -0.02em !important;
  line-height: 1.1 !important;
}

.brand-title-coral {
  color: var(--latam-coral) !important;
}

.brand-subtitle {
  font-family: var(--font-mono) !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  color: var(--text-muted) !important;
  letter-spacing: 0.08em !important;
  margin-top: 0.15rem !important;
}

/* Nav links */
.nav-links-list .nav-link {
  color: var(--latam-indigo) !important;
  font-weight: 600 !important;
  font-size: 0.95rem !important;
  padding: 0.5rem 0.9rem !important;
  border-radius: var(--radius-sm) !important;
  transition: all 0.2s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
}

.nav-links-list .nav-link i {
  color: var(--latam-coral) !important;
  font-size: 0.9rem !important;
}

.nav-links-list .nav-link:hover {
  background: var(--bg-secondary) !important;
  color: var(--latam-coral) !important;
}

/* Desktop Currency Dropdown */
.desktop-currency-wrap {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
  background: #ffffff !important;
  border: 1px solid var(--border-subtle) !important;
  border-radius: var(--radius-full) !important;
  padding: 0.35rem 0.75rem !important;
  font-size: 0.85rem !important;
  color: var(--latam-indigo) !important;
  font-weight: 700 !important;
}

.desktop-currency-wrap i {
  color: var(--latam-coral) !important;
}

.desktop-currency-wrap select {
  border: none !important;
  outline: none !important;
  background: transparent !important;
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  color: var(--latam-indigo) !important;
  cursor: pointer !important;
}

/* LATAM Coral CTA Button */
.btn-latam-cta {
  background: var(--latam-coral) !important;
  color: #ffffff !important;
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  font-size: 0.92rem !important;
  padding: 0.65rem 1.4rem !important;
  border-radius: var(--radius-full) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  text-decoration: none !important;
  box-shadow: 0 4px 14px rgba(235, 0, 70, 0.25) !important;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
  border: none !important;
  cursor: pointer !important;
}

.btn-latam-cta:hover {
  background: var(--latam-coral-hover) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 22px rgba(235, 0, 70, 0.35) !important;
}

.btn-latam-cta.large {
  padding: 0.9rem 2rem !important;
  font-size: 1.05rem !important;
}

/* --------------------------------------------------------------------------
   HERO SECTION (LATAM AIRLINES EXPERIENCE)
   -------------------------------------------------------------------------- */
.hero-section {
  position: relative !important;
  background: #0f0049 !important;
  padding: 7rem 0 5rem !important;
  overflow: hidden !important;
}

.hero-bg-overlay {
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(180deg, rgba(15, 0, 73, 0.55) 0%, rgba(15, 0, 73, 0.85) 100%) !important;
  z-index: 1 !important;
}

.hero-content {
  position: relative !important;
  z-index: 2 !important;
  text-align: center !important;
}

.latam-pill-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  background: rgba(255, 255, 255, 0.15) !important;
  backdrop-filter: blur(8px) !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  color: #ffffff !important;
  font-family: var(--font-mono) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  padding: 0.4rem 1.1rem !important;
  border-radius: var(--radius-full) !important;
  letter-spacing: 0.06em !important;
  margin-bottom: 1.5rem !important;
}

.latam-pill-badge i {
  color: var(--latam-coral) !important;
}

.hero-title {
  font-size: clamp(2.2rem, 5vw, 3.8rem) !important;
  font-weight: 800 !important;
  color: #ffffff !important;
  line-height: 1.15 !important;
  letter-spacing: -0.03em !important;
  margin-bottom: 1.2rem !important;
}

.hero-title-highlight {
  color: #ffffff !important;
  background: linear-gradient(90deg, #ff4b7d 0%, #ffffff 100%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}

.hero-subtitle {
  font-size: clamp(1rem, 1.8vw, 1.25rem) !important;
  color: rgba(255, 255, 255, 0.88) !important;
  max-width: 820px !important;
  margin: 0 auto 2.5rem !important;
  line-height: 1.6 !important;
}

/* --------------------------------------------------------------------------
   LATAM SIGNATURE BOOKING MODULE (.booking-widget)
   -------------------------------------------------------------------------- */
.booking-widget {
  background: #ffffff !important;
  border-radius: 18px !important;
  border: 1px solid var(--border-subtle) !important;
  box-shadow: 0 24px 60px rgba(15, 0, 73, 0.22), 0 8px 24px rgba(0, 0, 0, 0.08) !important;
  padding: 0 !important;
  max-width: 1180px !important;
  margin: 0 auto 3rem !important;
  overflow: hidden !important;
  text-align: left !important;
}

/* Top Tabs Bar */
.booking-tabs-bar {
  display: flex !important;
  align-items: stretch !important;
  background: #f8fafc !important;
  border-bottom: 1px solid var(--border-subtle) !important;
  padding: 0 1rem !important;
  overflow-x: auto !important;
  scrollbar-width: none !important;
}

.booking-tabs-bar::-webkit-scrollbar {
  display: none !important;
}

.booking-tab {
  background: transparent !important;
  border: none !important;
  padding: 1rem 1.4rem !important;
  font-family: var(--font-display) !important;
  font-size: 0.92rem !important;
  font-weight: 700 !important;
  color: var(--text-muted) !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.6rem !important;
  border-bottom: 3px solid transparent !important;
  transition: all 0.2s ease !important;
  white-space: nowrap !important;
}

.booking-tab:hover {
  color: var(--latam-indigo) !important;
}

.booking-tab.active {
  color: var(--latam-indigo) !important;
  border-bottom-color: var(--latam-coral) !important;
  background: #ffffff !important;
}

.booking-tab.active i {
  color: var(--latam-coral) !important;
}

/* Sub-options Strip */
.booking-options-substrip {
  display: flex !important;
  align-items: center !important;
  gap: 1.2rem !important;
  padding: 0.85rem 1.8rem 0.2rem !important;
  flex-wrap: wrap !important;
  font-size: 0.82rem !important;
}

.option-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  color: var(--latam-indigo) !important;
  font-weight: 700 !important;
  font-family: var(--font-display) !important;
}

.option-chip i {
  color: var(--latam-coral) !important;
}

/* Booking Form Inputs Row */
.booking-form {
  display: grid !important;
  grid-template-columns: 1.1fr 1.6fr 1.3fr 1.3fr auto !important;
  gap: 0.9rem !important;
  padding: 1rem 1.8rem 1.5rem !important;
  align-items: flex-end !important;
}

.form-cell {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.4rem !important;
  min-width: 0 !important;
}

.form-cell label {
  font-family: var(--font-display) !important;
  font-size: 0.78rem !important;
  font-weight: 800 !important;
  color: var(--latam-indigo) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
}

.form-cell label i {
  color: var(--latam-coral) !important;
}

.origin-input-display {
  background: #f8fafc !important;
  border: 1.5px solid var(--border-subtle) !important;
  border-radius: var(--radius-sm) !important;
  padding: 0.72rem 0.9rem !important;
  min-height: 48px !important;
  display: flex !important;
  align-items: center !important;
}

.origin-tag {
  font-family: var(--font-sans) !important;
  font-size: 0.88rem !important;
  font-weight: 700 !important;
  color: var(--latam-indigo) !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.custom-select-wrapper select,
.date-inputs input[type="date"] {
  background: #ffffff !important;
  border: 1.5px solid var(--border-subtle) !important;
  border-radius: var(--radius-sm) !important;
  padding: 0.72rem 0.9rem !important;
  font-family: var(--font-sans) !important;
  font-size: 0.88rem !important;
  font-weight: 600 !important;
  color: var(--latam-indigo) !important;
  width: 100% !important;
  height: 48px !important;
  outline: none !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.custom-select-wrapper select:focus,
.date-inputs input[type="date"]:focus {
  border-color: var(--latam-indigo) !important;
  box-shadow: 0 0 0 3px rgba(15, 0, 73, 0.08) !important;
}

.date-inputs {
  display: flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  width: 100% !important;
}

.date-sep {
  color: var(--text-muted) !important;
  font-weight: 700 !important;
}

.form-cell .hint {
  font-size: 0.7rem !important;
  color: var(--text-muted) !important;
  font-family: var(--font-sans) !important;
}

/* Search CTA Button */
.btn-search {
  background: var(--latam-coral) !important;
  color: #ffffff !important;
  font-family: var(--font-display) !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  height: 48px !important;
  padding: 0 1.8rem !important;
  border-radius: var(--radius-full) !important;
  border: none !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.6rem !important;
  box-shadow: 0 6px 18px rgba(235, 0, 70, 0.3) !important;
  transition: all 0.2s ease !important;
  white-space: nowrap !important;
}

.btn-search:hover {
  background: var(--latam-coral-hover) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 10px 24px rgba(235, 0, 70, 0.4) !important;
}

/* Reassurance Strip */
.booking-widget-reassurance {
  background: #f8fafc !important;
  border-top: 1px solid var(--border-subtle) !important;
  padding: 0.85rem 1.8rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 1rem !important;
  flex-wrap: wrap !important;
}

.reassurance-item {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.55rem !important;
  font-size: 0.8rem !important;
  color: var(--latam-indigo) !important;
}

.reassurance-item i {
  color: var(--latam-coral) !important;
  font-size: 1rem !important;
}

/* Hero Stats Bar */
.hero-stats {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 2rem !important;
  background: rgba(255, 255, 255, 0.1) !important;
  backdrop-filter: blur(10px) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: var(--radius-full) !important;
  padding: 0.9rem 2.5rem !important;
  max-width: 880px !important;
  margin: 0 auto !important;
}

.stat-item {
  text-align: center !important;
}

.stat-number {
  display: block !important;
  font-family: var(--font-display) !important;
  font-size: 1.6rem !important;
  font-weight: 900 !important;
  color: #ffffff !important;
  line-height: 1 !important;
}

.stat-label {
  display: block !important;
  font-size: 0.72rem !important;
  color: rgba(255, 255, 255, 0.85) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  margin-top: 0.25rem !important;
}

.stat-divider {
  width: 1px !important;
  height: 32px !important;
  background: rgba(255, 255, 255, 0.2) !important;
}

/* --------------------------------------------------------------------------
   COLLECTION & CATEGORY FILTER TABS
   -------------------------------------------------------------------------- */
.collection-section {
  background: #f8fafc !important;
  padding: 5rem 0 !important;
}

.section-tag {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
  font-family: var(--font-mono) !important;
  font-size: 0.78rem !important;
  font-weight: 800 !important;
  color: var(--latam-coral) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  margin-bottom: 0.6rem !important;
}

.section-title {
  font-size: clamp(1.8rem, 3.2vw, 2.6rem) !important;
  font-weight: 800 !important;
  color: var(--latam-indigo) !important;
  line-height: 1.2 !important;
  letter-spacing: -0.02em !important;
}

.section-subtitle {
  font-size: 1.05rem !important;
  color: var(--text-muted) !important;
  max-width: 760px !important;
  margin: 0.75rem auto 2.5rem !important;
  line-height: 1.6 !important;
}

.filter-chips {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.65rem !important;
  flex-wrap: wrap !important;
  margin-bottom: 3rem !important;
}

.filter-chip {
  background: #ffffff !important;
  border: 1.5px solid var(--border-subtle) !important;
  border-radius: var(--radius-full) !important;
  padding: 0.6rem 1.4rem !important;
  font-family: var(--font-display) !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  color: var(--latam-indigo) !important;
  cursor: pointer !important;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.filter-chip:hover {
  border-color: var(--latam-indigo) !important;
  background: #ffffff !important;
}

.filter-chip.active {
  background: var(--latam-indigo) !important;
  color: #ffffff !important;
  border-color: var(--latam-indigo) !important;
  box-shadow: 0 4px 14px rgba(15, 0, 73, 0.18) !important;
}

/* --------------------------------------------------------------------------
   LATAM PACKAGE CARDS (.hotel-card)
   -------------------------------------------------------------------------- */
.hotel-card {
  background: #ffffff !important;
  border: 1px solid var(--border-subtle) !important;
  border-radius: 16px !important;
  box-shadow: 0 6px 20px rgba(15, 0, 73, 0.05), 0 1px 3px rgba(0, 0, 0, 0.02) !important;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease, border-color 0.25s ease !important;
  overflow: hidden !important;
}

.hotel-card:hover {
  transform: translateY(-5px) !important;
  border-color: var(--latam-indigo-light) !important;
  box-shadow: 0 20px 45px rgba(15, 0, 73, 0.12), 0 4px 10px rgba(0, 0, 0, 0.04) !important;
}

/* Card Media */
.card-media {
  position: relative !important;
  border-radius: 12px !important;
  overflow: hidden !important;
}

.card-badge.gold {
  background: var(--latam-indigo) !important;
  color: #ffffff !important;
  font-family: var(--font-mono) !important;
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
}

.flight-route-badge {
  background: var(--latam-coral) !important;
  color: #ffffff !important;
  font-family: var(--font-mono) !important;
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.05em !important;
  box-shadow: 0 4px 10px rgba(235, 0, 70, 0.35) !important;
}

/* Card Body */
.plan-num-tag {
  color: var(--latam-indigo) !important;
  font-family: var(--font-mono) !important;
  font-weight: 800 !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.06em !important;
}

.flight-status-chip {
  background: #f0fdf4 !important;
  color: var(--flight-green) !important;
  border: 1px solid #bbf7d0 !important;
  font-family: var(--font-mono) !important;
  font-size: 0.68rem !important;
  font-weight: 800 !important;
  padding: 0.2rem 0.55rem !important;
  border-radius: var(--radius-full) !important;
}

.card-title {
  font-family: var(--font-display) !important;
  font-size: 1.45rem !important;
  font-weight: 800 !important;
  color: var(--latam-indigo) !important;
  margin: 0.4rem 0 0.8rem !important;
}

.airline-specs-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.45rem !important;
  margin-bottom: 0.9rem !important;
}

.airline-spec-chip {
  background: #f8fafc !important;
  border: 1px solid var(--border-subtle) !important;
  color: var(--latam-indigo) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  padding: 0.3rem 0.65rem !important;
  border-radius: 6px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
}

.airline-spec-chip i {
  color: var(--latam-coral) !important;
}

.card-desc {
  font-size: 0.9rem !important;
  color: var(--text-secondary) !important;
  line-height: 1.6 !important;
  margin-bottom: 1rem !important;
}

.tour-chip {
  background: #f1f5f9 !important;
  border: 1px solid #cbd5e1 !important;
  color: var(--latam-indigo) !important;
  font-size: 0.74rem !important;
  font-weight: 700 !important;
  padding: 0.25rem 0.6rem !important;
  border-radius: 6px !important;
}

.tour-chip i {
  color: var(--latam-blue) !important;
}

/* Card Boarding Pass Stub */
.card-footer {
  background: #fafbfe !important;
  border-left: 1.5px dashed var(--border-medium) !important;
  padding: 1.8rem !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
}

.stub-top strong {
  font-family: var(--font-mono) !important;
  font-size: 0.95rem !important;
  color: var(--latam-indigo) !important;
  font-weight: 800 !important;
}

.price-label {
  font-size: 0.72rem !important;
  color: var(--text-muted) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
}

.price-val {
  font-family: var(--font-display) !important;
  font-size: 1.85rem !important;
  font-weight: 900 !important;
  color: var(--latam-indigo) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.02em !important;
}

.price-period {
  font-size: 0.8rem !important;
  color: var(--latam-coral) !important;
  font-weight: 700 !important;
}

.stub-perks span {
  font-size: 0.76rem !important;
  color: var(--text-secondary) !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
  font-weight: 600 !important;
}

.stub-perks span i {
  color: var(--flight-green) !important;
}

.btn-card-action {
  background: var(--latam-coral) !important;
  color: #ffffff !important;
  font-family: var(--font-display) !important;
  font-size: 0.95rem !important;
  font-weight: 800 !important;
  padding: 0.75rem 1.4rem !important;
  border-radius: var(--radius-full) !important;
  border: none !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.55rem !important;
  box-shadow: 0 4px 14px rgba(235, 0, 70, 0.28) !important;
  transition: all 0.2s ease !important;
  width: 100% !important;
}

.btn-card-action:hover {
  background: var(--latam-coral-hover) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 22px rgba(235, 0, 70, 0.38) !important;
}

/* --------------------------------------------------------------------------
   LATAM BENEFITS GRID (THE CONFIDENCE SECTION)
   -------------------------------------------------------------------------- */
.standard-section {
  background: #ffffff !important;
  padding: 5rem 0 !important;
  border-top: 1px solid var(--border-subtle) !important;
}

.latam-benefits-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 1.8rem !important;
  margin-bottom: 3.5rem !important;
}

.latam-benefit-card {
  background: #ffffff !important;
  border: 1px solid var(--border-subtle) !important;
  border-radius: 16px !important;
  padding: 2.2rem 1.6rem !important;
  box-shadow: 0 4px 16px rgba(15, 0, 73, 0.04) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  text-align: left !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}

.latam-benefit-card:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 16px 36px rgba(15, 0, 73, 0.1) !important;
  border-color: var(--latam-indigo-light) !important;
}

.benefit-icon-wrap {
  width: 54px !important;
  height: 54px !important;
  border-radius: 12px !important;
  background: #f0f2ff !important;
  color: var(--latam-indigo) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 1.45rem !important;
  margin-bottom: 1.4rem !important;
  border: 1px solid rgba(15, 0, 73, 0.1) !important;
}

.latam-benefit-card:nth-child(1) .benefit-icon-wrap { color: var(--latam-coral) !important; background: rgba(235, 0, 70, 0.08) !important; }
.latam-benefit-card:nth-child(2) .benefit-icon-wrap { color: var(--latam-indigo) !important; background: #f0f2ff !important; }
.latam-benefit-card:nth-child(3) .benefit-icon-wrap { color: var(--flight-green) !important; background: #ecfdf5 !important; }
.latam-benefit-card:nth-child(4) .benefit-icon-wrap { color: var(--latam-indigo) !important; background: #faf5ff !important; }

.benefit-card-title {
  font-family: var(--font-display) !important;
  font-size: 1.15rem !important;
  font-weight: 800 !important;
  color: var(--latam-indigo) !important;
  line-height: 1.3 !important;
  margin-bottom: 0.8rem !important;
}

.benefit-card-desc {
  font-size: 0.88rem !important;
  color: var(--text-secondary) !important;
  line-height: 1.6 !important;
  margin-bottom: 1.4rem !important;
  flex: 1 !important;
}

.benefit-check-pill {
  font-family: var(--font-mono) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  color: var(--flight-green) !important;
  background: #f0fdf4 !important;
  border: 1px solid #bbf7d0 !important;
  padding: 0.3rem 0.75rem !important;
  border-radius: var(--radius-full) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
}

/* Callout Bar */
.latam-concierge-callout {
  background: linear-gradient(135deg, var(--latam-indigo) 0%, var(--latam-indigo-light) 100%) !important;
  border-radius: 16px !important;
  padding: 2.2rem 2.8rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 2rem !important;
  box-shadow: 0 16px 40px rgba(15, 0, 73, 0.16) !important;
  color: #ffffff !important;
}

.callout-info h4 {
  font-size: 1.35rem !important;
  font-weight: 800 !important;
  color: #ffffff !important;
  margin-bottom: 0.4rem !important;
}

.callout-info p {
  font-size: 0.95rem !important;
  color: rgba(255, 255, 255, 0.85) !important;
  margin: 0 !important;
}

/* --------------------------------------------------------------------------
   BESPOKE GROUP FLIGHT BANNER (#destinos)
   -------------------------------------------------------------------------- */
.planner-banner {
  background: #f8fafc !important;
  padding: 5rem 0 !important;
}

.bespoke-flight-banner {
  background: linear-gradient(135deg, #0f0049 0%, #1b0088 100%) !important;
  border-radius: 20px !important;
  padding: 3.5rem !important;
  box-shadow: 0 24px 60px rgba(15, 0, 73, 0.22) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
}

.banner-pill {
  background: rgba(235, 0, 70, 0.25) !important;
  color: #ff85a2 !important;
  border: 1px solid rgba(235, 0, 70, 0.4) !important;
}

.banner-main-title {
  color: #ffffff !important;
  font-size: clamp(1.8rem, 3vw, 2.5rem) !important;
  font-weight: 800 !important;
  margin-bottom: 1rem !important;
}

.banner-lead-desc {
  color: rgba(255, 255, 255, 0.88) !important;
  font-size: 1.05rem !important;
  line-height: 1.6 !important;
}

.banner-feature-item i {
  color: var(--latam-coral) !important;
}

.banner-feature-item span {
  color: #ffffff !important;
}

.banner-action-box {
  background: #ffffff !important;
  border-radius: 16px !important;
  padding: 2.2rem !important;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18) !important;
  color: var(--latam-indigo) !important;
}

.banner-action-box h3 {
  color: var(--latam-indigo) !important;
  font-size: 1.3rem !important;
  font-weight: 800 !important;
  margin-bottom: 0.5rem !important;
}

.banner-action-box p {
  color: var(--text-muted) !important;
  font-size: 0.88rem !important;
  margin-bottom: 1.4rem !important;
}

.btn-banner-primary {
  background: var(--latam-indigo) !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: var(--radius-full) !important;
  padding: 0.85rem 1.4rem !important;
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  font-size: 0.95rem !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  transition: all 0.2s ease !important;
}

.btn-banner-primary:hover {
  background: var(--latam-indigo-light) !important;
}

.btn-banner-whatsapp {
  background: #25d366 !important;
  color: #ffffff !important;
  border-radius: var(--radius-full) !important;
  padding: 0.85rem 1.4rem !important;
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  font-size: 0.95rem !important;
  text-decoration: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.55rem !important;
  box-shadow: 0 4px 14px rgba(37, 211, 102, 0.3) !important;
  transition: all 0.2s ease !important;
}

.btn-banner-whatsapp:hover {
  background: #20bd5a !important;
  transform: translateY(-2px) !important;
}

/* --------------------------------------------------------------------------
   FOOTER (LATAM AIRLINES MIDNIGHT INDIGO FOOTER)
   -------------------------------------------------------------------------- */
.footer {
  background: #0f0049 !important;
  color: rgba(255, 255, 255, 0.8) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
  padding: 5rem 0 0 !important;
}

.footer-title {
  color: #ffffff !important;
  font-family: var(--font-display) !important;
  font-size: 1.1rem !important;
  font-weight: 800 !important;
  margin-bottom: 1.4rem !important;
}

.footer-desc {
  color: rgba(255, 255, 255, 0.75) !important;
  font-size: 0.88rem !important;
  line-height: 1.6 !important;
  margin-bottom: 1.8rem !important;
}

.footer-links a {
  color: rgba(255, 255, 255, 0.75) !important;
  text-decoration: none !important;
  font-size: 0.88rem !important;
  transition: all 0.2s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  margin-bottom: 0.65rem !important;
}

.footer-links a i {
  color: var(--latam-coral) !important;
  font-size: 0.75rem !important;
}

.footer-links a:hover {
  color: #ffffff !important;
  transform: translateX(4px) !important;
}

.pay-chip {
  background: rgba(255, 255, 255, 0.1) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  color: #ffffff !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  padding: 0.35rem 0.7rem !important;
  border-radius: 6px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
}

.footer-discount-pill {
  background: rgba(235, 0, 70, 0.2) !important;
  border: 1px solid rgba(235, 0, 70, 0.35) !important;
  color: #ffffff !important;
  padding: 0.6rem 0.9rem !important;
  border-radius: var(--radius-sm) !important;
  font-size: 0.8rem !important;
  margin-top: 1.2rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
}

.footer-discount-pill i {
  color: var(--latam-coral) !important;
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
  margin-top: 4rem !important;
  padding: 1.8rem 0 !important;
  font-size: 0.8rem !important;
  color: rgba(255, 255, 255, 0.6) !important;
}

/* --------------------------------------------------------------------------
   RESPONSIVE BREAKPOINTS (TABLETS & PHONES)
   -------------------------------------------------------------------------- */
@media (max-width: 992px) {
  .latam-benefits-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1.2rem !important;
  }

  .latam-concierge-callout {
    flex-direction: column !important;
    text-align: center !important;
    padding: 2rem !important;
  }

  .booking-form {
    grid-template-columns: 1fr 1fr !important;
    gap: 0.8rem !important;
  }

  .booking-form .action-cell {
    grid-column: 1 / -1 !important;
  }

  .btn-search {
    width: 100% !important;
  }
}

@media (max-width: 600px) {
  .latam-benefits-grid {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }

  .booking-form {
    grid-template-columns: 1fr !important;
  }

  .booking-tabs-bar {
    padding: 0 0.5rem !important;
  }

  .booking-tab {
    padding: 0.8rem 0.9rem !important;
    font-size: 0.82rem !important;
  }

  .hero-stats {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 1rem !important;
    padding: 1.2rem 1.5rem !important;
    border-radius: 16px !important;
  }

  .stat-divider {
    display: none !important;
  }

  .bespoke-flight-banner {
    padding: 2rem 1.4rem !important;
  }
}


/* ==========================================================================
   PERFECTED BUTTON ARCHITECTURE & UI FIXES (LATAM AIRLINES SPEC)
   ========================================================================== */

/* Universal Button Reset & Defaults */
button,
.btn,
.btn-primary,
.btn-search,
.btn-card-action,
.btn-link,
.btn-latam-cta,
.filter-chip,
.booking-tab,
.deposit-choice-btn,
.pay-tab-btn,
.btn-qty-ctrl,
.btn-apply-coupon,
.btn-copy-llave,
.card-wishlist,
.modal-close,
.drawer-close {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  user-select: none !important;
  -webkit-tap-highlight-color: transparent !important;
  cursor: pointer !important;
}

/* 1. LATAM SEARCH BUTTON & ACTION CELL (.btn-search) */
.form-cell.action-cell {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  min-height: auto !important;
}

.action-cell-spacer {
  display: block !important;
  visibility: hidden !important;
  pointer-events: none !important;
  user-select: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 18px !important;
}

.action-cell-spacer.hint {
  height: 14px !important;
}

.btn-search {
  background: var(--latam-coral, #eb0046) !important;
  color: #ffffff !important;
  font-family: var(--font-display) !important;
  font-size: 0.95rem !important;
  font-weight: 800 !important;
  height: 48px !important;
  min-height: 48px !important;
  padding: 0 1.8rem !important;
  border-radius: var(--radius-full, 9999px) !important;
  border: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.6rem !important;
  box-shadow: 0 6px 18px rgba(235, 0, 70, 0.3) !important;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
  white-space: nowrap !important;
  width: auto !important;
  box-sizing: border-box !important;
}

.btn-search i {
  font-size: 0.95rem !important;
  color: #ffffff !important;
}

.btn-search:hover {
  background: var(--latam-coral-hover, #c90038) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 10px 24px rgba(235, 0, 70, 0.42) !important;
  color: #ffffff !important;
}

.btn-search:active {
  transform: translateY(0) !important;
  box-shadow: 0 4px 12px rgba(235, 0, 70, 0.3) !important;
}

/* 2. LATAM PACKAGE CARD BUTTON (.btn-card-action) */
.btn-card-action {
  background: var(--latam-coral, #eb0046) !important;
  color: #ffffff !important;
  font-family: var(--font-display) !important;
  font-size: 0.95rem !important;
  font-weight: 800 !important;
  padding: 0.82rem 1.4rem !important;
  height: 48px !important;
  border-radius: var(--radius-full, 9999px) !important;
  border: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.55rem !important;
  box-shadow: 0 4px 14px rgba(235, 0, 70, 0.28) !important;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
  width: 100% !important;
  text-decoration: none !important;
  outline: none !important;
  box-sizing: border-box !important;
}

.btn-card-action span {
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
}

.btn-card-action i {
  font-size: 0.85rem !important;
  transition: transform 0.2s ease !important;
}

.btn-card-action:hover {
  background: var(--latam-coral-hover, #c90038) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 22px rgba(235, 0, 70, 0.38) !important;
  color: #ffffff !important;
}

.btn-card-action:hover i {
  transform: translateX(4px) !important;
}

.btn-card-action:active {
  transform: translateY(0) !important;
}

/* 3. CATEGORY FILTER TABS (.filter-chip) */
.filter-chips {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.75rem !important;
  flex-wrap: wrap !important;
  margin-bottom: 2.8rem !important;
}

.filter-chip {
  background: #ffffff !important;
  border: 1.5px solid var(--border-subtle, #dde2eb) !important;
  border-radius: var(--radius-full, 9999px) !important;
  padding: 0.65rem 1.4rem !important;
  font-family: var(--font-display) !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  color: var(--latam-indigo, #0f0049) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.55rem !important;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
  white-space: nowrap !important;
  box-shadow: 0 2px 8px rgba(15, 0, 73, 0.04) !important;
  outline: none !important;
}

.filter-chip i {
  font-size: 0.92rem !important;
  color: var(--latam-coral, #eb0046) !important;
  transition: color 0.2s ease !important;
}

.filter-chip:hover {
  border-color: var(--latam-indigo, #0f0049) !important;
  color: var(--latam-indigo, #0f0049) !important;
  background: #ffffff !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 16px rgba(15, 0, 73, 0.08) !important;
}

.filter-chip.active {
  background: var(--latam-indigo, #0f0049) !important;
  border-color: var(--latam-indigo, #0f0049) !important;
  color: #ffffff !important;
  box-shadow: 0 6px 18px rgba(15, 0, 73, 0.22) !important;
}

.filter-chip.active i {
  color: #ffffff !important;
}

/* 4. BOOKING HEADER TABS (.booking-tab) */
.booking-tab {
  background: transparent !important;
  border: none !important;
  padding: 0.95rem 1.5rem !important;
  font-family: var(--font-display) !important;
  font-size: 0.92rem !important;
  font-weight: 700 !important;
  color: var(--text-muted, #606d7e) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.6rem !important;
  border-bottom: 3px solid transparent !important;
  transition: all 0.2s ease !important;
  white-space: nowrap !important;
  outline: none !important;
}

.booking-tab i {
  font-size: 0.95rem !important;
}

.booking-tab:hover {
  color: var(--latam-indigo, #0f0049) !important;
  background: rgba(15, 0, 73, 0.02) !important;
}

.booking-tab.active {
  color: var(--latam-indigo, #0f0049) !important;
  border-bottom-color: var(--latam-coral, #eb0046) !important;
  background: #ffffff !important;
}

.booking-tab.active i {
  color: var(--latam-coral, #eb0046) !important;
}

/* 5. EXPERIENCES LINK BUTTONS (.btn-link) */
.btn-link {
  background: transparent !important;
  border: none !important;
  color: #ffffff !important;
  font-family: var(--font-display) !important;
  font-size: 0.9rem !important;
  font-weight: 800 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  padding: 0.4rem 0 !important;
  outline: none !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.btn-link i {
  color: var(--latam-coral, #eb0046) !important;
  transition: transform 0.2s ease !important;
}

.btn-link:hover {
  color: #ffffff !important;
}

.btn-link:hover i {
  transform: translateX(5px) !important;
}

/* 6. CARD WISHLIST BUTTON (.card-wishlist) */
.card-wishlist {
  position: absolute !important;
  top: 1rem !important;
  right: 1rem !important;
  z-index: 5 !important;
  width: 38px !important;
  height: 38px !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.92) !important;
  border: 1.5px solid rgba(15, 0, 73, 0.1) !important;
  color: var(--latam-indigo, #0f0049) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 0.95rem !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12) !important;
  transition: all 0.2s ease !important;
  outline: none !important;
  padding: 0 !important;
}

.card-wishlist:hover {
  background: #ffffff !important;
  color: var(--latam-coral, #eb0046) !important;
  transform: scale(1.1) !important;
  box-shadow: 0 6px 16px rgba(235, 0, 70, 0.22) !important;
}

.card-wishlist.active {
  background: #ffffff !important;
  color: var(--latam-coral, #eb0046) !important;
  border-color: var(--latam-coral, #eb0046) !important;
}

.card-wishlist.active i {
  font-weight: 900 !important;
  color: var(--latam-coral, #eb0046) !important;
}

/* 7. NAVBAR WISHLIST & MOBILE TOGGLE */
.btn-ghost {
  color: var(--latam-indigo, #0f0049) !important;
  background: #ffffff !important;
  border: 1.5px solid var(--border-subtle, #dde2eb) !important;
  border-radius: var(--radius-full, 9999px) !important;
  padding: 0.5rem 1rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  position: relative !important;
  outline: none !important;
  transition: all 0.2s ease !important;
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
}

.btn-ghost .badge-count {
  background: var(--latam-coral, #eb0046) !important;
  color: #ffffff !important;
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  padding: 0.12rem 0.45rem !important;
  border-radius: var(--radius-full, 9999px) !important;
}

.btn-ghost:hover {
  border-color: var(--latam-indigo, #0f0049) !important;
  background: #f8fafc !important;
  color: var(--latam-indigo, #0f0049) !important;
}

.mobile-toggle {
  background: #ffffff !important;
  border: 1.5px solid var(--border-subtle, #dde2eb) !important;
  border-radius: 10px !important;
  width: 42px !important;
  height: 42px !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--latam-indigo, #0f0049) !important;
  font-size: 1.25rem !important;
  outline: none !important;
  transition: all 0.2s ease !important;
  padding: 0 !important;
}

.mobile-toggle:hover {
  border-color: var(--latam-indigo, #0f0049) !important;
  background: #f8fafc !important;
}

/* 8. MODAL CLOSE BUTTONS (.modal-close & .drawer-close) */
.modal-close,
.drawer-close {
  background: #f1f5f9 !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 50% !important;
  width: 38px !important;
  height: 38px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--latam-indigo, #0f0049) !important;
  font-size: 1.1rem !important;
  outline: none !important;
  padding: 0 !important;
  transition: all 0.2s ease !important;
}

.modal-close:hover,
.drawer-close:hover {
  background: var(--latam-coral, #eb0046) !important;
  border-color: var(--latam-coral, #eb0046) !important;
  color: #ffffff !important;
  transform: scale(1.08) !important;
}

/* 9. CHECKOUT MODAL TRAVELER QTY BUTTONS (.btn-qty-ctrl) */
.btn-qty-ctrl {
  width: 34px !important;
  height: 34px !important;
  border-radius: 8px !important;
  background: #ffffff !important;
  border: 1.5px solid #cbd5e1 !important;
  color: var(--latam-indigo, #0f0049) !important;
  font-size: 1.1rem !important;
  font-weight: 800 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.15s ease !important;
  outline: none !important;
  padding: 0 !important;
  line-height: 1 !important;
}

.btn-qty-ctrl:hover {
  background: var(--latam-indigo, #0f0049) !important;
  color: #ffffff !important;
  border-color: var(--latam-indigo, #0f0049) !important;
}

.btn-qty-ctrl.sm {
  width: 28px !important;
  height: 28px !important;
  font-size: 0.95rem !important;
}

/* 10. DEPOSIT CHOICE BUTTONS (.deposit-choice-btn) */
.deposit-choice-btn {
  background: #ffffff !important;
  border: 1.5px solid var(--border-subtle, #dde2eb) !important;
  border-radius: 12px !important;
  padding: 0.85rem 0.6rem !important;
  text-align: center !important;
  transition: all 0.2s ease !important;
  outline: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.25rem !important;
  width: 100% !important;
}

.deposit-choice-btn strong {
  font-family: var(--font-display) !important;
  font-size: 0.92rem !important;
  color: var(--latam-indigo, #0f0049) !important;
  font-weight: 800 !important;
}

.deposit-choice-btn span {
  font-family: var(--font-mono) !important;
  font-size: 0.68rem !important;
  color: var(--text-muted, #606d7e) !important;
}

.deposit-choice-btn:hover {
  border-color: var(--latam-indigo, #0f0049) !important;
  background: #f8fafc !important;
}

.deposit-choice-btn.active {
  background: var(--latam-indigo, #0f0049) !important;
  border-color: var(--latam-indigo, #0f0049) !important;
  box-shadow: 0 4px 14px rgba(15, 0, 73, 0.2) !important;
}

.deposit-choice-btn.active strong {
  color: #ffffff !important;
}

.deposit-choice-btn.active span {
  color: rgba(255, 255, 255, 0.85) !important;
}

/* 11. PAYMENT TABS (.pay-tab-btn) */
.pay-tab-btn {
  background: #f8fafc !important;
  border: 1.5px solid var(--border-subtle, #dde2eb) !important;
  border-radius: 10px !important;
  padding: 0.75rem 1rem !important;
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  font-size: 0.88rem !important;
  color: var(--latam-indigo, #0f0049) !important;
  outline: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  transition: all 0.2s ease !important;
  flex: 1 !important;
}

.pay-tab-btn.active {
  background: var(--latam-indigo, #0f0049) !important;
  border-color: var(--latam-indigo, #0f0049) !important;
  color: #ffffff !important;
  box-shadow: 0 4px 12px rgba(15, 0, 73, 0.15) !important;
}

/* 12. COUPON & LLAVE ACTION BUTTONS */
.btn-apply-coupon {
  background: var(--latam-indigo, #0f0049) !important;
  color: #ffffff !important;
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  font-size: 0.85rem !important;
  padding: 0.65rem 1.3rem !important;
  border-radius: var(--radius-sm, 8px) !important;
  border: none !important;
  outline: none !important;
  transition: all 0.2s ease !important;
  white-space: nowrap !important;
}

.btn-apply-coupon:hover {
  background: var(--latam-indigo-light, #1b0088) !important;
  transform: translateY(-1px) !important;
}

.btn-copy-llave {
  background: var(--latam-indigo, #0f0049) !important;
  color: #ffffff !important;
  padding: 0.6rem 1.2rem !important;
  border-radius: var(--radius-sm, 8px) !important;
  font-family: var(--font-display) !important;
  font-size: 0.84rem !important;
  font-weight: 800 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  border: none !important;
  outline: none !important;
  transition: all 0.2s ease !important;
}

.btn-copy-llave:hover {
  background: var(--latam-indigo-light, #1b0088) !important;
}

/* 13. CHECKOUT SUCCESS & OUTLINE BUTTONS (.nav-btn-outline & .btn-whatsapp-confirm) */
.nav-btn-outline {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  background: #ffffff !important;
  border: 1.5px solid var(--latam-indigo, #0f0049) !important;
  color: var(--latam-indigo, #0f0049) !important;
  padding: 0.75rem 1.3rem !important;
  border-radius: var(--radius-full, 9999px) !important;
  font-family: var(--font-display) !important;
  font-size: 0.88rem !important;
  font-weight: 800 !important;
  transition: all 0.2s ease !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04) !important;
  outline: none !important;
}

.nav-btn-outline:hover {
  background: var(--latam-indigo, #0f0049) !important;
  color: #ffffff !important;
  box-shadow: 0 6px 18px rgba(15, 0, 73, 0.15) !important;
}

.btn-whatsapp-confirm {
  background: #25d366 !important;
  color: #ffffff !important;
  border-radius: var(--radius-full, 9999px) !important;
  padding: 0.95rem 1.6rem !important;
  font-family: var(--font-display) !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.65rem !important;
  text-decoration: none !important;
  box-shadow: 0 4px 16px rgba(37, 211, 102, 0.3) !important;
  transition: all 0.2s ease !important;
  border: none !important;
}

.btn-whatsapp-confirm:hover {
  background: #20bd5a !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(37, 211, 102, 0.4) !important;
  color: #ffffff !important;
}

/* 14. MOBILE OVERRIDES FOR BUTTONS */
@media (max-width: 992px) {
  .mobile-toggle {
    display: inline-flex !important;
  }

  .action-cell-spacer {
    display: none !important;
  }

  .form-cell.action-cell {
    grid-column: 1 / -1 !important;
    margin-top: 0.4rem !important;
  }

  .btn-search {
    width: 100% !important;
    height: 52px !important;
  }

  .filter-chip {
    padding: 0.55rem 1.1rem !important;
    font-size: 0.82rem !important;
  }

  .btn-card-action {
    height: 46px !important;
    font-size: 0.92rem !important;
  }
}

@media (max-width: 480px) {
  .filter-chips {
    gap: 0.5rem !important;
  }

  .filter-chip {
    padding: 0.5rem 0.9rem !important;
    font-size: 0.78rem !important;
  }

  .btn-search {
    font-size: 0.92rem !important;
    height: 50px !important;
  }
}


/* ==========================================================================
   BULLETPROOF ASESORÍA EN VIVO / LATAM CTA BUTTON FIX
   ========================================================================== */
.btn-latam-cta {
  background-color: #eb0046 !important;
  background: #eb0046 !important;
  color: #ffffff !important;
  font-family: var(--font-display, 'Outfit', sans-serif) !important;
  font-weight: 800 !important;
  font-size: 0.92rem !important;
  padding: 0.65rem 1.4rem !important;
  border-radius: 9999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.55rem !important;
  text-decoration: none !important;
  box-shadow: 0 4px 14px rgba(235, 0, 70, 0.35) !important;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
  border: none !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.btn-latam-cta span {
  color: #ffffff !important;
  font-weight: 800 !important;
  font-family: var(--font-display, 'Outfit', sans-serif) !important;
  font-size: 0.92rem !important;
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
  letter-spacing: 0.02em !important;
}

.btn-latam-cta i {
  color: #ffffff !important;
  font-size: 1.15rem !important;
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.btn-latam-cta:hover {
  background-color: #c90038 !important;
  background: #c90038 !important;
  color: #ffffff !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(235, 0, 70, 0.45) !important;
}

.btn-latam-cta:hover span,
.btn-latam-cta:hover i {
  color: #ffffff !important;
}

.btn-latam-cta:active {
  transform: translateY(0) !important;
  box-shadow: 0 4px 12px rgba(235, 0, 70, 0.3) !important;
}

/* Also ensure .desktop-only-btn on desktop behaves cleanly */
@media (min-width: 993px) {
  .btn-latam-cta.desktop-only-btn {
    display: inline-flex !important;
  }
}


/* ==========================================================================
   MASTER RESPONSIVE ARCHITECTURE (PC & MOBILE PERFECTION)
   ========================================================================== */

/* --------------------------------------------------------------------------
   DESKTOP & PC SCREENS (min-width: 993px)
   -------------------------------------------------------------------------- */
@media (min-width: 993px) {
  /* Navbar */
  .desktop-currency-wrap {
    display: inline-flex !important;
  }
  .btn-latam-cta.desktop-only-btn {
    display: inline-flex !important;
  }
  .mobile-toggle {
    display: none !important;
  }
  .nav-links {
    display: flex !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    transform: none !important;
  }
  .mobile-drawer-header,
  .mobile-drawer-footer {
    display: none !important;
  }

  /* Booking Widget */
  .booking-widget {
    max-width: 1180px !important;
    margin: 0 auto 3rem !important;
  }
  .booking-form {
    display: grid !important;
    grid-template-columns: 1.1fr 1.6fr 1.3fr 1.3fr auto !important;
    gap: 0.9rem !important;
    padding: 1.2rem 1.8rem 1.6rem !important;
    align-items: flex-end !important;
  }
  .form-cell.action-cell {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
  }
  .action-cell-spacer {
    display: block !important;
    visibility: hidden !important;
    height: 18px !important;
  }
  .btn-search {
    height: 48px !important;
    width: auto !important;
  }

  /* 3-Column Boarding Pass Cards */
  .hotel-card {
    display: grid !important;
    grid-template-columns: 310px 1fr 270px !important;
    width: 100% !important;
    max-width: 1220px !important;
    margin: 0 auto !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    align-items: stretch !important;
  }
  .card-media {
    width: 310px !important;
    min-width: 310px !important;
    max-width: 310px !important;
    height: 100% !important;
    border-radius: 16px 0 0 16px !important;
  }
  .card-body {
    padding: 1.8rem 2.2rem !important;
  }
  .card-footer {
    border-left: 1.5px dashed var(--border-medium, #dde2eb) !important;
    border-top: none !important;
    padding: 1.8rem !important;
    border-radius: 0 16px 16px 0 !important;
    text-align: center !important;
  }
  .card-footer::before,
  .card-footer::after {
    left: -11px !important;
    right: auto !important;
    width: 20px !important;
    height: 20px !important;
    background: #f8fafc !important;
  }
  .card-footer::before {
    top: -11px !important;
    bottom: auto !important;
  }
  .card-footer::after {
    bottom: -11px !important;
    top: auto !important;
  }

  /* Experiences Grid */
  .exp-grid {
    display: grid !important;
    grid-template-columns: 1.35fr 1fr !important;
    gap: 1.8rem !important;
  }
  .exp-card.wide {
    grid-row: span 2 !important;
  }

  /* Benefits Grid */
  .latam-benefits-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 1.8rem !important;
  }
  .latam-concierge-callout {
    flex-direction: row !important;
    text-align: left !important;
    padding: 2.2rem 2.8rem !important;
  }

  /* Reviews Grid */
  .traveler-reviews-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 1.8rem !important;
  }
  .reviews-metrics-bar {
    display: flex !important;
    justify-content: center !important;
    gap: 1.2rem !important;
  }

  /* Bespoke Flight Banner */
  .bespoke-flight-banner {
    display: block !important;
    padding: 3.5rem !important;
  }
  .banner-layout-grid {
    display: grid !important;
    grid-template-columns: 1.4fr 1fr !important;
    gap: 3rem !important;
    align-items: center !important;
  }
  .banner-features-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 1rem !important;
  }

  /* Footer */
  .footer-main {
    display: grid !important;
    grid-template-columns: 1.6fr 1fr 1.1fr !important;
    gap: 2.5rem !important;
  }
  .footer-bottom-inner {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
  }
}

/* --------------------------------------------------------------------------
   TABLETS & MOBILE SCREENS (max-width: 992px)
   -------------------------------------------------------------------------- */
@media (max-width: 992px) {
  /* Prevent iOS input zoom */
  input, select, textarea,
  .custom-select-wrapper select,
  .date-inputs input[type="date"] {
    font-size: 16px !important;
  }

  /* Top Navbar */
  .desktop-currency-wrap {
    display: none !important;
  }
  .desktop-only-btn {
    display: none !important;
  }
  .mobile-toggle {
    display: inline-flex !important;
  }

  /* Booking Widget */
  .booking-widget {
    margin: 0 auto 2.5rem !important;
    border-radius: 16px !important;
  }
  .booking-form {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0.85rem !important;
    padding: 1rem 1.2rem 1.4rem !important;
  }
  .action-cell-spacer {
    display: none !important;
  }
  .form-cell.action-cell {
    grid-column: 1 / -1 !important;
    margin-top: 0.35rem !important;
  }
  .btn-search {
    width: 100% !important;
    height: 52px !important;
  }
  .booking-widget-reassurance {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.65rem !important;
    padding: 1rem 1.2rem !important;
  }

  /* Single Column Card on Mobile */
  .hotel-card {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    border-radius: 16px !important;
    overflow: hidden !important;
  }
  .card-media {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    height: 230px !important;
    min-height: 230px !important;
    max-height: 230px !important;
    border-radius: 16px 16px 0 0 !important;
  }
  .card-media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
  .card-body {
    padding: 1.4rem 1.2rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .card-footer {
    border-left: none !important;
    border-top: 1.5px dashed var(--border-medium, #dde2eb) !important;
    padding: 1.4rem 1.2rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
    border-radius: 0 0 16px 16px !important;
    text-align: center !important;
    gap: 0.85rem !important;
  }
  .card-footer::before,
  .card-footer::after {
    top: -11px !important;
    bottom: auto !important;
    width: 20px !important;
    height: 20px !important;
    background: #f8fafc !important;
  }
  .card-footer::before {
    left: -11px !important;
    right: auto !important;
  }
  .card-footer::after {
    right: -11px !important;
    left: auto !important;
  }
  .btn-card-action {
    height: 48px !important;
    width: 100% !important;
  }

  /* Experiences Grid */
  .exp-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.5rem !important;
  }
  .exp-card {
    min-height: 280px !important;
    border-radius: 16px !important;
  }
  .section-header-split {
    flex-direction: column !important;
    gap: 0.8rem !important;
  }

  /* Benefits Grid */
  .latam-benefits-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1.2rem !important;
  }
  .latam-concierge-callout {
    flex-direction: column !important;
    text-align: center !important;
    padding: 2rem 1.5rem !important;
    gap: 1.4rem !important;
  }

  /* Reviews */
  .reviews-metrics-bar {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0.65rem !important;
  }
  .traveler-reviews-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.25rem !important;
  }

  /* Bespoke Flight Banner */
  .bespoke-flight-banner {
    display: block !important;
    padding: 2rem 1.25rem !important;
    border-radius: 16px !important;
  }
  .banner-layout-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.8rem !important;
  }
  .banner-features-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.75rem !important;
  }
  .banner-btn-stack button,
  .banner-btn-stack a {
    width: 100% !important;
  }

  /* Footer */
  .footer-main {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 2rem !important;
  }

  /* Modals as Responsive Bottom Sheets */
  .checkout-dialog,
  .modal-dialog {
    width: 100% !important;
    max-width: 100% !important;
    max-height: 94dvh !important;
    border-radius: 20px 20px 0 0 !important;
    margin: auto 0 0 0 !important;
    padding: 1.4rem 1.1rem calc(1.5rem + env(safe-area-inset-bottom, 0px)) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
}

/* --------------------------------------------------------------------------
   COMPACT MOBILE PHONES (max-width: 480px / 360px - 414px)
   -------------------------------------------------------------------------- */
@media (max-width: 480px) {
  /* Brand Logo */
  .brand-wing-symbol {
    width: 34px !important;
    height: 34px !important;
    font-size: 0.95rem !important;
  }
  .brand-title {
    font-size: 1.15rem !important;
  }
  .brand-subtitle {
    font-size: 0.58rem !important;
  }

  /* Hero Typography */
  .hero-section {
    padding: 5rem 0 3.5rem !important;
  }
  .hero-title {
    font-size: 1.95rem !important;
    line-height: 1.2 !important;
  }
  .hero-subtitle {
    font-size: 0.92rem !important;
    line-height: 1.55 !important;
    margin-bottom: 2rem !important;
  }

  /* Hero Stats */
  .hero-stats {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0.65rem !important;
    padding: 0.9rem 1rem !important;
    border-radius: 14px !important;
  }
  .stat-number {
    font-size: 1.35rem !important;
  }
  .stat-label {
    font-size: 0.65rem !important;
  }
  .stat-divider {
    display: none !important;
  }

  /* Booking Form Single Column on Small Phones */
  .booking-form {
    grid-template-columns: 1fr !important;
    gap: 0.75rem !important;
    padding: 0.85rem 0.9rem 1.2rem !important;
  }
  .date-inputs {
    flex-direction: column !important;
    gap: 0.4rem !important;
  }
  .date-sep {
    display: none !important;
  }
  .date-inputs input[type="date"] {
    width: 100% !important;
  }
  .btn-search {
    font-size: 0.95rem !important;
    height: 50px !important;
  }

  /* Filter Chips */
  .filter-chips {
    gap: 0.5rem !important;
    margin-bottom: 2.2rem !important;
  }
  .filter-chip {
    padding: 0.5rem 0.9rem !important;
    font-size: 0.78rem !important;
  }

  /* Hotel Cards */
  .card-media {
    height: 200px !important;
    min-height: 200px !important;
    max-height: 200px !important;
  }
  .card-body {
    padding: 1.2rem 1rem !important;
  }
  .card-title {
    font-size: 1.3rem !important;
  }
  .airline-specs-row {
    gap: 0.35rem !important;
  }
  .airline-spec-chip {
    font-size: 0.7rem !important;
    padding: 0.25rem 0.5rem !important;
  }
  .tours-badges-row {
    gap: 0.35rem !important;
  }
  .tour-chip {
    font-size: 0.7rem !important;
    padding: 0.2rem 0.5rem !important;
  }
  .card-footer {
    padding: 1.2rem 1rem !important;
  }
  .price-val {
    font-size: 1.65rem !important;
  }
  .btn-card-action {
    font-size: 0.9rem !important;
    height: 46px !important;
  }

  /* Benefits Grid Single Column */
  .latam-benefits-grid {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }
  .latam-benefit-card {
    padding: 1.6rem 1.2rem !important;
  }

  /* Footer Single Column */
  .footer-main {
    display: flex !important;
    flex-direction: column !important;
    gap: 2rem !important;
  }
}


/* ==========================================================================
   STREAMLINED COMPACT BOOKING FORM (ESSENTIAL INFO ONLY)
   ========================================================================== */
.booking-form {
  display: grid !important;
  grid-template-columns: 1.1fr 1.5fr 1.3fr 1.3fr auto !important;
  gap: 0.85rem !important;
  padding: 0.85rem 1.6rem 1.3rem !important;
  align-items: flex-end !important;
}

.form-cell {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.35rem !important;
  min-width: 0 !important;
}

.form-cell label {
  font-family: var(--font-display) !important;
  font-size: 0.76rem !important;
  font-weight: 800 !important;
  color: var(--latam-indigo) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  margin-bottom: 0.1rem !important;
}

.form-cell label i {
  color: var(--latam-coral) !important;
  font-size: 0.82rem !important;
}

.origin-input-display,
.custom-select-wrapper select,
.date-inputs input[type="date"] {
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  border-radius: var(--radius-sm, 8px) !important;
  border: 1.5px solid var(--border-subtle, #dde2eb) !important;
  background: #ffffff !important;
  font-family: var(--font-sans) !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  color: var(--latam-indigo) !important;
  padding: 0 0.85rem !important;
  box-sizing: border-box !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.origin-input-display {
  background: #f8fafc !important;
  display: flex !important;
  align-items: center !important;
}

.origin-tag {
  font-weight: 700 !important;
  color: var(--latam-indigo) !important;
  font-size: 0.9rem !important;
  white-space: nowrap !important;
}

.custom-select-wrapper select {
  cursor: pointer !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.custom-select-wrapper select:focus,
.date-inputs input[type="date"]:focus {
  border-color: var(--latam-indigo) !important;
  box-shadow: 0 0 0 3px rgba(15, 0, 73, 0.08) !important;
}

.form-cell.action-cell {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  margin: 0 !important;
  padding: 0 !important;
}

.form-cell.action-cell .btn-search {
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  padding: 0 1.6rem !important;
  border-radius: var(--radius-full, 9999px) !important;
  font-family: var(--font-display) !important;
  font-size: 0.95rem !important;
  font-weight: 800 !important;
  background: var(--latam-coral, #eb0046) !important;
  color: #ffffff !important;
  border: none !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  box-shadow: 0 4px 14px rgba(235, 0, 70, 0.3) !important;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
  white-space: nowrap !important;
}

.form-cell.action-cell .btn-search:hover {
  background: var(--latam-coral-hover, #c90038) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 20px rgba(235, 0, 70, 0.4) !important;
}

/* Mobile Adjustments for Compact Form */
@media (max-width: 992px) {
  .booking-form {
    grid-template-columns: 1fr 1fr !important;
    gap: 0.75rem !important;
    padding: 0.85rem 1.1rem 1.2rem !important;
  }
  .form-cell.action-cell {
    grid-column: 1 / -1 !important;
    margin-top: 0.2rem !important;
  }
  .form-cell.action-cell .btn-search {
    width: 100% !important;
    height: 50px !important;
  }
}

@media (max-width: 480px) {
  .booking-form {
    grid-template-columns: 1fr !important;
    gap: 0.65rem !important;
    padding: 0.75rem 0.9rem 1rem !important;
  }
}


/* ==========================================================================
   SEGMENTED BOOKING SWITCH (100% VISIBLE & PROMINENT - ZERO DESLIZABLE)
   ========================================================================== */
.booking-tabs-bar {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  background: #edf1f7 !important;
  padding: 0.45rem !important;
  gap: 0.45rem !important;
  border-bottom: 1.5px solid var(--border-subtle, #dde2eb) !important;
  overflow: visible !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.booking-tab {
  background: transparent !important;
  border: 1.5px solid transparent !important;
  border-radius: 12px !important;
  padding: 0.85rem 1rem !important;
  font-family: var(--font-display, 'Outfit', sans-serif) !important;
  font-size: 0.92rem !important;
  font-weight: 800 !important;
  color: var(--latam-indigo, #0f0049) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.6rem !important;
  cursor: pointer !important;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
  white-space: nowrap !important;
  text-align: center !important;
  width: 100% !important;
  box-sizing: border-box !important;
  outline: none !important;
}

.booking-tab i {
  font-size: 1.05rem !important;
  color: var(--latam-coral, #eb0046) !important;
  transition: transform 0.2s ease, color 0.2s ease !important;
}

.booking-tab:hover {
  background: rgba(255, 255, 255, 0.85) !important;
  color: var(--latam-indigo, #0f0049) !important;
  box-shadow: 0 2px 8px rgba(15, 0, 73, 0.06) !important;
}

.booking-tab:hover i {
  transform: scale(1.12) !important;
}

.booking-tab.active {
  background: #ffffff !important;
  color: var(--latam-indigo, #0f0049) !important;
  border-color: rgba(15, 0, 73, 0.08) !important;
  box-shadow: 0 4px 16px rgba(15, 0, 73, 0.12) !important;
  position: relative !important;
}

.booking-tab.active::after {
  content: '' !important;
  position: absolute !important;
  bottom: -0.45rem !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 36px !important;
  height: 3px !important;
  background: var(--latam-coral, #eb0046) !important;
  border-radius: 9999px !important;
}

.booking-tab.active i {
  color: var(--latam-coral, #eb0046) !important;
}

/* Mobile & Tablet Adaptation (No Sliding, 100% Grid Fit) */
@media (max-width: 768px) {
  .booking-tabs-bar {
    grid-template-columns: repeat(3, 1fr) !important;
    padding: 0.35rem !important;
    gap: 0.3rem !important;
    overflow: visible !important;
  }

  .booking-tab {
    flex-direction: column !important;
    padding: 0.65rem 0.25rem !important;
    gap: 0.3rem !important;
    font-size: 0.74rem !important;
    line-height: 1.2 !important;
    border-radius: 10px !important;
    white-space: normal !important;
  }

  .booking-tab i {
    font-size: 1.15rem !important;
  }

  .booking-tab.active::after {
    bottom: -0.35rem !important;
    width: 26px !important;
    height: 2.5px !important;
  }
}


/* ==========================================================================
   PERFECTED CARD FLOATING INFO & LOCATION BADGES (ZERO COLLISION)
   ========================================================================== */
.card-media {
  position: relative !important;
  overflow: hidden !important;
}

.card-overlay-gradient {
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(180deg, rgba(15, 0, 73, 0.15) 0%, rgba(15, 0, 73, 0.25) 50%, rgba(15, 0, 73, 0.92) 100%) !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

/* Flight Route Badge (Top-Left under duration badge, 100% separated from location pills) */
.flight-route-badge {
  position: absolute !important;
  top: 3.15rem !important;
  bottom: auto !important;
  left: 1.1rem !important;
  right: auto !important;
  z-index: 3 !important;
  background: var(--latam-coral, #eb0046) !important;
  color: #ffffff !important;
  font-family: var(--font-mono, monospace) !important;
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.05em !important;
  padding: 0.28rem 0.65rem !important;
  border-radius: var(--radius-sm, 6px) !important;
  box-shadow: 0 4px 10px rgba(235, 0, 70, 0.35) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
}

.flight-route-badge i {
  color: #ffffff !important;
}

.card-floating-info {
  position: absolute !important;
  bottom: 0.85rem !important;
  left: 0.85rem !important;
  right: 0.85rem !important;
  z-index: 4 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0.32rem !important;
  pointer-events: none !important;
  width: auto !important;
  box-sizing: border-box !important;
}

/* Location Badge Pill */
.card-floating-info .location {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
  background: rgba(15, 0, 73, 0.82) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  color: #ffffff !important;
  font-family: var(--font-sans, 'Plus Jakarta Sans', sans-serif) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  padding: 0.32rem 0.75rem !important;
  border-radius: var(--radius-full, 9999px) !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.28) !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  line-height: 1.2 !important;
}

.card-floating-info .location i {
  color: var(--latam-coral, #eb0046) !important;
  font-size: 0.82rem !important;
  flex-shrink: 0 !important;
}

/* Rating Badge Pill */
.card-floating-info .rating {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
  background: rgba(0, 0, 0, 0.68) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  color: #ffffff !important;
  font-family: var(--font-display, 'Outfit', sans-serif) !important;
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  padding: 0.2rem 0.55rem !important;
  border-radius: var(--radius-full, 9999px) !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.22) !important;
  white-space: nowrap !important;
}

.card-floating-info .rating i {
  color: #f59e0b !important;
  font-size: 0.74rem !important;
}

/* Modal Location Styling */
.modal-location {
  color: var(--latam-indigo, #0f0049) !important;
  font-family: var(--font-sans, 'Plus Jakarta Sans', sans-serif) !important;
  font-size: 0.92rem !important;
  font-weight: 700 !important;
  margin-bottom: 1.2rem !important;
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 0.6rem !important;
  line-height: 1.4 !important;
}

.modal-location i {
  color: var(--latam-coral, #eb0046) !important;
}

.modal-location .rating-star-badge {
  background: #f8fafc !important;
  border: 1px solid var(--border-subtle, #dde2eb) !important;
  border-radius: var(--radius-full, 9999px) !important;
  padding: 0.2rem 0.6rem !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
  font-size: 0.8rem !important;
  font-weight: 800 !important;
  color: var(--latam-indigo, #0f0049) !important;
}

/* Responsive adjustment for Mobile Phones */
@media (max-width: 480px) {
  .flight-route-badge {
    top: 2.6rem !important;
    bottom: auto !important;
    left: 0.75rem !important;
    font-size: 0.66rem !important;
    padding: 0.22rem 0.5rem !important;
  }

  .card-floating-info {
    bottom: 0.65rem !important;
    left: 0.7rem !important;
    right: 0.7rem !important;
    gap: 0.25rem !important;
  }

  .card-floating-info .location {
    font-size: 0.72rem !important;
    padding: 0.25rem 0.6rem !important;
  }

  .card-floating-info .rating {
    font-size: 0.68rem !important;
    padding: 0.18rem 0.45rem !important;
  }
}


/* ==========================================================================
   HIGH-CONTRAST TOURS & EXPERIENCES TYPOGRAPHY (ZERO COLLISION, 100% CONTRAST)
   ========================================================================== */
.exp-card::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(
    180deg,
    rgba(15, 0, 73, 0.22) 0%,
    rgba(15, 0, 73, 0.58) 35%,
    rgba(15, 0, 73, 0.92) 70%,
    rgba(15, 0, 73, 0.99) 100%
  ) !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

.exp-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
  background: var(--latam-coral, #eb0046) !important;
  color: #ffffff !important;
  font-family: var(--font-mono, monospace) !important;
  font-size: 0.74rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 0.35rem 0.85rem !important;
  border-radius: var(--radius-full, 9999px) !important;
  margin-bottom: 0.85rem !important;
  box-shadow: 0 4px 14px rgba(235, 0, 70, 0.45) !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
}

.exp-title {
  font-family: var(--font-display, 'Outfit', sans-serif) !important;
  font-size: 1.55rem !important;
  line-height: 1.28 !important;
  margin-bottom: 0.85rem !important;
  color: #ffffff !important;
  font-weight: 800 !important;
  letter-spacing: -0.01em !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.85), 0 4px 24px rgba(15, 0, 73, 0.95) !important;
}

.exp-summary {
  font-family: var(--font-sans, 'Plus Jakarta Sans', sans-serif) !important;
  font-size: 0.92rem !important;
  color: #f1f5f9 !important;
  line-height: 1.62 !important;
  margin-bottom: 1.35rem !important;
  font-weight: 500 !important;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.8) !important;
}

.exp-price {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
  font-family: var(--font-mono, monospace) !important;
  font-size: 0.82rem !important;
  font-weight: 800 !important;
  color: #34d399 !important;
  background: rgba(16, 185, 129, 0.18) !important;
  border: 1px solid rgba(52, 211, 153, 0.4) !important;
  padding: 0.38rem 0.8rem !important;
  border-radius: var(--radius-full, 9999px) !important;
  letter-spacing: 0.03em !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.7) !important;
}

.exp-price i {
  color: #34d399 !important;
  font-size: 0.88rem !important;
}

.exp-meta .btn-link {
  background: rgba(255, 255, 255, 0.95) !important;
  color: var(--latam-indigo, #0f0049) !important;
  font-family: var(--font-display, 'Outfit', sans-serif) !important;
  font-size: 0.82rem !important;
  font-weight: 800 !important;
  padding: 0.45rem 1.05rem !important;
  border-radius: var(--radius-full, 9999px) !important;
  border: 1px solid rgba(255, 255, 255, 0.5) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
  transition: all 0.2s ease !important;
  text-decoration: none !important;
}

.exp-meta .btn-link:hover {
  background: #ffffff !important;
  color: var(--latam-coral, #eb0046) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.4) !important;
}

.exp-meta .btn-link i {
  color: var(--latam-coral, #eb0046) !important;
  font-size: 0.82rem !important;
}

@media (max-width: 640px) {
  .exp-card {
    min-height: 320px !important;
    padding: 1.5rem 1.2rem !important;
  }
  .exp-title {
    font-size: 1.3rem !important;
  }
  .exp-summary {
    font-size: 0.86rem !important;
    line-height: 1.5 !important;
  }
  .exp-meta {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.75rem !important;
  }
  .exp-meta .btn-link {
    width: 100% !important;
    justify-content: center !important;
    padding: 0.6rem 1rem !important;
  }
}


/* ==========================================================================
   PERFECTED BESPOKE FLIGHT BANNER (PC & MOBILE STREAMLINED ARCHITECTURE)
   ========================================================================== */
.bespoke-flight-banner {
  background: linear-gradient(135deg, #0f0049 0%, #170068 100%) !important;
  border-radius: 20px !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  box-shadow: 0 24px 60px rgba(15, 0, 73, 0.28) !important;
  color: #ffffff !important;
  position: relative !important;
  overflow: hidden !important;
}

.banner-layout-grid {
  display: grid !important;
  grid-template-columns: 1.4fr 1fr !important;
  gap: 3.5rem !important;
  align-items: center !important;
}

.banner-badge-row {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  margin-bottom: 1.25rem !important;
  flex-wrap: wrap !important;
}

.banner-pill {
  background: var(--latam-coral, #eb0046) !important;
  color: #ffffff !important;
  font-family: var(--font-mono, monospace) !important;
  font-size: 0.74rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 0.32rem 0.8rem !important;
  border-radius: var(--radius-full, 9999px) !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  box-shadow: 0 4px 12px rgba(235, 0, 70, 0.35) !important;
}

.banner-pill i {
  color: #ffffff !important;
}

.banner-rnt-tag {
  font-family: var(--font-mono, monospace) !important;
  font-size: 0.74rem !important;
  font-weight: 700 !important;
  color: #cbd5e1 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
  background: rgba(255, 255, 255, 0.08) !important;
  padding: 0.3rem 0.65rem !important;
  border-radius: var(--radius-full, 9999px) !important;
}

.banner-main-title {
  color: #ffffff !important;
  font-family: var(--font-display, 'Outfit', sans-serif) !important;
  font-size: clamp(1.75rem, 2.6vw, 2.4rem) !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.01em !important;
  margin-bottom: 0.9rem !important;
}

.banner-lead-desc {
  color: rgba(255, 255, 255, 0.85) !important;
  font-family: var(--font-sans, 'Plus Jakarta Sans', sans-serif) !important;
  font-size: 1rem !important;
  line-height: 1.6 !important;
  margin-bottom: 1.8rem !important;
  max-width: 620px !important;
}

.banner-features-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 1rem !important;
}

.banner-feature-item {
  display: flex !important;
  align-items: center !important;
  gap: 0.65rem !important;
  font-family: var(--font-sans, 'Plus Jakarta Sans', sans-serif) !important;
  font-size: 0.88rem !important;
  font-weight: 600 !important;
  color: #ffffff !important;
  line-height: 1.4 !important;
}

.banner-feature-item i {
  color: var(--latam-coral, #eb0046) !important;
  font-size: 1rem !important;
  flex-shrink: 0 !important;
}

.banner-action-box {
  background: #ffffff !important;
  border-radius: 18px !important;
  padding: 2.2rem 2rem !important;
  box-shadow: 0 16px 45px rgba(0, 0, 0, 0.22) !important;
  text-align: center !important;
  color: var(--latam-indigo, #0f0049) !important;
  border: 1px solid rgba(255, 255, 255, 0.8) !important;
}

.banner-action-box h3 {
  font-family: var(--font-display, 'Outfit', sans-serif) !important;
  font-size: 1.35rem !important;
  font-weight: 800 !important;
  color: var(--latam-indigo, #0f0049) !important;
  margin-bottom: 0.4rem !important;
}

.banner-action-box p {
  font-family: var(--font-sans, 'Plus Jakarta Sans', sans-serif) !important;
  font-size: 0.88rem !important;
  color: var(--latam-text-secondary, #4a4f63) !important;
  line-height: 1.5 !important;
  margin-bottom: 1.4rem !important;
}

.banner-btn-stack {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.75rem !important;
}

.btn-banner-whatsapp {
  background: #25d366 !important;
  color: #ffffff !important;
  font-family: var(--font-display, 'Outfit', sans-serif) !important;
  font-size: 0.94rem !important;
  font-weight: 800 !important;
  padding: 0.9rem 1.4rem !important;
  border-radius: var(--radius-full, 9999px) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.55rem !important;
  text-decoration: none !important;
  box-shadow: 0 4px 14px rgba(37, 211, 102, 0.35) !important;
  transition: all 0.2s ease !important;
}

.btn-banner-whatsapp:hover {
  background: #20bd5a !important;
  color: #ffffff !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 22px rgba(37, 211, 102, 0.45) !important;
}

.btn-banner-primary {
  background: var(--latam-indigo, #0f0049) !important;
  color: #ffffff !important;
  font-family: var(--font-display, 'Outfit', sans-serif) !important;
  font-size: 0.92rem !important;
  font-weight: 800 !important;
  padding: 0.85rem 1.4rem !important;
  border-radius: var(--radius-full, 9999px) !important;
  border: 1px solid rgba(15, 0, 73, 0.2) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.55rem !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

.btn-banner-primary:hover {
  background: #1b0088 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 18px rgba(15, 0, 73, 0.25) !important;
}

.banner-security-badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.4rem !important;
  font-family: var(--font-mono, monospace) !important;
  font-size: 0.74rem !important;
  font-weight: 700 !important;
  color: #64748b !important;
  margin-top: 1.1rem !important;
}

.banner-security-badge i {
  color: #10b981 !important;
}

/* Mobile & Tablet Ergonomics */
@media (max-width: 992px) {
  .banner-layout-grid {
    grid-template-columns: 1fr !important;
    gap: 2.2rem !important;
  }
}

@media (max-width: 640px) {
  .bespoke-flight-banner {
    padding: 1.8rem 1.2rem !important;
    border-radius: 16px !important;
  }

  .banner-badge-row {
    gap: 0.5rem !important;
    margin-bottom: 1rem !important;
  }

  .banner-pill {
    font-size: 0.68rem !important;
    padding: 0.25rem 0.65rem !important;
  }

  .banner-rnt-tag {
    font-size: 0.68rem !important;
    padding: 0.25rem 0.55rem !important;
  }

  .banner-main-title {
    font-size: 1.45rem !important;
    line-height: 1.22 !important;
    margin-bottom: 0.65rem !important;
  }

  .banner-lead-desc {
    font-size: 0.9rem !important;
    line-height: 1.5 !important;
    margin-bottom: 1.25rem !important;
  }

  .banner-features-grid {
    grid-template-columns: 1fr !important;
    gap: 0.65rem !important;
  }

  .banner-feature-item {
    font-size: 0.84rem !important;
  }

  .banner-action-box {
    padding: 1.5rem 1.1rem !important;
    border-radius: 14px !important;
  }

  .banner-action-box h3 {
    font-size: 1.2rem !important;
  }

  .banner-action-box p {
    font-size: 0.82rem !important;
    margin-bottom: 1.1rem !important;
  }

  .btn-banner-whatsapp,
  .btn-banner-primary {
    font-size: 0.88rem !important;
    padding: 0.8rem 1rem !important;
    width: 100% !important;
  }

  .banner-security-badge {
    font-size: 0.7rem !important;
    margin-top: 0.9rem !important;
  }
}


/* ==========================================================================
   PERFECTED HIGH-CONTRAST FOOTER (CRYSTAL CLEAR LEGIBILITY ON PC & MOBILE)
   ========================================================================== */
.footer {
  background: #080020 !important;
  color: #f1f5f9 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
  padding: 4.5rem 0 0 !important;
  font-family: var(--font-sans, 'Plus Jakarta Sans', sans-serif) !important;
}

.footer-main {
  display: grid !important;
  grid-template-columns: 1.6fr 1fr 1.1fr !important;
  gap: 2.5rem !important;
  margin-bottom: 3.5rem !important;
}

.footer-title {
  color: #ffffff !important;
  font-family: var(--font-display, 'Outfit', sans-serif) !important;
  font-size: 1.05rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  margin-bottom: 1.25rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
}

.brand-col .brand-logo {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  text-decoration: none !important;
  margin-bottom: 0.8rem !important;
}

.brand-col .brand-wing-symbol {
  width: 38px !important;
  height: 38px !important;
  border-radius: 8px !important;
  background: var(--latam-coral, #eb0046) !important;
  color: #ffffff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 1rem !important;
  box-shadow: 0 4px 12px rgba(235, 0, 70, 0.4) !important;
}

.brand-col .brand-title {
  font-family: var(--font-display, 'Outfit', sans-serif) !important;
  font-size: 1.4rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.04em !important;
  color: #ffffff !important;
}

.footer-desc {
  color: #cbd5e1 !important;
  font-size: 0.88rem !important;
  line-height: 1.6 !important;
  margin-top: 0.6rem !important;
  margin-bottom: 1.4rem !important;
  max-width: 340px !important;
}

/* Contact Cards Stack */
.footer-contact-box {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.65rem !important;
  max-width: 320px !important;
}

.footer-contact-card {
  display: flex !important;
  align-items: center !important;
  gap: 0.85rem !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  padding: 0.65rem 0.95rem !important;
  border-radius: 10px !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.footer-contact-card:hover {
  background: rgba(255, 255, 255, 0.16) !important;
  border-color: rgba(255, 255, 255, 0.35) !important;
  transform: translateX(4px) !important;
}

.footer-contact-card i {
  font-size: 1.25rem !important;
  flex-shrink: 0 !important;
}

.footer-contact-card i.fa-whatsapp {
  color: #25d366 !important;
}

.footer-contact-card i.fa-phone {
  color: var(--latam-coral, #eb0046) !important;
}

.footer-contact-card i.fa-certificate {
  color: #f59e0b !important;
}

.contact-lbl {
  display: block !important;
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: #94a3b8 !important;
  line-height: 1.2 !important;
}

.contact-val {
  display: block !important;
  font-size: 0.9rem !important;
  font-weight: 800 !important;
  color: #ffffff !important;
  line-height: 1.3 !important;
}

/* Footer Links */
.footer-links {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.75rem !important;
}

.footer-links a {
  color: #e2e8f0 !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.55rem !important;
  transition: all 0.2s ease !important;
}

.footer-links a i {
  color: var(--latam-coral, #eb0046) !important;
  font-size: 0.78rem !important;
  transition: transform 0.2s ease !important;
}

.footer-links a:hover {
  color: #ffffff !important;
  transform: translateX(4px) !important;
}

.footer-links a:hover i {
  transform: translateX(2px) !important;
}

/* Payment & Discount Column */
.footer-note {
  color: #cbd5e1 !important;
  font-size: 0.86rem !important;
  line-height: 1.5 !important;
  margin-bottom: 1.1rem !important;
}

.payment-badges-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.5rem !important;
  margin-bottom: 1.1rem !important;
}

.pay-chip {
  background: rgba(255, 255, 255, 0.12) !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  color: #ffffff !important;
  font-family: var(--font-mono, monospace) !important;
  font-size: 0.76rem !important;
  font-weight: 700 !important;
  padding: 0.38rem 0.75rem !important;
  border-radius: 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2) !important;
}

.pay-chip i {
  color: #60a5fa !important;
}

.footer-discount-pill {
  background: rgba(235, 0, 70, 0.22) !important;
  border: 1px solid rgba(235, 0, 70, 0.45) !important;
  color: #ffffff !important;
  padding: 0.55rem 0.9rem !important;
  border-radius: 8px !important;
  font-size: 0.82rem !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  line-height: 1.3 !important;
}

.footer-discount-pill i {
  color: var(--latam-coral, #eb0046) !important;
  font-size: 0.88rem !important;
}

/* Footer Bottom Bar */
.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
  margin-top: 3.5rem !important;
  padding: 1.6rem 0 !important;
  background: rgba(0, 0, 0, 0.35) !important;
}

.footer-bottom-inner {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 1rem !important;
}

.copy-text {
  color: #cbd5e1 !important;
  font-size: 0.82rem !important;
  margin: 0 !important;
}

.copy-text strong {
  color: #ffffff !important;
}

.footer-bottom-links {
  color: #94a3b8 !important;
  font-size: 0.78rem !important;
  font-family: var(--font-mono, monospace) !important;
}

/* Responsive Footer */
@media (max-width: 992px) {
  .footer-main {
    grid-template-columns: 1.3fr 1fr 1fr !important;
    gap: 2rem !important;
  }
}

@media (max-width: 640px) {
  .footer {
    padding: 3.2rem 0 0 !important;
  }

  .footer-main {
    display: flex !important;
    flex-direction: column !important;
    gap: 2.2rem !important;
  }

  .footer-contact-box {
    max-width: 100% !important;
  }

  .footer-bottom-inner {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.5rem !important;
  }
}


/* ==========================================================================
   PERFECTED ULTRA-IMPACT HERO HEADLINE (MAXIMUM CONTRAST & VISIBILITY)
   ========================================================================== */
.hero-media {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 1 !important;
}

.hero-bg-overlay {
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(
    180deg,
    rgba(15, 0, 73, 0.72) 0%,
    rgba(15, 0, 73, 0.48) 35%,
    rgba(15, 0, 73, 0.85) 75%,
    rgba(15, 0, 73, 0.98) 100%
  ) !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

.hero-aura-glow {
  position: absolute !important;
  inset: 0 !important;
  background: radial-gradient(circle at 50% 25%, rgba(235, 0, 70, 0.22) 0%, transparent 65%) !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

.hero-content {
  position: relative !important;
  z-index: 3 !important;
  text-align: center !important;
}

.latam-pill-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.55rem !important;
  background: rgba(15, 0, 73, 0.85) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  border: 1.5px solid rgba(255, 255, 255, 0.28) !important;
  color: #ffffff !important;
  font-family: var(--font-mono, monospace) !important;
  font-size: 0.76rem !important;
  font-weight: 800 !important;
  padding: 0.45rem 1.2rem !important;
  border-radius: var(--radius-full, 9999px) !important;
  letter-spacing: 0.08em !important;
  margin-bottom: 1.4rem !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35) !important;
}

.latam-pill-badge i {
  color: var(--latam-coral, #eb0046) !important;
  font-size: 0.85rem !important;
}

.hero-title {
  font-family: var(--font-display, 'Outfit', sans-serif) !important;
  font-size: clamp(2.5rem, 5.8vw, 4.4rem) !important;
  font-weight: 900 !important;
  line-height: 1.12 !important;
  color: #ffffff !important;
  letter-spacing: -0.025em !important;
  margin-bottom: 1.25rem !important;
  text-shadow: 0 4px 25px rgba(0, 0, 0, 0.85), 0 2px 8px rgba(15, 0, 73, 0.95) !important;
}

.hero-title-highlight {
  display: inline-block !important;
  background: linear-gradient(135deg, #ff2a6d 0%, #eb0046 50%, #ff8c38 100%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  font-weight: 900 !important;
  position: relative !important;
  filter: drop-shadow(0 4px 24px rgba(235, 0, 70, 0.65)) !important;
  padding-bottom: 0.12em !important;
}

.hero-title-highlight::after {
  content: '' !important;
  position: absolute !important;
  left: 3% !important;
  right: 3% !important;
  bottom: 0 !important;
  height: 5px !important;
  background: linear-gradient(90deg, #eb0046 0%, #ff8c38 100%) !important;
  border-radius: 9999px !important;
  box-shadow: 0 3px 12px rgba(235, 0, 70, 0.7) !important;
}

.hero-subtitle {
  font-family: var(--font-sans, 'Plus Jakarta Sans', sans-serif) !important;
  font-size: clamp(1.05rem, 1.8vw, 1.25rem) !important;
  color: #f1f5f9 !important;
  font-weight: 500 !important;
  max-width: 820px !important;
  margin: 0 auto 2.4rem !important;
  line-height: 1.62 !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.85) !important;
}

@media (max-width: 640px) {
  .hero-title {
    font-size: 2.2rem !important;
    line-height: 1.15 !important;
    margin-bottom: 0.9rem !important;
  }

  .hero-title-highlight::after {
    height: 4px !important;
  }

  .hero-subtitle {
    font-size: 0.94rem !important;
    line-height: 1.5 !important;
    margin-bottom: 1.8rem !important;
  }

  .latam-pill-badge {
    font-size: 0.68rem !important;
    padding: 0.35rem 0.85rem !important;
  }
}

/* ==========================================================================
   DETAIL MODAL PRICE BOX & HIGH-CONTRAST RESERVATION BUTTONS
   ========================================================================== */
.modal-price-box {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 1.3rem 1.6rem !important;
  background: #f8fafc !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 16px !important;
  margin-top: 1.4rem !important;
  gap: 1.2rem !important;
  flex-wrap: wrap !important;
}

.modal-price-info {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.25rem !important;
}

.modal-price-label {
  font-size: 0.74rem !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: #64748b !important;
}

.modal-price-row {
  display: flex !important;
  align-items: baseline !important;
  gap: 0.8rem !important;
  flex-wrap: wrap !important;
}

.modal-price-val {
  font-family: var(--font-display, 'Outfit', sans-serif) !important;
  font-size: 1.85rem !important;
  font-weight: 900 !important;
  color: #0f0049 !important;
  line-height: 1 !important;
}

.modal-price-sub {
  font-size: 0.88rem !important;
  color: #475569 !important;
  font-weight: 600 !important;
}

.modal-price-sub strong {
  color: #0f0049 !important;
  font-weight: 800 !important;
}

.modal-buttons-group {
  display: flex !important;
  align-items: center !important;
  gap: 0.7rem !important;
  flex-wrap: wrap !important;
}

/* 1. Reservar Pareja (Accion Principal Coral) */
.btn-modal-couple {
  background: #eb0046 !important;
  color: #ffffff !important;
  border: none !important;
  font-family: var(--font-display, 'Outfit', sans-serif) !important;
  font-size: 0.95rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  padding: 0.85rem 1.6rem !important;
  border-radius: 9999px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.55rem !important;
  box-shadow: 0 4px 16px rgba(235, 0, 70, 0.35) !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  white-space: nowrap !important;
}

.btn-modal-couple span {
  color: #ffffff !important;
  font-weight: 800 !important;
}

.btn-modal-couple i {
  color: #ffffff !important;
  font-size: 0.88rem !important;
}

.btn-modal-couple:hover {
  background: #c90038 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(235, 0, 70, 0.45) !important;
}

/* 2. Reservar Individual (Accion Secundaria Indigo Alta Visibilidad) */
.btn-modal-individual {
  background: #0f0049 !important;
  color: #ffffff !important;
  border: 1.5px solid #0f0049 !important;
  font-family: var(--font-display, 'Outfit', sans-serif) !important;
  font-size: 0.95rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  padding: 0.85rem 1.6rem !important;
  border-radius: 9999px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.55rem !important;
  box-shadow: 0 4px 16px rgba(15, 0, 73, 0.25) !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  white-space: nowrap !important;
}

.btn-modal-individual span {
  color: #ffffff !important;
  font-weight: 800 !important;
}

.btn-modal-individual i {
  color: #ffffff !important;
  font-size: 0.88rem !important;
}

.btn-modal-individual:hover {
  background: #1b0088 !important;
  border-color: #1b0088 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 22px rgba(15, 0, 73, 0.35) !important;
}

@media (max-width: 600px) {
  .modal-price-box {
    flex-direction: column !important;
    align-items: stretch !important;
    padding: 1.2rem !important;
  }
  .modal-buttons-group {
    flex-direction: column !important;
    width: 100% !important;
  }
  .btn-modal-couple,
  .btn-modal-individual {
    width: 100% !important;
    justify-content: center !important;
  }
}
