/* BudgetJet — stylesheet */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#13132b;--bg2:#1a1a36;--bg3:#232348;--bg4:#2c2c56;
  --border:rgba(255,255,255,0.13);--border2:rgba(255,255,255,0.22);
  --text:#f4f4fb;--muted:rgba(235,235,255,0.80);--dim:rgba(215,215,255,0.48);
  --accent:#8b7cf8;--accent2:rgba(139,124,248,0.18);
  --green:#3ecf8e;--green2:rgba(62,207,142,0.14);
  --warn:#f0b43c;--warn2:rgba(240,180,60,0.12);
  --ease:cubic-bezier(0.16,1,0.3,1);
}
html,body{min-height:100%;overflow-x:hidden;background:var(--bg);color:var(--text);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background-image:radial-gradient(ellipse 120% 60% at 50% 0%,rgba(120,100,255,0.18) 0%,transparent 70%)}

/* Nav */
nav{display:flex;align-items:center;justify-content:space-between;
  padding:1.1rem 2rem;border-bottom:1px solid var(--border);
  position:sticky;top:0;background:rgba(19,19,43,0.94);
  backdrop-filter:blur(20px);z-index:100}
.logo{display:flex;align-items:center}
.nav-logo{height:36px;width:auto;display:block}
.footer-logo-img{height:22px;width:auto;display:block;filter:brightness(0) invert(1)}
.nav-right{display:flex;align-items:center;gap:1.5rem}
.nav-link{font-size:0.78rem;color:var(--muted);text-decoration:none}
.nav-link:hover{color:var(--text)}
.nav-cta{padding:0.45rem 1.1rem;background:var(--accent);color:#fff;
  border-radius:7px;font-size:0.75rem;font-weight:600;border:none;cursor:pointer;font-family:inherit}
/* Lang toggle */
.lang-toggle{display:flex;gap:0.2rem;align-items:center}
.lang-btn{padding:0.3rem 0.55rem;border-radius:6px;border:1px solid var(--border);
  background:transparent;font-size:0.68rem;font-weight:600;color:var(--muted);
  cursor:pointer;font-family:inherit;transition:all 0.14s;line-height:1}
.lang-btn:hover{color:var(--text);background:var(--bg3)}
.lang-btn.active{background:var(--accent2);border-color:rgba(124,106,247,0.35);color:var(--accent)}

/* Hero */
#hero{text-align:center;padding:5rem 1.5rem 2.5rem;position:relative;overflow:hidden}
#hero::before{content:'';position:absolute;top:-80px;left:50%;transform:translateX(-50%);
  width:900px;height:600px;
  background:radial-gradient(ellipse,rgba(139,124,248,0.26) 0%,rgba(120,100,255,0.10) 45%,transparent 70%);pointer-events:none}
.hero-tag{display:inline-block;padding:0.28rem 0.85rem;
  background:var(--accent2);border:1px solid rgba(124,106,247,0.3);
  border-radius:20px;font-size:0.65rem;font-weight:600;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--accent);margin-bottom:1.4rem}
#hero h1{font-size:clamp(2.2rem,5vw,3.4rem);font-weight:800;letter-spacing:-0.04em;
  line-height:1.08;margin-bottom:0.9rem;max-width:700px;margin-left:auto;margin-right:auto}
#hero h1 span,.hero-accent{background:linear-gradient(135deg,var(--accent),#a78bfa);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero-sub{font-size:0.95rem;color:var(--muted);font-weight:300;
  max-width:460px;margin:0 auto 1.6rem;line-height:1.65}

/* Deal ticker */
.deal-ticker{overflow:hidden;margin:0 auto 2rem;max-width:700px;
  border:1px solid var(--border);border-radius:30px;background:var(--bg2);
  padding:0.45rem 0;position:relative}
.deal-ticker::before,.deal-ticker::after{content:'';position:absolute;top:0;bottom:0;width:48px;z-index:2;pointer-events:none}
.deal-ticker::before{left:0;background:linear-gradient(90deg,var(--bg2),transparent)}
.deal-ticker::after{right:0;background:linear-gradient(-90deg,var(--bg2),transparent)}
.ticker-track{display:flex;gap:0;animation:ticker 22s linear infinite;width:max-content}
.deal-ticker:hover .ticker-track{animation-play-state:paused}
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.ticker-item{white-space:nowrap;font-size:0.7rem;color:var(--muted);
  padding:0 1.6rem;border-right:1px solid var(--border);display:flex;align-items:center;gap:0.3rem}
.ticker-item:last-child{border-right:none}
.ticker-item strong{color:var(--text);font-weight:700}

/* Quick presets */
.presets-row{display:flex;align-items:center;gap:0.4rem;flex-wrap:wrap;
  justify-content:center;margin:0 auto 1.4rem;max-width:700px}
.presets-label{font-size:0.62rem;font-weight:600;color:var(--dim);
  letter-spacing:0.08em;text-transform:uppercase;margin-right:0.2rem;white-space:nowrap}
.preset-chip{padding:0.36rem 0.85rem;border-radius:20px;border:1px solid var(--border2);
  background:var(--bg3);font-size:0.72rem;color:var(--muted);cursor:pointer;
  transition:all 0.14s;font-family:inherit;font-weight:500}
.preset-chip:hover{color:var(--text);background:var(--bg4);border-color:rgba(124,106,247,0.4)}
.preset-chip.active{background:var(--accent2);border-color:rgba(124,106,247,0.45);color:var(--accent)}

/* Search card */
.search-card{background:var(--bg2);border:1px solid var(--border2);border-radius:16px;
  padding:1.8rem 2rem;max-width:800px;margin:0 auto;box-shadow:0 24px 80px rgba(0,0,0,0.45)}
.search-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.8rem;margin-bottom:1rem}

/* Budget input */
.budget-wrap{position:relative;display:flex;align-items:center}
.budget-sym{position:absolute;left:1rem;font-size:0.84rem;font-weight:600;
  color:var(--muted);pointer-events:none;z-index:1}
.budget-num{padding-left:2rem !important;font-weight:600;letter-spacing:0.01em}
.budget-slider{width:100%;margin-top:0.55rem;-webkit-appearance:none;appearance:none;
  height:3px;border-radius:2px;background:var(--bg4);outline:none;cursor:pointer;
  background-image:linear-gradient(var(--accent),var(--accent));
  background-size:50% 100%;background-repeat:no-repeat}
.budget-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;
  border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--bg2);
  box-shadow:0 0 0 2px rgba(124,106,247,0.3)}
.budget-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;
  background:var(--accent);cursor:pointer;border:2px solid var(--bg2)}

/* Micro-copy hints */
.field-hint{font-size:0.62rem;color:var(--muted);margin:0.3rem 0 0;opacity:0.75}
.hint-dates{margin-bottom:0.1rem}

