:root {
  --navy: #07142f;
  --navy-2: #0b1f46;
  --ink: #11213d;
  --muted: #66738a;
  --line: #dfe5ef;
  --surface: #ffffff;
  --soft: #f4f7fb;
  --gold: #ffd166;
  --orange: #ff8a4c;
  --teal: #55d7c6;
  --shadow: 0 28px 80px rgba(6, 21, 52, 0.14);
  --radius-xl: 34px;
  --radius-lg: 24px;
  --radius-md: 18px;
  --header-height: 82px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: #eef2f8;
  font-family: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
body.modal-open { overflow: hidden; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; }
svg { display: block; }

.page-shell {
  max-width: 1600px;
  margin: 0 auto;
  background: #fff;
  min-height: 100vh;
  overflow: hidden;
  box-shadow: 0 0 80px rgba(4, 16, 40, .08);
}

.site-header {
  position: relative;
  z-index: 30;
  height: var(--header-height);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 28px;
  padding: 0 clamp(24px, 5vw, 78px);
  background: rgba(7, 20, 47, .96);
  color: #fff;
}
.brand { display: inline-flex; align-items: center; gap: 11px; font-family: "Manrope", sans-serif; font-size: 23px; font-weight: 800; letter-spacing: -.7px; width: max-content; }
.brand-mark { width: 38px; height: 38px; display: inline-grid; place-items: center; border-radius: 13px; color: var(--gold); background: rgba(255,255,255,.08); }
.brand-mark svg { width: 30px; height: 30px; }
.desktop-nav { display: flex; align-items: center; gap: clamp(22px, 3vw, 46px); font-size: 14px; font-weight: 600; color: rgba(255,255,255,.75); }
.desktop-nav a { position: relative; transition: color .2s ease; }
.desktop-nav a:hover { color: #fff; }
.desktop-nav a::after { content:""; position:absolute; left: 0; right: 100%; bottom: -10px; height: 2px; border-radius: 2px; background: var(--gold); transition: right .2s ease; }
.desktop-nav a:hover::after { right: 0; }
.header-actions { justify-self: end; display: flex; align-items: center; gap: 10px; }
.ghost-button, .login-button { min-height: 44px; border: 1px solid rgba(255,255,255,.14); border-radius: 14px; color: #fff; background: rgba(255,255,255,.06); display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 15px; font-weight: 600; }
.ghost-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.login-button { background: #fff; color: var(--navy); padding-inline: 18px; }
.user-dot { width: 20px; height: 20px; border-radius: 50%; background: linear-gradient(145deg, var(--gold), var(--orange)); box-shadow: inset 0 0 0 5px rgba(255,255,255,.35); }
.menu-button { display:none; width: 44px; height:44px; padding: 11px; border-radius: 13px; border:1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); }
.menu-button span { display:block; height:2px; background:#fff; margin:4px 0; border-radius:2px; }
.mobile-menu { position: absolute; z-index: 40; top: var(--header-height); right: 18px; left: 18px; padding: 15px; background: #fff; border-radius: 18px; box-shadow: var(--shadow); }
.mobile-menu a { display:block; padding: 13px 14px; border-radius: 12px; font-weight: 700; }
.mobile-menu a:hover { background: var(--soft); }

.hero-section {
  position: relative;
  min-height: 650px;
  display: grid;
  grid-template-columns: .88fr 1.12fr;
  align-items: stretch;
  color: #fff;
  background:
    radial-gradient(circle at 28% 30%, rgba(46, 102, 171, .34), transparent 35%),
    linear-gradient(115deg, #07142f 0%, #091b3d 50%, #122a4b 100%);
}
.hero-section::after { content:""; position:absolute; inset:auto 0 0; height:110px; background: linear-gradient(180deg, transparent, rgba(4,14,34,.18)); pointer-events:none; }
.hero-copy { position: relative; z-index: 3; align-self: center; padding: 70px 20px 160px clamp(30px, 7vw, 110px); max-width: 660px; }
.eyebrow, .section-kicker { display:inline-flex; align-items:center; gap:9px; color: #e6a74e; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; font-weight: 800; }
.eyebrow span { width: 28px; height: 2px; background: var(--gold); }
.hero-copy h1 { margin: 20px 0 20px; font: 800 clamp(55px, 7.1vw, 108px)/.88 "Manrope", sans-serif; letter-spacing: clamp(-5px, -.06em, -2px); }
.hero-copy h1 em { color: transparent; font-style: normal; -webkit-text-stroke: 1.6px rgba(255,255,255,.75); }
.hero-copy > p { max-width: 510px; color: rgba(255,255,255,.68); font-size: clamp(16px, 1.3vw, 19px); line-height: 1.65; }
.hero-proof { display:flex; align-items:center; gap: 14px; margin-top: 28px; }
.avatar-stack { display:flex; }
.avatar-stack span { width: 38px; height:38px; border-radius:50%; border:3px solid var(--navy); background-size: cover; background-position:center; margin-left:-9px; }
.avatar-stack span:first-child { margin-left:0; }
.hero-proof strong { display:block; font-size:14px; }
.hero-proof small { display:block; color:rgba(255,255,255,.55); margin-top:2px; }
.hero-visual { position:relative; min-height: 650px; overflow:hidden; clip-path: polygon(12% 0,100% 0,100% 100%,0 100%); }
.hero-visual::after { content:""; position:absolute; inset:0; background: linear-gradient(90deg, #091a3a 0%, transparent 24%), linear-gradient(0deg, rgba(6,20,44,.56), transparent 45%); }
.hero-visual img { width:100%; height:100%; object-fit:cover; object-position:center 52%; filter:saturate(.9) contrast(1.05); }
.sun-halo { position:absolute; z-index:1; width:350px; height:350px; border-radius:50%; top:60px; right:14%; background:radial-gradient(circle, rgba(255,209,102,.58), rgba(255,174,89,.17) 44%, transparent 70%); filter: blur(2px); }
.floating-card { position:absolute; z-index:4; display:flex; gap:12px; align-items:center; border:1px solid rgba(255,255,255,.24); background:rgba(7,20,47,.58); backdrop-filter: blur(15px); box-shadow:0 18px 50px rgba(0,0,0,.25); border-radius:18px; padding:14px 16px; }
.flight-status-card { left:17%; top:22%; }
.status-icon { width:39px; height:39px; border-radius:13px; background:rgba(255,209,102,.18); color:var(--gold); display:grid; place-items:center; }
.status-icon svg { width:24px; fill:none; stroke:currentColor; stroke-width:1.6; }
.floating-card small { color:rgba(255,255,255,.62); display:block; font-size:11px; }
.floating-card strong { display:block; margin-top:3px; font-size:19px; }
.price-card { right:9%; bottom:22%; display:block; min-width:140px; }
.price-card strong { color:var(--gold); font-size:24px; }
.price-card span { font-size:11px; color:rgba(255,255,255,.56); }
.hero-glow { position:absolute; border-radius:50%; filter:blur(50px); opacity:.4; pointer-events:none; }
.hero-glow-one { width:240px;height:240px;background:#245fbb;left:-100px;bottom:60px; }
.hero-glow-two { width:180px;height:180px;background:#d57d38;left:45%;top:-90px; }
.flight-path { position:absolute; z-index:2; width:48%; left:28%; top:70px; height:220px; pointer-events:none; }
.flight-path path { fill:none; stroke:rgba(255,255,255,.22); stroke-width:1.4; stroke-dasharray:6 9; }
.path-plane { position:absolute; right:12px; top:72px; color:#fff; transform:rotate(70deg); }
.path-plane svg { width:28px; fill:currentColor; }

.booking-wrap { position:relative; z-index:10; margin-top:-105px; padding:0 clamp(20px,5vw,74px); }
.booking-card { max-width:1450px; margin:0 auto; border-radius:var(--radius-xl); background:#fff; box-shadow:var(--shadow); padding: 24px 25px 18px; border:1px solid rgba(217,225,237,.85); }
.trip-tabs { display:flex; gap:8px; margin-bottom:18px; padding-left:3px; }
.trip-tab { border:0; background:transparent; color:var(--muted); border-radius:12px; padding:10px 15px; font-size:13px; font-weight:700; }
.trip-tab.active { color:var(--navy); background:#fff3d6; }
.search-grid { display:grid; grid-template-columns: 1.35fr 1.35fr .86fr .86fr 1fr auto; gap:10px; align-items:stretch; position:relative; }
.search-field { position:relative; min-width:0; min-height:88px; border:1px solid var(--line); border-radius:17px; padding:14px 15px 11px; background:#fff; transition:border-color .2s ease, box-shadow .2s ease; }
.search-field:focus-within { border-color:#88a8d8; box-shadow:0 0 0 4px rgba(70,113,177,.09); }
.field-label { display:block; color:var(--muted); font-size:11px; font-weight:700; margin-bottom:7px; }
.field-main { display:flex; align-items:center; gap:8px; min-width:0; }
.field-icon { color:#395578; flex:0 0 auto; }
.field-icon svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.search-field input { width:100%; min-width:0; border:0; outline:0; padding:0; background:transparent; color:var(--ink); font-size:16px; font-weight:800; }
.search-field input[type="date"] { font-size:14px; }
.search-field small { display:block; margin-top:6px; color:#8994a6; font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.swap-button { position:absolute; z-index:3; left:calc(22.85% - 18px); top:25px; width:38px; height:38px; border-radius:50%; border:4px solid #fff; background:var(--navy); color:#fff; display:grid; place-items:center; box-shadow:0 5px 15px rgba(7,20,47,.22); }
.swap-button svg { width:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.traveller-field { padding:14px 15px 11px; }
.traveller-trigger { width:100%; border:0; background:transparent; padding:0; text-align:left; color:var(--ink); }
.traveller-trigger strong { font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.traveller-trigger small { margin-left:26px; }
.traveller-popover { position:absolute; z-index:20; top:calc(100% + 12px); right:0; width:290px; padding:18px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 20px 60px rgba(11,30,66,.18); }
.counter-row { display:flex; justify-content:space-between; align-items:center; padding:9px 0; }
.counter-row strong, .counter-row small { display:block; margin:0; }
.counter-control { display:flex; align-items:center; gap:11px; }
.counter-control button { width:30px; height:30px; border-radius:9px; border:1px solid var(--line); background:var(--soft); color:var(--navy); font-weight:800; }
.counter-control span { width:18px; text-align:center; font-weight:800; }
.class-select { display:block; margin-top:10px; color:var(--muted); font-size:11px; font-weight:700; }
.class-select select { width:100%; margin-top:6px; border:1px solid var(--line); border-radius:11px; padding:10px; color:var(--ink); background:#fff; }
.popover-done { width:100%; margin-top:12px; border:0; border-radius:11px; padding:11px; background:var(--navy); color:#fff; font-weight:800; }
.search-button { border:0; border-radius:17px; background:linear-gradient(135deg,var(--gold),#ffb85c); color:var(--navy); padding:0 25px; min-width:168px; display:flex; align-items:center; justify-content:center; gap:9px; font-weight:800; box-shadow:0 12px 28px rgba(255,184,92,.3); }
.search-button svg { width:19px; fill:none; stroke:currentColor; stroke-width:2; }
.booking-note { margin-top:13px; padding-left:5px; color:#718097; font-size:11px; }
.booking-note span { color:#1f9c7d; font-weight:800; }

.section { padding:110px clamp(24px,6vw,94px); }
.section-heading { display:flex; justify-content:space-between; gap:24px; align-items:end; margin-bottom:35px; }
.section h2 { margin:10px 0 0; font:800 clamp(34px,4vw,58px)/1.04 "Manrope",sans-serif; letter-spacing:-2px; color:var(--navy); }
.text-link { font-size:13px; color:var(--navy); font-weight:800; padding-bottom:6px; border-bottom:1px solid #bac4d3; }
.text-link span { color:#e49935; margin-left:5px; }
.destinations-section { padding-top:125px; background:#fff; }
.destination-grid { display:grid; grid-template-columns:1.35fr 1fr 1fr; grid-template-rows:repeat(2, 255px); gap:16px; }
.destination-card { position:relative; overflow:hidden; border-radius:var(--radius-lg); background-image:var(--card-image); background-size:cover; background-position:center; color:#fff; isolation:isolate; transition:transform .3s ease, box-shadow .3s ease; }
.destination-card:hover { transform:translateY(-5px); box-shadow:0 18px 38px rgba(8,23,53,.18); }
.destination-card-large { grid-row:1 / 3; }
.destination-card:nth-child(4) { grid-column:2 / 4; }
.destination-overlay { position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(6,16,38,.08),rgba(6,16,38,.78)); }
.destination-top { display:flex; justify-content:space-between; padding:18px; }
.destination-top span { padding:7px 10px; border-radius:999px; background:rgba(7,20,47,.55); backdrop-filter:blur(8px); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.destination-top button { width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:rgba(7,20,47,.35);color:#fff;font-size:20px; }
.destination-info { position:absolute; left:22px; bottom:20px; }
.destination-info small { color:rgba(255,255,255,.68); }
.destination-info h3 { margin:3px 0 8px; font:800 clamp(27px,3vw,43px)/1 "Manrope",sans-serif; letter-spacing:-1.6px; }
.destination-info p { margin:0; font-size:12px; color:rgba(255,255,255,.72); }
.destination-info strong { color:#fff; font-size:14px; }

.offer-section { padding-top:40px; padding-bottom:40px; }
.offer-banner { position:relative; min-height:285px; display:grid; grid-template-columns: .8fr 1.45fr auto; align-items:center; gap:45px; overflow:hidden; border-radius:32px; padding:42px 55px; color:#fff; background:linear-gradient(125deg,#102b55,#07142f 64%,#18365c); }
.offer-banner::before { content:""; position:absolute; inset:0; opacity:.13; background-image:radial-gradient(circle at 2px 2px,#fff 1px,transparent 0); background-size:24px 24px; }
.offer-art,.offer-copy,.offer-cta { position:relative; z-index:2; }
.offer-art { min-height:180px; }
.offer-circle { position:absolute; left:50%; top:50%; width:180px;height:180px;border-radius:50%;transform:translate(-50%,-50%);background:linear-gradient(145deg,var(--gold),var(--orange));box-shadow:0 0 0 25px rgba(255,209,102,.06),0 0 0 52px rgba(255,209,102,.03); }
.offer-plane { position:absolute; width:230px; left:50%; top:50%; transform:translate(-45%,-45%) rotate(-7deg); filter:drop-shadow(0 18px 16px rgba(0,0,0,.28)); }
.offer-plane path { fill:#f5f8fb; }
.section-kicker.light { color:var(--gold); }
.offer-copy h2 { color:#fff; font-size:clamp(30px,3.5vw,50px); }
.offer-copy p { color:rgba(255,255,255,.65); font-size:15px; }
.offer-copy strong { color:var(--gold); }
.offer-cta { align-self:end; margin-bottom:12px; white-space:nowrap; border-radius:14px; padding:14px 18px; background:#fff; color:var(--navy); font-size:13px; font-weight:800; }

.why-section { display:grid; grid-template-columns:1fr 1fr; gap:clamp(50px,7vw,110px); align-items:center; background:#f6f8fb; }
.why-visual { position:relative; min-height:580px; }
.why-image-card { position:absolute; inset:0 40px 0 0; overflow:hidden; border-radius:110px 28px 110px 28px; box-shadow:var(--shadow); }
.why-image-card img { width:100%; height:100%; object-fit:cover; }
.experience-badge { position:absolute; right:0; bottom:60px; width:160px;height:160px;border-radius:50%; background:var(--gold); color:var(--navy); display:flex; flex-direction:column; align-items:center; justify-content:center; box-shadow:0 20px 45px rgba(94,68,12,.2); }
.experience-badge strong { font:800 42px/1 "Manrope",sans-serif; }
.experience-badge span { margin-top:7px; text-align:center; font-size:11px; font-weight:700; }
.why-copy > p { max-width:570px; color:var(--muted); font-size:16px; line-height:1.7; }
.benefit-list { display:grid; gap:20px; margin-top:30px; }
.benefit-list article { display:flex; gap:15px; }
.benefit-icon { flex:0 0 auto; width:48px;height:48px;border-radius:15px;background:#fff;color:#244e80;display:grid;place-items:center;box-shadow:0 8px 22px rgba(7,20,47,.08); }
.benefit-icon svg { width:23px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.benefit-list h3 { margin:2px 0 5px; font-size:16px; }
.benefit-list p { margin:0; color:var(--muted); font-size:13px; }

.newsletter-section { display:flex; align-items:center; justify-content:space-between; gap:40px; padding-top:75px; padding-bottom:75px; background:#fff; }
.newsletter-section h2 { font-size:clamp(30px,3.5vw,47px); }
.newsletter-form { display:flex; gap:8px; width:min(480px,100%); padding:7px; border:1px solid var(--line); border-radius:17px; background:#fff; box-shadow:0 15px 35px rgba(7,20,47,.08); }
.newsletter-form input { flex:1; min-width:0; border:0; outline:0; padding:0 13px; }
.newsletter-form button { border:0;border-radius:12px;background:var(--navy);color:#fff;padding:14px 19px;font-weight:800;white-space:nowrap; }

.site-footer { padding:70px clamp(24px,6vw,94px) 25px; background:var(--navy); color:#fff; }
.footer-main { display:grid; grid-template-columns:1.7fr repeat(3,1fr); gap:45px; padding-bottom:48px; }
.footer-brand { margin-bottom:18px; }
.footer-main p { color:rgba(255,255,255,.52); }
.footer-links h4 { margin:0 0 18px; font-size:13px; color:var(--gold); }
.footer-links a { display:block; margin:12px 0; color:rgba(255,255,255,.6); font-size:13px; }
.footer-links a:hover { color:#fff; }
.footer-bottom { display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.1);padding-top:22px;color:rgba(255,255,255,.42);font-size:11px; }

.results-section { position:fixed; z-index:80; inset:0; overflow:auto; background:#f2f5fa; }
.results-shell { max-width:1280px; margin:0 auto; padding:38px 28px 70px; }
.results-header { display:flex; align-items:flex-start; gap:26px; margin-bottom:30px; }
.results-header h2 { margin:5px 0 4px; font:800 38px/1.1 "Manrope",sans-serif; color:var(--navy); }
.results-header p { margin:0; color:var(--muted); }
.back-button { border:1px solid var(--line);background:#fff;border-radius:13px;padding:12px 15px;color:var(--navy);font-weight:800;box-shadow:0 7px 20px rgba(7,20,47,.06); }
.results-layout { display:grid; grid-template-columns:250px 1fr; gap:22px; }
.filter-card { align-self:start;position:sticky;top:20px;border-radius:20px;background:#fff;padding:22px;border:1px solid var(--line); }
.filter-card h3 { margin:0 0 22px; }
.filter-card > label { color:var(--muted);font-size:12px; }
.filter-card > label strong { float:right;color:var(--ink); }
.filter-card input[type="range"] { width:100%; margin-top:14px; accent-color:var(--navy); }
.filter-group { padding-top:20px;margin-top:20px;border-top:1px solid var(--line); }
.filter-group > span { display:block;margin-bottom:12px;font-weight:800;font-size:13px; }
.filter-group label { display:block;margin:10px 0;color:var(--muted);font-size:12px; }
.filter-group input { accent-color:var(--navy); }
.time-chip { border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff;color:var(--muted);font-size:11px;margin:0 4px 6px 0; }
.time-chip.active { background:var(--navy);color:#fff;border-color:var(--navy); }
.result-toolbar { display:flex;justify-content:space-between;align-items:center;margin-bottom:13px;color:var(--muted);font-size:12px; }
.result-toolbar select { border:1px solid var(--line);border-radius:10px;padding:9px;background:#fff;color:var(--ink); }
.flight-results { display:grid;gap:13px; }
.flight-card { display:grid;grid-template-columns:1fr 1.5fr 1fr auto;gap:22px;align-items:center;padding:22px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 10px 28px rgba(7,20,47,.05); }
.airline-block { display:flex;align-items:center;gap:12px; }
.airline-logo { width:46px;height:46px;border-radius:14px;background:linear-gradient(145deg,#0f2c5b,#395f91);color:#fff;display:grid;place-items:center;font-weight:900; }
.airline-block strong,.airline-block small { display:block; }
.airline-block small { color:var(--muted);font-size:10px;margin-top:3px; }
.flight-route { display:grid;grid-template-columns:auto 1fr auto;gap:15px;align-items:center; }
.flight-time strong { display:block;font-size:22px; }
.flight-time small { color:var(--muted);font-size:11px; }
.route-line { text-align:center; }
.route-line span { display:block;color:var(--muted);font-size:10px;margin-bottom:7px; }
.route-line i { display:block;height:1px;background:#cfd8e6;position:relative; }
.route-line i::before,.route-line i::after { content:"";position:absolute;top:-3px;width:7px;height:7px;border-radius:50%;background:#fff;border:1px solid #7891b2; }
.route-line i::before { left:0; }.route-line i::after{right:0;}
.route-line small { color:#23896e;font-size:10px; }
.flight-price { text-align:right; }
.flight-price small { display:block;color:var(--muted); }
.flight-price strong { display:block;font-size:22px;color:var(--navy);margin:3px 0; }
.book-flight { border:0;border-radius:13px;background:var(--gold);color:var(--navy);padding:13px 17px;font-weight:900; }

.modal-backdrop { position:fixed;z-index:100;inset:0;padding:24px;background:rgba(3,10,27,.72);backdrop-filter:blur(8px);display:grid;place-items:center;overflow:auto; }
.auth-modal,.booking-modal,.confirmation-modal { position:relative;width:min(480px,100%);border-radius:28px;background:#fff;padding:34px;box-shadow:0 35px 100px rgba(0,0,0,.3); }
.booking-modal { width:min(680px,100%); }
.confirmation-modal { width:min(430px,100%);text-align:center; }
.modal-close { position:absolute;top:15px;right:15px;width:38px;height:38px;border:0;border-radius:50%;background:var(--soft);color:var(--navy);font-size:25px;line-height:1; }
.auth-brand { margin-bottom:18px; }
.auth-brand .brand-mark { background:var(--navy); }
.auth-modal h2,.booking-modal h2,.confirmation-modal h2 { margin:8px 0 9px;font:800 31px/1.1 "Manrope",sans-serif;color:var(--navy);letter-spacing:-1px; }
.auth-modal > p,.confirmation-modal > p { margin:0 0 22px;color:var(--muted);line-height:1.6;font-size:14px; }
.auth-field { display:block;margin:14px 0; }
.auth-field span { display:block;margin-bottom:7px;color:#5a6880;font-size:11px;font-weight:800; }
.auth-field input { width:100%;border:1px solid var(--line);border-radius:13px;padding:13px 14px;outline:0; }
.auth-field input:focus { border-color:#809dc6;box-shadow:0 0 0 4px rgba(70,113,177,.08); }
.auth-row { display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px;margin:7px 0 17px; }
.auth-row input { accent-color:var(--navy); }
.link-button { border:0;background:transparent;color:#285991;font-weight:800;font-size:11px; }
.auth-submit { width:100%;border:0;border-radius:13px;background:var(--navy);color:#fff;padding:14px 18px;font-weight:800; }
.auth-divider { display:flex;align-items:center;gap:10px;color:#a0a9b8;font-size:10px;margin:18px 0; }
.auth-divider::before,.auth-divider::after { content:"";flex:1;height:1px;background:var(--line); }
.social-login { width:100%;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);padding:13px;font-weight:800; }
.social-login span { display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;margin-right:7px;background:var(--soft);color:#4285f4; }
.auth-switch { text-align:center;margin:18px 0 4px!important;font-size:12px!important; }
.auth-switch button { border:0;background:transparent;color:#285991;font-weight:800; }
.demo-note { display:block;text-align:center;color:#95a0b0;font-size:9px;line-height:1.5;margin-top:12px; }
.form-two-columns { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.selected-flight { margin:18px 0;padding:16px;border-radius:15px;background:#f3f6fa;border:1px solid var(--line); }
.selected-flight strong { color:var(--navy); }
.selected-flight p { margin:5px 0 0;color:var(--muted);font-size:12px; }
.consent-row { display:flex;gap:8px;align-items:flex-start;margin:15px 0;color:var(--muted);font-size:11px; }
.consent-row input { margin-top:2px;accent-color:var(--navy); }
.success-mark { width:68px;height:68px;margin:0 auto 20px;border-radius:50%;background:#dff7ed;color:#138763;display:grid;place-items:center;font-size:32px;font-weight:900; }
.booking-reference { margin:20px 0;padding:16px;border-radius:15px;background:#f4f7fb; }
.booking-reference small,.booking-reference strong { display:block; }
.booking-reference small { color:var(--muted);font-size:10px; }
.booking-reference strong { margin-top:5px;font-size:22px;letter-spacing:1px;color:var(--navy); }
.toast { position:fixed;z-index:150;left:50%;bottom:28px;transform:translate(-50%,30px);opacity:0;pointer-events:none;background:var(--navy);color:#fff;border-radius:13px;padding:13px 18px;box-shadow:0 15px 45px rgba(0,0,0,.25);font-size:12px;font-weight:700;transition:.25s ease; }
.toast.show { opacity:1;transform:translate(-50%,0); }
[hidden] { display:none!important; }

@media (max-width: 1180px) {
  .desktop-nav { display:none; }
  .site-header { grid-template-columns:1fr auto; }
  .menu-button { display:block; }
  .hero-section { grid-template-columns:1fr 1fr; }
  .hero-copy { padding-left:50px; }
  .search-grid { grid-template-columns:1fr 1fr 1fr; }
  .search-button { min-height:70px; }
  .swap-button { left:calc(33.33% - 19px); }
  .destination-grid { grid-template-columns:1fr 1fr;grid-template-rows:340px 240px 240px; }
  .destination-card-large { grid-row:auto;grid-column:1/3; }
  .destination-card:nth-child(4) { grid-column:auto; }
  .offer-banner { grid-template-columns:.65fr 1.35fr; }
  .offer-cta { grid-column:2; justify-self:start; margin-top:-20px; }
}

@media (max-width: 820px) {
  :root { --header-height:72px; }
  .site-header { padding:0 18px; }
  .language-button { display:none; }
  .hero-section { min-height:auto;display:block;padding-bottom:150px; }
  .hero-copy { padding:70px 26px 35px;max-width:none; }
  .hero-copy h1 { font-size:clamp(54px,16vw,80px); }
  .hero-visual { min-height:420px;clip-path:none;margin:0 20px;border-radius:28px; }
  .flight-path { display:none; }
  .booking-wrap { margin-top:-105px; }
  .booking-card { border-radius:24px;padding:18px; }
  .search-grid { grid-template-columns:1fr 1fr; }
  .swap-button { left:calc(50% - 19px); }
  .search-button { grid-column:1/3; }
  .section { padding:78px 24px; }
  .section-heading { align-items:flex-start;flex-direction:column; }
  .destination-grid { display:grid;grid-template-columns:1fr 1fr;grid-template-rows:300px 230px 230px; }
  .destination-card-large { grid-column:1/3; }
  .offer-banner { grid-template-columns:1fr;padding:34px 26px;gap:10px; }
  .offer-art { min-height:160px; }
  .offer-cta { grid-column:auto;margin-top:12px;justify-self:start; }
  .why-section { grid-template-columns:1fr; }
  .why-visual { min-height:440px; }
  .newsletter-section { flex-direction:column;align-items:flex-start; }
  .footer-main { grid-template-columns:1.5fr 1fr 1fr; }
  .footer-main > div:first-child { grid-column:1/4; }
  .results-layout { grid-template-columns:1fr; }
  .filter-card { position:static; }
  .flight-card { grid-template-columns:1fr 1.5fr; }
  .flight-price { text-align:left; }
  .book-flight { justify-self:end; }
}

@media (max-width: 560px) {
  .brand { font-size:20px; }
  .brand-mark { width:34px;height:34px; }
  .login-button { padding-inline:12px;min-height:40px; }
  .user-dot { display:none; }
  .hero-copy h1 { letter-spacing:-4px; }
  .hero-visual { min-height:340px; }
  .flight-status-card { top:18px;left:18px; }
  .price-card { right:18px;bottom:18px; }
  .trip-tabs { overflow:auto; }
  .trip-tab { white-space:nowrap; }
  .search-grid { grid-template-columns:1fr; }
  .search-button { grid-column:auto; }
  .swap-button { position:relative;left:auto;top:auto;margin:-9px auto;transform:rotate(90deg); }
  .return-field { display:block; }
  .traveller-popover { position:fixed;left:16px;right:16px;top:auto;bottom:16px;width:auto; }
  .destination-grid { display:grid;grid-template-columns:1fr;grid-template-rows:repeat(4,260px); }
  .destination-card-large { grid-column:auto; }
  .why-image-card { right:20px; }
  .experience-badge { width:125px;height:125px;bottom:25px; }
  .newsletter-form { flex-direction:column;padding:8px; }
  .newsletter-form input { padding:13px; }
  .footer-main { grid-template-columns:1fr 1fr; }
  .footer-main > div:first-child { grid-column:1/3; }
  .footer-links:last-child { grid-column:1/3; }
  .footer-bottom { flex-direction:column;gap:8px; }
  .results-shell { padding:24px 14px 60px; }
  .results-header { flex-direction:column;gap:15px; }
  .flight-card { grid-template-columns:1fr; }
  .flight-route { order:2; }
  .flight-price { order:3; }
  .book-flight { order:4;justify-self:stretch; }
  .auth-modal,.booking-modal,.confirmation-modal { padding:27px 20px; }
  .form-two-columns { grid-template-columns:1fr;gap:0; }
}
