/* =========================================================
   Vasilica Deals — night-flight / control-tower design system
   Colors: navy #0B1526, midnight #132239, amber #FFB347,
           cloud #F3F6FA, slate #7C8DA6, teal #2DD4A7
   Type: Space Grotesk (display) + Inter (body)
   ========================================================= */

:root{
  --navy: #0B1526;
  --midnight: #132239;
  --midnight-2: #1B2E4A;
  --amber: #FFB347;
  --amber-dim: #C98A32;
  --cloud: #F3F6FA;
  --slate: #7C8DA6;
  --slate-dim: #52627D;
  --teal: #2DD4A7;
  --coral: #FF6B5C;
  --radius-card: 18px;
  --radius-sm: 10px;
  --shadow-soft: 0 20px 50px -20px rgba(4,10,22,0.55);
  --maxw: 1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Inter',system-ui,sans-serif;
  color:var(--navy);
  background:var(--cloud);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.brand-text{
  font-family:'Space Grotesk',system-ui,sans-serif;
  letter-spacing:-0.01em;
}
a{text-decoration:none;color:inherit;}
.container{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
img{max-width:100%;display:block;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

/* ---------- Top currency bar ---------- */
.topbar{ background:var(--navy); color:var(--slate); font-size:13px; }
.topbar-inner{ display:flex; justify-content:space-between; align-items:center; height:38px; }
.topbar-left{ display:flex; gap:18px; align-items:center; }
.topbar-item i{ margin-right:5px; }
.topbar-hide-sm{ display:none; }
@media(min-width:640px){ .topbar-hide-sm{ display:inline; } }

.currency-widget{ display:flex; align-items:center; gap:8px; }
.cw-label{ color:var(--slate-dim); display:none; }
@media(min-width:480px){ .cw-label{display:inline;} }
.cw-select{
  background:var(--midnight);
  color:var(--cloud);
  border:1px solid var(--midnight-2);
  border-radius:6px;
  padding:4px 8px;
  font-size:12.5px;
}
.cw-rate{ color:var(--teal); font-size:12px; display:none; }
@media(min-width:768px){ .cw-rate{display:inline;} }

/* ---------- Header ---------- */
.site-header{ background:var(--navy); border-bottom:1px solid var(--midnight-2); position:sticky; top:0; z-index:50;}
.header-inner{ display:flex; align-items:center; justify-content:space-between; height:72px; gap:24px;}
.brand{ display:flex; align-items:center; gap:9px; }
.brand-text{ color:var(--cloud); font-weight:700; font-size:22px; }
.brand-text em{ color:var(--amber); font-style:normal; }
.main-nav{ display:none; gap:28px; }
@media(min-width:960px){ .main-nav{display:flex;} }
.main-nav a{ color:var(--slate); font-size:14.5px; font-weight:500; padding:8px 0; border-bottom:2px solid transparent; }
.main-nav a:hover, .main-nav a.active{ color:var(--cloud); border-color:var(--amber); }
.header-actions{ display:none; align-items:center; gap:14px; }
@media(min-width:960px){ .header-actions{display:flex;} }
.btn-ghost{ color:var(--cloud); font-size:14px; font-weight:500; }
.btn-amber{
  background:var(--amber); color:var(--navy); font-weight:600; font-size:14px;
  padding:10px 20px; border-radius:999px; transition:transform .15s ease, background .2s ease;
}
.btn-amber:hover{ background:#ffc266; transform:translateY(-1px); }

.nav-toggle{ display:flex; flex-direction:column; gap:5px; background:none; border:none; padding:8px; cursor:pointer; }
@media(min-width:960px){ .nav-toggle{display:none;} }
.nav-toggle span{ width:22px; height:2px; background:var(--cloud); display:block; }
.mobile-nav{ display:none; flex-direction:column; background:var(--midnight); padding:12px 24px 18px; }
.mobile-nav.open{ display:flex; }
.mobile-nav a{ color:var(--cloud); padding:10px 0; border-bottom:1px solid var(--midnight-2); font-size:14.5px; }
@media(min-width:960px){ .mobile-nav{display:none !important;} }

/* ---------- Hero ---------- */
.hero{
  position:relative;
  background:radial-gradient(ellipse at 20% 0%, #17284A 0%, var(--navy) 55%), var(--navy);
  color:var(--cloud);
  padding:64px 0 150px;
  overflow:hidden;
}
.hero-flightpath{ position:absolute; inset:0; pointer-events:none; opacity:.55; }
.hero-flightpath path{
  stroke-dasharray: 6 10;
  animation: dash 26s linear infinite;
}
@keyframes dash{ to{ stroke-dashoffset:-800; } }
.hero-inner{ position:relative; z-index:2; max-width:640px; }
.hero-eyebrow{ color:var(--teal); font-size:14px; font-weight:600; margin-bottom:14px; }
.hero h1{ font-size:clamp(34px,5vw,52px); line-height:1.08; margin:0 0 18px; font-weight:700; }
.hero p.lead{ color:var(--slate); font-size:17px; max-width:480px; margin-bottom:0; }

/* ---------- Search card ---------- */
.search-card{
  position:relative; z-index:3;
  background:rgba(19,34,57,0.72);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:var(--radius-card);
  padding:26px;
  margin-top:-90px;
  box-shadow:var(--shadow-soft);
}
.trip-tabs{ display:flex; gap:6px; margin-bottom:18px; }
.trip-tab{
  background:transparent; border:1px solid var(--midnight-2); color:var(--slate);
  padding:8px 16px; border-radius:999px; font-size:13.5px; cursor:pointer; font-family:inherit;
}
.trip-tab.active{ background:var(--amber); color:var(--navy); border-color:var(--amber); font-weight:600; }

.search-grid{ display:grid; grid-template-columns:1fr; gap:14px; }
@media(min-width:900px){ .search-grid{ grid-template-columns: 1.3fr 1.3fr 1fr 1fr auto; align-items:end; } }

.field{ position:relative; }
.field label{ display:block; font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--slate); margin-bottom:6px; }
.field input{
  width:100%; background:var(--midnight); border:1px solid var(--midnight-2); color:var(--cloud);
  padding:12px 14px; border-radius:var(--radius-sm); font-size:14.5px; font-family:inherit;
}
.field input::placeholder{ color:var(--slate-dim); }
.field input:focus{ outline:2px solid var(--amber); outline-offset:1px; }
.swap-btn{
  position:absolute; right:-8px; top:34px; width:30px; height:30px; border-radius:50%;
  background:var(--navy); border:1px solid var(--midnight-2); color:var(--amber);
  display:none; align-items:center; justify-content:center; cursor:pointer; z-index:4;
}
@media(min-width:900px){ .swap-btn{ display:flex; } }

.autocomplete-list{
  position:absolute; top:100%; left:0; right:0; background:var(--midnight); border:1px solid var(--midnight-2);
  border-radius:var(--radius-sm); margin-top:4px; max-height:240px; overflow:auto; z-index:20;
  box-shadow:var(--shadow-soft); display:none;
}
.autocomplete-list.show{ display:block; }
.autocomplete-item{ padding:10px 14px; cursor:pointer; border-bottom:1px solid var(--midnight-2); font-size:13.5px; }
.autocomplete-item:last-child{border-bottom:none;}
.autocomplete-item:hover, .autocomplete-item.active{ background:var(--midnight-2); }
.autocomplete-item .ac-code{ color:var(--amber); font-weight:700; margin-right:8px; }
.autocomplete-item .ac-city{ color:var(--cloud); }
.autocomplete-item .ac-name{ display:block; color:var(--slate); font-size:11.5px; margin-top:2px; }

.search-submit{
  background:var(--amber); color:var(--navy); border:none; border-radius:var(--radius-sm);
  padding:13px 22px; font-weight:700; font-size:14.5px; cursor:pointer; white-space:nowrap;
  transition:background .2s ease, transform .15s ease;
}
.search-submit:hover{ background:#ffc266; transform:translateY(-1px); }

.search-extra{ display:flex; flex-wrap:wrap; gap:18px; margin-top:16px; }
.search-extra label{ display:flex; align-items:center; gap:7px; color:var(--slate); font-size:13.5px; }

/* ---------- Trust strip ---------- */
.trust-strip{ background:var(--cloud); padding:26px 0; border-bottom:1px solid #E3E9F1; }
.trust-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; text-align:center; }
@media(min-width:768px){ .trust-grid{ grid-template-columns:repeat(4,1fr);} }
.trust-item strong{ display:block; font-size:22px; font-family:'Space Grotesk',sans-serif; }
.trust-item span{ color:var(--slate-dim); font-size:13px; }

/* ---------- Sections ---------- */
.section{ padding:72px 0; }
.section-head{ max-width:560px; margin-bottom:36px; }
.section-eyebrow{ color:var(--amber-dim); font-weight:600; font-size:13.5px; margin-bottom:8px; }
.section-head h2{ font-size:clamp(26px,3.4vw,36px); margin:0 0 10px; }
.section-head p{ color:var(--slate-dim); font-size:15.5px; margin:0; }

.deal-grid{ display:grid; grid-template-columns:1fr; gap:20px; }
@media(min-width:700px){ .deal-grid{grid-template-columns:repeat(2,1fr);} }
@media(min-width:1050px){ .deal-grid{grid-template-columns:repeat(3,1fr);} }

.deal-card{
  background:var(--navy); color:var(--cloud); border-radius:var(--radius-card); overflow:hidden;
  position:relative; padding:22px; min-height:190px; display:flex; flex-direction:column; justify-content:space-between;
}
.deal-card::after{
  content:""; position:absolute; right:-30px; top:-30px; width:140px; height:140px; border-radius:50%;
  background:radial-gradient(circle, rgba(255,179,71,0.18), transparent 70%);
}
.deal-route{ font-family:'Space Grotesk',sans-serif; font-size:19px; font-weight:600; }
.deal-route .arrow{ color:var(--amber); margin:0 8px; }
.deal-meta{ color:var(--slate); font-size:13px; margin-top:6px; }
.deal-price{ display:flex; align-items:baseline; gap:6px; margin-top:16px; }
.deal-price .amount{ font-size:26px; font-weight:700; font-family:'Space Grotesk',sans-serif; }
.deal-price .cur{ color:var(--slate); font-size:12.5px; }
.deal-badge{ position:absolute; top:18px; right:18px; background:var(--teal); color:var(--navy); font-size:11px; font-weight:700; padding:4px 10px; border-radius:999px; }

.why-grid{ display:grid; grid-template-columns:1fr; gap:26px; }
@media(min-width:768px){ .why-grid{ grid-template-columns:repeat(3,1fr);} }
.why-item{ padding:6px; }
.why-icon{ width:46px; height:46px; border-radius:12px; background:#FFF1DC; color:var(--amber-dim); display:flex; align-items:center; justify-content:center; margin-bottom:14px; font-size:20px; }
.why-item h3{ font-size:18px; margin:0 0 8px; }
.why-item p{ color:var(--slate-dim); font-size:14.5px; margin:0; }

.destinations{ background:var(--midnight); }
.dest-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
@media(min-width:768px){ .dest-grid{ grid-template-columns:repeat(4,1fr);} }
.dest-card{ background:var(--navy); border-radius:14px; padding:20px; color:var(--cloud); border:1px solid var(--midnight-2); }
.dest-card .city{ font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:17px; }
.dest-card .from{ color:var(--slate); font-size:12.5px; margin-top:4px; }
.dest-card .price{ color:var(--amber); font-weight:700; margin-top:12px; font-size:18px; }

.newsletter{
  background:linear-gradient(120deg, var(--navy), #0E1B33 60%, var(--navy));
  color:var(--cloud); padding:60px 0; text-align:center;
}
.newsletter h2{ font-size:clamp(24px,3vw,32px); margin-bottom:10px; }
.newsletter p{ color:var(--slate); margin-bottom:22px; }
.newsletter-form{ display:flex; max-width:420px; margin:0 auto; gap:10px; flex-wrap:wrap; justify-content:center; }
.newsletter-form input{ flex:1; min-width:220px; padding:13px 16px; border-radius:999px; border:1px solid var(--midnight-2); background:var(--midnight); color:var(--cloud); }
.newsletter-form button{ background:var(--amber); border:none; color:var(--navy); font-weight:700; padding:13px 24px; border-radius:999px; cursor:pointer; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--navy); color:var(--slate); padding-top:56px; }
.footer-grid{ display:grid; grid-template-columns:1fr; gap:32px; padding-bottom:40px; }
@media(min-width:768px){ .footer-grid{ grid-template-columns:1.4fr 1fr 1fr 1fr; } }
.footer-brand p{ font-size:13.5px; margin-top:12px; max-width:280px; }
.footer-col h4{ color:var(--cloud); font-size:14px; margin-bottom:14px; }
.footer-col a, .footer-col span{ display:block; color:var(--slate); font-size:13.5px; margin-bottom:9px; }
.footer-col a:hover{ color:var(--amber); }
.footer-bottom{ border-top:1px solid var(--midnight-2); padding:18px 0; }
.footer-bottom-inner{ display:flex; flex-direction:column; gap:6px; font-size:12.5px; color:var(--slate-dim); }
@media(min-width:768px){ .footer-bottom-inner{ flex-direction:row; justify-content:space-between; } }

/* ---------- Flights results page ---------- */
.results-shell{ padding:36px 0 80px; }
.results-head{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:14px; margin-bottom:22px; }
.results-route{ font-family:'Space Grotesk',sans-serif; font-size:24px; font-weight:700; }
.results-sub{ color:var(--slate-dim); font-size:13.5px; }
.results-layout{ display:grid; grid-template-columns:1fr; gap:22px; }
@media(min-width:900px){ .results-layout{ grid-template-columns:260px 1fr; } }

.filters-card{ background:#fff; border:1px solid #E3E9F1; border-radius:14px; padding:18px; height:fit-content; }
.filters-card h4{ font-size:14px; margin:0 0 12px; }
.filter-group{ margin-bottom:20px; }
.filter-group label{ display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--slate-dim); margin-bottom:8px; }

.flight-card{ background:#fff; border:1px solid #E3E9F1; border-radius:14px; padding:20px; margin-bottom:14px; display:flex; flex-wrap:wrap; gap:18px; align-items:center; justify-content:space-between; }
.flight-airline{ display:flex; align-items:center; gap:10px; min-width:130px; }
.airline-badge{ width:38px; height:38px; border-radius:10px; background:var(--navy); color:var(--amber); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:12px; }
.flight-times{ display:flex; align-items:center; gap:14px; flex:1; min-width:220px; }
.flight-time strong{ font-size:18px; font-family:'Space Grotesk',sans-serif; display:block; }
.flight-time span{ color:var(--slate-dim); font-size:12px; }
.flight-path{ flex:1; text-align:center; position:relative; min-width:100px; }
.flight-path .dur{ font-size:12px; color:var(--slate-dim); }
.flight-path .line{ height:1px; background:#D8DEE9; position:relative; margin:6px 0; }
.flight-path .line::after{ content:"✈"; position:absolute; right:0; top:-9px; color:var(--amber-dim); font-size:13px; }
.flight-stops{ font-size:11.5px; color:var(--slate-dim); }
.flight-price{ text-align:right; min-width:130px; }
.flight-price .amount{ font-size:22px; font-weight:700; font-family:'Space Grotesk',sans-serif; }
.flight-price .cur{ font-size:11.5px; color:var(--slate-dim); }
.flight-select-btn{ background:var(--amber); border:none; color:var(--navy); font-weight:700; padding:9px 18px; border-radius:8px; margin-top:8px; cursor:pointer; }

.empty-live-note{ background:#FFF7EA; border:1px dashed var(--amber-dim); color:#8A5A12; border-radius:12px; padding:16px 18px; font-size:13.5px; margin-bottom:20px; }

/* ---------- Legal pages ---------- */
.legal-hero{ background:var(--navy); color:var(--cloud); padding:56px 0 40px; text-align:left; }
.legal-hero h1{ font-size:clamp(28px,4vw,38px); margin:0 0 8px; }
.legal-updated{ color:var(--slate); font-size:13.5px; margin:0; }
.legal-body{ max-width:760px; margin:0 auto; padding:48px 24px 90px; font-size:15.5px; line-height:1.75; color:#2A344A; }
.legal-body h2{ font-size:20px; margin:34px 0 12px; color:var(--navy); }
.legal-body p, .legal-body li{ color:#3C4863; }
.legal-body ul{ padding-left:20px; }
.legal-body a{ color:var(--amber-dim); text-decoration:underline; }
.fees-table{ width:100%; border-collapse:collapse; margin:14px 0; font-size:14px; }
.fees-table th, .fees-table td{ border:1px solid #E3E9F1; padding:10px 12px; text-align:left; }
.fees-table th{ background:#F3F6FA; }