/* Date row */
/* Trip type toggle */
.trip-type-row{display:flex;gap:0.4rem;margin-bottom:0.75rem}
.trip-type-btn{padding:0.3rem 0.9rem;border-radius:20px;border:1px solid var(--border2);
  background:transparent;color:var(--muted);font-size:0.72rem;font-weight:600;
  cursor:pointer;font-family:inherit;transition:all 0.15s}
.trip-type-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.trip-type-btn:hover:not(.active){color:var(--text)}
/* Hide return date col in one-way mode */
.date-row-outer.oneway .date-col-return,
.date-row-outer.oneway .date-arrow{display:none}
.date-row-outer.oneway{grid-template-columns:1fr 1.4fr}

.date-row-outer{display:grid;grid-template-columns:1fr auto 1fr 1.4fr;
  align-items:end;gap:0.6rem;margin-bottom:1rem}
.date-col{display:flex;flex-direction:column;gap:0.4rem}
.date-arrow{font-size:0.9rem;color:var(--dim);padding-bottom:0.78rem;
  padding-left:0.1rem;padding-right:0.1rem}
.date-input{cursor:pointer}
.date-input::-webkit-calendar-picker-indicator{filter:invert(0.5) sepia(1) saturate(3) hue-rotate(200deg);cursor:pointer}
.flex-col .chip-group{flex-wrap:wrap}
.field{display:flex;flex-direction:column;gap:0.4rem}
.field-label{font-size:0.6rem;font-weight:600;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--dim);padding-left:2px}
.field-input{background:var(--bg3);border:1px solid var(--border2);border-radius:9px;
  padding:0.72rem 1rem;font-size:0.84rem;font-weight:500;color:var(--text);
  outline:none;font-family:inherit;transition:border-color 0.15s,background 0.15s;width:100%}
.field-input:focus{border-color:rgba(124,106,247,0.5);background:var(--bg4)}
select.field-input{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='rgba(240,240,248,0.3)' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;padding-right:2rem}
/* Trip length + adults row */
.search-row2{display:flex;align-items:center;gap:1.5rem;margin-bottom:1rem;flex-wrap:wrap}
.field-inline{display:flex;align-items:center;gap:0.6rem;flex-wrap:wrap}
.chip-group{display:flex;gap:0.3rem;flex-wrap:wrap}
.option-chip{padding:0.32rem 0.72rem;border-radius:20px;border:1px solid var(--border2);
  background:var(--bg3);font-size:0.7rem;color:var(--muted);cursor:pointer;
  transition:all 0.14s;font-family:inherit;font-weight:500}
.option-chip:hover{color:var(--text);background:var(--bg4)}
.option-chip.active{background:rgba(124,106,247,0.22);border-color:rgba(124,106,247,0.6);
  color:var(--accent);font-weight:600}
.option-chip.active::before{content:'✓ ';font-size:0.62rem;opacity:0.8}
.adults-field{margin-left:auto}
.adults-stepper{display:flex;align-items:center;gap:0.5rem}
.stepper-btn{width:26px;height:26px;border-radius:50%;border:1px solid var(--border2);
  background:var(--bg3);color:var(--text);font-size:1rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-family:inherit;
  transition:all 0.14s;line-height:1}
.stepper-btn:hover{background:var(--bg4);border-color:rgba(124,106,247,0.4)}
.stepper-val{font-size:0.88rem;font-weight:700;min-width:18px;text-align:center}
.stepper-label{font-size:0.68rem;color:var(--muted)}

.vibe-row{display:flex;gap:0.4rem;flex-wrap:wrap;margin-bottom:1.2rem;align-items:center}
.vibe-label{font-size:0.6rem;font-weight:600;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--dim);margin-right:0.3rem}
.vibe-chip{padding:0.38rem 0.8rem;border-radius:20px;border:1px solid var(--border2);
  background:var(--bg3);font-size:0.72rem;color:var(--muted);cursor:pointer;
  transition:all 0.14s;font-family:inherit;font-weight:500}
.vibe-chip:hover{color:var(--text);background:var(--bg4)}
.vibe-chip.active{background:rgba(124,106,247,0.22);border-color:rgba(124,106,247,0.6);
  color:var(--accent);font-weight:600;box-shadow:0 0 0 1px rgba(124,106,247,0.2)}
.vibe-chip.vibe-disabled,.vibe-chip:disabled{opacity:0.28;cursor:not-allowed;
  pointer-events:none;text-decoration:line-through;filter:grayscale(1)}
.vibe-override-hint{font-size:0.62rem;color:var(--dim);font-style:italic;
  width:100%;margin-top:0.3rem;display:block}
.search-btn{width:100%;padding:0.88rem;background:var(--accent);color:#fff;border:none;
  border-radius:10px;font-size:0.86rem;font-weight:700;cursor:pointer;font-family:inherit;
  transition:all 0.15s;display:flex;align-items:center;justify-content:center;gap:0.5rem}
.search-btn:hover{opacity:0.88;transform:translateY(-1px)}

/* Destination focus row */
.dest-focus-row{display:flex;align-items:flex-start;gap:0.7rem;margin-bottom:1rem;flex-wrap:wrap}
.dest-focus-label{font-size:0.6rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--dim);padding-top:0.62rem;white-space:nowrap;flex-shrink:0}
.dest-focus-hint{font-weight:400;letter-spacing:0;text-transform:none;opacity:0.65}
.dest-focus-wrap{position:relative;display:flex;flex:1;align-items:center;flex-wrap:wrap;gap:0.3rem;
  background:var(--bg3);border:1px solid var(--border2);border-radius:9px;
  padding:0.38rem 0.65rem;min-height:42px;cursor:text;transition:border-color 0.15s,background 0.15s}
.dest-focus-wrap.suggestions-open{border-radius:9px 9px 0 0}
.dest-focus-wrap:focus-within{border-color:rgba(124,106,247,0.5);background:var(--bg4)}
.dest-focus-input{border:none;background:transparent;font-size:0.8rem;color:var(--text);
  outline:none;font-family:inherit;flex:1;min-width:120px;padding:0.2rem 0.3rem}
.dest-focus-input::placeholder{color:var(--dim)}
.dest-chip{display:inline-flex;align-items:center;gap:0.25rem;
  padding:3px 8px 3px 10px;background:var(--green2);
  border:1px solid rgba(62,207,142,0.3);border-radius:20px;
  font-size:0.7rem;font-weight:600;color:var(--green);white-space:nowrap}
.dest-chip-remove{background:none;border:none;cursor:pointer;color:var(--green);
  opacity:0.55;padding:0;line-height:1;font-size:0.85rem;font-family:inherit}
