/* ══════════════════════════════════════════════════════════════════
   FLIGHTS — ADC Money palette
   --teal:       #00bfa5   primary CTA / accent
   --teal-dark:  #00897b   hover / headings
   --teal-light: #e0f5f2   backgrounds / borders
   --green:      #2ecc71   success / refundable
   --orange:     #f39c12   price highlight
   --red:        #e74c3c   non-refundable / warning
   ══════════════════════════════════════════════════════════════════ */

/* ── Shared variables ── */
:root {
    --fl-teal:   #00bfa5;
    --fl-dark:   #00897b;
    --fl-light:  #e0f5f2;
    --fl-border: #c8ede8;
    --fl-green:  #2ecc71;
    --fl-orange: #f39c12;
    --fl-red:    #e74c3c;
    --fl-text:   #1a2e2b;
    --fl-muted:  #5a7570;
    --fl-bg:     #f4faf8;
    --fl-grad:   linear-gradient(135deg, #00bfa5, #2ecc71);
    --fl-hero:   linear-gradient(145deg, #072520 0%, #0d3d34 40%, #0f4a3e 70%, #083028 100%);
}

/* ══════════════════════════════════════════════════════════════════
   HOME / INDEX — hero + search card
   ══════════════════════════════════════════════════════════════════ */
.hero {
    background: var(--fl-hero);
    min-height: 460px; position: relative; overflow: hidden;
    padding: 2.75rem 1.5rem 0;
}
.hero::before {
    content:''; position:absolute; inset:0; pointer-events:none;
    background:
        radial-gradient(circle at 80% 20%, rgba(0,191,165,.12), transparent 50%),
        radial-gradient(circle at 10% 80%, rgba(46,204,113,.08), transparent 45%);
}
.hero-plane {
    position:absolute; right:0; top:0; width:55%; pointer-events:none;
    animation: hfloat 7s ease-in-out infinite; opacity:.18;
}
@keyframes hfloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-14px)} }
.hero-inner   { max-width:1200px; margin:0 auto; position:relative; z-index:2; }
.hero-tagline h1 {
    font-family:'Poppins',sans-serif; font-size:3rem; font-weight:900;
    color:#fff; line-height:1.1; margin-bottom:.5rem;
}
.hero-tagline .t1 { background:var(--fl-grad); -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.hero-tagline .t2 { color:var(--fl-green); }
.hero-tagline p   { color:rgba(255,255,255,.65); font-size:.92rem; margin-bottom:2rem; }
.hero-spacer { height:56px; background:linear-gradient(to bottom, #0f4a3e, #f4faf8); }

/* Search card */
.search-card {
    background:#fff; border-radius:16px; padding:1.5rem 1.75rem;
    box-shadow:0 12px 48px rgba(0,0,0,.22); position:relative; z-index:3;
}

/* Trip tabs */
.trip-tabs { display:flex; gap:.4rem; margin-bottom:1.1rem; }
.trip-tab {
    display:flex; align-items:center; gap:.3rem; padding:.38rem .9rem;
    border-radius:20px; border:1.5px solid var(--fl-border);
    font-size:.79rem; font-weight:600; color:var(--fl-muted);
    cursor:pointer; transition:all .15s; background:#fff; user-select:none;
}
.trip-tab.active, .trip-tab:hover {
    background:var(--fl-grad); color:#fff; border-color:transparent;
}

/* Search fields grid */
.sf-row { display:grid; gap:.6rem; align-items:end; margin-bottom:1rem; }
.sf-flight { grid-template-columns: 1.2fr 36px 1.2fr 1.1fr 1.1fr auto; }
.sf { display:flex; flex-direction:column; gap:.22rem; }
.sf label {
    font-size:.67rem; font-weight:700; color:var(--fl-muted);
    text-transform:uppercase; letter-spacing:.06em;
}
.sf-box {
    border:1.5px solid var(--fl-border); border-radius:10px;
    padding:.55rem .85rem; display:flex; align-items:center; gap:.45rem;
    background:#fff; transition:border-color .15s; height:52px; position:relative;
}
.sf-box:focus-within {
    border-color:var(--fl-teal);
    box-shadow:0 0 0 3px rgba(0,191,165,.1);
}
.sf-box svg { width:15px; height:15px; color:var(--fl-teal); flex-shrink:0; }
.sf-box input[type=text],
.sf-box input[type=date] {
    border:none; outline:none; font-family:'Inter',sans-serif;
    font-size:.87rem; font-weight:600; color:var(--fl-text); background:transparent; width:100%;
}
.sf-box input::placeholder { color:#a7d9d2; font-weight:400; }
.sf-sub { font-size:.64rem; color:var(--fl-muted); margin-top:1px; line-height:1; }

/* Swap button */
.swap-btn {
    width:36px; height:36px; border-radius:50%;
    border:1.5px solid var(--fl-border); background:#fff;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:all .15s; margin-top:22px; flex-shrink:0;
}
.swap-btn:hover { border-color:var(--fl-teal); background:var(--fl-light); }
.swap-btn svg   { width:15px; height:15px; color:var(--fl-teal); }

/* Guests panel */
.guests-box    { position:relative; }
.guests-panel {
    position:absolute; top:calc(100% + 6px); right:0; left:0; min-width:290px;
    background:#fff; border:1.5px solid var(--fl-border); border-radius:12px;
    box-shadow:0 8px 32px rgba(0,191,165,.15); z-index:50; padding:1rem; display:none;
}
.guests-panel.open { display:block; }
.gp-row {
    display:flex; align-items:center; justify-content:space-between;
    padding:.5rem 0; border-bottom:1px solid var(--fl-light);
}
.gp-row:last-of-type { border-bottom:none; }
.gp-lbl { font-size:.83rem; font-weight:600; color:var(--fl-text); }
.gp-sub { font-size:.7rem;  color:var(--fl-muted); margin-top:.05rem; }
.gp-ctrl { display:flex; align-items:center; gap:.5rem; }
.gp-btn {
    width:28px; height:28px; border-radius:50%;
    border:1.5px solid var(--fl-border); background:#fff;
    font-size:1rem; font-weight:700; cursor:pointer; line-height:1;
    display:flex; align-items:center; justify-content:center;
    color:var(--fl-text); transition:all .12s;
}
.gp-btn:hover { border-color:var(--fl-teal); color:var(--fl-dark); }
.gp-val { font-size:.9rem; font-weight:700; min-width:22px; text-align:center; color:var(--fl-text); }
.btn-gp-done {
    width:100%; background:var(--fl-grad); color:#fff; border:none;
    border-radius:8px; padding:.55rem; font-family:'Inter',sans-serif;
    font-size:.82rem; font-weight:700; cursor:pointer; margin-top:.65rem; transition:opacity .15s;
}
.btn-gp-done:hover { opacity:.88; }

/* Special fare row */
.special-fare {
    display:flex; align-items:center; flex-wrap:wrap; gap:.5rem;
    padding-top:.85rem; border-top:1px solid var(--fl-light);
    font-size:.8rem; color:var(--fl-muted);
}
.special-fare strong { color:var(--fl-text); font-weight:700; }
.sf-opt {
    display:flex; align-items:center; gap:.3rem; cursor:pointer;
    padding:.28rem .7rem; border:1.5px solid var(--fl-border);
    border-radius:20px; font-size:.78rem; font-weight:600; transition:all .15s;
}
.sf-opt input { accent-color:var(--fl-teal); cursor:pointer; }
.sf-opt.active, .sf-opt:hover { border-color:var(--fl-teal); color:var(--fl-dark); background:var(--fl-light); }

/* Search button */
.btn-search {
    background:var(--fl-grad); color:#fff; border:none; border-radius:10px;
    height:52px; padding:0 1.6rem; font-family:'Inter',sans-serif;
    font-size:.88rem; font-weight:700; cursor:pointer; white-space:nowrap;
    display:flex; align-items:center; gap:.4rem; margin-top:22px;
    box-shadow:0 4px 16px rgba(0,191,165,.35); transition:opacity .15s;
}
.btn-search:hover { opacity:.88; }
.btn-search svg { width:17px; height:17px; }

/* ══════════════════════════════════════════════════════════════════
   RESULTS PAGE
   ══════════════════════════════════════════════════════════════════ */
.results-wrap { max-width:960px; margin:1.5rem auto; padding:0 1.25rem 3rem; }

/* Results bar (modify search) */
.results-bar {
    background:linear-gradient(135deg,#072520,#0d3d34);
    border-radius:12px; padding:.85rem 1.25rem;
    display:flex; align-items:center; gap:1rem;
    margin-bottom:1rem; flex-wrap:wrap;
}
.results-bar .rb-item { font-size:.82rem; color:rgba(255,255,255,.8); font-weight:500; }
.results-bar .rb-sep  { color:rgba(255,255,255,.3); }
.results-bar .rb-val  { font-weight:700; color:#fff; }
.results-bar .rb-modify {
    margin-left:auto; background:var(--fl-grad); color:#fff;
    border:none; border-radius:8px; padding:.38rem .9rem;
    font-family:'Inter',sans-serif; font-size:.8rem; font-weight:700;
    cursor:pointer; transition:opacity .15s; white-space:nowrap; text-decoration:none;
}
.results-bar .rb-modify:hover { opacity:.88; }

/* Results count */
.results-count { font-size:.82rem; color:var(--fl-muted); font-weight:500; margin-bottom:.85rem; }

/* Flight card */
.fc_ {
    background:#fff; border:1.5px solid var(--fl-border); border-radius:12px;
    margin-bottom:.75rem; overflow:hidden; transition:all .15s;
}
.fc:hover { box-shadow:0 6px 24px rgba(0,191,165,.12); border-color:#a7d9d2; }

/* Airline block */
.fc-airline {
    display:flex; align-items:center; padding:1rem 1.25rem;
    gap:1.1rem; border-bottom:1px solid var(--fl-light);
}
.fc-al-name { font-size:.8rem; font-weight:600; color:var(--fl-text); }
.fc-al-num  { font-size:.72rem; color:var(--fl-muted); }

/* Times / route grid */
.times-grid {
    display:grid; grid-template-columns:1fr auto 1fr auto;
    align-items:center; padding:1rem 1.25rem; gap:.75rem;
}
.times-row { display:flex; flex-direction:column; }
.t-time     { font-size:1.35rem; font-weight:800; color:var(--fl-text); line-height:1; }
.t-city     { font-size:.8rem; font-weight:600; color:var(--fl-text); margin-top:.15rem; }
.t-date     { font-size:.72rem; color:var(--fl-muted); }
.t-terminal { font-size:.7rem;  color:var(--fl-muted); margin-top:.1rem; }

/* Duration / track */
.tmid { display:flex; flex-direction:column; align-items:center; gap:.3rem; }
.tdur { font-size:.78rem; font-weight:700; color:var(--fl-dark); }
.ttrack {
    display:flex; align-items:center; gap:.3rem; width:100%; min-width:90px;
}
.ttrack::before, .ttrack::after {
    content:''; flex:1; height:1.5px; background:var(--fl-border);
}
.ttrack .dot { width:7px; height:7px; border-radius:50%; background:var(--fl-teal); flex-shrink:0; }
.dur-line { flex:1; height:1.5px; background:var(--fl-border); }
.dur-stops { font-size:.68rem; color:var(--fl-muted); white-space:nowrap; }

/* Baggage strip */
.bag-strip, .baggage-strip {
    display:flex; align-items:center; gap:1rem; padding:.55rem 1.25rem;
    background:var(--fl-light); border-top:1px solid var(--fl-border); flex-wrap:wrap;
}
.bag-item  { display:flex; align-items:center; gap:.35rem; font-size:.75rem; color:var(--fl-dark); font-weight:600; }
.bag-label { font-size:.75rem; color:var(--fl-muted); }

/* Price / book row */
.fare-row {
    display:flex; align-items:center; justify-content:space-between;
    padding:.85rem 1.25rem; flex-wrap:wrap; gap:.75rem;
}
.fare-card { display:flex; align-items:center; gap:.85rem; flex-wrap:wrap; }
.fare-tag  {
    display:flex; flex-direction:column; align-items:center; padding:.4rem .85rem;
    border:1.5px solid var(--fl-border); border-radius:8px; cursor:pointer; transition:all .15s;
    min-width:100px; background:#fff;
}
.fare-tag.active, .fare-tag:hover { border-color:var(--fl-teal); background:var(--fl-light); }
.fare-title { font-size:.72rem; font-weight:700; color:var(--fl-text); }
.fare-sub   { font-size:.67rem; color:var(--fl-muted); }
.fare-total, .price-orange {
    font-size:1.25rem; font-weight:800; color:var(--fl-orange);
}
.fare-div   { width:1px; height:32px; background:var(--fl-border); }

/* Refund badges */
.refund-badge, .rbadge-g {
    font-size:.7rem; font-weight:700; padding:.18rem .55rem;
    border-radius:5px; display:inline-block;
}
.rbadge-g, .refund-badge-green { background:#dcfce7; color:#15803d; }
.rbadge-r, .refund-badge-red   { background:#fef2f2; color:#dc2626; }

/* Last seats */
.last-seats { font-size:.7rem; font-weight:700; color:var(--fl-orange); }

/* Book / view button */
.btn-book {
    background:var(--fl-grad); color:#fff; border:none; border-radius:8px;
    padding:.52rem 1.35rem; font-family:'Inter',sans-serif;
    font-size:.82rem; font-weight:700; cursor:pointer;
    box-shadow:0 2px 8px rgba(0,191,165,.3); transition:opacity .15s;
    text-decoration:none; display:inline-block;
}
.btn-book:hover { opacity:.88; }

/* Toggle details */
.toggle-details {
    background:none; border:1.5px solid var(--fl-border); border-radius:8px;
    padding:.38rem .85rem; font-family:'Inter',sans-serif; font-size:.75rem;
    font-weight:600; cursor:pointer; color:var(--fl-dark); transition:all .15s;
}
.toggle-details:hover { border-color:var(--fl-teal); background:var(--fl-light); }

/* Detail tabs (inside expanded card) */
.detail-tabs { display:flex; border-bottom:2px solid var(--fl-light); margin:0; }
.dtab {
    display:flex; align-items:center; gap:.4rem;
    padding:.6rem 1.25rem; border:none; background:transparent; cursor:pointer;
    font-family:'Inter',sans-serif; font-size:.8rem; font-weight:600;
    color:var(--fl-muted); border-bottom:2.5px solid transparent;
    margin-bottom:-2px; transition:all .15s;
}
.dtab svg { width:16px; height:16px; flex-shrink:0; }
.dtab.active { color:var(--fl-dark); border-bottom-color:var(--fl-teal); }
.dtab:hover:not(.active) { color:var(--fl-text); background:var(--fl-light); }
.dtab-pane { display:none; padding:1rem 1.25rem; }
.dtab-pane.active { display:block; }

/* Segment (itinerary row) */
.seg-row {
    display:grid; grid-template-columns:auto 1fr auto;
    gap:1rem; padding:.75rem 0; border-bottom:1px dashed var(--fl-light);
    align-items:center;
}
.seg-row:last-of-type { border-bottom:none; }
.seg-logo { width:36px; height:36px; border-radius:8px; background:var(--fl-light); display:flex; align-items:center; justify-content:center; font-size:.65rem; font-weight:700; color:var(--fl-dark); }
.seg-airline { display:flex; flex-direction:column; }
.seg-al-name { font-size:.78rem; font-weight:600; color:var(--fl-text); }
.seg-al-num  { font-size:.7rem;  color:var(--fl-muted); }
.seg-mid { display:flex; flex-direction:column; align-items:center; gap:.25rem; }
.seg-track { display:flex; align-items:center; gap:.35rem; width:100%; min-width:80px; }
.seg-track::before, .seg-track::after { content:''; flex:1; height:1.5px; background:var(--fl-border); }
.seg-track .dot { width:6px; height:6px; border-radius:50%; background:var(--fl-teal); flex-shrink:0; }
.seg-dur { font-size:.72rem; color:var(--fl-dark); font-weight:600; }
.seg-times { display:flex; flex-direction:column; align-items:flex-end; gap:.2rem; }
.seg-datetime { font-size:.85rem; font-weight:700; color:var(--fl-text); }
.seg-city { font-size:.78rem; color:var(--fl-text); font-weight:500; }
.seg-code { font-size:.7rem; color:var(--fl-muted); }
.seg-terminal { font-size:.68rem; color:var(--fl-muted); }
.t-block { display:flex; flex-direction:column; }
.t { font-size:.85rem; font-weight:700; color:var(--fl-text); }
.c { font-size:.75rem; color:var(--fl-text); font-weight:500; }
.term { font-size:.68rem; color:var(--fl-muted); }
.dt   { font-size:.7rem; color:var(--fl-muted); margin-top:.1rem; }

/* Layover */
.layover-row { display:flex; justify-content:center; padding:.5rem 0; }
.layover-pill {
    background:linear-gradient(135deg,rgba(0,191,165,.12),rgba(46,204,113,.08));
    border:1px solid var(--fl-border); border-radius:20px;
    padding:.25rem .85rem; font-size:.72rem; font-weight:600; color:var(--fl-dark);
}
.layover-line { flex:1; height:1px; background:var(--fl-border); }

/* Fare table */
.fare-table { width:100%; border-collapse:collapse; font-size:.8rem; }
.fare-table th { background:var(--fl-light); color:var(--fl-dark); font-weight:700; padding:.5rem .75rem; text-align:left; border:1px solid var(--fl-border); font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; }
.fare-table td { padding:.5rem .75rem; border:1px solid var(--fl-light); color:var(--fl-text); }
.fare-table tr:hover td { background:var(--fl-light); }
.fare-options { display:flex; gap:.75rem; flex-wrap:wrap; padding:.25rem 0; }
.fare-opt {
    border:1.5px solid var(--fl-border); border-radius:10px; padding:.65rem 1rem;
    cursor:pointer; transition:all .15s; background:#fff; flex:1; min-width:130px;
}
.fare-opt.active, .fare-opt:hover { border-color:var(--fl-teal); background:var(--fl-light); }

/* No results */
.no-flights { text-align:center; padding:4rem 2rem; background:#fff; border-radius:12px; border:1.5px solid var(--fl-border); }
.no-flights svg { color:var(--fl-teal); }

/* Secure bar */
.secure-bar {
    display:flex; align-items:center; justify-content:center; gap:1.5rem;
    background:var(--fl-light); border-radius:10px; padding:.65rem 1.25rem;
    margin-bottom:1rem; flex-wrap:wrap;
}
.secure-bar .sb-item { display:flex; align-items:center; gap:.35rem; font-size:.78rem; font-weight:600; color:var(--fl-dark); }
.secure-bar .sb-item svg { width:14px; height:14px; color:var(--fl-teal); }

/* Bag table */
.bag-table { width:100%; border-collapse:collapse; font-size:.8rem; margin-top:.5rem; }
.bag-table th { background:var(--fl-light); padding:.45rem .75rem; text-align:left; font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; color:var(--fl-dark); border:1px solid var(--fl-border); }
.bag-table td { padding:.45rem .75rem; border:1px solid var(--fl-light); color:var(--fl-text); }

/* More fare / routes */
.more-fare { font-size:.78rem; color:var(--fl-dark); cursor:pointer; text-decoration:underline; }
.route-lbl { font-size:.75rem; font-weight:600; color:var(--fl-text); }
.back-link {
    display:inline-flex; align-items:center; gap:.4rem;
    font-size:.85rem; color:var(--fl-muted); text-decoration:none; font-weight:600;
    padding:.35rem .75rem; border:1.5px solid var(--fl-border); border-radius:8px;
    transition:all .15s; margin-bottom:1rem;
}
.back-link:hover { color:var(--fl-dark); border-color:var(--fl-teal); background:var(--fl-light); }

/* Fare rules button */
.btn-fare-rules {
    background:none; border:1.5px solid var(--fl-border); border-radius:8px;
    padding:.38rem .85rem; font-family:'Inter',sans-serif; font-size:.75rem;
    font-weight:600; cursor:pointer; color:var(--fl-dark); transition:all .15s;
}
.btn-fare-rules:hover { border-color:var(--fl-teal); background:var(--fl-light); }

/* ══════════════════════════════════════════════════════════════════
   SHOW PAGE
   ══════════════════════════════════════════════════════════════════ */
.bwrap {
    max-width:1060px; margin:1.5rem auto; padding:0 1.25rem 3rem;
    display:grid; grid-template-columns:1fr 300px; gap:1.25rem; align-items:start;
}
.bc {
    background:#fff; border:1.5px solid var(--fl-border);
    border-radius:12px; overflow:hidden; margin-bottom:1rem;
}
.bc-hdr {
    display:flex; align-items:center; justify-content:space-between;
    padding:.85rem 1.1rem;
    background:linear-gradient(135deg,#072520,#0d3d34);
    font-size:.9rem; font-weight:700; color:#fff;
}
.bc-hdr svg { width:18px; height:18px; }
.bc-sub { font-size:.78rem; color:rgba(255,255,255,.65); margin-top:.15rem; }
.bc-body { padding:1.1rem; }

/* Airline block */
.airline-block {
    display:flex; align-items:center; gap:.85rem;
    padding:.75rem 1.1rem; border-bottom:1px solid var(--fl-light);
}
.airline-logo-box {
    width:44px; height:44px; border-radius:8px; background:var(--fl-light);
    display:flex; align-items:center; justify-content:center;
    font-size:.65rem; font-weight:700; color:var(--fl-dark); flex-shrink:0;
}
.al-blk { display:flex; flex-direction:column; }
.al-name { font-size:.85rem; font-weight:700; color:var(--fl-text); }
.al-num  { font-size:.75rem; color:var(--fl-muted); }
.al-logo { width:36px; height:36px; object-fit:contain; }

/* Segment layout */
.sleg { display:grid; grid-template-columns:auto 1fr auto; gap:1rem; padding:.85rem 0; border-bottom:1px dashed var(--fl-light); align-items:start; }
.sleg:last-of-type { border-bottom:none; }
.sleg-box { display:flex; flex-direction:column; align-items:center; gap:.3rem; }
.seg-logo { width:36px; height:36px; border-radius:7px; background:var(--fl-light); display:flex; align-items:center; justify-content:center; font-size:.6rem; font-weight:700; color:var(--fl-dark); }
.seg-city { font-size:.8rem; font-weight:600; color:var(--fl-text); }
.seg-code { font-size:.72rem; color:var(--fl-muted); }
.seg-mid  { display:flex; flex-direction:column; align-items:center; gap:.3rem; }
.dur-block { display:flex; align-items:center; gap:.35rem; width:100%; }
.dur-block::before, .dur-block::after { content:''; flex:1; height:1.5px; background:var(--fl-border); }
.dur-label { font-size:.72rem; color:var(--fl-dark); font-weight:700; white-space:nowrap; }
.dur-stops { font-size:.68rem; color:var(--fl-muted); }
.seg-times { display:flex; flex-direction:column; align-items:flex-end; }
.seg-datetime { font-size:.9rem; font-weight:700; color:var(--fl-text); }
.seg-terminal { font-size:.7rem; color:var(--fl-muted); margin-top:.15rem; }

/* Cancel / date-change card */
.cancel-card { border:1.5px solid var(--fl-border); border-radius:10px; overflow:hidden; margin-bottom:.85rem; }
.cancel-hdr {
    display:flex; align-items:center; justify-content:space-between;
    padding:.7rem 1rem; background:var(--fl-light); cursor:pointer;
    font-size:.82rem; font-weight:700; color:var(--fl-dark); transition:background .15s;
}
.cancel-hdr:hover { background:var(--fl-border); }
.cancel-hdr span { color:var(--fl-dark); font-size:1rem; }
.cf { padding:.75rem 1rem; font-size:.8rem; color:var(--fl-text); line-height:1.65; display:none; }
.cf.open { display:block; }

/* Sidebar on show page */
.bc-side { background:#fff; border:1.5px solid var(--fl-border); border-radius:12px; padding:1.1rem; margin-bottom:1rem; }
.cta-bar { display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.85rem 1.1rem; background:linear-gradient(135deg,#072520,#0d3d34); border-radius:10px; }
.cta-price { font-size:1.4rem; font-weight:800; color:#fff; }
.btn-continue, .btn-secure {
    background:var(--fl-grad); color:#fff; border:none; border-radius:8px;
    padding:.55rem 1.25rem; font-family:'Inter',sans-serif; font-size:.85rem;
    font-weight:700; cursor:pointer; transition:opacity .15s;
    box-shadow:0 2px 8px rgba(0,191,165,.3); text-decoration:none; display:inline-block;
}
.btn-continue:hover, .btn-secure:hover { opacity:.88; }
.btn-secure { padding:.48rem 1rem; font-size:.8rem; }

/* ══════════════════════════════════════════════════════════════════
   BOOKING PAGE
   ══════════════════════════════════════════════════════════════════ */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:.85rem; margin-bottom:1rem; }
.pax-block { border:1.5px solid var(--fl-border); border-radius:10px; padding:.85rem 1rem; margin-bottom:.75rem; background:#fafffe; }
.pax-block-title { font-size:.85rem; font-weight:700; color:var(--fl-dark); margin-bottom:.75rem; }
.pax-grid3 { display:grid; grid-template-columns:150px 1fr 1fr; gap:.65rem; margin-bottom:.5rem; }

/* SSR (meals, baggage etc) */
.ssr-tabs { display:flex; gap:.4rem; border-bottom:2px solid var(--fl-light); padding-bottom:0; margin-bottom:1rem; }
.stab {
    display:flex; align-items:center; gap:.4rem; padding:.55rem 1.1rem;
    border:none; background:transparent; cursor:pointer;
    font-family:'Inter',sans-serif; font-size:.8rem; font-weight:600;
    color:var(--fl-muted); border-bottom:2.5px solid transparent; margin-bottom:-2px; transition:all .15s;
}
.stab svg { width:16px; height:16px; flex-shrink:0; }
.stab.active { color:var(--fl-dark); border-bottom-color:var(--fl-teal); }
.stab:hover:not(.active) { color:var(--fl-text); background:var(--fl-light); }
.stab-pane { display:none; }
.stab-pane.active { display:block; }

/* SSR item */
.ssr-item {
    align-items:center; justify-content:space-between;
    padding:.6rem .75rem; border:1.5px solid var(--fl-border); border-radius:8px;
    margin-bottom:.45rem; background:#fff; transition:border-color .15s;
}
.ssr-item:hover { border-color:var(--fl-teal); }
.ssr-tbl { width:100%; border-collapse:collapse; font-size:.8rem; }
.ssr-tbl th { background:var(--fl-light); color:var(--fl-dark); padding:.45rem .75rem; text-align:left; font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; border:1px solid var(--fl-border); }
.ssr-tbl td { padding:.45rem .75rem; border:1px solid var(--fl-light); color:var(--fl-text); }
.ssr-footer { padding-top:.85rem; display:flex; justify-content:flex-end;justify-content: flex-end;
    gap: 20px;
    align-items: center; }

/* Qty buttons */
.qbtn {
    width:26px; height:26px; border-radius:50%; border:1.5px solid var(--fl-border);
    background:#fff; font-size:.9rem; font-weight:700; cursor:pointer;
    display:flex; align-items:center; justify-content:center; color:var(--fl-text);
    transition:all .12s; line-height:1;
}
.qbtn:hover { border-color:var(--fl-teal); color:var(--fl-dark); }
.qcnt { display:flex; align-items:center; gap:.4rem; }
.qval { font-size:.85rem; font-weight:700; min-width:20px; text-align:center; color:var(--fl-text); }

/* Skip seat */
.skip-seat {
    display:flex; align-items:center; gap:.5rem;
    font-size:.82rem; color:var(--fl-muted); margin-bottom:1rem;
}
.skip-seat input { accent-color:var(--fl-teal); }

/* Seat legend */
.seat-legend { display:flex; align-items:center; gap:1.1rem; margin-bottom:1rem; flex-wrap:wrap; }
.sl-item { display:flex; align-items:center; gap:.35rem; font-size:.72rem; font-weight:600; color:var(--fl-muted); }
.sl-seat { width:24px; height:24px; border-radius:5px; border:1.5px solid #d1d5db; display:flex; align-items:center; justify-content:center; flex-shrink:0; }

/* Form inputs inside booking */
.hb-f { display:flex; flex-direction:column; gap:.25rem; }
.hb-f label { font-size:.72rem; font-weight:700; color:var(--fl-muted); text-transform:uppercase; letter-spacing:.04em; }
.hb-f input, .hb-f select {
    border:1.5px solid var(--fl-border); border-radius:8px;
    padding:.52rem .8rem; font-family:'Inter',sans-serif; font-size:.82rem;
    outline:none; color:var(--fl-text); width:100%; transition:border-color .15s; background:#fff;
}
.hb-f input:focus, .hb-f select:focus { border-color:var(--fl-teal); box-shadow:0 0 0 3px rgba(0,191,165,.08); }
.hb-f input::placeholder { color:#a7d9d2; }

/* Add pax */
.btn-add-pax, .btn-add-ssr {
    background:linear-gradient(135deg,#2ecc71,#27ae60); color:#fff; border:none;
    border-radius:8px; padding:.52rem 1.2rem; font-family:'Inter',sans-serif;
    font-size:.82rem; font-weight:700; cursor:pointer; transition:opacity .15s;
}
.btn-add-pax:hover, .btn-add-ssr:hover { opacity:.88; }

/* ══════════════════════════════════════════════════════════════════
   Responsive
   ══════════════════════════════════════════════════════════════════ */
@media(max-width:1024px) {
    .sf-flight { grid-template-columns:1fr 36px 1fr 1fr; }
    .bwrap     { grid-template-columns:1fr; }
}
@media(max-width:768px) {
    .sf-flight   { grid-template-columns:1fr; }
    .times-grid  { grid-template-columns:1fr; }
    .pax-grid3   { grid-template-columns:1fr 1fr; }
    .contact-grid{ grid-template-columns:1fr; }
    .swap-btn    { width:100%; border-radius:10px; height:44px; margin-top:0; }
    .hero-tagline h1 { font-size:2rem; }
}

/* ══════════════════════════════════════════════════════════════════
   FLIGHT CARD — results page card layout
   ══════════════════════════════════════════════════════════════════ */

/* Card summary row */
.fc-summary {
    display: grid;
    grid-template-columns: 200px 1fr auto;
    align-items: center;
    padding: 1rem 1.25rem;
    gap: 1.25rem;
}

/* Airline info (logo + name) */
.fc-airline {
    display: flex; align-items: center; gap: .75rem;
}
.fc-logo {
    width: 44px; height: 44px; border-radius: 10px;
    background: var(--fl-light); overflow: hidden; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
}
.fc-logo img { width: 44px; height: 44px; object-fit: contain; }
.fc-logo-text {
    width: 44px; height: 44px; display: flex; align-items: center; justify-content: center;
    font-size: .65rem; font-weight: 800; color: var(--fl-dark);
}

/* Times section */
.fc-times {
    display: grid; grid-template-columns: 1fr auto 1fr;
    align-items: center; gap: .85rem;
}
.fc-t { display: flex; flex-direction: column; }
.fc-t:last-child { text-align: right; }
.fc-t .t { font-size: 1.35rem; font-weight: 800; color: var(--fl-text); line-height: 1; }
.fc-t .c { font-size: .8rem; font-weight: 600; color: var(--fl-text); margin-top: .15rem; }

.fc-mid {
    display: flex; flex-direction: column; align-items: center; gap: .3rem;
    min-width: 100px;
}
.fc-dur { font-size: .78rem; font-weight: 700; color: var(--fl-dark); }
.fc-line {
    width: 100%; height: 1.5px; background: var(--fl-border);
    position: relative;
}
.fc-line::before, .fc-line::after {
    content: ''; position: absolute; top: 50%; transform: translateY(-50%);
    width: 6px; height: 6px; border-radius: 50%; background: var(--fl-teal);
}
.fc-line::before { left: 0; }
.fc-line::after  { right: 0; }
.fc-stops { font-size: .72rem; color: var(--fl-muted); }

/* Price column */
.fc-price-col {
    display: flex; flex-direction: column; align-items: flex-end;
    gap: .4rem; min-width: 140px;
}
.fc-price { font-size: 1.4rem; font-weight: 800; color: var(--fl-orange); }

/* Baggage strip below summary */
.fc-baggage {
    display: flex; align-items: center; gap: 1.25rem;
    padding: .5rem 1.25rem;
    background: var(--fl-light); border-top: 1px solid var(--fl-border);
    flex-wrap: wrap;
}
.fc-baggage .bag-item {
    display: flex; align-items: center; gap: .35rem;
    font-size: .75rem; color: var(--fl-dark); font-weight: 600;
}
.fc-baggage .bag-item svg { width: 14px; height: 14px; color: var(--fl-teal); }

/* Card footer (show details / more fare) */
.fc-footer {
    display: flex; align-items: center; justify-content: space-between;
    padding: .55rem 1.25rem;
    border-top: 1px solid var(--fl-light);
    background: #fafffe;
}
.toggle-details {
    display: flex; align-items: center; gap: .35rem;
    background: none; border: 1.5px solid var(--fl-border); border-radius: 8px;
    padding: .38rem .85rem; font-family: 'Inter',sans-serif; font-size: .78rem;
    font-weight: 600; cursor: pointer; color: var(--fl-dark); transition: all .15s;
}
.toggle-details:hover { border-color: var(--fl-teal); background: var(--fl-light); }
.toggle-details svg { width: 14px; height: 14px; transition: transform .2s; }
.toggle-details.open svg { transform: rotate(180deg); }

/* Expandable detail panel */
.fc-detail { display: none; border-top: 2px solid var(--fl-light); }
.fc-detail.open { display: block; }

/* Segment inside detail */
.seg {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 1rem; padding: 1rem 0;
    border-bottom: 1px dashed var(--fl-light);
}
.seg:last-child { border-bottom: none; }
.seg-airline { display: flex; align-items: center; gap: .65rem; }
.seg-logo {
    width: 38px; height: 38px; border-radius: 8px; background: var(--fl-light);
    overflow: hidden; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
}
.seg-logo img { width: 38px; height: 38px; object-fit: contain; }
.seg-al-name { font-size: .8rem; font-weight: 600; color: var(--fl-text); }
.seg-al-num  { font-size: .72rem; color: var(--fl-muted); }
.seg-times {
    display: grid; grid-template-columns: 1fr auto 1fr;
    align-items: center; gap: .75rem;
}
.seg-mid {
    display: flex; flex-direction: column; align-items: center;
    gap: .25rem; min-width: 80px;
}
.seg-track {
    width: 100%; height: 1.5px; background: var(--fl-border);
    position: relative;
}
.seg-track::before, .seg-track::after {
    content:''; position:absolute; top:50%; transform:translateY(-50%);
    width:5px; height:5px; border-radius:50%; background:var(--fl-teal);
}
.seg-track::before { left:0; }
.seg-track::after  { right:0; }

/* Refund badges used inline */
.refund-badge-green {
    font-size: .7rem; font-weight: 700; padding: .18rem .55rem;
    border-radius: 5px; background: #dcfce7; color: #15803d; display: inline-block;
}
.refund-badge-red {
    font-size: .7rem; font-weight: 700; padding: .18rem .55rem;
    border-radius: 5px; background: #fef2f2; color: #dc2626; display: inline-block;
}

/* ══════════════════════════════════════════════════════════════════
   BOOKING PAGE — missing classes
   ══════════════════════════════════════════════════════════════════ */

/* Two-column booking layout */
.bwrap {
    max-width: 1060px; margin: 1.25rem auto;
    padding: 0 1.25rem 3rem;
    display: grid; grid-template-columns: 1fr 300px;
    gap: 1.25rem; align-items: start;
}

/* Section card */
.bc { background:#fff; border:1.5px solid var(--fl-border); border-radius:12px; overflow:hidden; margin-bottom:1rem; }
.bc-hdr {
    display:flex; align-items:center; justify-content:space-between;
    padding:.8rem 1.1rem;
    background:linear-gradient(135deg,#072520,#0d3d34);
    font-size:.9rem; font-weight:700; color:#fff;
}
.bc-hdr h3 { font-size:.9rem; font-weight:700; color:#fff; margin:0; }
.bc-hdr button {
    background:rgba(255,255,255,.15); border:none; color:#fff;
    width:26px; height:26px; border-radius:50%; cursor:pointer;
    font-size:1rem; font-weight:700; line-height:1;
    display:flex; align-items:center; justify-content:center;
    transition:background .15s;
}
.bc-hdr button:hover { background:rgba(255,255,255,.25); }
.bc-body { padding:1.1rem; }
.bc-sub { font-size:.82rem; font-weight:700; color:var(--fl-dark); margin-bottom:.85rem; }

/* Route label */
.route-lbl { font-size:.8rem; font-weight:600; color:var(--fl-muted); margin-bottom:.75rem; }

/* Segment row (booking) */
.seg-row {
    display:grid; grid-template-columns:auto 1fr;
    gap:1rem; align-items:center;
}
.al-blk { display:flex; align-items:center; gap:.6rem; }
.al-logo {
    width:40px; height:40px; border-radius:8px;
    overflow:hidden; background:var(--fl-light); flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
}
.al-logo img { width:40px; height:40px; object-fit:contain; }
.al-name { font-size:.85rem; font-weight:700; color:var(--fl-text); }
.al-num  { font-size:.72rem; color:var(--fl-muted); }

/* Times grid (booking) */
.times-grid {
    display:grid; grid-template-columns:1fr auto 1fr;
    align-items:center; gap:.75rem;
}
.tc { display:flex; flex-direction:column; }
.tc:last-child { text-align:right; }
.code { font-size:.82rem; font-weight:700; color:var(--fl-muted); }
.city { font-size:.85rem; font-weight:600; color:var(--fl-text); }
.term { font-size:.7rem; color:var(--fl-teal); margin-top:.1rem; }
.dt   { font-size:.78rem; color:var(--fl-text); font-weight:500; }
.tmid { display:flex; flex-direction:column; align-items:center; gap:.3rem; }
.tdur { font-size:.78rem; font-weight:700; color:var(--fl-dark); }
.ttrack {
    width:100%; height:1.5px; background:var(--fl-border);
    position:relative; min-width:80px;
}
.ttrack::before, .ttrack::after {
    content:''; position:absolute; top:50%; transform:translateY(-50%);
    width:5px; height:5px; border-radius:50%; background:var(--fl-teal);
}
.ttrack::before { left:0; } .ttrack::after { right:0; }

/* GST section */
.gst-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:.65rem; margin-bottom:.75rem; }
.gfield { display:flex; flex-direction:column; gap:.25rem; }
.gfield label { font-size:.72rem; font-weight:700; color:var(--fl-muted); text-transform:uppercase; letter-spacing:.04em; }
.gfield input {
    border:1.5px solid var(--fl-border); border-radius:8px;
    padding:.5rem .8rem; font-family:'Inter',sans-serif; font-size:.82rem;
    outline:none; color:var(--fl-text); transition:border-color .15s;
}
.gfield input:focus { border-color:var(--fl-teal); box-shadow:0 0 0 3px rgba(0,191,165,.08); }
.gfield input::placeholder { color:#a7d9d2; }
.gst-check {
    display:flex; align-items:center; gap:.5rem;
    font-size:.82rem; color:var(--fl-muted); cursor:pointer;
}
.gst-check input { accent-color:var(--fl-teal); }

/* Contact fields */
.cf { display:flex; flex-direction:column; gap:.25rem; }
.cf label { font-size:.72rem; font-weight:700; color:var(--fl-muted); text-transform:uppercase; letter-spacing:.04em; }
.cf input, .cf select {
    border:1.5px solid var(--fl-border); border-radius:8px;
    padding:.52rem .8rem; font-family:'Inter',sans-serif; font-size:.82rem;
    outline:none; color:var(--fl-text); transition:border-color .15s; background:#fff;
}
.cf input:focus, .cf select:focus { border-color:var(--fl-teal); box-shadow:0 0 0 3px rgba(0,191,165,.08); }
.cf input::placeholder { color:#a7d9d2; }

/* Seat legend */
.seat-legend { display:flex; flex-wrap:wrap; gap:.75rem; margin-bottom:1rem; align-items:center; }
.sleg { display:flex; align-items:center; gap:.35rem; font-size:.75rem; font-weight:500; color:var(--fl-text); }
.sleg-box { width:22px; height:22px; border-radius:5px; display:inline-block; border:1px solid rgba(0,0,0,.1); }

/* Seat grid */
.seat-section-title { font-size:.82rem; font-weight:700; color:var(--fl-dark); margin:.75rem 0 .4rem; }
.seat-scroll { overflow-x:auto; padding-bottom:.5rem; }
.seat-grid   { display:inline-flex; flex-direction:column; gap:4px; min-width:max-content; }
.seat-row    { display:flex; align-items:center; gap:4px; }
.seat-row-num { width:22px; font-size:.65rem; color:var(--fl-muted); text-align:center; flex-shrink:0; }
.aisle       { width:14px; flex-shrink:0; }
.seat {
    width:30px; height:30px; border-radius:6px; border:1.5px solid var(--fl-border);
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    cursor:pointer; font-size:.55rem; font-weight:700; color:var(--fl-text);
    transition:all .12s; flex-shrink:0;
}
.seat:hover:not(.unavailable) { transform:scale(1.12); border-color:var(--fl-teal); }
.seat.unavailable { background:#e5e7eb; border-color:#e5e7eb; color:#9ca3af; cursor:not-allowed; }
.seat.free        { background:#fff; border-color:var(--fl-green); }
.seat.s1_99       { background:#dbeafe; border-color:#93c5fd; }
.seat.s100_500    { background:#ede9fe; border-color:#a78bfa; }
.seat.s501_1500   { background:#fef3c7; border-color:#f59e0b; }
.seat.s1501_2500  { background:#dcfce7; border-color:#4ade80; }
.seat.s2501plus   { background:#dbeafe; border-color:#1d4ed8; }
.seat.selected    { background:var(--fl-grad) !important; border-color:var(--fl-dark) !important; color:#fff !important; }

/* ── RIGHT sidebar — fare breakdown ── */
.fare-card {
    background:#fff; border:1.5px solid var(--fl-border);
    border-radius:12px; padding:1.1rem; margin-bottom:1rem;
    box-shadow:0 2px 12px rgba(0,191,165,.08);display: block;
}
.fare-title { font-size:.92rem; font-weight:800; color:var(--fl-text); margin-bottom:.2rem; }
.fare-sub   { font-size:.75rem; color:var(--fl-muted); margin-bottom:.85rem; }
.fare-row {
    display:flex; align-items:center; justify-content:space-between;
    padding:.45rem 0; font-size:.83rem; border-bottom:1px solid var(--fl-light);
}
.fare-row:last-of-type { border-bottom:none; }
.fare-row .fl { color:var(--fl-muted); }
.fare-row .fr { font-weight:600; color:var(--fl-text); }
.fare-div { border:none; border-top:1.5px solid var(--fl-border); margin:.35rem 0; }
.fare-total {
    display:flex; align-items:center; justify-content:space-between;
    padding:.6rem .75rem; background:var(--fl-light); border-radius:8px; margin-top:.35rem;
    font-size:.95rem; font-weight:800;
}
.fare-total .fl { color:var(--fl-dark); }
.fare-total .fr { color:var(--fl-dark); font-size:1.15rem; }

/* Cancel card */
.cancel-card {
    background:#fff; border:1.5px solid var(--fl-border);
    border-radius:12px; overflow:hidden; margin-bottom:.85rem;
}
.cancel-hdr {
    display:flex; align-items:center; justify-content:space-between;
    padding:.75rem 1rem; background:var(--fl-light); cursor:pointer; transition:background .15s;
    font-size:.85rem; font-weight:700; color:var(--fl-dark);
}
.cancel-hdr:hover { background:var(--fl-border); }
.cancel-hdr h3 { font-size:.85rem; font-weight:700; color:var(--fl-dark); margin:0; }
.cf-body { padding:.75rem 1rem; font-size:.78rem; color:var(--fl-text); line-height:1.65; display:none; }
.cf-body.open { display:block; }

/* Fare rules button */
.btn-fare-rules {
    width:100%; background:#fff; border:1.5px solid var(--fl-border);
    border-radius:10px; padding:.7rem; font-family:'Inter',sans-serif;
    font-size:.82rem; font-weight:700; cursor:pointer; color:var(--fl-dark);
    transition:all .15s; margin-top:.5rem;
}
.btn-fare-rules:hover { border-color:var(--fl-teal); background:var(--fl-light); }

/* Secure booking bottom bar */
.secure-bar {
    position:fixed; bottom:0; left:0; right:0;
    background:#fff; border-top:2px solid var(--fl-border);
    padding:.85rem 2rem;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 -4px 20px rgba(0,191,165,.1); z-index:100;
}
.btn-secure {
    background:var(--fl-grad); color:#fff; border:none; border-radius:24px;
    padding:.65rem 2.5rem; font-family:'Inter',sans-serif;
    font-size:.95rem; font-weight:700; cursor:pointer;
    box-shadow:0 4px 16px rgba(0,191,165,.35); transition:opacity .15s;
}
.btn-secure:hover { opacity:.88; }

/* Breadcrumb */
.breadcrumb { background:#fff; border-bottom:1px solid var(--fl-border); padding:.55rem 1.25rem; font-size:.78rem; color:var(--fl-muted); }
.breadcrumb a { color:var(--fl-teal); text-decoration:none; }
.breadcrumb a:hover { color:var(--fl-dark); }

/* Fare tag in flight details */
.fare-tag {
    display:inline-block; background:var(--fl-light); color:var(--fl-dark);
    font-size:.75rem; font-weight:700; padding:.25rem .75rem;
    border-radius:6px; border:1px solid var(--fl-border); margin:.5rem 0;
}

/* Bag strip icons */
.bag-strip svg { width:16px; height:16px; vertical-align:middle; color:var(--fl-teal); }

/* Rbadge */
.rbadge-g { font-size:.72rem; font-weight:700; padding:.18rem .55rem; border-radius:5px; background:#dcfce7; color:#15803d; }
.rbadge-r { font-size:.72rem; font-weight:700; padding:.18rem .55rem; border-radius:5px; background:#fef2f2; color:#dc2626; }

@media(max-width:860px) {
    .bwrap { grid-template-columns:1fr; }
    .gst-grid { grid-template-columns:1fr; }
    .pax-grid3 { grid-template-columns:1fr 1fr; }
    .times-grid { grid-template-columns:1fr; gap:.35rem; }
    .secure-bar { padding:.65rem 1rem; }
}
