  :root{
    --ink:#FFFFFF;
    --panel:#FFFFFF;
    --panel-2:#F5F8FF;
    --paper:#F5F8FF;
    --paper-dim:#E6EBF5;
    --navy:#0B1226;
    --amber:#2B59FF;
    --amber-dim:#1F3FD6;
    --runway:#158A54;
    --stamp:#B23A2E;
    --text:#0B1226;
    --muted:#5B6785;
    --hair:#E6EBF5;
    --radius:16px;
    --grad:linear-gradient(120deg,#2B59FF 0%,#6A5CFF 55%,#B07CFF 100%);
    --soft:#F5F8FF;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--ink);
    color:var(--text);
    font-family:'Plus Jakarta Sans',sans-serif;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; line-height:1.15; letter-spacing:-0.01em;}
  .mono{font-family:'Plus Jakarta Sans',sans-serif;}
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1160px; margin:0 auto; padding:0 24px;}
  .visually-hidden{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);}

  /* skip link */
  .skip-link{position:absolute; left:-999px; top:0; background:var(--amber); color:var(--ink); padding:10px 16px; z-index:200; font-weight:600;}
  .skip-link:focus{left:16px; top:16px;}

  /* nav */
  header.site-nav{
    position:sticky; top:0; z-index:100;
    background:rgba(255,255,255,0.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--hair);
  }
  .nav-row{display:flex; align-items:center; justify-content:space-between; height:72px;}
  .logo{display:flex; align-items:center; gap:10px; font-family:'Plus Jakarta Sans',sans-serif; font-weight:600; font-size:15px; letter-spacing:0.04em;}
  .logo .mark{
    width:34px; height:34px; border:1.5px solid var(--amber); border-radius:6px;
    display:flex; align-items:center; justify-content:center; color:var(--amber); font-size:13px; font-weight:600;
  }
  .logo .mark svg{width:17px; height:17px; transform:rotate(45deg);}
  .logo .name-full{color:var(--text);}
  .logo .name-dim{color:var(--muted);}
  nav.primary{display:flex; align-items:center; gap:2px;}
  nav.primary a{
    font-family:'Plus Jakarta Sans',sans-serif; font-size:12.5px; letter-spacing:0.08em; text-transform:uppercase;
    color:var(--muted); padding:10px 16px; border-bottom:2px solid transparent; transition:color .15s, border-color .15s;
  }
  nav.primary a:hover, nav.primary a:focus-visible{color:var(--text); border-color:var(--amber);}
  nav.primary a.active{color:var(--amber); border-color:var(--amber);}
  .nav-right{display:flex; align-items:center; gap:14px;}
  .nav-primary-account{display:none;}
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:11px 22px; border-radius:6px; font-weight:600; font-size:14px; white-space:nowrap;
    cursor:pointer; border:1px solid transparent; transition:transform .12s, background .15s;
  }
  .btn:active{transform:scale(0.98);}
  .btn-amber{background:var(--amber); color:#FFFFFF;}
  .btn-amber:hover{background:#1F3FD6;}
  .btn-ghost{border-color:var(--hair); color:var(--text);}
  .btn-ghost:hover{border-color:var(--muted);}
  .menu-toggle{display:none; background:none; border:none; color:var(--text); font-size:26px; cursor:pointer;}

  /* hero */
  .hero{position:relative; padding:88px 0 96px; overflow:hidden;}
  .hero-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center;}
  .hero-flightline{position:absolute; top:14px; left:50%; transform:translateX(-50%); width:100%; max-width:820px; pointer-events:none; z-index:0;}
  .hero-flightline svg{width:100%; height:auto; display:block;}
  .hero-flightline .arc{stroke:var(--amber); stroke-width:2; fill:none; opacity:.4; stroke-dasharray:1 8; stroke-linecap:round;}
  .hero-flightline .city{fill:var(--amber); opacity:.55;}
  .hero-flightline .plane{fill:var(--amber); opacity:.85;}

  /* line divider: ----plane---- */
  .line-divider{display:flex; align-items:center; justify-content:center; gap:10px; margin:0 auto 18px; max-width:220px;}
  .line-divider .ln{flex:1; height:0; border-top:1px dashed var(--hair);}
  .line-divider svg{width:16px; height:16px; color:var(--amber); flex-shrink:0; transform:rotate(90deg);}
  .hero .wrap{position:relative; z-index:1;}
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px; font-family:'Plus Jakarta Sans',sans-serif;
    font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--runway);
    border:1px solid rgba(31,122,70,0.35); background:rgba(31,122,70,0.08);
    padding:6px 12px; border-radius:20px; margin-bottom:20px;
  }
  .eyebrow .dot{width:6px; height:6px; border-radius:50%; background:var(--runway);}
  h1{font-size:44px; margin-bottom:18px;}
  h1 .accent{color:var(--amber);}
  .hero-sub{color:var(--muted); font-size:17px; max-width:480px; margin-bottom:32px;}
  .hero-ctas{display:flex; gap:14px; margin-bottom:36px; flex-wrap:wrap;}
  .trust-row{display:flex; gap:28px; flex-wrap:wrap;}
  .trust-item{display:flex; flex-direction:column;}
  .trust-item .num{font-family:'Plus Jakarta Sans',sans-serif; font-size:20px; font-weight:600; color:var(--text);}
  .trust-item .label{font-size:12.5px; color:var(--muted);}

  /* split flap board */
  .board{
    background:var(--panel); border:1px solid var(--hair); border-radius:12px; padding:18px;
  }
  .board-head{display:flex; justify-content:space-between; align-items:center; padding:0 6px 12px; border-bottom:1px solid var(--hair); margin-bottom:12px;}
  .board-head .t1{font-family:'Plus Jakarta Sans',sans-serif; font-size:11px; letter-spacing:0.12em; color:var(--muted); text-transform:uppercase;}
  .board-head .t2{font-family:'Plus Jakarta Sans',sans-serif; font-size:11px; color:var(--runway);}
  .board-row{display:grid; grid-template-columns:1.6fr 1fr 1fr 0.9fr; gap:8px; padding:9px 6px; border-bottom:1px solid rgba(43,51,63,0.6);}
  .board-row:last-child{border-bottom:none;}
  .flap{
    font-family:'Plus Jakarta Sans',sans-serif; font-size:13px; font-weight:500; color:var(--text);
    background:var(--panel-2); border-radius:4px; padding:6px 8px; overflow:hidden;
    animation:flapin .5s ease-out both;
  }
  .board-row:nth-child(2) .flap{animation-delay:.05s;}
  .board-row:nth-child(3) .flap{animation-delay:.12s;}
  .board-row:nth-child(4) .flap{animation-delay:.19s;}
  .board-row:nth-child(5) .flap{animation-delay:.26s;}
  .flap.status-ready{color:var(--runway);}
  @keyframes flapin{
    0%{transform:rotateX(90deg); opacity:0;}
    60%{transform:rotateX(-8deg); opacity:1;}
    100%{transform:rotateX(0deg); opacity:1;}
  }
  @media (prefers-reduced-motion: reduce){
    .flap{animation:none;}
  }

  /* section shell */
  section{padding:88px 0;}
  .section-head{max-width:640px; margin:0 auto 48px; text-align:center;}
  .section-head .kicker{font-family:'Plus Jakarta Sans',sans-serif; font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--amber); margin-bottom:12px; display:block;}
  .section-icon{width:48px; height:48px; border-radius:50%; background:var(--panel-2); display:flex; align-items:center; justify-content:center; margin:0 auto 16px; color:var(--amber);}
  .section-icon svg{width:24px; height:24px;}
  h2{font-size:30px;}
  .section-sub{color:var(--muted); margin-top:12px; font-size:15.5px;}

  /* how it works - boarding pass stubs */
  .stub-row{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  .stub{
    background:var(--panel); border:1px solid var(--hair); border-radius:12px; position:relative; overflow:hidden;
  }
  .stub-top{padding:22px 22px 18px; border-bottom:2px dashed var(--hair); position:relative;}
  .stub-top::before, .stub-top::after{
    content:""; position:absolute; bottom:-9px; width:18px; height:18px; background:var(--ink); border-radius:50%;
  }
  .stub-top::before{left:-9px;}
  .stub-top::after{right:-9px;}
  .stub-num{font-family:'Plus Jakarta Sans',sans-serif; color:var(--amber); font-size:13px; margin-bottom:10px;}
  .stub-top h3{font-size:18px; margin-bottom:8px;}
  .stub-top p{color:var(--muted); font-size:14.5px;}
  .stub-bottom{padding:16px 22px; display:flex; align-items:center; justify-content:space-between;}
  .barcode{display:flex; gap:2px; align-items:flex-end; height:22px;}
  .barcode span{display:block; width:2px; background:var(--muted); opacity:.5;}
  .stub-bottom .tag{font-family:'Plus Jakarta Sans',sans-serif; font-size:11px; color:var(--muted);}

  /* sample ticket */
  .ticket-showcase{display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:center;}
  .ticket-card{
    display:flex; background:var(--paper); color:#101828; border-radius:14px;
    box-shadow:0 18px 40px -20px rgba(31,63,214,0.35); position:relative; overflow:visible;
  }
  .ticket-main{flex:1; padding:26px; min-width:0;}
  .ticket-stub{
    width:120px; flex-shrink:0; padding:20px 16px; display:flex; flex-direction:column;
    justify-content:space-between; position:relative; background:var(--paper-dim); border-radius:0 14px 14px 0;
  }
  .ticket-perf{
    width:0; border-left:2px dashed #D5DCEE; position:relative; flex-shrink:0;
  }
  .ticket-perf::before, .ticket-perf::after{
    content:""; position:absolute; left:-9px; width:18px; height:18px; background:var(--panel-2); border-radius:50%;
  }
  .ticket-perf::before{top:-9px;}
  .ticket-perf::after{bottom:-9px;}
  .ticket-card .row1{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:20px;}
  .ticket-card .airline{font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:18px;}
  .ticket-card .flightno{font-family:'Plus Jakarta Sans',sans-serif; font-size:13px; color:var(--amber-dim); font-weight:600;}
  .ticket-card .route{display:flex; align-items:center; gap:14px; margin-bottom:18px;}
  .ticket-card .city{font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:26px;}
  .ticket-card .city small{display:block; font-family:'Plus Jakarta Sans',sans-serif; font-weight:400; font-size:11.5px; color:#64748B; margin-top:2px;}
  .ticket-card .plane-line{flex:1; height:1px; background:#D5DCEE; position:relative; display:flex; align-items:center; justify-content:center;}
  .ticket-card .plane-line svg{position:relative; background:var(--paper); padding:0 4px; color:var(--amber); width:18px; height:18px;}
  .ticket-meta{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; border-top:1px dashed #D5DCEE; padding-top:16px;}
  .ticket-meta .k{font-size:10.5px; text-transform:uppercase; letter-spacing:0.06em; color:#64748B; margin-bottom:4px;}
  .ticket-meta .v{font-family:'Plus Jakarta Sans',sans-serif; font-size:13px; font-weight:600;}
  .ticket-note{margin-top:16px; font-size:11px; color:#7C8AA0;}
  .ticket-stub .k{font-size:9.5px; text-transform:uppercase; letter-spacing:0.06em; color:#64748B; margin-bottom:3px;}
  .ticket-stub .v{font-family:'Plus Jakarta Sans',sans-serif; font-size:13px; font-weight:600; margin-bottom:14px;}
  .ticket-stub .stub-barcode{display:flex; gap:2px; align-items:flex-end; height:34px; margin-top:auto;}
  .ticket-stub .stub-barcode span{display:block; width:2px; background:#101828; opacity:.55;}
  .ticket-card .plane-badge{
    position:absolute; top:-16px; left:26px; width:32px; height:32px; border-radius:50%;
    background:var(--amber); color:#FFFFFF; display:flex; align-items:center; justify-content:center;
  }
  .ticket-card .plane-badge svg{width:16px; height:16px; transform:rotate(45deg);}
  .ticket-showcase .copy h2{margin-bottom:14px;}
  .ticket-showcase .copy p{color:var(--muted); margin-bottom:20px; max-width:440px;}
  .check-list{list-style:none;}
  .check-list li{display:flex; gap:10px; margin-bottom:12px; font-size:14.5px; align-items:flex-start;}
  .check-list li::before{content:"\2713"; color:var(--runway); font-weight:700; margin-top:1px;}

  /* pricing */
  .price-wrap{display:grid; grid-template-columns:repeat(2,1fr); gap:24px; max-width:760px; margin:0 auto;}
  .price-card{
    background:var(--panel); border:1px solid var(--hair); border-radius:14px; padding:32px 32px;
    text-align:left; position:relative;
  }
  .price-card.featured{border-color:var(--amber);}
  .price-card .badge{
    position:absolute; top:-12px; right:24px; background:var(--amber); color:#FFFFFF;
    font-family:'Plus Jakarta Sans',sans-serif; font-size:11px; font-weight:600; padding:4px 10px; border-radius:20px;
  }
  .price-card .amt{font-family:'Plus Jakarta Sans',sans-serif; font-size:44px; font-weight:700; color:var(--amber); margin:14px 0 6px;}
  .price-card .amt sup{font-size:20px; vertical-align:10px;}
  .price-card .amt-sub{color:var(--muted); font-size:13px; margin-bottom:20px;}
  .price-card ul{list-style:none; margin-bottom:22px;}
  .price-card li{display:flex; gap:8px; font-size:13.5px; margin-bottom:10px; color:var(--text);}
  .price-card li::before{content:"\2713"; color:var(--runway); font-weight:700;}

  /* airline strip */
  .airline-strip{padding:36px 0; border-top:1px solid var(--hair); border-bottom:1px solid var(--hair);}
  .airline-strip .label{font-family:'Plus Jakarta Sans',sans-serif; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); text-align:center; margin-bottom:20px;}
  .airline-row{display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:36px;}
  .airline-row span{font-family:'Plus Jakarta Sans',sans-serif; font-weight:600; font-size:15px; color:var(--muted); opacity:.75;}
  .airline-row img{height:60px; width:auto; opacity:.92; transition:opacity .15s, transform .15s;}
  .airline-row img:hover{opacity:1; transform:scale(1.05);}

  /* embassy quotes */
  .quote-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
  .quote-card{background:var(--panel); border:1px solid var(--hair); border-left:3px solid var(--runway); border-radius:8px; padding:20px 22px;}
  .quote-card p{font-size:14.5px; color:var(--text); margin-bottom:12px;}
  .quote-card .src{font-family:'Plus Jakarta Sans',sans-serif; font-size:11.5px; color:var(--muted);}

  /* myth grid */
  .myth-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
  .myth-card{background:var(--panel); border:1px solid var(--hair); border-radius:10px; padding:20px 22px;}
  .myth-card .claim{font-family:'Plus Jakarta Sans',sans-serif; font-size:12px; color:var(--stamp); margin-bottom:8px;}
  .myth-card .claim::before{content:"\2715  "; }
  .myth-card .fact{font-size:14px; color:var(--text); line-height:1.55;}
  .myth-card .fact::before{content:"\2713  "; color:var(--runway); font-family:'Plus Jakarta Sans',sans-serif;}

  @media (max-width:900px){
    .price-wrap, .quote-grid, .myth-grid{grid-template-columns:1fr;}
  }

  /* search card */
  .hero-inner{max-width:720px; margin:0 auto 40px; text-align:center;}
  .hero-inner .hero-sub{margin-left:auto; margin-right:auto;}
  .hero-inner .trust-row{justify-content:center;}
  .search-card{
    background:var(--panel); border:1px solid var(--hair); border-radius:14px; padding:22px;
    max-width:980px; margin:0 auto;
  }
  .trip-tabs{display:flex; gap:8px; margin-bottom:20px; background:var(--panel-2); border-radius:10px; padding:5px; width:fit-content;}
  .trip-tab{
    font-family:'Plus Jakarta Sans',sans-serif; font-size:12.5px; letter-spacing:.05em; text-transform:uppercase;
    color:var(--muted); background:transparent; border:none; border-radius:7px; font-weight:600;
    padding:9px 20px; cursor:pointer; transition:color .15s, background .15s, box-shadow .15s;
  }
  .trip-tab.active{color:#FFFFFF; background:var(--amber); box-shadow:0 6px 14px -6px rgba(43,89,255,0.55);}
  .search-grid{display:grid; grid-template-columns:1.2fr 1.2fr 1fr 1fr 0.8fr auto; gap:12px; align-items:end;}
  .field{display:flex; flex-direction:column; text-align:left; gap:6px; position:relative; min-width:0;}
  .field label{font-family:'Plus Jakarta Sans',sans-serif; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);}
  .field input, .field select{
    background:var(--panel-2); border:1px solid var(--hair); border-radius:7px; color:var(--text);
    padding:11px 12px; font-family:'Plus Jakarta Sans',sans-serif; font-size:13.5px; height:42px;
    width:100%; min-width:0; box-sizing:border-box;
  }
  .field input::placeholder{color:var(--muted);}
  .field input:focus, .field select:focus{outline:none; border-color:var(--amber);}
  .city-suggestions{
    position:fixed; z-index:9999;
    background:var(--panel); border:1px solid var(--hair); border-radius:9px;
    box-shadow:0 12px 28px -14px rgba(11,18,38,0.35); max-height:280px; overflow-y:auto;
    list-style:none; margin:0; padding:6px;
  }
  .city-suggestions:empty{display:none;}
  .city-suggestions li{
    padding:9px 10px; border-radius:6px; cursor:pointer; font-size:13.5px;
    display:flex; justify-content:space-between; gap:10px; align-items:baseline;
  }
  .city-suggestions li:hover, .city-suggestions li.active{background:var(--panel-2);}
  .city-suggestions .cs-name{color:var(--text);}
  .city-suggestions .cs-name small{color:var(--muted); font-weight:400;}
  .city-suggestions .cs-iata{font-family:'Plus Jakarta Sans',sans-serif; font-size:12px; color:var(--muted); flex-shrink:0;}
  .field.hidden{display:none;}
  .search-submit{
    height:42px; background:var(--amber); color:#FFFFFF; border:none; border-radius:7px;
    font-weight:600; font-size:14px; padding:0 22px; cursor:pointer; display:flex; align-items:center; gap:6px;
  }
  .search-submit:hover{background:#1F3FD6;}

  /* compact activity ticker */
  .ticker-wrap{border-top:1px solid var(--hair); border-bottom:1px solid var(--hair); padding:14px 0; overflow:hidden;}
  .ticker-row{display:flex; align-items:center; gap:28px; justify-content:center; flex-wrap:wrap;}
  .ticker-item{display:flex; align-items:center; gap:8px; font-family:'Plus Jakarta Sans',sans-serif; font-size:12px; color:var(--muted);}
  .ticker-item .dot{width:6px; height:6px; border-radius:50%; background:var(--runway);}
  .ticker-item strong{color:var(--text); font-weight:500;}

  @media (max-width:900px){
    .search-grid{grid-template-columns:1fr 1fr;}
    .search-submit{grid-column:1 / -1; width:100%; justify-content:center;}
  }
  .faq{max-width:720px; margin:0 auto;}
  details{border-bottom:1px solid var(--hair); padding:18px 0;}
  summary{cursor:pointer; font-weight:600; font-size:15.5px; list-style:none; display:flex; justify-content:space-between; align-items:center;}
  summary::-webkit-details-marker{display:none;}
  summary::after{content:"+"; color:var(--amber); font-size:20px; font-family:'Plus Jakarta Sans',sans-serif;}
  details[open] summary::after{content:"\2212";}
  details p{color:var(--muted); margin-top:12px; font-size:14.5px; max-width:600px;}

  /* footer */
  footer{border-top:1px solid var(--hair); padding:56px 0 28px;}
  .foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; margin-bottom:40px;}
  .foot-col h4{font-family:'Plus Jakarta Sans',sans-serif; font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted); margin-bottom:14px;}
  .foot-col a, .foot-col p{display:block; color:var(--text); font-size:14px; margin-bottom:10px; opacity:.85;}
  .foot-bottom{border-top:1px solid var(--hair); padding-top:22px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;}
  .foot-bottom p{font-family:'Plus Jakarta Sans',sans-serif; font-size:11.5px; color:var(--muted);}

  @media (max-width:900px){
    .hero-grid, .ticket-showcase{grid-template-columns:1fr; gap:40px;}
    .stub-row{grid-template-columns:1fr;}
    .foot-grid{grid-template-columns:1fr 1fr;}
    .menu-toggle{display:block;}
    .nav-right{gap:8px;}
    .nav-right .btn-ghost{display:none;}
    .nav-right .btn-amber{padding:9px 14px; font-size:12.5px;}
    nav.primary{
      display:none; position:absolute; top:100%; left:0; right:0;
      flex-direction:column; gap:0; background:var(--panel); border-bottom:1px solid var(--hair);
      box-shadow:0 16px 32px -20px rgba(11,18,38,0.35); z-index:99;
    }
    header.site-nav.nav-open nav.primary{display:flex;}
    nav.primary a{padding:14px 24px; border-top:1px solid var(--hair);}
    .nav-primary-account{display:block; color:var(--amber);}
    h1{font-size:32px;}
  }

  /* ---- booking flow (book, select-flight, passenger-details, review, payment) ---- */
/* mini hero (shared across booking flow pages) */
  .book-hero{position:relative; padding:56px 0 36px; text-align:center; overflow:hidden;}
  .book-hero .wrap{position:relative; z-index:1;}
  .book-hero .eyebrow{margin-bottom:14px;}
  .book-hero h1{font-size:32px; margin-bottom:8px;}
  .book-hero .sub{color:var(--muted); font-size:15px; max-width:480px; margin:0 auto;}
  .hero-ticket{
    position:absolute; top:26px; right:-36px; width:260px; transform:rotate(7deg);
    z-index:0; pointer-events:none; opacity:.98;
  }
  .hero-ticket .ticket-card{padding:0;}
  .hero-ticket .ticket-main{padding:16px 16px 14px;}
  .hero-ticket .airline{font-size:13.5px;}
  .hero-ticket .flightno{font-size:10.5px;}
  .hero-ticket .city{font-size:17px;}
  .hero-ticket .city small{font-size:9px;}
  .hero-ticket .route{margin-bottom:10px; gap:8px;}
  .hero-ticket .ticket-meta{gap:8px; padding-top:10px;}
  .hero-ticket .ticket-meta .k{font-size:8px;}
  .hero-ticket .ticket-meta .v{font-size:10px;}
  .hero-ticket .ticket-note{display:none;}
  .hero-ticket .ticket-stub{width:56px; padding:14px 8px;}
  .hero-ticket .ticket-stub .k{font-size:7px;}
  .hero-ticket .ticket-stub .v{font-size:9px; margin-bottom:8px;}
  .hero-ticket .stub-barcode{height:22px;}
  @media (max-width:900px){.hero-ticket{display:none;}}
  .search-card{box-shadow:0 20px 44px -26px rgba(11,18,38,0.35);}
  .flight-option{transition:box-shadow .15s, transform .15s;}
  .flight-option:hover{box-shadow:0 12px 28px -18px rgba(11,18,38,0.3); transform:translateY(-1px);}
  .deliver-card{transition:box-shadow .15s, transform .15s;}
  .deliver-card:hover{box-shadow:0 12px 28px -18px rgba(11,18,38,0.3); transform:translateY(-2px);}

  /* airline logo slider */
  .logo-marquee{overflow:hidden; position:relative; padding:10px 0 4px;}
  .logo-marquee::before, .logo-marquee::after{content:""; position:absolute; top:0; bottom:0; width:70px; z-index:2; pointer-events:none;}
  .logo-marquee::before{left:0; background:linear-gradient(to right, var(--ink), transparent);}
  .logo-marquee::after{right:0; background:linear-gradient(to left, var(--ink), transparent);}
  .logo-track{display:flex; align-items:center; gap:56px; width:max-content; animation:scrollLogos 30s linear infinite;}
  .logo-marquee:hover .logo-track{animation-play-state:paused;}
  .logo-track img{height:64px; width:auto; opacity:.92; transition:opacity .15s, transform .15s; flex-shrink:0;}
  .logo-track img:hover{opacity:1; transform:scale(1.05);}
  .logo-fallback{font-family:'Plus Jakarta Sans',sans-serif; font-weight:600; font-size:15px; color:var(--muted); opacity:.7; white-space:nowrap; flex-shrink:0;}
  @keyframes scrollLogos{from{transform:translateX(0);} to{transform:translateX(-50%);}}
  @media (prefers-reduced-motion: reduce){.logo-track{animation:none;}}

  /* about / seo content grid */
  .about-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  .about-item{background:var(--panel); border:1px solid var(--hair); border-radius:12px; padding:26px 24px;}
  .about-item .icon{width:44px; height:44px; border-radius:50%; background:var(--panel-2); display:flex; align-items:center; justify-content:center; margin-bottom:16px; color:var(--amber);}
  .about-item .icon svg{width:22px; height:22px;}
  .about-item h3{font-size:16px; margin-bottom:10px;}
  .about-item p{font-size:13.5px; color:var(--muted); line-height:1.65;}
  @media (max-width:900px){.about-grid{grid-template-columns:1fr;}}

  /* stepper */
  .stepper-card{background:var(--panel-2); border-radius:14px; padding:16px; max-width:840px; margin:0 auto;}
  .stepper{display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:6px;}
  .step{
    display:flex; align-items:center; gap:9px; background:var(--panel); border:1.5px solid var(--hair);
    border-radius:999px; padding:8px 18px 8px 8px; transition:background .2s, border-color .2s, box-shadow .2s;
  }
  .step .dot{width:28px; height:28px; border-radius:50%; background:var(--panel-2); display:flex; align-items:center; justify-content:center; font-family:'Plus Jakarta Sans',sans-serif; font-size:12.5px; font-weight:600; color:var(--muted); flex-shrink:0;}
  .step .label{font-size:12.5px; color:var(--muted); font-weight:600; white-space:nowrap;}
  .step.active{background:var(--amber); border-color:var(--amber); box-shadow:0 8px 18px -8px rgba(43,89,255,0.5);}
  .step.active .dot{background:#FFFFFF; color:var(--amber);}
  .step.active .label{color:#FFFFFF;}
  .step.done{background:rgba(21,138,84,0.08); border-color:var(--runway);}
  .step.done .dot{background:var(--runway); color:#FFFFFF;}
  .step.done .label{color:var(--runway);}
  .step-arrow{color:var(--hair); font-size:16px; display:flex; align-items:center; padding:0 2px;}

  /* flight option cards (select-flight page) */
  .nearest-date-notice{
    background:#FFF8E6; border:1px solid #F1D998; color:#8A6416; border-radius:9px;
    padding:12px 16px; font-size:13.5px; margin-bottom:16px;
  }
  .flight-options{display:flex; flex-direction:column; gap:16px; max-width:100%; position:relative;}
  .flight-option{
    background:var(--panel); border:1.5px solid var(--hair); border-left:4px solid var(--hair); border-radius:12px; padding:20px 22px;
    display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; position:relative;
  }
  .flight-option.selected{border-color:var(--amber); border-left-color:var(--amber); box-shadow:0 14px 30px -20px rgba(43,89,255,0.35);}
  .flight-option .fo-tag{
    position:absolute; top:-11px; left:22px; background:var(--runway); color:#FFFFFF; font-family:'Plus Jakarta Sans',sans-serif;
    font-size:10px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; padding:3px 10px; border-radius:20px;
  }
  .flight-option .fo-airline{display:flex; align-items:center; gap:12px; min-width:150px;}
  .flight-option .fo-airline .badge{width:42px; height:42px; border-radius:10px; background:var(--panel-2); display:flex; align-items:center; justify-content:center; color:var(--amber); flex-shrink:0;}
  .flight-option.selected .fo-airline .badge{background:var(--amber); color:#FFFFFF;}
  .flight-option .fo-airline .badge svg{width:20px; height:20px;}
  .flight-option .fo-airline .badge.has-logo{background:#FFFFFF; border:1px solid var(--hair); padding:4px;}
  .flight-option.selected .fo-airline .badge.has-logo{background:#FFFFFF;}
  .flight-option .fo-airline .badge.has-logo img{width:100%; height:100%; object-fit:contain;}
  .flight-option .fo-airline .name{font-weight:600; font-size:14.5px;}
  .flight-option .fo-airline .num{font-family:'Plus Jakarta Sans',sans-serif; font-size:12px; color:var(--muted);}
  .flight-option .fo-route{display:flex; align-items:center; gap:10px; flex:1; min-width:200px;}
  .flight-option .fo-time{font-family:'Plus Jakarta Sans',sans-serif; font-weight:600; font-size:15px;}
  .flight-option .fo-code{font-size:11px; color:var(--muted);}
  .flight-option .fo-line{flex:1; height:2px; background:var(--hair); border-radius:2px; position:relative; min-width:40px;}
  .flight-option .fo-line .dur{position:absolute; top:-18px; left:50%; transform:translateX(-50%); font-size:10.5px; color:var(--muted); white-space:nowrap;}
  .flight-option .fo-price{text-align:right; min-width:110px;}
  .flight-option .fo-price .amt{font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:22px; color:var(--amber);}
  .flight-option .fo-price .lbl{font-size:11px; color:var(--muted);}
  .flight-option .fo-select{
    background:var(--panel); border:1.5px solid var(--hair); border-radius:7px; padding:9px 18px;
    font-weight:600; font-size:13.5px; cursor:pointer; color:var(--text); transition:background .15s, border-color .15s;
  }
  .flight-option.selected .fo-select{background:var(--amber); border-color:var(--amber); color:#fff;}

  /* hotel result cards - reuse .flight-option/.fo-price/.fo-select, add photo+meta */
  .flight-option .ho-photo{width:88px; height:66px; border-radius:9px; overflow:hidden; flex-shrink:0; background:var(--panel-2);}
  .flight-option .ho-photo img{width:100%; height:100%; object-fit:cover;}
  .flight-option .ho-info{flex:1; min-width:220px;}
  .flight-option .ho-name{font-weight:700; font-size:15.5px; margin-bottom:4px;}
  .flight-option .ho-stars{color:var(--amber); font-size:12px; letter-spacing:1px;}
  .flight-option .ho-address{font-size:12.5px; color:var(--muted); margin-bottom:8px;}
  .flight-option .ho-rating{display:flex; align-items:center; gap:8px;}
  .flight-option .fo-price .nights{font-size:11px; color:var(--muted); margin-top:2px;}

  /* form section (passenger details) */
  .form-card{background:var(--panel); border:1px solid var(--hair); border-radius:12px; padding:28px 30px; max-width:100%; box-shadow:0 14px 30px -24px rgba(11,18,38,0.25);}
  .form-card h3{font-size:18px; font-weight:700; margin-bottom:18px; padding-bottom:16px; border-bottom:1px solid var(--hair); display:flex; align-items:center; gap:14px;}
  .form-card h3 .hi{width:42px; height:42px; border-radius:11px; background:var(--amber); color:#FFFFFF; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
  .form-card h3 .hi svg{width:21px; height:21px;}
  .form-card + .form-card{margin-top:20px;}
  .form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  .form-grid .full{grid-column:1 / -1;}
  .form-actions{margin:24px 0 0; display:flex; justify-content:flex-end; gap:12px;}
  .field-error{color:var(--stamp); font-size:12.5px; margin-top:4px;}

  /* login page */
  .login-row{display:flex; align-items:center; justify-content:space-between; margin:18px 0 20px; font-size:13.5px;}
  .login-remember{display:flex; align-items:center; gap:8px; color:var(--muted); cursor:pointer;}
  .login-remember input{width:16px; height:16px; accent-color:var(--amber);}
  .login-forgot{color:var(--amber); font-weight:600;}
  .login-signup{text-align:center; font-size:13.5px; color:var(--muted); margin-top:20px;}
  .login-signup a{color:var(--amber); font-weight:600;}

  /* review page */
  .review-grid{display:grid; grid-template-columns:1fr 360px; gap:48px; width:100%; align-items:start;}
  .review-card{background:var(--panel); border:1px solid var(--hair); border-radius:12px; padding:22px 24px; margin-bottom:16px; box-shadow:0 14px 30px -24px rgba(11,18,38,0.25);}
  .review-card .rc-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; padding-bottom:16px; border-bottom:1px solid var(--hair);}
  .review-card .rc-head h3{display:flex; align-items:center; gap:14px; font-size:18px; font-weight:700;}
  .review-card .rc-head h3 .hi{width:42px; height:42px; border-radius:11px; background:var(--amber); color:#FFFFFF; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
  .review-card .rc-head h3 .hi svg{width:21px; height:21px;}
  .review-card .rc-head a{font-size:12.5px; color:var(--amber); font-weight:600;}
  .review-row{display:flex; align-items:center; justify-content:space-between; font-size:13.5px; padding:10px 0; border-bottom:1px solid var(--hair);}
  .review-row:last-child{border-bottom:none;}
  .review-row .k{color:var(--muted); display:flex; align-items:center; gap:10px;}
  .review-row .k .ri{width:26px; height:26px; border-radius:8px; background:var(--panel-2); color:var(--amber); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
  .review-row .k .ri svg{width:14px; height:14px;}
  .review-row .v{font-weight:600;}
  .summary-card{
    background:var(--panel); border:1px solid var(--hair); border-radius:14px; padding:0; position:sticky; top:90px;
    overflow:hidden; box-shadow:0 16px 36px -24px rgba(11,18,38,0.3);
  }
  .summary-card .sc-top{height:5px; background:var(--amber);}
  .summary-card .sc-body{padding:22px 24px;}
  .summary-card h3{font-size:18px; font-weight:700; margin-bottom:16px; padding-bottom:16px; border-bottom:1px solid var(--hair); display:flex; align-items:center; gap:14px;}
  .summary-card h3 .hi{width:42px; height:42px; border-radius:11px; background:var(--amber); color:#FFFFFF; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
  .summary-card h3 .hi svg{width:21px; height:21px;}
  .summary-card .sub-head{font-family:'Plus Jakarta Sans',sans-serif; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin:18px 0 8px; padding-top:14px; border-top:1px solid var(--hair);}
  .summary-total{
    display:flex; justify-content:space-between; align-items:center; margin-top:14px; padding:14px 24px;
    background:var(--panel-2); border-top:1px solid var(--hair);
  }
  .summary-total .amt{font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:26px; color:var(--amber);}

  /* payment page */
  .pay-tabs{display:flex; gap:10px; max-width:480px; margin:0 auto 20px;}
  .pay-tab{flex:1; background:var(--panel); border:1.5px solid var(--hair); border-radius:8px; padding:12px; text-align:center; font-weight:600; font-size:13.5px; cursor:pointer;}
  .pay-tab.active{border-color:var(--amber); color:var(--amber);}
  .card-fields{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
  .card-fields .full{grid-column:1 / -1;}
  .pay-btn{width:100%; margin-top:20px;}

  @media (max-width:700px){
    .stepper-card{padding:12px;}
    .stepper{gap:8px;}
    .step{padding:6px 14px 6px 6px;}
    .step .label{font-size:11.5px;}
    .step-arrow{display:none;}
    .form-grid, .card-fields{grid-template-columns:1fr;}
    .review-grid{grid-template-columns:1fr;}
    .flight-option{flex-direction:column; align-items:stretch; text-align:center;}
    .flight-option .fo-price{text-align:center;}
  }

  /* search loading overlay */
  .search-loading-overlay{
    position:fixed; inset:0; z-index:10000;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px;
    padding:24px; text-align:center;
    background:rgba(255,255,255,0.97);
    opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .2s ease;
  }
  .search-loading-overlay.active{opacity:1; visibility:visible; pointer-events:auto;}
  .sl-orbit{
    position:relative;
    width:clamp(96px, 28vw, 160px);
    aspect-ratio:1;
  }
  .sl-orbit-ring{
    position:absolute; inset:0; border-radius:50%;
    border:2px dashed var(--amber); opacity:.3;
  }
  .sl-orbit-rotator{
    position:absolute; inset:0;
    animation:sl-orbit-spin 2.2s linear infinite;
  }
  /* comet-tail glow that trails the plane - lives on the same rotating
     element so it stays locked immediately behind it at every point on
     the circle, fading out over the last ~100deg of travel */
  .sl-orbit-rotator::after{
    content:'';
    position:absolute; inset:0; border-radius:50%;
    background:conic-gradient(from 0deg, transparent 0%, transparent 68%, var(--amber) 97%, var(--amber) 100%);
    -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));
    mask:radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));
    opacity:.7;
  }
  .sl-plane{
    position:absolute; top:0; left:50%;
    width:19.2%; height:19.2%;
    /* icon's default artwork points straight up (north); starting at the
       top of the circle, clockwise travel means the nose should point
       east (90deg) to follow the tangent, not radiate outward */
    transform:translate(-50%,-50%) rotate(90deg);
    color:var(--amber);
    filter:drop-shadow(0 2px 6px rgba(43,89,255,0.6));
  }
  @keyframes sl-orbit-spin{
    from{transform:rotate(0deg);}
    to{transform:rotate(360deg);}
  }
  .sl-text{font-family:'Plus Jakarta Sans',sans-serif; font-weight:600; font-size:clamp(15px, 4vw, 17px); color:var(--text); margin:0;}
  .sl-subtext{font-size:13.5px; color:var(--muted); margin:0; max-width:280px;}
  @media (prefers-reduced-motion: reduce){
    .sl-orbit-rotator{animation:none;}
  }

  /* ---- account area (dashboard, orders, profile, support tickets) ---- */
  .account-layout{display:grid; grid-template-columns:240px 1fr; gap:36px; align-items:start; padding:40px 0 64px;}

  .account-sidebar{position:sticky; top:88px; display:flex; flex-direction:column; gap:24px;}
  .account-sidebar .whoami{display:flex; align-items:center; gap:12px;}
  .account-sidebar .avatar{
    width:44px; height:44px; border-radius:50%; background:var(--amber); color:#FFFFFF;
    display:flex; align-items:center; justify-content:center; font-family:'Plus Jakarta Sans',sans-serif;
    font-weight:700; font-size:16px; flex-shrink:0;
  }
  .account-sidebar .whoami h1{font-size:16px; margin-bottom:1px; line-height:1.2;}
  .account-sidebar .whoami .sub{color:var(--muted); font-size:12px; word-break:break-all;}

  .account-nav{display:flex; flex-direction:column; gap:2px; border-top:1px solid var(--hair); padding-top:16px;}
  .account-nav-link{
    display:flex; align-items:center; gap:10px; font-size:13.5px; font-weight:600; color:var(--muted);
    padding:10px 12px; border-radius:8px; border-left:2px solid transparent; transition:color .15s, background-color .15s, border-color .15s;
  }
  .account-nav-link i{font-size:17px; width:18px; text-align:center; flex-shrink:0;}
  .account-nav-link:hover{color:var(--text); background:var(--panel-2);}
  .account-nav-link.active{color:var(--amber); background:var(--panel-2); border-color:var(--amber);}
  .account-nav-link.logout{margin-top:10px; border-top:1px solid var(--hair); padding-top:16px; border-radius:0;}

  .account-content{min-width:0;}

  @media (max-width:860px){
    .account-layout{grid-template-columns:1fr; gap:20px; padding:24px 0 48px;}
    .account-sidebar{position:static; flex-direction:row; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px;}
    .account-nav{flex-direction:row; flex-wrap:wrap; border-top:none; padding-top:0; gap:6px; width:100%;}
    .account-nav-link{border-left:none; border-bottom:2px solid transparent;}
    .account-nav-link.active{border-color:var(--amber);}
    .account-nav-link.logout{margin-top:0; border-top:none; padding-top:10px;}
  }

  .stat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:32px;}
  .stat-card{background:var(--panel); border:1px solid var(--hair); border-radius:12px; padding:18px 20px;}
  .stat-card .num{font-family:'Plus Jakarta Sans',sans-serif; font-size:28px; font-weight:700; color:var(--text);}
  .stat-card .lbl{font-size:12.5px; color:var(--muted); margin-top:2px;}
  .stat-card.accent-paid .num{color:var(--runway);}
  .stat-card.accent-pending .num{color:var(--amber);}

  .badge-pill{
    display:inline-flex; align-items:center; gap:6px; font-family:'Plus Jakarta Sans',sans-serif; font-size:11px;
    font-weight:600; letter-spacing:.03em; text-transform:uppercase; padding:5px 12px; border-radius:20px;
    white-space:nowrap;
  }
  .badge-pill::before{content:""; width:6px; height:6px; border-radius:50%; background:currentColor;}
  .badge-success{background:rgba(21,138,84,0.1); color:var(--runway);}
  .badge-warning{background:rgba(43,89,255,0.1); color:var(--amber);}
  .badge-danger{background:rgba(178,58,46,0.1); color:var(--stamp);}
  .badge-neutral{background:var(--panel-2); color:var(--muted);}

  .table-toolbar{display:flex; gap:12px; flex-wrap:wrap; align-items:center; justify-content:space-between; margin-bottom:18px;}
  .table-toolbar .search-field{position:relative; flex:1; min-width:220px; max-width:340px;}
  .table-toolbar .search-field svg{position:absolute; left:12px; top:50%; transform:translateY(-50%); width:15px; height:15px; color:var(--muted);}
  .table-toolbar input[type="search"]{
    width:100%; background:var(--panel); border:1px solid var(--hair); border-radius:7px;
    padding:9px 12px 9px 34px; font-size:13.5px; color:var(--text);
  }
  .table-toolbar input[type="search"]:focus{outline:none; border-color:var(--amber);}
  .table-toolbar .filter-group{display:flex; gap:6px;}
  .filter-chip{
    font-family:'Plus Jakarta Sans',sans-serif; font-size:11.5px; font-weight:600; letter-spacing:.03em; text-transform:uppercase;
    background:var(--panel); border:1px solid var(--hair); border-radius:20px; padding:7px 14px; cursor:pointer; color:var(--muted);
  }
  .filter-chip.active{background:var(--amber); border-color:var(--amber); color:#FFFFFF;}

  .data-card{background:var(--panel); border:1px solid var(--hair); border-radius:12px; overflow:hidden;}
  .data-table{width:100%; border-collapse:collapse; font-size:13.5px;}
  .data-table th{
    text-align:left; font-family:'Plus Jakarta Sans',sans-serif; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase;
    color:var(--muted); font-weight:600; padding:12px 16px; border-bottom:1px solid var(--hair); background:var(--panel-2);
    white-space:nowrap;
  }
  .data-table td{padding:14px 16px; border-bottom:1px solid var(--hair); vertical-align:middle;}
  .data-table tr:last-child td{border-bottom:none;}
  .data-table .route-cell{display:flex; align-items:center; gap:10px;}
  .data-table .route-cell img{width:20px; height:20px; border-radius:4px; flex-shrink:0;}
  .data-table .muted-sm{color:var(--muted); font-size:12px;}
  .data-table .icon-btn{
    display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:7px;
    background:var(--panel-2); color:var(--amber); border:1px solid transparent; transition:background .15s;
  }
  .data-table .icon-btn:hover{background:var(--amber); color:#FFFFFF;}
  .data-table .icon-btn svg{width:16px; height:16px;}
  @media (max-width:900px){
    .data-card{overflow-x:auto;}
    .data-table{min-width:640px;}
    .stat-grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:560px){
    .stat-grid{grid-template-columns:1fr;}
  }

  .empty-state{
    text-align:center; padding:64px 24px; background:var(--panel); border:1px dashed var(--hair); border-radius:12px;
  }
  .empty-state .ei{
    width:52px; height:52px; border-radius:50%; background:var(--panel-2); color:var(--amber);
    display:flex; align-items:center; justify-content:center; margin:0 auto 16px;
  }
  .empty-state .ei svg{width:24px; height:24px;}
  .empty-state h3{font-size:18px; margin-bottom:8px;}
  .empty-state p{color:var(--muted); font-size:14px; margin-bottom:20px;}

  /* support ticket thread */
  .thread{display:flex; flex-direction:column; gap:16px;}
  .thread-msg{max-width:78%; background:var(--panel); border:1px solid var(--hair); border-radius:12px; padding:14px 18px;}
  .thread-msg.mine{align-self:flex-end; background:var(--panel-2); border-color:var(--panel-2);}
  .thread-msg.staff{align-self:flex-start;}
  .thread-msg .tm-head{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:8px;}
  .thread-msg .tm-who{font-family:'Plus Jakarta Sans',sans-serif; font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--amber); font-weight:600;}
  .thread-msg.mine .tm-who{color:var(--muted);}
  .thread-msg .tm-when{font-size:11px; color:var(--muted);}
  .thread-msg .tm-body{font-size:14px; white-space:pre-wrap; word-break:break-word;}
  .thread-msg .tm-body p{margin-bottom:8px;}
  .thread-msg .tm-body p:last-child{margin-bottom:0;}
  @media (max-width:700px){.thread-msg{max-width:100%;}}

  .attachment-list{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px;}
  .attachment-chip{
    display:inline-flex; align-items:center; gap:7px; background:var(--panel); border:1px solid var(--hair);
    border-radius:8px; padding:7px 12px; font-size:12.5px; color:var(--text); transition:border-color .15s;
  }
  .attachment-chip:hover{border-color:var(--amber);}
  .attachment-chip svg{width:14px; height:14px; color:var(--amber); flex-shrink:0;}
  .attachment-chip img.thumb{width:20px; height:20px; border-radius:4px; object-fit:cover; flex-shrink:0;}

  .rating-row{display:flex; align-items:center; gap:10px; margin-top:12px; padding-top:12px; border-top:1px solid var(--hair);}
  .rating-row .rr-label{font-size:12px; color:var(--muted);}
  .rating-stars{display:flex; gap:2px;}
  .rating-stars button{background:none; border:none; cursor:pointer; padding:2px; color:var(--hair); line-height:0;}
  .rating-stars button svg{width:16px; height:16px;}
  .rating-stars button.filled{color:var(--amber);}

  .reply-toggle{display:flex; align-items:center; justify-content:space-between; margin-bottom:16px;}
  .reply-box{display:none;}
  .reply-box.open{display:block;}

  .ticket-detail-card{background:var(--panel); border:1px solid var(--hair); border-radius:12px; padding:24px 26px; margin-bottom:24px;}
  .ticket-detail-card .td-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:14px 24px; margin-bottom:18px;}
  .ticket-detail-card .td-grid .k{font-family:'Plus Jakarta Sans',sans-serif; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-bottom:3px;}
  .ticket-detail-card .td-grid .v{font-size:14px; font-weight:600;}
  .ticket-detail-card .td-message{padding-top:16px; border-top:1px solid var(--hair); font-size:14px; white-space:pre-wrap;}
  @media (max-width:700px){.ticket-detail-card .td-grid{grid-template-columns:1fr;}}

  /* ---- overview page ---- */
  .overview-greeting{font-size:22px; margin-bottom:6px;}
  .overview-sub{color:var(--muted); font-size:14px; margin-bottom:28px;}
  .overview-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:32px;}
  .overview-card{
    background:var(--panel); border:1px solid var(--hair); border-left:3px solid var(--hair); border-radius:10px;
    padding:20px 22px; display:flex; flex-direction:column; gap:10px;
  }
  .overview-card.needs-action{border-left-color:var(--amber);}
  .overview-card.all-clear{border-left-color:var(--runway);}
  .overview-card .oc-icon{width:32px; height:32px; border-radius:9px; background:var(--panel-2); color:var(--amber); display:flex; align-items:center; justify-content:center; font-size:17px;}
  .overview-card.all-clear .oc-icon{color:var(--runway);}
  .overview-card .oc-label{font-family:'Plus Jakarta Sans',sans-serif; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);}
  .overview-card .oc-value{font-family:'Plus Jakarta Sans',sans-serif; font-size:19px; font-weight:700; line-height:1.3;}
  .overview-card .oc-detail{font-size:13px; color:var(--muted);}
  .overview-card .oc-link{font-size:13px; font-weight:600; color:var(--amber); margin-top:auto;}
  @media (max-width:700px){.overview-grid{grid-template-columns:1fr;}}

  .overview-section{margin-bottom:32px;}
  .overview-section h2{font-size:15px; margin-bottom:14px;}

/* =====================================================================
   Horizon redesign layer - soft gradients, pill buttons, big rounded
   cards, one typeface. Sits on top of the component rules above, so every
   page that uses theme.css (home, booking flow, auth, account) picks it up.
   ===================================================================== */
body{background:#FFFFFF;}
h1,h2,h3{font-weight:800; letter-spacing:-.03em; line-height:1.1;}
.mono{font-variant-numeric:tabular-nums;}
h2{font-size:42px;}

/* ---- header ---- */
header.site-nav{background:rgba(255,255,255,.78); backdrop-filter:saturate(1.4) blur(14px); -webkit-backdrop-filter:saturate(1.4) blur(14px); border-bottom:1px solid rgba(230,235,245,.9);}
.nav-row{height:76px;}
.logo{font-weight:800; font-size:19px; letter-spacing:-.02em;}
.logo .mark{width:34px; height:34px; border:0; border-radius:11px; background:var(--grad); color:#fff; box-shadow:0 8px 20px -8px rgba(43,89,255,.7);}
.logo .mark svg{width:18px; height:18px; transform:none;}
.logo .name-dim{font-weight:600;}
nav.primary{gap:4px;}
nav.primary a{font-size:14.5px; letter-spacing:0; text-transform:none; font-weight:600; color:#33405F; border-bottom:0; border-radius:999px; padding:9px 16px;}
nav.primary a:hover, nav.primary a:focus-visible{color:var(--amber); background:#F1F5FF; border-color:transparent;}
nav.primary a.active{color:var(--amber); background:#EEF2FF;}
.btn{border-radius:999px; padding:12px 22px; font-weight:700; font-size:14.5px;}
.btn-amber{background:var(--amber); color:#fff; box-shadow:0 12px 26px -10px rgba(43,89,255,.8);}
.btn-amber:hover{background:var(--amber-dim); transform:translateY(-1px);}
.btn-ghost{background:#EEF2FB; border-color:transparent; color:var(--text);}
.btn-ghost:hover{background:#E3EAFB; border-color:transparent;}
.nav-right .btn-amber{background:var(--navy); box-shadow:none;}
.nav-right .btn-amber:hover{background:#1B2547; box-shadow:0 12px 24px -10px rgba(11,18,38,.6);}
.nav-right .btn-ghost{background:transparent; border:1px solid var(--hair);}
@media (max-width:900px){
  nav.primary a{border-radius:0; padding:14px 24px; border-top:1px solid var(--hair);}
}

/* ---- section heads ---- */
.line-divider{display:none;}
.section-head{max-width:680px;}
.section-head .kicker{font-size:13px; font-weight:800; letter-spacing:.12em; color:var(--amber); margin-bottom:12px;}
.section-sub{font-size:17px;}

/* ---- homepage hero ---- */
.hz-hero{position:relative; padding:96px 0 80px; text-align:center; overflow:hidden;}
.hz-hero::before{content:""; position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(640px 420px at 12% 8%, rgba(106,92,255,.20), transparent 70%),
    radial-gradient(720px 460px at 88% 0%, rgba(127,211,255,.34), transparent 70%),
    radial-gradient(520px 360px at 50% 100%, rgba(43,89,255,.10), transparent 70%);}
.hz-hero .wrap{position:relative; z-index:1;}
.hz-tag{display:inline-flex; align-items:center; gap:10px; padding:7px 16px 7px 8px; border-radius:999px; background:rgba(255,255,255,.8); border:1px solid var(--hair); backdrop-filter:blur(8px); font-size:13px; font-weight:600; color:#33405F; box-shadow:0 6px 18px -10px rgba(11,18,38,.25);}
.hz-tag b{background:var(--grad); color:#fff; border-radius:999px; padding:3px 10px; font-size:11px; letter-spacing:.04em; text-transform:uppercase;}
.hz-h1{font-size:64px; line-height:1.04; letter-spacing:-.035em; font-weight:800; margin:26px auto 20px; max-width:860px;}
.hz-h1 em{font-style:normal; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;}
.hz-lead{font-size:18.5px; color:var(--muted); max-width:610px; margin:0 auto 40px;}
.hz-trust{display:flex; justify-content:center; gap:44px; flex-wrap:wrap; margin-top:34px; color:var(--muted); font-size:14px; font-weight:600;}
.hz-trust b{color:var(--text); font-size:17px; margin-right:6px;}

/* ---- search card (home + booking pages) ---- */
.search-card{background:rgba(255,255,255,.84); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border:1px solid rgba(255,255,255,.9); border-radius:28px; padding:14px; max-width:980px; box-shadow:0 40px 80px -30px rgba(31,63,214,.35), 0 0 0 1px rgba(230,235,245,.9);}
.trip-tabs{display:inline-flex; gap:0; background:#EEF2FB; border-radius:999px; padding:4px; margin:6px 0 14px;}
.trip-tab{font-size:13.5px; letter-spacing:0; text-transform:none; font-weight:700; color:var(--muted); border-radius:999px; padding:9px 20px;}
.trip-tab.active{background:#fff; color:var(--text); box-shadow:0 4px 12px -4px rgba(11,18,38,.25);}
.search-card .search-grid{gap:10px; align-items:stretch;}
.search-card .field{background:#fff; border:1px solid var(--hair); border-radius:18px; padding:12px 18px; gap:3px; justify-content:center; transition:border-color .15s, box-shadow .15s;}
.search-card .field:focus-within{border-color:var(--amber); box-shadow:0 0 0 3px rgba(43,89,255,.12);}
.field label{font-size:11px; font-weight:700; letter-spacing:.08em; color:#8A95B3;}
.search-card .field input, .search-card .field select{background:transparent; border:0; border-radius:0; padding:0; height:auto; font-weight:700; font-size:15.5px; color:var(--text);}
.field input, .field select{background:#fff; border-radius:14px; border-color:var(--hair); height:46px; font-weight:500;}
.field input:focus, .field select:focus{border-color:var(--amber); box-shadow:0 0 0 3px rgba(43,89,255,.12);}
.search-card .field input:focus, .search-card .field select:focus{box-shadow:none;}
.search-submit{height:auto; min-height:54px; border-radius:18px; padding:0 34px; font-size:15.5px; font-weight:700; box-shadow:0 12px 26px -10px rgba(43,89,255,.8);}

/* ---- booking-page mini hero ---- */
.book-hero{padding:64px 0 40px;}
.book-hero::before{content:""; position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(520px 320px at 10% 0%, rgba(106,92,255,.16), transparent 70%),
    radial-gradient(560px 340px at 92% 0%, rgba(127,211,255,.28), transparent 70%);}
.book-hero h1{font-size:40px;}
.eyebrow{font-size:12.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--amber); background:rgba(255,255,255,.85); border:1px solid var(--hair); padding:6px 14px 6px 10px;}
.eyebrow .dot{background:var(--grad); width:7px; height:7px;}

/* ---- stepper ---- */
.stepper-card{background:transparent; padding:0;}
.step{background:#fff; border:1px solid var(--hair); padding:7px 16px 7px 7px;}
.step .dot{background:#EEF2FB;}
.step.active{background:var(--grad); border-color:transparent; box-shadow:0 12px 24px -12px rgba(43,89,255,.7);}
.step.done{background:#EEF4FF; border-color:#D5E0FF;}
.step.done .dot{background:var(--amber);}
.step.done .label{color:var(--amber);}
.step-arrow{color:#C9D3EC;}

/* ---- cards ---- */
.form-card, .review-card, .summary-card, .flight-option, .price-card, .about-item, .stub{border-radius:24px; border-color:var(--hair);}
.flight-option{border-left:1.5px solid var(--hair); padding:22px 26px;}
.flight-option.selected{border-color:var(--amber); box-shadow:0 18px 36px -22px rgba(43,89,255,.45);}
.flight-option .fo-select{border-radius:999px;}
.form-card h3 .hi, .review-card .rc-head h3 .hi, .summary-card h3 .hi{background:var(--grad); border-radius:14px;}
.summary-card .sc-top{background:var(--grad);}
.quote-card, .myth-card{border-radius:22px; border-left:1px solid var(--hair);}
.pay-tab{border-radius:14px;}

/* ---- airline strip ---- */
.airline-strip{border:0; padding:34px 0 6px;}
.airline-strip .label{font-size:12.5px; font-weight:700; letter-spacing:.1em; color:#8A95B3;}

/* ---- how it works ---- */
.hz-steps{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.hz-step{background:#fff; border:1px solid var(--hair); border-radius:26px; padding:34px 30px; position:relative; transition:transform .25s, box-shadow .25s;}
.hz-step:hover{transform:translateY(-6px); box-shadow:0 30px 60px -30px rgba(31,63,214,.35);}
.hz-ico{width:54px; height:54px; border-radius:18px; background:linear-gradient(135deg,#EAF0FF,#F1EBFF); display:grid; place-items:center; margin-bottom:22px;}
.hz-ico svg{width:26px; height:26px; stroke:var(--amber); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.hz-step h3{font-size:21px; margin-bottom:8px;}
.hz-step p{color:var(--muted); font-size:15.5px;}
.hz-num{position:absolute; top:26px; right:30px; font-weight:800; font-size:15px; color:#C7D0E6;}

/* ---- showcase (ticket + checklist) ---- */
section.hz-showwrap{background:var(--soft); border-radius:44px; margin:0 20px; padding:96px 0;}
.hz-show-grid{display:grid; grid-template-columns:1fr 1.05fr; gap:70px; align-items:center;}
.hz-ticket{background:#fff; border-radius:30px; box-shadow:0 50px 90px -40px rgba(31,63,214,.5), 0 0 0 1px var(--hair); transform:rotate(-3deg); overflow:hidden; max-width:520px;}
.hz-t-top{background:var(--grad); color:#fff; padding:22px 28px; display:flex; justify-content:space-between; align-items:center;}
.hz-t-top b{font-size:15px; letter-spacing:.02em;}
.hz-t-top span{font-size:12px; opacity:.85; font-weight:600;}
.hz-t-body{padding:30px 28px 24px;}
.hz-route{display:flex; align-items:center; justify-content:space-between; gap:14px;}
.hz-route strong{font-size:44px; letter-spacing:-.03em; line-height:1;}
.hz-route small{display:block; font-size:13px; color:var(--muted); font-weight:600; margin-top:6px;}
.hz-path{flex:1; height:2px; background:repeating-linear-gradient(90deg,#B7C4EE 0 6px,transparent 6px 12px); position:relative;}
.hz-path svg{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%) rotate(90deg); width:26px; fill:var(--amber); background:#fff; padding:0 4px;}
.hz-meta{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:28px; padding-top:22px; border-top:2px dashed var(--hair);}
.hz-meta small{display:block; font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:#8A95B3; font-weight:700;}
.hz-meta b{font-size:15.5px;}
.hz-t-foot{background:#F7F9FF; padding:16px 28px; display:flex; justify-content:space-between; font-size:13px; color:var(--muted); font-weight:600;}
.hz-show-copy h2{margin:12px 0 14px;}
.hz-show-copy .section-sub{max-width:480px; margin-top:0;}
.hz-checks{list-style:none; margin-top:30px; display:grid; gap:16px;}
.hz-checks li{display:flex; gap:14px; align-items:flex-start; font-size:16.5px; font-weight:600;}
.hz-checks li::before{content:"\2713"; flex:none; width:26px; height:26px; border-radius:50%; background:var(--grad); color:#fff; font-size:14px; font-weight:800; display:grid; place-items:center; margin-top:1px;}

/* ---- pricing ---- */
.hz-plans{display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:860px; margin:0 auto;}
.hz-plan{border:1px solid var(--hair); border-radius:30px; padding:38px; background:#fff; position:relative; text-align:left;}
.hz-plan h4{font-size:15px; color:var(--muted); font-weight:700; letter-spacing:.06em; text-transform:uppercase;}
.hz-amt{font-size:62px; font-weight:800; letter-spacing:-.04em; margin:10px 0 2px; line-height:1.1;}
.hz-amt sup{font-size:26px; vertical-align:top; margin-right:2px; color:var(--muted);}
.hz-plan > p{color:var(--muted); font-size:14.5px; margin-bottom:22px;}
.hz-plan ul{list-style:none; display:grid; gap:11px; margin-bottom:28px; font-weight:600; font-size:15px;}
.hz-plan li::before{content:"\2713"; color:var(--amber); font-weight:800; margin-right:10px;}
.hz-plan.pop{background:var(--navy); color:#fff; border-color:var(--navy); box-shadow:0 40px 80px -36px rgba(11,18,38,.9);}
.hz-plan.pop h4, .hz-plan.pop > p, .hz-plan.pop .hz-amt sup{color:#A9B4D4;}
.hz-plan.pop li::before{color:var(--sky);}
.hz-badge{position:absolute; top:-14px; left:38px; background:var(--grad); color:#fff; font-size:12px; font-weight:800; padding:6px 14px; border-radius:999px; letter-spacing:.04em;}
.hz-plan .btn{width:100%; padding:15px;}
.btn-white{background:#fff; color:var(--text);}
.btn-white:hover{background:#F1F5FF;}

/* ---- faq ---- */
.faq{max-width:760px; margin:0 auto; display:grid; gap:14px;}
.faq details{background:#fff; border:1px solid var(--hair); border-radius:20px; padding:6px 26px; transition:box-shadow .2s, border-color .2s;}
.faq details[open]{box-shadow:0 20px 40px -26px rgba(31,63,214,.4); border-color:#CBD6F5;}
.faq summary{padding:18px 0; font-weight:700; font-size:17px;}
.faq summary::after{content:"+"; font-size:24px; font-weight:500; color:var(--amber); transition:transform .2s;}
.faq details[open] summary::after{content:"+"; transform:rotate(45deg);}
.faq details p{padding:0 0 22px; margin-top:0; font-size:15.5px;}

/* ---- closing call to action ---- */
.hz-cta{max-width:820px; margin:0 auto; border-radius:32px; background:var(--grad); color:#fff; text-align:center; padding:48px 32px; position:relative; overflow:hidden;}
.hz-cta::before{content:""; position:absolute; inset:0; background:radial-gradient(420px 240px at 88% 0, rgba(255,255,255,.26), transparent 70%), radial-gradient(340px 240px at 5% 100%, rgba(127,211,255,.38), transparent 70%);}
.hz-cta > *{position:relative;}
.hz-cta h2{max-width:520px; margin:0 auto 10px; font-size:32px; line-height:1.15;}
.hz-cta p{opacity:.9; font-size:16px; margin-bottom:22px;}
.hz-cta .btn{padding:13px 28px; font-size:15px;}

/* ---- footer ---- */
footer{background:#fff;}

@media (max-width:900px){
  .hz-hero{padding:64px 0 56px;}
  .hz-h1{font-size:40px;}
  h2{font-size:32px;}
  .hz-steps, .hz-plans, .hz-show-grid{grid-template-columns:1fr;}
  .hz-show-grid{gap:44px;}
  .hz-ticket{transform:none;}
  section.hz-showwrap{margin:0 12px; border-radius:32px; padding:64px 0;}
  .hz-cta{margin:0 16px; border-radius:26px; padding:36px 22px;}
  .hz-cta h2{font-size:26px;}
  .hz-trust{gap:18px;}
}

@media (max-width:600px){
  .logo{font-size:15px; gap:8px;}
  .logo .mark{width:30px; height:30px; border-radius:10px;}
  .nav-right{gap:6px;}
  .trip-tab{padding:9px 13px; font-size:12.5px; white-space:nowrap;}
  .search-card{padding:10px; border-radius:24px;}
}

/* Legal / about body */
.legal-body p{color:var(--muted); font-size:15.5px; line-height:1.75; margin-top:14px;}
.legal-body h2{margin-top:40px;}
.legal-body h2:first-child{margin-top:0;}
.legal-body a{color:var(--amber); text-decoration:underline;}

/* Calendar picker (flatpickr) in the Horizon look */
.field input.fp-alt{cursor:pointer; padding-right:24px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B6785' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M8 3v4M16 3v4M3 10h18'/%3E%3C/svg%3E") no-repeat right center / 17px;}
.flatpickr-calendar{font-family:inherit; border:1px solid var(--hair); border-radius:20px; box-shadow:0 24px 60px -22px rgba(20,30,70,.38); padding:8px 6px 10px; z-index:9999;}
.flatpickr-calendar:before,.flatpickr-calendar:after{display:none;}
.flatpickr-months .flatpickr-month{height:42px;}
.flatpickr-current-month{font-size:15px; font-weight:700; padding-top:8px;}
.flatpickr-current-month .flatpickr-monthDropdown-months{font-weight:700;}
.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{padding:10px 14px;}
.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:var(--amber);}
span.flatpickr-weekday{color:var(--muted); font-weight:700; font-size:12px;}
.flatpickr-day{border-radius:12px; font-weight:600; font-size:14.5px; color:var(--text); height:40px; line-height:38px;}
.flatpickr-day:hover,.flatpickr-day:focus{background:var(--panel-2); border-color:var(--panel-2);}
.flatpickr-day.today{border-color:var(--amber);}
.flatpickr-day.today:hover{background:var(--panel-2); border-color:var(--amber); color:var(--text);}
.flatpickr-day.selected,.flatpickr-day.selected:hover,.flatpickr-day.selected:focus{background:var(--amber); border-color:var(--amber); color:#fff;}
.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay{color:#c3c9dc;}
@media (max-width:600px){ .flatpickr-calendar{box-shadow:0 18px 50px -12px rgba(20,30,70,.5);} }
.flatpickr-current-month select.fp-year{appearance:menulist-button; -webkit-appearance:menulist-button; border:0; background:transparent; font:inherit; font-weight:700; font-size:15px; color:inherit; cursor:pointer; padding:2px 2px; margin-left:4px; width:auto; height:auto; display:inline-block;}
.flatpickr-current-month select.fp-year:hover{background:var(--panel-2);}