.dest-chip-remove:hover{opacity:1}
/* Destination suggestions — appended inside dest-focus-wrap (position:relative) */
.dest-suggestions{position:absolute;top:100%;left:-1px;right:-1px;z-index:9999;
  background:var(--bg3);border:1px solid var(--border2);
  border-top:none;border-radius:0 0 10px 10px;overflow:hidden}
.dest-sug-row{display:flex;align-items:center;gap:0.5rem;padding:0.55rem 0.9rem;
  cursor:pointer;font-size:0.82rem;transition:background 0.12s}
.dest-sug-row:hover,.dest-sug-row.ac-active{background:var(--bg4)}
.ac-name{font-weight:600;color:var(--text);flex:1}
.ac-country{font-size:0.72rem;color:rgba(255,255,255,0.45)}
.ac-iata{font-size:0.68rem;font-weight:700;color:var(--green);opacity:0.7;
  background:rgba(124,106,247,0.12);padding:0.1rem 0.35rem;border-radius:4px}

/* "Your pick" pill on result card */
.card-pick-pill{font-size:0.56rem;font-weight:700;letter-spacing:0.08em;
  text-transform:uppercase;color:var(--green);background:var(--green2);
  border:1px solid rgba(62,207,142,0.3);border-radius:20px;padding:2px 7px;white-space:nowrap}

/* Search microcopy */
.search-microcopy{display:flex;justify-content:center;gap:1.4rem;
  margin-top:0.7rem;font-size:0.63rem;color:var(--dim);flex-wrap:wrap}

/* Skyscanner disclaimer */
.search-disclaimer{font-size:0.62rem;color:var(--dim);text-align:center;
  margin-top:0.45rem;line-height:1.55}
.search-disclaimer strong{color:var(--muted);font-weight:600}

/* Trust row */
.trust-row{display:flex;justify-content:center;gap:2rem;margin-top:1.8rem;
  font-size:0.7rem;color:var(--muted);flex-wrap:wrap}
.trust-item{display:flex;align-items:center;gap:0.35rem}
.trust-item strong{color:var(--text)}

/* Social proof */
#social-proof{max-width:900px;margin:0 auto 3rem;padding:0 1.5rem;text-align:center}
.sp-label{font-size:0.65rem;font-weight:600;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--dim);margin-bottom:1.4rem}
.sp-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:0.7rem}
.sp-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;
  padding:0.9rem 0.6rem;text-align:center;transition:border-color 0.15s,transform 0.15s}
.sp-card:hover{border-color:rgba(124,106,247,0.3);transform:translateY(-2px)}
.sp-flag{font-size:1.6rem;display:block;margin-bottom:0.4rem}
.sp-dest{font-size:0.8rem;font-weight:700;margin-bottom:0.15rem}
.sp-from{font-size:0.6rem;color:var(--dim);margin-bottom:0.5rem}
.sp-price{font-size:0.92rem;font-weight:800;color:var(--green)}
@media(max-width:860px){.sp-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.sp-grid{grid-template-columns:repeat(2,1fr)}}

/* How it works */
#how{max-width:800px;margin:4rem auto;padding:0 1.5rem}
.how-label{font-size:0.65rem;font-weight:600;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--dim);text-align:center;margin-bottom:2rem}
.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.how-card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:1.4rem}
.how-num{font-size:1.6rem;font-weight:800;color:var(--accent);opacity:0.3;
  letter-spacing:-0.04em;margin-bottom:0.6rem}
.how-card-title{font-size:0.82rem;font-weight:600;margin-bottom:0.4rem}
.how-card-sub{font-size:0.72rem;color:var(--muted);line-height:1.55}

/* Loading */
#loading{text-align:center;padding:4rem 1.5rem}
.spinner{width:32px;height:32px;border:2.5px solid var(--border2);
  border-top-color:var(--accent);border-radius:50%;
  animation:spin 0.65s linear infinite;margin:0 auto 1rem}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-text{font-size:0.82rem;color:var(--muted)}
.loading-sub{font-size:0.7rem;color:var(--dim);margin-top:0.3rem}

/* Results */
#results{max-width:1100px;margin:0 auto;padding:2.5rem 1.5rem 5rem}
.back-btn{display:inline-flex;align-items:center;gap:0.4rem;
  background:transparent;border:1px solid var(--border2);border-radius:7px;
  color:var(--muted);font-size:0.75rem;font-weight:600;cursor:pointer;
  padding:0.4rem 0.9rem;margin-bottom:1.2rem;font-family:inherit;
  transition:all 0.14s}
.back-btn:hover{color:var(--text);border-color:rgba(124,106,247,0.4)}
/* Results bar — inline search editor */
.results-bar{display:flex;align-items:center;gap:0.75rem;flex-wrap:wrap;
  background:var(--bg2);border:1px solid var(--border2);border-radius:12px;
  padding:0.65rem 1rem;margin-bottom:0.8rem}
.rbar-info{font-size:0.78rem;font-weight:600;color:var(--text);white-space:nowrap;flex:0 0 auto}
.rbar-budget-wrap{display:flex;align-items:center;gap:0.45rem;flex:1;min-width:160px}
.rbar-budget-sym{font-size:0.72rem;color:var(--dim);flex:0 0 auto}
.rbar-slider{flex:1;-webkit-appearance:none;height:4px;border-radius:2px;cursor:pointer;outline:none;
  background:linear-gradient(var(--accent),var(--accent)) no-repeat var(--bg4);
  background-size:60% 100%}
.rbar-slider::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;
  border-radius:50%;background:var(--accent);cursor:pointer;
  box-shadow:0 0 0 2px rgba(139,124,248,0.25)}
.rbar-slider::-moz-range-thumb{width:15px;height:15px;border-radius:50%;
  background:var(--accent);cursor:pointer;border:none}
.rbar-budget-val{font-size:0.8rem;font-weight:700;color:var(--accent);
  white-space:nowrap;min-width:72px;text-align:right;flex:0 0 auto}
.rbar-edit-btn{padding:0.35rem 0.85rem;border-radius:8px;border:1px solid var(--border2);
  background:var(--bg3);color:var(--muted);font-size:0.7rem;font-weight:500;
  cursor:pointer;white-space:nowrap;font-family:inherit;transition:all 0.14s;flex:0 0 auto}
.rbar-edit-btn:hover{color:var(--text);background:var(--bg4);border-color:rgba(139,124,248,0.45)}
/* Expandable edit panel */
.rbar-panel{display:none;align-items:center;gap:0.55rem;flex-wrap:wrap;
  background:var(--bg3);border:1px solid var(--border2);border-radius:10px;
  padding:0.65rem 1rem;margin-bottom:0.8rem;
  animation:fadeSlideDown 0.16s var(--ease)}
