/* ============================================================
   FlightBookingCenter — Core Stylesheet
   Design tokens: navy + sky-blue + amber, Sora display / Inter body
   ============================================================ */

:root{
  --navy-950:#070F24;
  --navy-900:#0B1E3D;
  --navy-800:#10284F;
  --navy-700:#163566;
  --blue-600:#1A56DB;
  --blue-500:#2D6CF6;
  --blue-400:#3B82F6;
  --sky-300:#7DB3FF;
  --sky-100:#E7F0FF;
  --amber-500:#F59E0B;
  --amber-600:#D97F06;
  --amber-100:#FFF4E0;
  --ink-900:#0F1B2D;
  --ink-700:#1E293B;
  --ink-500:#64748B;
  --ink-300:#9FACBF;
  --line:#E3E9F2;
  --paper:#F7F9FC;
  --white:#FFFFFF;
  --good:#15803D;
  --good-bg:#E8F7EE;
  --warn:#B45309;
  --warn-bg:#FFF4E0;
  --bad:#B91C1C;
  --bad-bg:#FDEAEA;

  --radius-sm:8px;
  --radius-md:14px;
  --radius-lg:22px;
  --radius-pill:999px;

  --shadow-sm:0 1px 2px rgba(11,30,61,.06), 0 1px 1px rgba(11,30,61,.04);
  --shadow-md:0 8px 24px rgba(11,30,61,.10);
  --shadow-lg:0 20px 50px rgba(11,30,61,.16);
  --shadow-glow:0 0 0 4px rgba(45,108,246,.15);

  --container:1240px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  color:var(--ink-700);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
}
h1,h2,h3,h4{
  font-family:'Sora',system-ui,sans-serif;
  color:var(--navy-900);
  margin:0 0 .5em;
  line-height:1.15;
  letter-spacing:-.01em;
}
p{margin:0 0 1em;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;}
input,select,button,textarea{font-family:inherit;font-size:inherit;}

.container{max-width:var(--container);margin:0 auto;padding:0 24px;}
.section{padding:88px 0;}
.section-tight{padding:56px 0;}
@media(max-width:860px){
  .section{padding:60px 0;}
  .section-tight{padding:40px 0;}
}

.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--blue-600);margin-bottom:14px;
}
.eyebrow::before{content:"";width:18px;height:2px;background:var(--amber-500);display:inline-block;border-radius:2px;}

.section-head{max-width:640px;margin-bottom:48px;}
.section-head h2{font-size:clamp(28px,3.4vw,40px);}
.section-head p{color:var(--ink-500);font-size:17px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 26px;border-radius:var(--radius-pill);
  font-weight:600;font-size:15px;border:1px solid transparent;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
  white-space:nowrap;
}
.btn-primary{
  background:linear-gradient(135deg,var(--blue-600),var(--blue-400));
  color:#fff;box-shadow:0 10px 24px rgba(26,86,219,.28);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(26,86,219,.36);}
.btn-amber{
  background:linear-gradient(135deg,var(--amber-600),var(--amber-500));
  color:#fff;box-shadow:0 10px 24px rgba(217,127,6,.28);
}
.btn-amber:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(217,127,6,.36);}
.btn-ghost{
  background:transparent;border-color:rgba(255,255,255,.35);color:#fff;
}
.btn-ghost:hover{background:rgba(255,255,255,.1);}
.btn-outline{
  background:#fff;border-color:var(--line);color:var(--navy-900);
}
.btn-outline:hover{border-color:var(--blue-400);color:var(--blue-600);}
.btn-block{width:100%;}
.btn-sm{padding:10px 18px;font-size:13.5px;}

