/* Flight product: search, results, passengers, confirmation.
   Builds on hotel.css (hero, search box, summary, confirmation) and only adds what
   is specific to flights. */

/* ------------------------------------------------------------ search box */

.flight-trip-toggle { display: inline-flex; gap: .25rem; background: #f1f5f3; border-radius: 999px; padding: .2rem; }
.flight-trip-toggle label {
    margin: 0; padding: .3rem .9rem; border-radius: 999px; cursor: pointer;
    font-size: .85rem; font-weight: 600; color: var(--hotel-muted);
}
.flight-trip-toggle label.active { background: #fff; color: var(--hotel-green-dark); box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.flight-trip-toggle input { position: absolute; opacity: 0; pointer-events: none; }

.flight-swap {
    position: absolute; right: -14px; bottom: 7px; z-index: 5;
    width: 30px; height: 30px; border-radius: 50%;
    border: 1px solid var(--hotel-line); background: #fff; color: var(--hotel-green);
    display: flex; align-items: center; justify-content: center;
}
.flight-swap:hover { background: #f2f7f4; }
@media (max-width: 991.98px) { .flight-swap { right: 8px; bottom: -22px; transform: rotate(90deg); } }

.flight-searchbox .suggest-item small { font-size: .75rem; }

/* --------------------------------------------------------------- results */

.flight-card {
    display: flex; align-items: stretch; gap: 1rem;
    background: #fff; border: 1px solid var(--hotel-line); border-radius: 14px;
    padding: .9rem 1rem; margin-bottom: .75rem; transition: box-shadow .15s, border-color .15s;
}
.flight-card:hover { box-shadow: 0 6px 18px rgba(0,0,0,.07); }
.flight-card.is-selected { border-color: var(--hotel-green); box-shadow: 0 0 0 2px rgba(25,135,84,.18); }
.flight-card[hidden] { display: none; }

.flight-card-main { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.25rem; }

.flight-airline { flex: 0 0 120px; display: flex; flex-direction: column; gap: .15rem; }
.flight-airline-code {
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px; border-radius: 10px; background: #eef6f2;
    color: var(--hotel-green-dark); font-weight: 800; font-size: .85rem;
}
.flight-airline-name { font-size: .8rem; color: var(--hotel-muted); line-height: 1.2; }
.flight-chip { font-size: .7rem; background: #fff4d6; color: #8a6200; border-radius: 6px; padding: 0 .35rem; width: fit-content; }

.flight-times { flex: 1 1 280px; display: flex; align-items: center; gap: .75rem; }
.flight-time { display: flex; flex-direction: column; min-width: 58px; }
.flight-time strong { font-size: 1.25rem; color: var(--hotel-ink); line-height: 1.1; }
.flight-time span { font-size: .8rem; color: var(--hotel-muted); font-weight: 600; }

.flight-path { flex: 1; display: flex; flex-direction: column; align-items: center; gap: .1rem; min-width: 90px; }
.flight-duration, .flight-stops { font-size: .75rem; color: var(--hotel-muted); }
.flight-line { position: relative; width: 100%; height: 2px; background: #cfd8d3; }
.flight-line::after { content: ""; position: absolute; left: 50%; top: -3px; width: 8px; height: 8px; border-radius: 50%; background: #f6a609; transform: translateX(-50%); }
.flight-line.direct { background: var(--hotel-green); }
.flight-line.direct::after { display: none; }

.flight-meta { flex: 1 1 100%; font-size: .78rem; color: var(--hotel-muted); }

.flight-card-price {
    flex: 0 0 150px; display: flex; flex-direction: column; align-items: flex-end; justify-content: center;
    border-left: 1px dashed var(--hotel-line); padding-left: 1rem; text-align: right;
}
.flight-card-price .btn { margin-top: .4rem; min-width: 96px; }
.flight-card.is-selected .flight-pick { background: var(--hotel-green); color: #fff; }

@media (max-width: 575.98px) {
    .flight-card { flex-direction: column; }
    .flight-card-price { border-left: 0; border-top: 1px dashed var(--hotel-line); padding: .6rem 0 0; flex-direction: row; justify-content: space-between; align-items: center; }
    .flight-airline { flex-basis: 100%; flex-direction: row; align-items: center; gap: .5rem; }
}

.flight-select-bar {
    position: sticky; bottom: 0; z-index: 20; margin: 1rem calc(50% - 50vw) 0;
    background: #fff; border-top: 1px solid var(--hotel-line); box-shadow: 0 -6px 18px rgba(0,0,0,.06); padding: .7rem 0;
}

/* ------------------------------------------------------------ passengers */

.flight-offer {
    display: block; border: 1px solid var(--hotel-line); border-radius: 12px;
    padding: .7rem .85rem; cursor: pointer; height: 100%; background: #fff;
}
.flight-offer input { position: absolute; opacity: 0; pointer-events: none; }
.flight-offer.is-selected { border-color: var(--hotel-green); box-shadow: 0 0 0 2px rgba(25,135,84,.18); background: #f7fffa; }

.flight-leg { padding: .45rem 0; border-bottom: 1px solid #f1f3f2; }
.flight-leg:last-child { border-bottom: 0; }
.flight-leg-times { font-size: .92rem; }
.flight-leg-times .bx { color: var(--hotel-green); vertical-align: middle; }