.rbar-panel.rbar-panel-open{display:flex}
@keyframes fadeSlideDown{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
.rbar-from-select,.rbar-date{padding:0.38rem 0.6rem;border-radius:7px;
  border:1px solid var(--border2);background:var(--bg4);color:var(--text);
  font-size:0.76rem;font-family:inherit;outline:none;color-scheme:dark}
.rbar-from-select{min-width:140px}
.rbar-date{min-width:118px}
.rbar-arrow{color:var(--dim);font-size:0.78rem;flex:0 0 auto}
.rbar-search-btn{padding:0.4rem 1rem;border-radius:8px;background:var(--accent);
  color:#fff;border:none;font-size:0.76rem;font-weight:600;cursor:pointer;
  font-family:inherit;transition:background 0.14s;flex:0 0 auto}
.rbar-search-btn:hover{background:#7c6ee0}

.results-header{display:flex;align-items:flex-start;justify-content:space-between;
  margin-bottom:1.2rem;flex-wrap:wrap;gap:0.8rem}
.results-title{font-size:1.05rem;font-weight:700;letter-spacing:-0.02em}
.results-sub{font-size:0.72rem;color:var(--muted);margin-top:0.2rem}
.results-live{font-size:0.68rem;color:var(--dim);display:flex;align-items:center;gap:0.4rem}
.live-dot{width:6px;height:6px;border-radius:50%;background:var(--green);
  animation:pulse 2s ease infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.4}}
.sort-row{display:flex;gap:0.4rem;margin-bottom:1.4rem;flex-wrap:wrap}
.sort-btn{padding:0.38rem 0.8rem;border-radius:6px;border:1px solid var(--border);
  background:var(--bg2);font-size:0.68rem;font-weight:600;color:var(--muted);
  cursor:pointer;font-family:inherit;transition:all 0.14s}
.sort-btn:hover{color:var(--text)}
.sort-btn.active{background:var(--accent2);border-color:rgba(124,106,247,0.3);color:var(--accent)}

/* ── Cards grid ── */
.cards-grid{display:flex;flex-direction:column;gap:0.9rem;max-width:860px;margin:0 auto}

/* ── Destination card — premium 2-column tile ── */
.dest-card{
  background:#171933;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:20px;
  overflow:visible;
  display:grid;
  grid-template-columns:58% 42%;
  min-height:180px;
  padding:22px 24px;
  gap:0 20px;
  align-items:center;
  transition:border-color 0.18s,box-shadow 0.18s,transform 0.14s;
  animation:cardIn 0.3s var(--ease) both;
  position:relative}
.dest-card:hover{
  border-color:rgba(139,124,248,0.35);
  box-shadow:0 8px 32px rgba(0,0,0,0.35),0 0 0 1px rgba(139,124,248,0.06);
  transform:translateY(-1px)}
.dest-card.best{
  border-color:rgba(139,124,248,0.5);
  background:#19193a;
  box-shadow:0 0 0 1px rgba(139,124,248,0.15),0 12px 40px rgba(0,0,0,0.3)}
@keyframes cardIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ── Col 1: Offer details ── */
.card-col1{display:flex;align-items:flex-start;gap:16px;min-width:0}
.card-flag{
  font-size:2.8rem;line-height:1;flex-shrink:0;
  width:52px;height:52px;
  display:flex;align-items:center;justify-content:center;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,0.35))}
.card-offer-block{flex:1;min-width:0;display:flex;flex-direction:column;gap:0.4rem}

