/* ===== EPS Travel Exchange – Frontend v0.0.23 ===== */

/* ── Header bar ── */
.eps-pkg-header-bar {
  display:flex; flex-wrap:wrap; gap:8px 24px; padding:10px 0; border-bottom:1px solid #e0e0e0; margin-bottom:12px; font-size:14px;
}
.eps-pkg-header-bar a { color:#4aa3df; text-decoration:none; }
.eps-pkg-header-bar strong { color:#555; margin-right:4px; }
.eps-pkg-title { font-size:26px; font-weight:700; margin-bottom:16px; }

/* ── Booking panel ── */
.eps-booking-panel {
  border:1px solid #dce3ea; border-radius:12px; padding:0; overflow:hidden; background:#fff; box-shadow:0 2px 8px rgba(0,0,0,.06);
}
.eps-dates-section { border-bottom:1px solid #eee; }
.eps-dates-toggle {
  display:flex; justify-content:space-between; align-items:center; padding:14px 18px; cursor:pointer; font-weight:600; color:#4aa3df; font-size:14px;
}
.eps-dates-toggle:hover { background:#f9fbfd; }

/* ── Date chips (2-column grid, scrollable, always visible text) ── */
.eps-dates-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:0 16px 16px;
  max-height:320px; overflow-y:auto;
}
.eps-date-chip {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  border:2px solid #dce3ea; border-radius:10px; padding:8px 6px; background:#fff;
  cursor:pointer; transition:all .2s; text-align:center; min-height:52px;
}
.eps-date-chip:hover:not(.sold-out) { border-color:#4aa3df; background:#f0f7ff; }
.eps-date-chip.active { background:#4aa3df; border-color:#4aa3df; color:#fff; }
.eps-date-chip.active .eps-chip-price { color:#e0f0ff; }
.eps-date-chip.active .eps-chip-dates { color:#fff; }
.eps-date-chip.sold-out {
  background:#fff3cd; border-color:#ffc107; cursor:not-allowed; opacity:.7;
}
/* ALWAYS visible: dark text by default */
.eps-chip-dates { font-size:11px; font-weight:700; line-height:1.3; color:#333; }
.eps-chip-price { font-size:10px; color:#4aa3df; margin-top:1px; font-weight:600; }
.eps-chip-label { font-size:11px; font-weight:700; }

/* ── Travelers section ── */
.eps-travelers-section { border-bottom:1px solid #eee; }
.eps-section-toggle {
  display:flex; justify-content:space-between; align-items:center; padding:14px 18px; cursor:pointer;
}
.eps-field { display:flex; justify-content:space-between; align-items:center; padding:6px 18px; gap:12px; }
.eps-field label { flex:1; color:#4aa3df; font-size:13px; font-weight:500; }
.eps-field .form-select, .eps-field .form-control { width:120px; flex:none; }
.eps-hint { color:#888; font-size:11px; font-weight:400; }
.eps-room-notice { padding:4px 18px; font-size:12px; color:#999; margin:0; }

/* ── Total / Buttons ── */
.eps-total-row { text-align:center; padding:16px 18px 4px; }
.eps-total-label { font-size:15px; color:#4aa3df; }
.eps-total-amount { font-size:28px; font-weight:700; color:#333; margin-left:8px; }
.eps-perperson-row { text-align:center; padding:0 18px 12px; font-size:13px; color:#666; }
.eps-buttons-row { display:flex; gap:10px; padding:0 18px 18px; }
.eps-btn-continue {
  flex:1; padding:12px; border:none; border-radius:8px; font-weight:700; font-size:15px; cursor:pointer;
  background:#f0a050; color:#fff; transition:background .2s;
}
.eps-btn-continue:hover { background:#e09040; }

/* ── Tabs ── */
.eps-tabs-wrapper { margin-top:24px; }
.eps-nav-tabs { display:flex; gap:0; border-bottom:2px solid #ddd; }
.eps-tab {
  background:transparent; border:none; padding:10px 24px; font-weight:600; color:#888; cursor:pointer; border-bottom:3px solid transparent; margin-bottom:-2px; font-size:14px;
}
.eps-tab.active { color:#4aa3df; border-bottom-color:#4aa3df; }
.eps-tab-body { padding:16px 0; }
.eps-grid-terms { display:grid; grid-template-columns:1fr 1fr; gap:6px 24px; margin-bottom:12px; }

/* ── Carousel ── */
.eps-pkg-carousel { border-radius:12px; overflow:hidden; }
.eps-pkg-carousel img { border-radius:0; }

/* ════════════════════════════════════════════════════════
   FLIGHTS PAGE
   ════════════════════════════════════════════════════════ */

/* ── Loading overlay ── */
.eps-flight-search-overlay {
  display:none; position:fixed; top:0; left:0; right:0; bottom:0; z-index:9999;
  background:rgba(255,255,255,.92); justify-content:center; align-items:center; flex-direction:column;
}
.eps-flight-search-overlay.show { display:flex; }
.eps-flight-planes { font-size:48px; display:flex; gap:16px; margin-bottom:20px; }
.eps-flight-planes span { animation:fly 2s ease-in-out infinite; }
.eps-flight-planes span:nth-child(2) { animation-delay:.3s; }
.eps-flight-planes span:nth-child(3) { animation-delay:.6s; }
@keyframes fly { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-16px)} }

/* ── Filters bar ── */
.eps-filters-bar {
  background:#f8f9fa; border:1px solid #e0e0e0; border-radius:10px; padding:18px; margin-top:12px; margin-bottom:20px;
}
.eps-filters-title { font-weight:700; font-size:16px; margin-bottom:12px; }
.eps-filters-note { font-weight:400; font-size:11px; }
.eps-filter-grid {
  display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:16px;
}

.eps-range-filter label {
  font-size:12px; font-weight:700; color:#555; text-transform:uppercase; display:block; margin-bottom:4px;
}
.eps-range-values { display:flex; justify-content:space-between; font-size:11px; color:#888; margin-top:-4px; }

.eps-filter-group label { font-size:12px; font-weight:700; color:#555; text-transform:uppercase; display:block; margin-bottom:6px; }
.eps-airline-checks { display:flex; flex-wrap:wrap; gap:8px 20px; }
.eps-airline-check .form-check-label { font-size:13px; }

/* ── Flight result cards ── */
.eps-flight-result {
  border:1px solid #e0e0e0; border-left:5px solid #e74c3c; border-radius:8px; margin-bottom:16px; overflow:hidden; background:#fff;
}
.eps-flight-body { display:flex; }
.eps-flight-price-box {
  background:#e74c3c; color:#fff; padding:16px 14px; display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:120px; text-align:center;
}
.eps-flight-price-label { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; }
.eps-flight-price-amount { font-size:26px; font-weight:800; line-height:1.1; }
.eps-flight-price-note { font-size:9px; opacity:.85; }
.eps-flight-details { flex:1; padding:12px 16px; }
.eps-flight-result-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; font-size:13px; }

/* ── Flight leg layout ── */
.eps-flight-leg {
  display:flex; align-items:center; gap:6px; padding:4px 0; font-size:13px;
}
.eps-leg-time { font-weight:700; font-size:16px; min-width:42px; }
.eps-leg-route { display:flex; align-items:center; gap:4px; flex:1; min-width:80px; }
.eps-leg-line { flex:1; height:1px; background:#ccc; }

/* ── Leg date label ── */
.eps-leg-date { font-size:11px; color:#888; margin-bottom:2px; }

/* ── Leg metadata (airline, seats, baggage) ── */
.eps-leg-meta {
  display:flex; gap:12px; align-items:center; padding:2px 0 6px; font-size:12px; flex-wrap:wrap;
}
.eps-leg-airline-name { color:#333; }
.eps-badge-seats { color:#666; }
.eps-badge-direct {
  background:#1a1a2e; color:#fff; padding:2px 10px; border-radius:4px; font-size:11px; font-weight:600;
}
.eps-badge-stops {
  background:#ffc107; color:#333; padding:2px 10px; border-radius:4px; font-size:11px; font-weight:600;
}

/* ── Luggage badges ── */
.eps-badge-luggage {
  display:inline-flex; align-items:center; gap:4px; font-size:11px; padding:2px 8px; border-radius:4px;
}
.eps-badge-luggage.has-luggage { color:#2d8659; background:#e8f5e9; }
.eps-badge-luggage.no-luggage { color:#999; background:#f5f5f5; }

/* ── Layover separator ── */
.eps-layover-separator {
  text-align:center; margin:4px 0; padding:4px 0; background:#f8f9fa; border-radius:4px; font-size:12px; color:#888;
}

/* ── Flight total row ── */
.eps-flight-total-row {
  display:flex; justify-content:space-between; align-items:center; padding:10px 16px; background:#f0faf0; border-top:1px solid #e0e0e0; flex-wrap:wrap; gap:8px;
}
.eps-per-person-flight { font-size:12px; color:#888; }
.eps-flight-select-btn {
  background:#e74c3c; color:#fff; border:none; padding:8px 20px; border-radius:6px; font-weight:700; font-size:13px; cursor:pointer; transition:background .2s;
}
.eps-flight-select-btn:hover { background:#c0392b; }

/* ── Responsive ── */
@media (max-width:991px) {
  .eps-flight-body { flex-direction:column; }
  .eps-flight-price-box { flex-direction:row; gap:8px; min-width:auto; padding:10px 14px; }
  .eps-flight-price-amount { font-size:20px; }
  .eps-flight-leg { flex-wrap:wrap; }
  .eps-dates-grid { grid-template-columns:1fr; }
}
@media (max-width:575px) {
  .eps-flight-total-row { flex-direction:column; text-align:center; }
  .eps-grid-terms { grid-template-columns:1fr; }
}

/* ── Airline Code Badge ── */
.eps-airline-code-badge {
  display:inline-block; background:#2c3e50; color:#fff; font-size:11px; font-weight:700;
  padding:2px 6px; border-radius:3px; margin-right:6px; letter-spacing:.5px; vertical-align:middle;
}
.eps-leg-airline-name {
  display:inline-flex; align-items:center; gap:2px; font-size:13px; color:#333;
}
/* ── Airline Group Headers ── */
.eps-airline-group { margin-bottom:4px; }
.eps-airline-group-header {
  display:flex; align-items:center; gap:8px; padding:10px 16px; margin:12px 0 6px 0;
  background:#f8f9fa; border-left:4px solid #2c3e50; border-radius:4px; font-size:15px;
}
.eps-airline-group-count { margin-left:auto; font-size:12px; color:#888; font-weight:400; }
/* ── Show More / Group Extra ── */
.eps-group-extra { display:none !important; }
.eps-show-more-wrapper { margin:4px 0 12px 0; }
.eps-show-more-btn { font-size:13px; padding:6px 18px; border-radius:20px; }
/* ── Loading overlay ── */
.eps-loading-overlay {
  position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(255,255,255,.85);
  z-index:9999; display:flex; align-items:center; justify-content:center; flex-direction:column;
}
.eps-loading-overlay .spinner { width:48px; height:48px; border:4px solid #e0e0e0;
  border-top-color:#e74c3c; border-radius:50%; animation:eps-spin 1s linear infinite; }
@keyframes eps-spin { to { transform:rotate(360deg); } }
.eps-loading-overlay p { margin-top:16px; font-size:15px; color:#555; }
/* ── Seats badge ── */
.eps-badge-seats { font-size:12px; color:#777; }
.eps-badge-seats i { font-size:11px; }

/* v0.0.33: Hero header (TravelExchange-style, full width) */
.eps-hero{position:relative;width:100%;min-height:340px;border-radius:16px;overflow:hidden;background-size:cover;background-position:center;margin:0 0 20px;}
.eps-hero__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.55) 50%,rgba(0,0,0,.88) 100%);}
.eps-hero__content{position:absolute;left:0;right:0;bottom:0;padding:28px 28px 24px;color:#fff;text-align:center;}
.eps-hero__title{margin:0;font-size:clamp(1.6rem,3vw,2.6rem);font-weight:800;line-height:1.15;text-shadow:0 4px 20px rgba(0,0,0,.6);color:#fff;}
.eps-hero__route{margin-top:6px;font-size:1rem;font-weight:600;letter-spacing:.08em;opacity:.85;text-transform:uppercase;}
.eps-hero__year{margin-top:4px;font-size:.9rem;opacity:.7;}
.eps-hero__tagline{margin-top:8px;font-size:.95rem;opacity:.88;max-width:60ch;margin-left:auto;margin-right:auto;}
@media(max-width:767px){.eps-hero{min-height:260px;border-radius:12px;}.eps-hero__content{padding:16px 16px 14px;}.eps-hero__title{font-size:1.3rem;}}

/* v0.0.34 */
.eps-day-stops{color:#4A90D9;font-style:italic;margin-bottom:10px}
.eps-grid-terms--cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 18px}
.eps-term-item,.eps-cancel-item{display:flex;gap:10px;align-items:flex-start;padding:6px 0;border-bottom:1px solid #edf0f2}
.eps-term-item i{color:#41a85f;margin-top:2px}.eps-cancel-item i{color:#e67e22;margin-top:2px}
.eps-terms-section{padding-bottom:10px;border-bottom:1px solid #ececec}


.eps-day-stops{color:#4a90d9;font-style:italic;font-weight:500}
.eps-terms-section h5{font-size:1.05rem;letter-spacing:.02em}
.eps-term-item,.eps-cancel-item{display:flex;gap:8px;align-items:flex-start;padding:6px 0}
.eps-term-item i,.eps-cancel-item i{margin-top:3px;color:#69aee6}
.eps-booking-panel select,.eps-booking-panel input{min-height:48px}
#eps-tour-map + .eps-map-fallback{margin-top:12px}