/* ---------- Top utility bar ---------- */
.topbar{
  background:var(--navy-950);color:#cbd8f0;font-size:13px;
}
.topbar .container{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:9px;padding-bottom:9px;gap:16px;flex-wrap:wrap;
}
.topbar a{color:#cbd8f0;display:inline-flex;align-items:center;gap:6px;}
.topbar a:hover{color:#fff;}
.topbar-left{display:flex;align-items:center;gap:10px;color:#8fa3c9;}
.topbar-right{display:flex;align-items:center;gap:20px;}
.topbar-right .divider{color:#3a4a6b;}
@media(max-width:680px){
  .topbar-left{display:none;}
  .topbar .container{justify-content:center;}
}

/* ---------- Header / nav ---------- */
header.site-header{
  background:#fff;border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:100;
}
.nav-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:24px;}
.brand{display:flex;align-items:center;gap:10px;}
.brand img{height:46px;width:auto;}
.brand-text{display:flex;flex-direction:column;line-height:1.1;}
.brand-text strong{font-family:'Sora',sans-serif;font-size:19px;color:var(--navy-900);font-weight:700;}
.brand-text span{font-size:10.5px;letter-spacing:.08em;color:var(--blue-600);font-weight:700;text-transform:uppercase;}

nav.main-nav{display:flex;align-items:center;gap:34px;}
nav.main-nav a{
  font-weight:600;font-size:14.5px;color:var(--ink-700);position:relative;padding:6px 0;
}
nav.main-nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--blue-500);
  transform:scaleX(0);transition:transform .2s ease;border-radius:2px;
}
nav.main-nav a:hover{color:var(--blue-600);}
nav.main-nav a:hover::after,nav.main-nav a.active::after{transform:scaleX(1);}
nav.main-nav a.active{color:var(--blue-600);}

.nav-actions{display:flex;align-items:center;gap:14px;}
.nav-phone{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--navy-900);font-size:14.5px;}
.nav-phone svg{color:var(--amber-500);}