/* Destination name */
.card-city{font-size:1.65rem;font-weight:800;letter-spacing:-0.04em;color:#fff;line-height:1.05}
.card-country{font-size:0.7rem;font-weight:600;color:rgba(235,235,255,0.45);
  text-transform:uppercase;letter-spacing:0.1em;margin-top:-3px}

/* Metadata row — real travel decision facts: dates + direct/stop */
.card-meta-row{display:flex;align-items:center;gap:0.4rem;flex-wrap:wrap;margin-top:3px}
.meta-icon{font-size:0.8rem;color:rgba(235,235,255,0.4);flex-shrink:0}
.meta-dates{font-size:0.82rem;font-weight:600;color:rgba(235,235,255,0.85)}
.meta-dot{font-size:0.7rem;color:rgba(235,235,255,0.25);flex-shrink:0}
.meta-stop{font-size:0.78rem;font-weight:600;color:rgba(235,235,255,0.5)}
.meta-direct{color:var(--green)}
.meta-nights{font-size:0.78rem;font-weight:500;color:rgba(235,235,255,0.55)}
/* Airline + duration row */
.card-airline-row{display:flex;align-items:center;gap:0.15rem;flex-wrap:wrap;margin-top:2px}
.airline-name{font-size:0.75rem;font-weight:600;color:rgba(235,235,255,0.7)}
.flight-duration{font-size:0.72rem;color:rgba(235,235,255,0.45)}
.flight-route{font-size:0.68rem;color:rgba(235,235,255,0.3);letter-spacing:0.02em}

/* Chips */
.card-chips{display:flex;align-items:center;gap:0.3rem;flex-wrap:wrap;margin-top:2px}
.card-chip{padding:3px 9px;border-radius:20px;font-size:0.6rem;font-weight:700;
  letter-spacing:0.04em;white-space:nowrap}
.chip-direct{background:rgba(62,207,142,0.12);color:#3ecf8e;border:1px solid rgba(62,207,142,0.25)}
.chip-pick{background:rgba(139,124,248,0.14);color:var(--accent);border:1px solid rgba(139,124,248,0.28)}
.chip-best{background:rgba(240,180,60,0.1);color:var(--warn);border:1px solid rgba(240,180,60,0.22)}
.chip-tag{background:rgba(255,255,255,0.05);color:rgba(235,235,255,0.45);border:1px solid rgba(255,255,255,0.08)}

/* One-line emotional microcopy */
.card-tagline{font-size:0.78rem;color:rgba(235,235,255,0.5);line-height:1.4;font-style:italic}

/* ── Col 2: Price + Action ── */
.card-col2{display:flex;flex-direction:column;align-items:flex-end;gap:0.5rem;
  border-left:1px solid rgba(255,255,255,0.07);padding-left:20px;min-width:0}
.card-price{font-size:clamp(1.35rem,3.2vw,1.95rem);font-weight:800;letter-spacing:-0.04em;
  color:#fff;line-height:1;white-space:nowrap}
.card-price-label{font-size:0.65rem;color:rgba(235,235,255,0.42);margin-top:-3px}
.card-total-row{font-size:0.66rem;color:var(--accent);font-weight:600;
  padding:2px 7px;background:var(--accent2);border-radius:5px;
  white-space:nowrap;margin-top:-2px}

/* Value badge */
.value-badge{padding:3px 9px;border-radius:5px;font-size:0.58rem;font-weight:700;
  letter-spacing:0.07em;text-transform:uppercase;white-space:nowrap}
.value-great{background:rgba(62,207,142,0.14);color:#3ecf8e;border:1px solid rgba(62,207,142,0.25)}
.value-good{background:rgba(139,124,248,0.13);color:var(--accent);border:1px solid rgba(139,124,248,0.26)}
.value-fair{background:rgba(240,180,60,0.1);color:var(--warn);border:1px solid rgba(240,180,60,0.2)}

/* Primary CTA */
.btn-book{
  width:100%;padding:0.68rem 1rem;
  background:linear-gradient(135deg,#8b7cf8,#6c5ce7);
  color:#fff;border:none;border-radius:10px;
  font-size:0.8rem;font-weight:700;cursor:pointer;font-family:inherit;
  transition:opacity 0.14s,transform 0.1s,box-shadow 0.14s;
  white-space:nowrap;text-align:center;
  box-shadow:0 4px 16px rgba(108,92,231,0.35)}
.btn-book:hover{opacity:0.91;transform:translateY(-1px);box-shadow:0 6px 22px rgba(108,92,231,0.45)}
.btn-book-ext{font-size:0.7rem;opacity:0.7;margin-left:3px}

/* Secondary actions — 2 buttons: Calendar + Alert */
.card-sec-row{display:flex;align-items:center;gap:0.4rem;width:100%;justify-content:flex-end}
.btn-alert,.btn-cal{
  display:flex;align-items:center;gap:0.3rem;
  padding:0.35rem 0.7rem;
  background:rgba(255,255,255,0.04);
  color:rgba(235,235,255,0.55);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:8px;font-size:0.68rem;font-weight:500;
  cursor:pointer;font-family:inherit;flex:1;justify-content:center;
  transition:background 0.12s,color 0.12s,border-color 0.12s;
  line-height:1;white-space:nowrap}
.btn-alert:hover{background:rgba(139,124,248,0.14);color:var(--accent);border-color:rgba(139,124,248,0.32)}
.btn-cal:hover{background:rgba(62,207,142,0.12);color:var(--green);border-color:rgba(62,207,142,0.3)}
.sec-lbl{font-size:0.66rem}

/* Cheapest date — async injected below secondary actions */
.card-best-date{font-size:0.68rem;color:var(--green);font-weight:600;
  text-align:right;margin-top:2px;white-space:nowrap}

/* Signal badges */
.signal-badge{padding:3px 7px;border-radius:5px;font-size:0.56rem;font-weight:700;
  letter-spacing:0.06em;text-transform:uppercase;flex-shrink:0;white-space:nowrap}
.sig-buy{background:var(--green2);color:var(--green)}
.sig-wait{background:var(--warn2);color:var(--warn)}
.sig-hot{background:var(--accent2);color:var(--accent)}

/* Mobile: stack vertically */
@media(max-width:600px){
  .dest-card{grid-template-columns:1fr;min-height:unset;padding:18px;gap:16px 0;align-items:start}
  .card-col2{grid-row:2;border-left:none;padding-left:0;align-items:stretch;
    border-top:1px solid rgba(255,255,255,0.07);padding-top:16px}
  .card-price{font-size:1.65rem}
  .card-city{font-size:1.35rem}
  .card-sec-row{justify-content:flex-start}
  .card-best-date{text-align:left}
}

.no-results{text-align:center;padding:3rem;color:var(--muted);font-size:0.82rem}
.no-results strong{display:block;font-size:1rem;color:var(--text);margin-bottom:0.5rem}
.no-results-wrap{text-align:center;padding:3.5rem 1rem;grid-column:1/-1}
.no-results-icon{font-size:2.5rem;margin-bottom:1rem}
.no-results-title{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:0.6rem}
.no-results-sub{font-size:0.82rem;color:var(--muted);line-height:1.6;max-width:360px;margin:0 auto 1.4rem}
.no-results-sub strong{color:var(--text)}
.no-results-fix-btn{background:var(--accent);color:#fff;border:none;border-radius:9px;
  padding:0.65rem 1.4rem;font-size:0.82rem;font-weight:700;cursor:pointer;font-family:inherit;
  transition:opacity 0.15s}
.no-results-fix-btn:hover{opacity:0.85}

/* Modal */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.72);
  backdrop-filter:blur(5px);z-index:200;display:none;align-items:center;
  justify-content:center;padding:1.5rem}
.modal-overlay.visible{display:flex}
.modal{background:var(--bg2);border:1px solid var(--border2);border-radius:16px;
  padding:2rem;max-width:400px;width:100%;animation:modalIn 0.22s var(--ease) both}
@keyframes modalIn{from{opacity:0;transform:scale(0.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}
.modal-title{font-size:1rem;font-weight:700;margin-bottom:0.3rem}
.modal-sub{font-size:0.73rem;color:var(--muted);margin-bottom:1.4rem;line-height:1.55}
.modal-dest-card{background:var(--bg3);border:1px solid var(--border);border-radius:9px;
  padding:0.85rem 1rem;margin-bottom:1.2rem;display:flex;align-items:center;justify-content:space-between}
.modal-dest-name{font-weight:700;font-size:0.88rem}
.modal-dest-country{font-size:0.65rem;color:var(--muted);margin-top:1px}
.modal-dest-price{font-size:1.1rem;font-weight:800;color:var(--accent)}
/* Alert trigger grid */
.alert-trigger-label{font-size:0.62rem;font-weight:600;letter-spacing:0.08em;
  text-transform:uppercase;color:var(--dim);margin-bottom:0.6rem}
.alert-trigger-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;margin-bottom:1rem}
.alert-trigger-btn{background:var(--bg3);border:1px solid var(--border);border-radius:10px;
  padding:0.7rem 0.8rem;text-align:left;cursor:pointer;font-family:inherit;
  transition:all 0.15s;display:flex;flex-direction:column;gap:0.15rem}
.alert-trigger-btn:hover{border-color:rgba(139,124,248,0.4);background:var(--bg4)}
.alert-trigger-btn.active{border-color:rgba(139,124,248,0.6);background:rgba(139,124,248,0.12)}
.trigger-icon{font-size:1.1rem;margin-bottom:0.1rem}
.trigger-title{font-size:0.75rem;font-weight:700;color:var(--text)}
.trigger-sub{font-size:0.62rem;color:var(--muted)}
.alert-trigger-btn.active .trigger-title{color:var(--accent)}
/* Threshold row */
.threshold-row{display:flex;align-items:center;gap:0.8rem;margin-bottom:0.9rem}
.threshold-label{font-size:0.68rem;font-weight:600;color:var(--muted);white-space:nowrap}
.threshold-input-wrap{position:relative;flex:1}
.threshold-sym{position:absolute;left:0.8rem;top:50%;transform:translateY(-50%);
  font-size:0.82rem;font-weight:600;color:var(--muted);pointer-events:none}
.threshold-input{padding-left:1.8rem !important;margin-bottom:0 !important;
  font-weight:700 !important}
.threshold-input::-webkit-inner-spin-button,.threshold-input::-webkit-outer-spin-button{-webkit-appearance:none}
.modal-privacy-note{font-size:0.62rem;color:var(--dim);margin-bottom:0.7rem;line-height:1.5}
/* Turnstile widget */
#cf-turnstile{margin-bottom:0.8rem;min-height:65px}
.turnstile-error{font-size:0.62rem;color:#f87171;margin-bottom:0.5rem;display:none}
.turnstile-error.visible{display:block}

.modal-input{background:var(--bg3);border:1px solid var(--border2);border-radius:9px;
  padding:0.72rem 1rem;font-size:0.84rem;color:var(--text);outline:none;
  font-family:inherit;width:100%;margin-bottom:0.8rem;transition:border-color 0.15s}
.modal-input:focus{border-color:rgba(124,106,247,0.5)}
.modal-input.error{border-color:rgba(238,85,85,0.5)}
.modal-hint{font-size:0.63rem;color:var(--dim);margin-bottom:0.9rem;line-height:1.5}
.modal-btn{width:100%;padding:0.72rem;background:var(--accent);color:#fff;border:none;
  border-radius:9px;font-size:0.8rem;font-weight:700;cursor:pointer;font-family:inherit;
  margin-bottom:0.6rem;transition:opacity 0.14s}
.modal-btn:hover{opacity:0.88}
.modal-btn:disabled{opacity:0.4;cursor:not-allowed}
.modal-cancel{width:100%;padding:0.5rem;background:transparent;color:var(--muted);
  border:none;font-size:0.72rem;cursor:pointer;font-family:inherit}
.modal-success{display:none;text-align:center;padding:0.8rem 0}
.modal-success.visible{display:block}
.success-emoji{font-size:2.8rem;margin-bottom:0.8rem}
.success-title{font-size:0.95rem;font-weight:700;margin-bottom:0.4rem}
.success-sub{font-size:0.73rem;color:var(--muted);line-height:1.6}

/* ── Responsive ── */
@media(max-width:860px){
  .how-grid{grid-template-columns:1fr}
}

@media(max-width:560px){
  /* Nav */
  nav{padding:0.9rem 1.1rem}
  .nav-link{display:none}
  .nav-cta{display:none}
  .lang-btn{font-size:0.6rem;padding:0.28rem 0.5rem}

  /* Hero */
  #hero{padding:3rem 1rem 1.5rem}
  #hero h1{font-size:clamp(1.9rem,8vw,2.5rem)}
  .hero-sub{font-size:0.88rem;margin-bottom:1.4rem}
  .deal-ticker{margin-bottom:1.4rem}

  /* Search card */
  .search-card{padding:1.2rem 1rem;border-radius:12px}
  .search-grid{grid-template-columns:1fr}
  .date-row-outer{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}
  .date-arrow{display:none}
  .flex-col{grid-column:1/-1}
  .field-input{padding:0.82rem 1rem;font-size:0.9rem}  /* bigger tap target */
  .search-row2{gap:0.8rem}
  .option-chip{padding:0.42rem 0.85rem;font-size:0.74rem}
  .vibe-chip{padding:0.44rem 0.88rem;font-size:0.74rem}
  .vibe-row{gap:0.35rem}
  .search-btn{padding:1rem;font-size:0.9rem;border-radius:11px} /* full-width sticky feel */
  .stepper-btn{width:32px;height:32px;font-size:1.1rem}

  /* Trust row */
  .trust-row{gap:1rem;flex-wrap:wrap;justify-content:center}
  .trust-item{font-size:0.68rem}

  /* Results */
  #results{padding:1.5rem 0.9rem 5rem}
  .results-title{font-size:0.95rem}
  .sort-row{gap:0.3rem}
  .sort-btn{padding:0.42rem 0.85rem;font-size:0.7rem}

  /* Cards — handled by .dest-card @media(max-width:540px) block above */
  .cards-grid{gap:0.45rem}
  .card-city{font-size:0.9rem}
  .btn-book{font-size:0.68rem;padding:0.4rem 0.65rem}

  /* Modal */
  .modal{padding:1.5rem 1.2rem;border-radius:14px}
  .modal-input{padding:0.82rem 1rem;font-size:0.9rem}
  .modal-btn{padding:0.82rem;font-size:0.84rem}
}
/* Footer */
footer{border-top:1px solid var(--border);padding:2rem 1.5rem;margin-top:2rem}
.footer-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;
  justify-content:space-between;flex-wrap:wrap;gap:1rem}
.footer-logo{display:flex;align-items:center}
.footer-links{display:flex;gap:1.5rem}
.footer-links a{font-size:0.72rem;color:var(--muted);text-decoration:none}
.footer-links a:hover{color:var(--text)}
.footer-legal{font-size:0.65rem;color:var(--dim)}
@media(max-width:560px){.footer-inner{flex-direction:column;align-items:flex-start;gap:0.6rem}}
/* Window sweep summary */
.window-summary{background:rgba(62,207,142,0.07);border:1px solid rgba(62,207,142,0.18);
  border-radius:10px;padding:0.65rem 1rem;font-size:0.73rem;color:rgba(210,255,230,0.75);
  line-height:1.5;margin-bottom:1.1rem}
/* Focus-miss notice */
.focus-miss-notice{background:rgba(139,124,248,0.08);border:1px solid rgba(139,124,248,0.25);
  border-radius:10px;padding:0.7rem 1rem;font-size:0.75rem;color:rgba(235,235,255,0.75);
  line-height:1.5;margin-bottom:1rem}
.focus-miss-notice strong{color:#f4f4fb}
.miss-link{color:var(--accent);text-decoration:none;white-space:nowrap}
.miss-link:hover{text-decoration:underline}

/* ── Trip Summary Modal ── */
.trip-modal-overlay{align-items:center;justify-content:center}
.trip-modal-overlay[style*="flex"]{display:flex !important}
.trip-modal-inner{max-width:480px;width:100%;padding:0;overflow:hidden;display:flex;flex-direction:column;max-height:90vh}
.trip-modal-header{display:flex;align-items:flex-start;justify-content:space-between;
  padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--border)}
.trip-modal-title{font-size:1.05rem;font-weight:700;margin:0}
.trip-modal-sub{font-size:0.72rem;color:var(--muted);margin-top:3px}
.trip-close-btn{background:none;border:none;color:var(--muted);font-size:1.4rem;
  cursor:pointer;line-height:1;padding:0 0.2rem;margin-left:1rem;flex-shrink:0}
.trip-close-btn:hover{color:var(--text)}
.trip-modal-body{overflow-y:auto;padding:1.2rem 1.5rem;flex:1}
.trip-loading{text-align:center;color:var(--muted);padding:2rem 0;font-size:0.82rem}

/* Leg section */
.trip-leg{margin-bottom:1.4rem}
.trip-leg:last-child{margin-bottom:0}
.trip-leg-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.9rem}
.trip-leg-label{font-size:0.7rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.trip-leg-duration{font-size:0.72rem;color:var(--dim);display:flex;align-items:center;gap:0.3rem}

/* Timeline */
.trip-timeline{display:flex;flex-direction:column;gap:0}
.trip-stop{display:grid;grid-template-columns:52px 1fr;gap:0.6rem;align-items:start}
.trip-time-col{text-align:right}
.trip-time{font-size:1.05rem;font-weight:700;line-height:1}
.trip-date-small{font-size:0.6rem;color:var(--dim);margin-top:2px}
.trip-airport-name{font-size:0.78rem;font-weight:600;line-height:1.2}
.trip-airport-city{font-size:0.64rem;color:var(--muted);margin-top:1px}

/* Connector */
.trip-connector{display:grid;grid-template-columns:52px 1fr;gap:0.6rem;align-items:center;
  padding:0.4rem 0}
.trip-connector-line-col{display:flex;justify-content:flex-end;padding-right:4px}
.trip-connector-line{width:1px;height:32px;background:var(--border2);margin-left:auto;margin-right:2px}
.trip-connector-info{display:flex;flex-direction:column;gap:2px;padding-left:2px}
.trip-airline-row{display:flex;align-items:center;gap:0.4rem}
.trip-airline-logo{width:16px;height:16px;border-radius:3px;object-fit:contain}
.trip-airline-name{font-size:0.72rem;color:var(--muted)}
.trip-flight-meta{font-size:0.65rem;color:var(--dim)}
.trip-direct-badge{display:inline-block;background:rgba(46,213,115,0.12);
  color:#2ed573;border-radius:4px;padding:1px 6px;font-size:0.6rem;font-weight:600;margin-left:4px}

/* Divider between outbound/return */
.trip-leg-divider{border:none;border-top:1px dashed var(--border);margin:1.2rem 0}

/* Footer */
.trip-modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;gap:1rem}
.trip-price-row{display:flex;align-items:baseline;gap:0.3rem}
.trip-price-label{font-size:0.68rem;color:var(--muted)}
.trip-price-val{font-size:1.4rem;font-weight:800;color:var(--green)}
.trip-price-pp{font-size:0.65rem;color:var(--dim)}
.trip-book-btn{background:var(--accent);color:#fff;border:none;border-radius:10px;
  padding:0.65rem 1.2rem;font-size:0.82rem;font-weight:600;cursor:pointer;
  font-family:inherit;white-space:nowrap}
.trip-book-btn:hover{opacity:0.88}


@media(max-width:540px){
  .trip-modal-inner{border-radius:14px 14px 0 0;max-height:92vh;margin-top:auto}
  .trip-modal-overlay.open{align-items:flex-end;padding:0}
  .trip-modal-footer{flex-direction:column;gap:0.6rem}
  .trip-book-btn{width:100%}
}

/* Email copy toast */
.email-toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(12px);
  background:var(--bg2);border:1px solid var(--border2);border-radius:10px;
  padding:0.6rem 1.2rem;font-size:0.78rem;color:var(--text);
  opacity:0;pointer-events:none;transition:opacity 0.2s,transform 0.2s;z-index:999;white-space:nowrap}
.email-toast.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}

/* Sticky mobile CTA */
.sticky-cta{display:none}
@media(max-width:560px){
  .sticky-cta{display:block;position:fixed;bottom:0;left:0;right:0;z-index:90;
    padding:0.8rem 1rem;background:rgba(13,13,20,0.96);backdrop-filter:blur(12px);
    border-top:1px solid var(--border);
    transform:translateY(100%);transition:transform 0.25s var(--ease)}
  .sticky-cta.visible{transform:translateY(0)}
  .sticky-cta button{width:100%;padding:0.9rem;background:var(--accent);color:#fff;
    border:none;border-radius:10px;font-size:0.88rem;font-weight:700;
    cursor:pointer;font-family:inherit;display:flex;align-items:center;
    justify-content:center;gap:0.5rem}
}

::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}

/* More filters toggle */
.more-filters-toggle{display:flex;align-items:center;gap:0.45rem;
  background:transparent;border:1px solid var(--border);border-radius:8px;
  color:var(--muted);font-size:0.76rem;font-weight:600;font-family:inherit;
  cursor:pointer;padding:0.45rem 0.9rem;margin-top:0.75rem;
  transition:color 0.15s,border-color 0.15s}
.more-filters-toggle:hover{color:var(--text);border-color:var(--border2)}
.more-filters-chevron{width:14px;height:14px;transition:transform 0.22s var(--ease);flex-shrink:0}
.more-filters-chevron.open{transform:rotate(180deg)}

/* More filters panel — max-height animation only, NO opacity (opacity creates stacking context) */
.more-filters-panel{overflow:hidden;max-height:0;
  transition:max-height 0.35s var(--ease);
  position:relative}
.more-filters-panel.open{max-height:600px;overflow:visible;z-index:10}

/* Inline flex row for flexibility chips */
.flex-row-inline{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:0.6rem}

/* Extra travellers row (children + infants) */
.extra-travellers-row{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:0.9rem;align-items:center}
.extra-travellers-row .traveller-group{display:flex;align-items:center;gap:0.6rem}
.extra-travellers-row .traveller-label{font-size:0.78rem;color:var(--muted);font-weight:500;min-width:60px}
.extra-travellers-row .stepper-btn{width:28px;height:28px;border-radius:50%;border:1px solid var(--border2);
  background:var(--bg3);color:var(--text);font-size:1rem;font-weight:700;
  cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;
  transition:background 0.14s,border-color 0.14s;line-height:1}
.extra-travellers-row .stepper-btn:hover{background:var(--bg4);border-color:var(--accent)}
.extra-travellers-row .stepper-val{min-width:20px;text-align:center;font-size:0.9rem;font-weight:700}

/* Value badge on cards */
.value-badge{display:inline-block;font-size:0.64rem;font-weight:700;
  border-radius:5px;padding:0.18rem 0.52rem;letter-spacing:0.04em;
  vertical-align:middle;margin-left:0.5rem;text-transform:uppercase}
.value-great{background:rgba(62,207,142,0.18);color:#3ecf8e;border:1px solid rgba(62,207,142,0.3)}
.value-good{background:rgba(100,190,80,0.15);color:#72d45a;border:1px solid rgba(100,190,80,0.25)}
.value-fair{background:rgba(240,180,60,0.12);color:#f0b43c;border:1px solid rgba(240,180,60,0.2)}
.value-near{background:rgba(248,100,80,0.12);color:#f87265;border:1px solid rgba(248,100,80,0.2)}

/* Redirect note under book button */
.book-redirect-note{font-size:0.67rem;color:var(--dim);margin-top:0.5rem;text-align:center;
  line-height:1.4}

/* Card date-updated flash */
@keyframes cardFlash{0%{box-shadow:0 0 0 2px rgba(62,207,142,0.6)}100%{box-shadow:none}}
.card-date-updated{animation:cardFlash 0.6s ease-out forwards}

/* ── Alert channel tabs ─────────────────────────────────────────────────────── */
.alert-channel-tabs{display:flex;gap:0.4rem;margin:1rem 0 0.6rem}
.channel-tab{flex:1;padding:0.5rem;border-radius:9px;border:1px solid var(--border2);
  background:var(--bg3);color:var(--muted);font-size:0.78rem;font-weight:600;
  cursor:pointer;font-family:inherit;transition:all 0.14s}
.channel-tab:hover{color:var(--text);border-color:rgba(124,106,247,0.4)}
.channel-tab.active{background:var(--accent2);border-color:rgba(124,106,247,0.5);color:var(--accent)}

/* ── Calendar modal ─────────────────────────────────────────────────────────── */
.cal-modal-inner{max-width:680px;width:calc(100vw - 2rem);max-height:90vh;overflow-y:auto;padding:1.6rem}
.cal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:0.8rem}
.cal-dest-label{font-size:0.82rem;color:var(--muted);margin-top:0.2rem}
.cal-price-def{font-size:0.7rem;color:var(--dim);margin-top:0.15rem;letter-spacing:0.01em}
.cal-close-btn{background:var(--bg3);border:1px solid var(--border);border-radius:8px;
  width:32px;height:32px;color:var(--muted);font-size:1.1rem;cursor:pointer;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-family:inherit;margin-left:1rem}
.cal-close-btn:hover{color:var(--text);border-color:var(--border2)}

.cal-legend{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
  font-size:0.72rem;color:var(--muted);margin-bottom:1rem;padding-bottom:0.8rem;
  border-bottom:1px solid var(--border)}
.cal-legend-item{display:flex;align-items:center;gap:0.35rem}
.cal-dot{width:10px;height:10px;border-radius:3px;display:inline-block}
.cal-dot-cheap{background:#3ecf8e}
.cal-dot-mid{background:#f0b43c}
.cal-dot-pricey{background:#f87265}
.cal-direct-hint{color:var(--dim);margin-left:auto}

.cal-month{margin-bottom:2rem}
.cal-month-label{font-size:0.78rem;font-weight:700;color:var(--text);margin-bottom:0.6rem;
  letter-spacing:0.04em;text-transform:uppercase}
.cal-week-headers{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;
  margin-bottom:4px;text-align:center}
.cal-week-headers span{font-size:0.62rem;font-weight:600;color:var(--dim);padding:0.25rem 0}
.cal-body{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}

.cal-day{border-radius:7px;padding:0.35rem 0.25rem;cursor:pointer;position:relative;
  display:flex;flex-direction:column;align-items:center;gap:0.1rem;
  position:relative;border:1px solid transparent;transition:all 0.12s;min-height:52px;
  justify-content:center}
.cal-day:hover{border-color:rgba(255,255,255,0.25);transform:scale(1.04);z-index:1}
.cal-day:focus{outline:2px solid var(--accent);outline-offset:1px}
.cal-day-pad{opacity:0;pointer-events:none}
.cal-day-nodata{background:rgba(255,255,255,0.03);color:var(--dim);pointer-events:none;cursor:default}
.cal-day-nodata .cal-day-num{opacity:0.35}
/* Days outside the search window — visually muted */
.cal-day-out{background:transparent;color:rgba(255,255,255,0.1);pointer-events:none;cursor:default}
.cal-day-out .cal-day-num{opacity:0.2}
/* Weekend days with no price — subtle border hint */
.cal-weekend-empty{border:1px solid rgba(124,106,247,0.12)}
/* Weekend days with price — subtle purple tint */
.cal-weekend{border:1px solid rgba(124,106,247,0.25);background-color:rgba(124,106,247,0.06)}
/* Other weekend departure/return markers (non-best) */
.cal-wknd-dep{box-shadow:0 0 0 1px rgba(124,106,247,0.4)}
.cal-wknd-ret{box-shadow:0 0 0 1px rgba(62,207,142,0.3)}
.cal-day-num{font-size:0.72rem;font-weight:700;line-height:1}
.cal-day-price{font-size:0.6rem;font-weight:500;line-height:1;opacity:0.9}
.cal-direct-icon{position:absolute;top:2px;right:3px;font-size:0.52rem;opacity:0.7}

/* Heat map colors */
.cal-cheap{background:rgba(62,207,142,0.18);color:#3ecf8e}
.cal-cheap:hover{background:rgba(62,207,142,0.32)}
.cal-mid{background:rgba(240,180,60,0.16);color:#f0b43c}
.cal-mid:hover{background:rgba(240,180,60,0.28)}
.cal-pricey{background:rgba(248,114,101,0.16);color:#f87265}
.cal-pricey:hover{background:rgba(248,114,101,0.28)}
/* Glowing best weekend pair */
.cal-glow-dep{box-shadow:0 0 0 2px #7c6af7, 0 0 14px 3px rgba(124,106,247,0.55) !important;
  z-index:2;position:relative;border-radius:8px}
.cal-glow-ret{box-shadow:0 0 0 2px #3ecf8e, 0 0 14px 3px rgba(62,207,142,0.45) !important;
  z-index:2;position:relative;border-radius:8px}
.cal-cheapest{box-shadow:0 0 0 2px #f0b43c, 0 0 10px 2px rgba(240,180,60,0.35) !important;
  z-index:1;position:relative}
.cal-best-badge{position:absolute;top:2px;right:2px;font-size:0.45rem;font-weight:800;
  background:#7c6af7;color:#fff;border-radius:3px;padding:1px 3px;letter-spacing:0.05em}
.cal-best-badge-ret{background:#3ecf8e;color:#0d0d1a}
.cal-best-banner{background:rgba(124,106,247,0.12);border:1px solid rgba(124,106,247,0.3);
  border-radius:10px;padding:0.6rem 1rem;font-size:0.75rem;color:var(--text);
  margin-bottom:1rem;line-height:1.5}

.cal-loading{text-align:center;color:var(--muted);font-size:0.88rem;padding:2rem 0}
.cal-note{font-size:0.68rem;color:var(--dim);text-align:center;margin-top:1rem;line-height:1.5}

@media(max-width:480px){
  .cal-day{min-height:44px;padding:0.25rem 0.15rem}
  .cal-day-num{font-size:0.65rem}
  .cal-day-price{font-size:0.54rem}
  .cal-body{gap:2px}
}
