﻿/* Hero */
.fr-hero{background:linear-gradient(135deg,#1a3c6e 0%,#0f2847 100%);padding:48px 0 56px;color:#fff}
.fr-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.fr-fresh{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:rgba(255,255,255,.7);background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.3);padding:4px 10px;border-radius:999px;margin-top:10px}
.fr-fresh-dot{width:6px;height:6px;border-radius:50%;background:#34d399;animation:frPulse 2s infinite}
@keyframes frPulse{0%,100%{opacity:1}50%{opacity:.4}}
.fr-c{max-width:1100px;margin:0 auto;padding:0 24px}
.fr-breadcrumb{font-size:13px;color:rgba(255,255,255,.5);margin-bottom:24px}
.fr-breadcrumb a{color:rgba(255,255,255,.6);text-decoration:none}
.fr-breadcrumb a:hover{color:#fff}
.fr-breadcrumb .sep{margin:0 6px}
.fr-route-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:24px}
.fr-route-visual{display:flex;align-items:center;gap:24px}
.fr-iata{font-size:48px;font-weight:900;letter-spacing:3px;line-height:1}
.fr-city-label{font-size:13px;color:rgba(255,255,255,.6);margin-top:4px}
.fr-arrow-wrap{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:80px}
.fr-arrow-line{width:60px;height:2px;background:rgba(255,255,255,.25);position:relative}
.fr-arrow-line::after{content:'';position:absolute;right:-2px;top:-4px;border:5px solid transparent;border-left:8px solid rgba(255,255,255,.4)}
.fr-arrow-label{font-size:10px;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:1px}
.fr-price-block{text-align:right}
.fr-price-from{font-size:11px;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:1px}
.fr-price-val{font-size:48px;font-weight:900;line-height:1.1}
.fr-price-note{font-size:13px;color:rgba(255,255,255,.5);margin-top:4px}

/* Highlight cards */
.fr-highlights{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:32px}
.fr-hl{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:16px;text-align:center}
.fr-hl-val{font-size:22px;font-weight:800}
.fr-hl-label{font-size:11px;color:rgba(255,255,255,.5);margin-top:4px;text-transform:uppercase;letter-spacing:.5px}
.fr-hl-val.green{color:#34d399}

/* Sections */
.fr-section{padding:48px 0}
.fr-section.white{background:#fff}
.fr-section.gray{background:#f5f5f5}
.fr-section-title{font-size:22px;font-weight:800;color:#1a1a2e;margin-bottom:6px}
.fr-section-sub{font-size:14px;color:#6b7280;margin-bottom:20px}

/* Grid layout */
.fr-grid{display:grid;grid-template-columns:1fr 340px;gap:40px;align-items:start}

/* Flight table */
.fr-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}
.fr-table thead th{background:#f8f9fa;padding:12px 16px;font-size:11px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;text-align:left;border-bottom:2px solid #e5e7eb}
.fr-table tbody tr{transition:all .2s}
.fr-table tbody tr:hover{background:#f9fafb}
.fr-table tbody tr.best-row{background:#f0fdf4}
.fr-table tbody td{padding:14px 16px;font-size:14px;color:#374151;border-bottom:1px solid #f3f4f6}
.fr-table tbody tr:last-child td{border-bottom:none}
.fr-airline-name{font-weight:700;color:#1a1a2e;font-size:14px}
.fr-airline-code{font-size:11px;color:#9ca3af;margin-top:1px}
.fr-price-cell{font-size:20px;font-weight:800;color:#008009}
.fr-best-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;background:#008009;color:#fff;margin-left:6px;vertical-align:middle}
.fr-direct-badge{display:inline-block;padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600;background:#dbeafe;color:#1e40af}
.fr-stops-text{font-size:12px;color:#9ca3af}
.fr-duration{font-size:13px;color:#4b5563}
.fr-book-btn{padding:8px 18px;border-radius:6px;font-size:13px;font-weight:700;background:#e94560;color:#fff;text-decoration:none;display:inline-block;transition:all .2s}
.fr-book-btn:hover{background:#d63a54;color:#fff;transform:translateY(-1px)}

/* Sidebar */
.fr-sidebar{position:sticky;top:80px;align-self:start}
.fr-sidebar-card{background:#fff;border:2px solid #e5e7eb;border-radius:10px;padding:24px;margin-bottom:16px}
.fr-sidebar-card h3{font-size:18px;font-weight:700;margin:0 0 4px}
.fr-sidebar-card .sub{font-size:13px;color:#6b7280;margin:0 0 16px}
.fr-sidebar-price-box{text-align:center;padding:20px;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-radius:8px;margin-bottom:16px}
.fr-sidebar-price-box .amount{font-size:40px;font-weight:900;color:#008009}
.fr-sidebar-price-box .label{font-size:12px;color:#6b7280;margin-top:2px}
.fr-sidebar-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #f3f4f6;font-size:14px}
.fr-sidebar-row:last-of-type{border-bottom:none}
.fr-sidebar-row .label{color:#6b7280}
.fr-sidebar-row .val{font-weight:600;color:#1f2937}
.fr-sidebar-cta{display:block;text-align:center;padding:14px;background:#e94560;color:#fff;border-radius:8px;font-size:15px;font-weight:700;text-decoration:none;margin-top:16px;transition:all .2s}
.fr-sidebar-cta:hover{background:#d63a54;color:#fff;transform:translateY(-1px)}
.fr-sidebar-note{font-size:11px;color:#9ca3af;text-align:center;margin-top:8px}

/* Airline cards */
.fr-airline-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.fr-airline-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:8px}
.fr-airline-card-name{font-size:15px;font-weight:700;color:#1a1a2e}
.fr-airline-card-meta{font-size:12px;color:#6b7280}
.fr-airline-card-price{font-size:18px;font-weight:800;color:#008009}

/* Airport info */
.fr-airport-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.fr-airport-box{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:24px}
.fr-airport-code{font-size:28px;font-weight:900;color:#1a3c6e;margin-bottom:4px}
.fr-airport-name{font-size:15px;font-weight:600;color:#1f2937;margin-bottom:8px}
.fr-airport-detail{font-size:13px;color:#6b7280;line-height:1.8}

/* Tips */
.fr-tips-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fr-tip{padding:18px;background:#fff;border:1px solid #e5e7eb;border-radius:8px}
.fr-tip-title{font-size:14px;font-weight:700;color:#1a1a2e;margin-bottom:6px;display:flex;align-items:center;gap:8px}
.fr-tip-icon{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.fr-tip-text{font-size:13px;color:#4b5563;line-height:1.6}

/* Hotel cards */
.fr-hotel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.fr-hotel-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;text-decoration:none;color:inherit;transition:all .2s}
.fr-hotel-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.08);transform:translateY(-2px)}
.fr-hotel-img{width:100%;height:160px;object-fit:cover;background:#e5e7eb}
.fr-hotel-body{padding:14px}
.fr-hotel-name{font-size:14px;font-weight:700;color:#1a1a2e;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-hotel-loc{font-size:12px;color:#6b7280;margin-bottom:8px}
.fr-hotel-bottom{display:flex;justify-content:space-between;align-items:center}
.fr-hotel-score{padding:3px 8px;border-radius:4px;font-size:12px;font-weight:700;color:#fff;background:#003580}
.fr-hotel-price{font-size:16px;font-weight:800;color:#008009}

/* Activity cards */
.fr-act-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.fr-act-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:18px;text-decoration:none;color:inherit;transition:all .2s}
.fr-act-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.08);transform:translateY(-2px)}
.fr-act-name{font-size:14px;font-weight:700;color:#1a1a2e;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fr-act-meta{font-size:12px;color:#6b7280;margin-bottom:8px}
.fr-act-bottom{display:flex;justify-content:space-between;align-items:center}
.fr-act-rating{font-size:13px;color:#f59e0b;font-weight:700}
.fr-act-price{font-size:16px;font-weight:800;color:#008009}

/* Alt routes */
.fr-alt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.fr-alt-card{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;text-decoration:none;color:inherit;transition:all .2s}
.fr-alt-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.06);border-color:#1a3c6e}
.fr-alt-route{font-weight:700;font-size:15px;color:#1a1a2e}
.fr-alt-city{font-size:12px;color:#6b7280;margin-top:2px}
.fr-alt-price{font-weight:800;color:#008009;font-size:17px}

/* Reverse route banner */
.fr-reverse-section{padding:16px 0;background:#fff;border-bottom:1px solid #e5e7eb}
.fr-reverse{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:16px}
.fr-reverse-text{font-size:14px;color:#4b5563}
.fr-reverse-text strong{color:#1a1a2e}
.fr-reverse-link{padding:8px 20px;border-radius:6px;background:#1a3c6e;color:#fff;text-decoration:none;font-size:13px;font-weight:600}

/* FAQ */
.fr-faq{max-width:760px}
.fr-faq-item{border-bottom:1px solid #e5e7eb;padding:16px 0}
.fr-faq-q{font-size:15px;font-weight:700;color:#1a1a2e;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;list-style:none}
.fr-faq-q::-webkit-details-marker{display:none}
.fr-faq-q::after{content:'+';font-size:20px;font-weight:400;color:#9ca3af;transition:transform .2s;flex-shrink:0;line-height:1}
.fr-faq-item[open] .fr-faq-q{color:#e94560}
.fr-faq-item[open] .fr-faq-q::after{content:'\2212';color:#e94560}
.fr-faq-a{font-size:14px;color:#4b5563;line-height:1.7;padding-top:8px}

/* Modify search bar */
.fr-modify{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:14px;display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;gap:10px;margin:-20px 0 28px;box-shadow:0 6px 24px rgba(15,52,96,.08);position:relative;z-index:5}
.fr-modify-cell{display:flex;flex-direction:column;gap:2px;padding:6px 10px;border-radius:8px;background:#f9fafb}
.fr-modify-cell label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#9ca3af}
.fr-modify-cell input,.fr-modify-cell select{border:none;background:transparent;font-size:14px;font-weight:600;color:#1a1a2e;outline:none;padding:0;font-family:inherit;width:100%;min-width:0}
.fr-modify-submit{padding:0 22px;background:#e94560;color:#fff;border:none;border-radius:8px;font-weight:700;font-size:14px;cursor:pointer;transition:background .2s;white-space:nowrap}
.fr-modify-submit:hover{background:#d63a54}

/* Sort & Filter controls */
.fr-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:14px}
.fr-sort{display:inline-flex;background:#f3f4f6;border-radius:8px;padding:3px;gap:0}
.fr-sort-btn{padding:8px 16px;border:none;background:transparent;font-size:13px;font-weight:600;color:#6b7280;cursor:pointer;border-radius:6px;transition:all .2s;font-family:inherit}
.fr-sort-btn.active{background:#fff;color:#0f3460;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.fr-sort-btn:hover:not(.active){color:#1a1a2e}
.fr-result-count{font-size:13px;color:#6b7280}
.fr-result-count strong{color:#1a1a2e}

/* Filters */
.fr-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.fr-filter-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;font-size:12px;font-weight:600;background:#fff;border:1px solid #e5e7eb;color:#374151;cursor:pointer;transition:all .15s;font-family:inherit}
.fr-filter-pill:hover{border-color:#0f3460;color:#0f3460}
.fr-filter-pill.active{background:#0f3460;color:#fff;border-color:#0f3460}
.fr-filter-pill .count{font-size:11px;opacity:.7}
.fr-filter-pill.active .count{opacity:.9}
.fr-no-results{padding:32px;text-align:center;color:#6b7280;font-size:14px;background:#f9fafb;border-radius:8px;border:1px dashed #e5e7eb}

/* Times in flight row */
.fr-airline-cell{display:flex;align-items:center;gap:10px}
.fr-airline-logo{width:32px;height:32px;border-radius:6px;object-fit:contain;flex-shrink:0;background:#f8f9fa;border:1px solid #f0f0f0}
.fr-times{display:flex;align-items:center;gap:8px;font-size:13px;color:#374151}
.fr-time-block{text-align:center}
.fr-time-val{font-weight:700;font-size:14px;color:#1a1a2e}
.fr-time-code{font-size:10px;color:#9ca3af;letter-spacing:.5px}
.fr-time-line{flex:1;height:1px;background:#e5e7eb;min-width:24px;position:relative}
.fr-time-line::after{content:'';position:absolute;right:-1px;top:-3px;border:3px solid transparent;border-left:6px solid #cbd5e1}

/* Inline color helpers (replace inline styles) */
.fr-link{display:inline-block;margin-top:12px;font-size:13px;font-weight:600;color:#1a3c6e;text-decoration:none}
.fr-link:hover{color:#e94560}
.fr-savings-val{color:#008009}
.fr-mini-badge{font-size:9px;padding:1px 5px;margin-left:4px}
.fr-tip-icon-blue{background:#dbeafe;color:#1e40af}
.fr-tip-icon-amber{background:#fef3c7;color:#92400e}
.fr-tip-icon-green{background:#d1fae5;color:#065f46}
.fr-tip-icon-pink{background:#fce7f3;color:#9d174d}
.fr-airline-cell-inner{display:flex;align-items:center;gap:8px}
.fr-airline-logo-img{border-radius:4px;vertical-align:middle;flex-shrink:0;width:28px;height:28px}
.fr-empty-meta{font-size:13px;color:#6b7280}

/* Mobile sticky CTA */
.fr-mobile-cta{display:none;position:fixed;left:0;right:0;bottom:0;z-index:90;background:#fff;border-top:1px solid #e5e7eb;padding:10px 14px;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 -4px 16px rgba(15,52,96,.08)}
.fr-mobile-cta-price{display:flex;flex-direction:column;line-height:1.2}
.fr-mobile-cta-price .from{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#9ca3af}
.fr-mobile-cta-price .amt{font-size:20px;font-weight:900;color:#008009}
.fr-mobile-cta-btn{flex:1;max-width:55%;padding:13px 14px;background:#e94560;color:#fff;border-radius:8px;text-decoration:none;font-weight:700;font-size:14px;text-align:center;white-space:nowrap}

@media(max-width:1024px){
  .fr-modify{grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto}
  .fr-modify-submit{grid-column:span 2}
}
@media(max-width:768px){
  .fr-modify{grid-template-columns:1fr;margin:-12px 0 20px}
  .fr-modify-submit{grid-column:auto;padding:14px}
  .fr-controls{flex-direction:column;align-items:flex-start}
  .fr-sort{width:100%;overflow-x:auto}
  .fr-sort-btn{flex:1;padding:8px 8px}
  .fr-mobile-cta{display:flex}
  body{padding-bottom:72px}
  .fr-time-line{min-width:14px}
  .fr-times{gap:6px}
}

@media(max-width:1024px){
  .fr-highlights{grid-template-columns:repeat(2,1fr)}
  .fr-hotel-grid,.fr-act-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
  .fr-grid{grid-template-columns:1fr}
  .fr-sidebar{position:static}
  .fr-route-header{flex-direction:column;align-items:center;text-align:center}
  .fr-price-block{text-align:center}
  .fr-iata{font-size:32px}
  .fr-price-val{font-size:36px}
  .fr-highlights{grid-template-columns:1fr 1fr}
  .fr-airport-grid{grid-template-columns:1fr}
  .fr-tips-grid{grid-template-columns:1fr}
  .fr-hotel-grid,.fr-act-grid{grid-template-columns:1fr}
  .fr-alt-grid{grid-template-columns:1fr}
  .fr-table{display:block;overflow-x:auto}
  .fr-reverse{flex-direction:column;gap:12px;text-align:center}
}