.nav-toggle{display:none;background:none;border:none;padding:8px;color:var(--navy-900);}
@media(max-width:980px){
  nav.main-nav{
    position:fixed;inset:0 0 0 30%;background:#fff;flex-direction:column;
    padding:100px 28px 28px;gap:6px;align-items:flex-start;
    transform:translateX(100%);transition:transform .25s ease;box-shadow:-10px 0 40px rgba(0,0,0,.15);
  }
  nav.main-nav.open{transform:translateX(0);}
  nav.main-nav a{width:100%;padding:14px 0;border-bottom:1px solid var(--line);font-size:16px;}
  .nav-toggle{display:block;}
  .nav-phone{display:none;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;overflow:hidden;
  background:radial-gradient(1100px 600px at 80% -10%, #16336B 0%, var(--navy-900) 55%, var(--navy-950) 100%);
  color:#fff;padding:64px 0 0;
}
.hero-grid{
  display:grid;grid-template-columns:1fr;gap:8px;align-items:start;position:relative;z-index:2;
}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.16);padding:8px 16px;border-radius:var(--radius-pill);
  font-size:13px;font-weight:600;color:#dbe6fb;margin-bottom:22px;
}
.hero-eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--amber-500);}
.hero h1{
  font-size:clamp(34px,5vw,58px);color:#fff;max-width:780px;font-weight:700;
}
.hero h1 em{font-style:normal;background:linear-gradient(90deg,#7DB3FF,#A9D2FF);-webkit-background-clip:text;background-clip:text;color:transparent;}
.hero p.lead{color:#b9c8e6;font-size:18px;max-width:560px;margin-bottom:0;}

.hero-plane-path{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.5;}

/* boarding-pass search card
   Rebuilt with an explicit, isolated stacking context so nothing on the
   page can ever render above this card or intercept clicks meant for it,
   regardless of what other elements/animations exist around it. */
.search-wrap{
  position:relative;
  z-index:20;
  isolation:isolate; /* creates a fresh stacking context: nothing outside this
                         element can sit "above" anything inside it by accident */
  margin-top:38px;
}
.search-card{
  background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
  padding:10px;position:relative;z-index:1;
  pointer-events:auto;
}
.trip-toggle{
  display:flex;gap:6px;padding:14px 14px 4px;
  position:relative;z-index:2;pointer-events:auto;
}
.trip-toggle button{
  border:1px solid var(--line);background:#fff;padding:9px 18px;border-radius:var(--radius-pill);
  font-weight:700;font-size:13.5px;color:var(--ink-500);display:flex;align-items:center;gap:7px;
  transition:.15s;position:relative;z-index:1;pointer-events:auto;cursor:pointer;
}
.trip-toggle button.active{background:var(--navy-900);border-color:var(--navy-900);color:#fff;}

.search-form{
  display:grid;grid-template-columns:1.3fr auto 1.3fr 1fr 1fr 1.1fr auto;
  gap:0;align-items:stretch;padding:8px;
}
.search-field{
  position:relative;padding:12px 18px;border-right:1px dashed var(--line);
}
.search-field:last-of-type{border-right:none;}
.search-field label{
  display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-500);margin-bottom:5px;
}
.search-field .field-value{
  display:flex;align-items:center;gap:9px;font-family:'Sora',sans-serif;font-weight:700;
  font-size:16.5px;color:var(--navy-900);
}
.search-field .field-sub{font-size:12px;color:var(--ink-500);font-weight:500;margin-top:1px;}
.search-field input[type=text],.search-field input[type=date]{
  border:none;outline:none;width:100%;font-family:'Sora',sans-serif;font-weight:700;font-size:16.5px;
  color:var(--navy-900);background:transparent;padding:0;
}
.search-field input::placeholder{color:var(--ink-300);font-weight:600;}

.swap-btn{
  align-self:center;justify-self:center;width:38px;height:38px;border-radius:50%;
  background:var(--sky-100);border:1px solid var(--line);color:var(--blue-600);
  display:flex;align-items:center;justify-content:center;margin:0 -6px;z-index:2;
  transition:transform .2s ease, background .2s ease;
}
.swap-btn:hover{background:var(--blue-500);color:#fff;transform:rotate(180deg);}

.search-submit{display:flex;align-items:center;padding:8px;}
.search-submit .btn{width:100%;height:100%;padding:18px 22px;font-size:15px;}

/* dropdown panels (airport / travelers) */
.dropdown-panel{
  position:absolute;top:calc(100% + 10px);left:0;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:10px;width:320px;z-index:50;
  display:none;
}
.dropdown-panel.open{display:block;}
.airport-option{
  display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;
}
.airport-option:hover{background:var(--sky-100);cursor:pointer;}
.airport-code{
  width:42px;height:42px;border-radius:10px;background:var(--navy-900);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:'Sora',sans-serif;font-weight:700;font-size:13px;flex:none;
}
.airport-name{font-weight:700;font-size:14px;color:var(--navy-900);}
.airport-sub{font-size:12.5px;color:var(--ink-500);}

.traveler-row{display:flex;align-items:center;justify-content:space-between;padding:10px 6px;}
.traveler-row + .traveler-row{border-top:1px solid var(--line);}
.traveler-label strong{display:block;font-size:14px;color:var(--navy-900);}
.traveler-label span{font-size:12px;color:var(--ink-500);}
.stepper{display:flex;align-items:center;gap:12px;}
.stepper button{
  width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:#fff;
  display:flex;align-items:center;justify-content:center;color:var(--navy-900);font-weight:700;
}
.stepper button:hover{border-color:var(--blue-400);color:var(--blue-600);}
.stepper span{min-width:14px;text-align:center;font-weight:700;font-family:'Sora',sans-serif;}
.cabin-options{display:flex;gap:8px;padding:10px 6px 4px;flex-wrap:wrap;}
.cabin-options button{
  flex:1;border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 6px;
  font-size:12.5px;font-weight:700;color:var(--ink-700);
}
.cabin-options button.active{background:var(--blue-500);border-color:var(--blue-500);color:#fff;}
.dropdown-done{width:100%;margin-top:8px;}

@media(max-width:980px){
  .search-form{grid-template-columns:1fr;}
  .search-field{border-right:none;border-bottom:1px dashed var(--line);}
  .swap-btn{position:absolute;right:20px;top:6px;margin:0;}
  .dropdown-panel{width:100%;}
}

.hero-stats{
  display:flex;gap:36px;margin-top:46px;padding-bottom:54px;flex-wrap:wrap;position:relative;z-index:2;
}
.hero-stats div strong{display:block;font-family:'Sora',sans-serif;font-size:26px;color:#fff;}
.hero-stats div span{font-size:13px;color:#9fb2da;}

/* ---------- Trust strip ---------- */
.trust-strip{background:var(--navy-900);padding:18px 0;}
.trust-strip .container{display:flex;align-items:center;justify-content:center;gap:48px;flex-wrap:wrap;}
.trust-strip .item{display:flex;align-items:center;gap:10px;color:#cdd9f2;font-size:13.5px;font-weight:600;}
.trust-strip .item svg{color:var(--amber-500);}

/* ---------- Feature / service cards ---------- */
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
@media(max-width:980px){.grid-4{grid-template-columns:repeat(2,1fr);}.grid-3{grid-template-columns:repeat(2,1fr);}}
@media(max-width:620px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr;}}

.feature-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:30px 26px;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.feature-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:transparent;}
.feature-icon{
  width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:var(--sky-100);color:var(--blue-600);margin-bottom:18px;
}
.feature-card h3{font-size:18px;margin-bottom:8px;}
.feature-card p{color:var(--ink-500);font-size:14.5px;margin-bottom:0;}

/* ---------- Destination cards ---------- */
.dest-card{
  position:relative;border-radius:var(--radius-md);overflow:hidden;height:300px;
  box-shadow:var(--shadow-sm);
}
.dest-card img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.dest-card:hover img{transform:scale(1.08);}
.dest-card .overlay{
  position:absolute;inset:0;background:linear-gradient(0deg, rgba(7,15,36,.88) 0%, rgba(7,15,36,.1) 55%, transparent 100%);
  display:flex;flex-direction:column;justify-content:flex-end;padding:22px;
}
.dest-card h3{color:#fff;margin-bottom:2px;font-size:21px;}
.dest-card .sub{color:#cfdaf2;font-size:13px;margin-bottom:14px;}
.dest-card .explore{
  display:inline-flex;align-items:center;gap:6px;color:#fff;font-size:13px;font-weight:700;
  width:fit-content;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:2px;
}

/* ---------- Deal cards (boarding pass style) ---------- */
.deal-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);
  display:flex;align-items:stretch;overflow:hidden;transition:.2s;position:relative;
}
.deal-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);}
.deal-route{flex:1;padding:22px 20px;}
.deal-route .pair{display:flex;align-items:center;gap:14px;}
.deal-route .city{text-align:left;}
.deal-route .code{font-family:'Sora',sans-serif;font-weight:800;font-size:24px;color:var(--navy-900);}
.deal-route .name{font-size:12.5px;color:var(--ink-500);}
.deal-route .plane-icon{color:var(--blue-400);flex:none;}
.deal-route .dates{display:flex;justify-content:space-between;margin-top:14px;font-size:12.5px;color:var(--ink-500);}
.deal-price{
  flex:none;width:120px;background:var(--sky-100);display:flex;flex-direction:column;
  align-items:center;justify-content:center;border-left:1px dashed var(--line);position:relative;
}
.deal-price::before,.deal-price::after{
  content:"";position:absolute;width:18px;height:18px;background:var(--paper);border-radius:50%;left:-9px;
}
.deal-price::before{top:-9px;}
.deal-price::after{bottom:-9px;}
.deal-price .from{font-size:11px;color:var(--ink-500);font-weight:600;}
.deal-price .amt{font-family:'Sora',sans-serif;font-weight:800;font-size:24px;color:var(--blue-600);}

/* ---------- Video / CTA banner ---------- */
.video-banner{position:relative;border-radius:var(--radius-lg);overflow:hidden;}
.video-banner video,.video-banner img{width:100%;height:480px;object-fit:cover;display:block;}
.video-banner .caption{
  position:absolute;left:24px;bottom:24px;background:rgba(7,15,36,.55);backdrop-filter:blur(6px);
  color:#fff;padding:10px 16px;border-radius:var(--radius-pill);font-size:13px;font-weight:600;
}
.floating-badge{
  position:absolute;top:28px;right:28px;background:#fff;border-radius:16px;padding:18px 22px;
  box-shadow:var(--shadow-lg);text-align:center;
}
.floating-badge strong{display:block;font-family:'Sora',sans-serif;font-size:26px;color:var(--navy-900);}
.floating-badge span{font-size:12px;color:var(--ink-500);font-weight:600;}

/* ---------- About split ---------- */
.about-split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
@media(max-width:900px){.about-split{grid-template-columns:1fr;gap:36px;}}
.about-list li{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px;font-size:15px;color:var(--ink-700);}
.about-list li svg{flex:none;color:var(--blue-600);margin-top:2px;}
.stat-row{display:flex;gap:0;margin-top:40px;border-top:1px solid var(--line);padding-top:28px;flex-wrap:wrap;}
.stat-row .stat{flex:1;min-width:120px;}
.stat-row .stat strong{display:block;font-family:'Sora',sans-serif;font-size:30px;color:var(--navy-900);}
.stat-row .stat span{font-size:13px;color:var(--ink-500);}

/* ---------- Gallery strip ---------- */
.gallery-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;}
.gallery-strip img{height:160px;width:100%;object-fit:cover;border-radius:12px;}
@media(max-width:860px){.gallery-strip{grid-template-columns:repeat(3,1fr);}}
@media(max-width:560px){.gallery-strip{grid-template-columns:repeat(2,1fr);}}

/* ---------- Newsletter ---------- */
.newsletter{
  background:linear-gradient(120deg,var(--navy-900),var(--navy-700));border-radius:var(--radius-lg);
  padding:50px 56px;display:flex;align-items:center;justify-content:space-between;gap:30px;color:#fff;
  position:relative;overflow:hidden;
}
.newsletter::after{
  content:"";position:absolute;right:-60px;top:-60px;width:240px;height:240px;border-radius:50%;
  background:radial-gradient(circle,rgba(125,179,255,.25),transparent 70%);
}
.newsletter h3{color:#fff;font-size:24px;margin-bottom:4px;}
.newsletter p{color:#b9c8e6;margin:0;font-size:14.5px;}
.newsletter-form{display:flex;gap:10px;flex:none;}
.newsletter-form input{
  border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;
  padding:13px 18px;border-radius:var(--radius-pill);width:260px;outline:none;
}
.newsletter-form input::placeholder{color:#9fb2da;}
@media(max-width:780px){
  .newsletter{flex-direction:column;align-items:flex-start;padding:34px 28px;}
  .newsletter-form{width:100%;}
  .newsletter-form input{width:100%;}
}

/* ---------- Footer ---------- */
footer.site-footer{background:var(--navy-950);color:#9fb2da;padding-top:64px;}
.footer-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.08);}
@media(max-width:900px){.footer-top{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.footer-top{grid-template-columns:1fr;}}
.footer-brand img{height:40px;margin-bottom:16px;}
.footer-brand p{font-size:14px;color:#8fa3c9;max-width:320px;}
.footer-contact li{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:14px;}
.footer-contact svg{color:var(--amber-500);flex:none;}
.footer-contact a:hover{color:#fff;}
.footer-col h4{color:#fff;font-size:14px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:18px;}
.footer-col li{margin-bottom:11px;font-size:14px;}
.footer-col a:hover{color:#fff;}
.footer-bottom{
  display:flex;align-items:center;justify-content:space-between;padding:24px 0;gap:16px;flex-wrap:wrap;
  font-size:13px;color:#71839f;
}
.payment-icons{display:flex;gap:10px;align-items:center;}
.payment-icons span{
  background:#13234a;border-radius:6px;padding:5px 9px;font-size:11px;font-weight:700;color:#cdd9f2;
}
.footer-disclaimer{
  border-top:1px solid rgba(255,255,255,.08);padding:20px 0 30px;font-size:12.5px;color:#637museum;color:#5d7099;line-height:1.7;
}

/* ---------- WhatsApp float ---------- */
.wa-float{
  position:fixed;bottom:24px;right:24px;z-index:200;background:#25D366;color:#fff;
  width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px rgba(37,211,102,.45);
}
.wa-float:hover{transform:scale(1.06);}
.wa-pulse{
  position:absolute;inset:0;border-radius:50%;background:#25D366;animation:wa-ping 2s infinite;
}
@keyframes wa-ping{0%{transform:scale(1);opacity:.6;}100%{transform:scale(1.9);opacity:0;}}

/* ---------- Generic inner page hero ---------- */
.page-hero{
  background:radial-gradient(900px 400px at 85% -20%, #16336B 0%, var(--navy-900) 60%, var(--navy-950) 100%);
  color:#fff;padding:64px 0 56px;
}
.breadcrumb{display:flex;align-items:center;gap:8px;font-size:13px;color:#9fb2da;margin-bottom:16px;}
.breadcrumb a:hover{color:#fff;}
.page-hero h1{color:#fff;font-size:clamp(28px,4vw,42px);margin-bottom:10px;}
.page-hero p{color:#b9c8e6;font-size:16px;max-width:600px;margin:0;}

/* The boarding-pass search card on flights.html intentionally overlaps the bottom
   of .page-hero. A fixed negative margin only works safely on wide screens where
   the hero stays short; on narrower screens the hero text wraps onto more lines
   and grows taller, so the same fixed offset can pull the search card (including
   the trip-toggle buttons) up underneath the hero text — making those buttons
   visually present but unclickable since the hero paints on top of them.
   This class replaces the old inline style and backs the overlap off responsively. */
.search-wrap-overlap{margin-top:-86px;}
@media(max-width:860px){
  .search-wrap-overlap{margin-top:-40px;}
}
@media(max-width:560px){
  .search-wrap-overlap{margin-top:16px;}
}

/* ---------- Generic content blocks ---------- */
.prose h2{font-size:24px;margin-top:36px;}
.prose h3{font-size:18px;margin-top:24px;}
.prose p{color:var(--ink-700);font-size:15.5px;}
.prose ul{margin:0 0 20px;padding-left:0;}
.prose ul li{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px;font-size:15px;color:var(--ink-700);}
.prose ul li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--blue-500);margin-top:8px;flex:none;}
.prose ol{padding-left:20px;color:var(--ink-700);font-size:15px;}
.prose ol li{margin-bottom:10px;}
.prose a{color:var(--blue-600);font-weight:600;text-decoration:underline;text-underline-offset:2px;}

.legal-layout{display:grid;grid-template-columns:240px 1fr;gap:48px;align-items:start;}
@media(max-width:860px){.legal-layout{grid-template-columns:1fr;}}
.legal-toc{position:sticky;top:96px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:20px;}
.legal-toc strong{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-500);margin-bottom:12px;}
.legal-toc li{margin-bottom:4px;}
.legal-toc a{display:block;padding:8px 10px;border-radius:8px;font-size:13.5px;color:var(--ink-700);font-weight:600;}
.legal-toc a:hover{background:var(--sky-100);color:var(--blue-600);}

/* ---------- Contact page ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;}}
.contact-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:28px;
  display:flex;gap:16px;align-items:flex-start;margin-bottom:16px;
}
.contact-card .icon{
  width:48px;height:48px;border-radius:12px;background:var(--sky-100);color:var(--blue-600);
  display:flex;align-items:center;justify-content:center;flex:none;
}
.contact-card h4{margin-bottom:4px;font-size:15.5px;color:var(--navy-900);}
.contact-card p{margin:0;font-size:14px;color:var(--ink-500);}
.contact-card a{font-weight:700;color:var(--navy-900);}
.contact-card a:hover{color:var(--blue-600);}

.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:36px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
@media(max-width:560px){.form-row{grid-template-columns:1fr;}}
.form-group label{display:block;font-size:13px;font-weight:700;color:var(--navy-900);margin-bottom:7px;}
.form-group input,.form-group select,.form-group textarea{
  width:100%;border:1px solid var(--line);border-radius:10px;padding:13px 14px;outline:none;
  font-size:14.5px;color:var(--ink-700);background:var(--paper);transition:border-color .15s, box-shadow .15s;
}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{
  border-color:var(--blue-400);box-shadow:var(--shadow-glow);background:#fff;
}
.form-group textarea{resize:vertical;min-height:120px;}

.map-embed{border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--line);margin-top:24px;}
.map-embed iframe{width:100%;height:280px;border:0;display:block;}

/* ---------- FAQ accordion ---------- */
.faq-item{border:1px solid var(--line);border-radius:var(--radius-md);margin-bottom:12px;overflow:hidden;background:#fff;}
.faq-q{
  display:flex;align-items:center;justify-content:space-between;padding:18px 22px;cursor:pointer;
  font-weight:700;color:var(--navy-900);font-size:15px;
}
.faq-q svg{transition:transform .2s ease;color:var(--blue-500);flex:none;}
.faq-item.open .faq-q svg{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.faq-item.open .faq-a{max-height:300px;}
.faq-a div{padding:0 22px 18px;color:var(--ink-500);font-size:14.5px;}

/* ---------- Alert / toast ---------- */
.toast{
  position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(120%);
  background:var(--navy-900);color:#fff;padding:16px 26px;border-radius:var(--radius-pill);
  box-shadow:var(--shadow-lg);font-size:14px;font-weight:600;display:flex;align-items:center;gap:10px;
  z-index:300;transition:transform .3s ease;
}
.toast.show{transform:translateX(-50%) translateY(0);}
.toast svg{color:#34D399;}

/* ---------- Badge ---------- */
.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:var(--radius-pill);font-size:11.5px;font-weight:700;}
.badge-good{background:var(--good-bg);color:var(--good);}
.badge-warn{background:var(--warn-bg);color:var(--warn);}
.badge-bad{background:var(--bad-bg);color:var(--bad);}

/* ---------- Utility ---------- */
.text-center{text-align:center;}
.mt-0{margin-top:0;}
.muted{color:var(--ink-500);}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1;transform:none;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
}

/* ============================================================
   Flight Results Page
   ============================================================ */
.results-toolbar{
  background:#fff;border-bottom:1px solid var(--line);padding:18px 0;
}
.results-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;}
.results-summary .route-line{display:flex;align-items:center;gap:10px;font-family:'Sora',sans-serif;font-weight:700;font-size:18px;color:var(--navy-900);}
.results-summary .route-line svg{color:var(--blue-500);}
.results-summary .meta{font-size:13px;color:var(--ink-500);margin-top:3px;}
.modify-search-btn{flex:none;}

.results-list{display:flex;flex-direction:column;gap:14px;}
.flight-result-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:22px 24px;
  display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;transition:.2s;
}
.flight-result-card:hover{box-shadow:var(--shadow-md);border-color:transparent;}
.flight-leg{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.flight-leg + .flight-leg{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line);}
.flight-leg-label{
  font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--blue-600);
  background:var(--sky-100);padding:3px 9px;border-radius:6px;flex:none;
}
.flight-leg-time{text-align:center;}
.flight-leg-time .t{font-family:'Sora',sans-serif;font-weight:800;font-size:19px;color:var(--navy-900);}
.flight-leg-time .c{font-size:12px;color:var(--ink-500);font-weight:600;}
.flight-leg-path{flex:1;min-width:140px;text-align:center;position:relative;padding:0 10px;}
.flight-leg-path .dur{font-size:12px;color:var(--ink-500);margin-bottom:4px;font-weight:600;}
.flight-leg-path .line{position:relative;height:2px;background:var(--line);border-radius:2px;}
.flight-leg-path .line::before,.flight-leg-path .line::after{
  content:"";position:absolute;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--blue-400);
}
.flight-leg-path .line::before{left:0;}
.flight-leg-path .line::after{right:0;}
.flight-leg-path .stops{font-size:11px;color:var(--ink-500);margin-top:4px;}
.flight-leg-airline{font-size:12.5px;color:var(--ink-700);font-weight:600;min-width:120px;}

.flight-result-price{text-align:center;flex:none;border-left:1px dashed var(--line);padding-left:24px;}
.flight-result-price .amt{font-family:'Sora',sans-serif;font-weight:800;font-size:26px;color:var(--blue-600);}
.flight-result-price .per{font-size:11px;color:var(--ink-500);margin-bottom:10px;}

@media(max-width:760px){
  .flight-result-card{grid-template-columns:1fr;}
  .flight-result-price{border-left:none;border-top:1px dashed var(--line);padding-left:0;padding-top:14px;}
}

.results-state{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:60px 24px;text-align:center;
}
.results-state svg{color:var(--ink-300);margin-bottom:16px;}
.results-state strong{display:block;font-size:17px;color:var(--navy-900);margin-bottom:8px;}
.results-state p{color:var(--ink-500);font-size:14.5px;max-width:420px;margin:0 auto 18px;}

.skeleton-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:22px 24px;height:96px;
  position:relative;overflow:hidden;
}
.skeleton-card::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg, transparent, rgba(45,108,246,.06), transparent);
  animation:skeleton-sweep 1.4s infinite;
}
@keyframes skeleton-sweep{0%{transform:translateX(-100%);}100%{transform:translateX(100%);}}
