/* =====================================================
   GetTransfer.pl — Design System v4 "Dark Luxury"
   ===================================================== */

:root {
  /* ── Base ── */
  --white:#f2f2f2; --ivory:#0e0e0e;
  --black:#080808;

  /* ── Surface layers ── */
  --s0:#080808;
  --s1:#0e0e0e;
  --s2:#141414;
  --s3:#1c1c1c;
  --s4:#242424;

  /* ── Borders ── */
  --border:#242424;
  --border2:#303030;
  --border3:#3a3a3a;

  /* ── Gray scale ── */
  --gray-50:#1c1c1c; --gray-100:#242424; --gray-200:#303030; --gray-300:#3a3a3a;
  --gray-400:#6a6a6a; --gray-500:#8e8e8e; --gray-600:#ababab; --gray-700:#c4c4c4;
  --gray-800:#e0e0e0; --gray-900:#f2f2f2;

  /* ── Accent — Red (poprawiony kontrast WCAG AA) ── */
  --red:#dc2626; --red-hover:#b91c1c; --red-deep:#991b1b;
  --red-50:rgba(220,38,38,.1); --red-100:rgba(220,38,38,.18);
  --red-glow:rgba(220,38,38,.22);

  /* ── Accent — Gold (primary on dark) ── */
  --gold:#c9a84c; --gold-light:#e8d5a3; --gold-dark:#9a7e38;
  --gold-50:rgba(201,168,76,.08); --gold-100:rgba(201,168,76,.15);
  --gold-glow:rgba(201,168,76,.28);

  /* ── Status ── */
  --green:#22c55e; --green-bg:rgba(34,197,94,.12); --green-text:#4ade80;
  --blue:#3b82f6;  --blue-bg:rgba(59,130,246,.12);  --blue-text:#60a5fa;

  /* ── Gradients ── */
  --g-red:linear-gradient(135deg,#f05252,#e53935);
  --g-red-deep:linear-gradient(135deg,#c62828,#f05252);
  --g-gold:linear-gradient(135deg,#c9a84c,#e8d5a3);
  --g-dark:linear-gradient(135deg,#0e0e0e,#141414);

  /* ── Shadows ── */
  --shadow-xs:0 1px 4px rgba(0,0,0,.4);
  --shadow-sm:0 2px 10px rgba(0,0,0,.5);
  --shadow:0 4px 24px rgba(0,0,0,.55);
  --shadow-lg:0 12px 48px rgba(0,0,0,.65);
  --shadow-xl:0 24px 80px rgba(0,0,0,.75);
  --shadow-red:0 8px 28px rgba(240,82,82,.28),0 2px 8px rgba(240,82,82,.14);
  --shadow-gold:0 8px 32px rgba(201,168,76,.32),0 2px 8px rgba(201,168,76,.16);

  /* ── Radii ── */
  --r-xs:6px; --r-sm:8px; --r:12px; --r-lg:16px;
  --r-xl:20px; --r-2xl:28px; --r-full:9999px;

  /* ── Typography ── */
  --font:-apple-system,'Helvetica Neue',Arial,sans-serif;

  /* ── Layout ── */
  --container:1240px;
  --section-pad:clamp(56px,8vw,104px);

  /* ── Transitions ── */
  --t:.17s ease;
  --t-slow:.32s cubic-bezier(.4,0,.2,1);
}

/* ─────────────────────────────────────
   RESET
───────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden}
body{
  font-family:var(--font);font-size:16px;line-height:1.5;
  color:var(--white);background:var(--black);
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
  min-width:320px;
}
img,svg{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:color var(--t)}
button{font:inherit;cursor:pointer;border:none;background:none}
input,textarea,select{font:inherit;color-scheme:dark}

/* ─────────────────────────────────────
   LAYOUT
───────────────────────────────────── */
.container{max-width:var(--container);margin:0 auto;padding:0 24px}
.section{padding:var(--section-pad) 0}
.section-dark{background:var(--s1);color:var(--white)}
.section-ivory{background:var(--s1)}
.section-title{
  font-size:clamp(28px,4vw,44px);font-weight:800;
  letter-spacing:-1.5px;line-height:1.08;margin-bottom:14px;
}
.section-subtitle{font-size:17px;color:var(--gray-600);margin-bottom:52px;line-height:1.55}
.text-center{text-align:center}
.text-red{color:var(--red)} .text-gold{color:var(--gold)} .text-gray{color:var(--gray-600)}
.hidden{display:none !important}
.accent{color:var(--gold)}

/* ─────────────────────────────────────
   BUTTONS
───────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  gap:8px;padding:14px 28px;border-radius:var(--r);
  font-weight:700;font-size:15px;transition:all var(--t);
  white-space:nowrap;cursor:pointer;border:none;
}
.btn-primary{background:var(--g-gold);color:#000;box-shadow:var(--shadow-gold)}
.btn-primary:hover{
  background:linear-gradient(135deg,#e8d5a3,#c9a84c);
  transform:translateY(-2px);box-shadow:0 14px 36px rgba(201,168,76,.4);
}
.btn-secondary{background:var(--s3);color:var(--white);border:1px solid var(--border2)}
.btn-secondary:hover{border-color:var(--border3);transform:translateY(-1px)}
.btn-dark{background:var(--s3);color:var(--white);border:1px solid var(--border2)}
.btn-dark:hover{background:var(--s4);transform:translateY(-2px)}
.btn-gold{background:var(--g-gold);color:#000;font-weight:800;box-shadow:var(--shadow-gold)}
.btn-gold:hover{
  background:linear-gradient(135deg,#e8d5a3,#c9a84c);
  transform:translateY(-2px);box-shadow:0 14px 36px rgba(201,168,76,.45);
}
.btn-outline{background:rgba(255,255,255,.06);color:var(--white);border:1px solid var(--border2)}
.btn-outline:hover{background:rgba(255,255,255,.12);border-color:var(--border3)}
.btn-white{background:var(--white);color:#000;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.btn-white:hover{background:var(--gray-900);transform:translateY(-2px)}
.btn-lg{padding:17px 36px;font-size:16px}
.btn-sm{padding:9px 18px;font-size:13px}
.btn-xs{padding:6px 12px;font-size:12px}
.btn-block{width:100%}

/* ─────────────────────────────────────
   HEADER
───────────────────────────────────── */
.header{
  position:sticky;top:0;z-index:200;
  background:rgba(8,8,8,.88);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border-bottom:1px solid var(--border);
  transition:border-color var(--t),box-shadow var(--t);
}
.header.scrolled{border-bottom-color:rgba(201,168,76,.2);box-shadow:0 4px 32px rgba(0,0,0,.6)}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 0;gap:12px;
}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:22px;letter-spacing:-.5px;flex-shrink:0}
.logo-mark{
  width:38px;height:38px;background:var(--gold);color:#000;
  border-radius:10px;display:flex;align-items:center;justify-content:center;
  font-weight:900;font-size:14px;letter-spacing:-.5px;flex-shrink:0;
}
.logo-text{display:flex;flex-direction:column;line-height:1.1}
.logo-main{font-size:18px;font-weight:800;letter-spacing:-.5px;color:var(--white)}
.logo-country{font-size:10px;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.08em;margin-top:1px}
.logo span.accent{color:var(--gold)}

.nav{display:flex;align-items:center;gap:2px}
.nav-link{
  color:var(--gray-600);font-weight:500;font-size:14px;
  padding:8px 12px;border-radius:var(--r-sm);transition:all var(--t);
}
.nav-link:hover{color:var(--white);background:var(--s3)}

.lang-switch{
  display:flex;gap:2px;padding:4px;
  background:var(--s3);border-radius:var(--r-full);margin:0 8px;
}
.lang-switch button{
  padding:4px 10px;border-radius:var(--r-full);
  color:var(--gray-500);font-size:11px;font-weight:700;
  transition:all var(--t);letter-spacing:.03em;
}
.lang-switch button.active{
  background:var(--s4);color:var(--white);box-shadow:var(--shadow-xs);
}
.lang-switch button:hover:not(.active){color:var(--gray-700)}

.btn-nav-cta{
  background:var(--g-gold);color:#000;
  padding:10px 20px;border-radius:var(--r);
  font-weight:700;font-size:14px;box-shadow:var(--shadow-gold);
  transition:all var(--t);white-space:nowrap;
}
.btn-nav-cta:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(201,168,76,.4)}

/* ── Account / Login buttons in nav ── */
.nav-account-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 14px 7px 8px;border-radius:var(--r);
  border:1px solid var(--border2);background:var(--s2);
  font-size:13px;font-weight:600;color:var(--gray-700);
  transition:all var(--t);white-space:nowrap;
}
.nav-account-btn:hover{border-color:var(--gold-dark);background:var(--s3)}
.nav-account-avatar{
  width:26px;height:26px;background:var(--gold);border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:12px;color:#000;font-weight:900;flex-shrink:0;
}
.nav-account-name{max-width:120px;overflow:hidden;text-overflow:ellipsis}
.nav-login-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 14px;border-radius:var(--r);
  border:1px solid var(--border2);
  font-size:13px;font-weight:600;color:var(--gray-600);
  transition:all var(--t);white-space:nowrap;
}
.nav-login-btn:hover{border-color:var(--border3);color:var(--white)}

.menu-toggle{
  display:none;width:44px;height:44px;
  align-items:center;justify-content:center;
  border-radius:var(--r);background:var(--s3);
  transition:all var(--t);flex-shrink:0;color:var(--white);
}
.menu-toggle:hover{background:var(--s4)}

/* ─────────────────────────────────────
   MOBILE DRAWER
───────────────────────────────────── */
.mobile-overlay{
  display:block;position:fixed;inset:0;
  background:rgba(0,0,0,.75);backdrop-filter:blur(6px);
  z-index:1100;opacity:0;pointer-events:none;
  transition:opacity var(--t-slow);
}
.mobile-overlay.open{opacity:1;pointer-events:auto}

.mobile-drawer{
  position:fixed;top:0;left:0;bottom:0;
  width:min(320px,88vw);background:var(--s2);
  z-index:1200;transform:translateX(-100%);
  transition:transform var(--t-slow);
  display:flex;flex-direction:column;
  box-shadow:var(--shadow-xl);overflow-y:auto;
  border-right:1px solid var(--border);
}
.mobile-drawer.open{transform:translateX(0)}

.drawer-open .leaflet-pane,
.drawer-open .leaflet-control-container,
.drawer-open .leaflet-top,
.drawer-open .leaflet-bottom{z-index:0!important}
.drawer-open #map{z-index:0;position:relative}

.drawer-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 20px 16px;border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.drawer-close{
  width:40px;height:40px;background:var(--s3);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--gray-600);transition:all var(--t);flex-shrink:0;
}
.drawer-close:hover{background:var(--s4);color:var(--white)}

.drawer-nav{padding:12px 10px;flex:1}
.drawer-link{
  display:flex;align-items:center;gap:14px;
  padding:14px 16px;border-radius:var(--r);
  color:var(--gray-700);font-weight:600;font-size:15px;
  transition:all var(--t);margin-bottom:2px;
}
.drawer-link:hover{background:var(--s3);color:var(--white)}
.drawer-link svg{color:var(--gray-500);flex-shrink:0}
.drawer-link:hover svg{color:var(--gold)}

.drawer-divider{height:1px;background:var(--border);margin:8px 16px}
.drawer-langs{
  display:flex;flex-wrap:wrap;gap:6px;
  padding:14px 20px;border-top:1px solid var(--border);flex-shrink:0;
}
.drawer-lang{
  padding:6px 12px;border-radius:var(--r-full);
  font-size:12px;font-weight:700;color:var(--gray-600);
  background:var(--s3);transition:all var(--t);
}
.drawer-lang.active{background:var(--gold);color:#000}
.drawer-lang:hover:not(.active){background:var(--s4);color:var(--white)}

.drawer-cta{margin:16px 20px 8px}
.drawer-phone{
  display:flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 20px calc(28px + env(safe-area-inset-bottom));
  font-weight:700;font-size:15px;color:var(--gray-600);
}
.drawer-phone:hover{color:var(--white)}

body.drawer-open{overflow:hidden}

/* ─────────────────────────────────────
   HERO
───────────────────────────────────── */
.hero{
  padding:clamp(48px,7vw,88px) 0 clamp(64px,9vw,112px);
  position:relative;overflow:hidden;background:var(--black);
}
.hero-bg{
  position:absolute;inset:0;z-index:0;
  /* Zdjęcie tła */
  background-image:url('/assets/img/cars/hero-bg.png');
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}
/* Ciemna nakładka — zachowuje czytelność tekstu */
.hero-bg::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(
    135deg,
    rgba(13,13,13,.80) 0%,
    rgba(13,13,13,.60) 45%,
    rgba(13,13,13,.78) 100%
  );
}
/* Złoty akcent + delikatna siatka (jak wcześniej, na wierzchu nakładki) */
.hero-bg::after{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse 70% 70% at 80% 40%,rgba(201,168,76,.10) 0%,transparent 65%),
    radial-gradient(ellipse 45% 55% at 10% 85%,rgba(201,168,76,.06) 0%,transparent 55%),
    radial-gradient(circle,rgba(255,255,255,.018) 1px,transparent 1px);
  background-size:auto,auto,28px 28px;
}
.hero .container{position:relative;z-index:1}

.hero-label{
  display:inline-flex;align-items:center;gap:7px;
  padding:6px 14px;background:rgba(201,168,76,.1);
  border:1px solid rgba(201,168,76,.25);border-radius:var(--r-full);
  font-size:11px;font-weight:800;color:var(--gold);
  text-transform:uppercase;letter-spacing:.07em;margin-bottom:20px;
}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.hero-left h1{
  font-size:clamp(34px,5vw,60px);font-weight:800;
  line-height:1.04;letter-spacing:-2px;margin-bottom:22px;
}
.hero-left h1 .accent{color:var(--gold)}
.hero-subtitle{
  font-size:clamp(15px,1.6vw,18px);color:var(--gray-600);
  margin-bottom:32px;max-width:500px;line-height:1.65;
}
.hero-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:36px}
.badge{
  display:inline-flex;align-items:center;gap:7px;
  padding:7px 14px;background:var(--s2);
  border:1px solid var(--border2);border-radius:var(--r-full);
  font-size:12px;font-weight:600;color:var(--gray-700);
}
.hero-cta-group{display:flex;gap:12px;flex-wrap:wrap}

/* Hero Form Card */
.hero-form-card{
  background:var(--s2);border:1px solid var(--border);
  border-radius:var(--r-2xl);padding:32px;
  box-shadow:var(--shadow-xl);
  position:relative;
}
.hero-form-card::before{
  content:'';position:absolute;top:0;left:28px;right:28px;
  height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);
  border-radius:0 0 2px 2px;
}
.hero-form-title{font-size:21px;font-weight:800;margin-bottom:4px;letter-spacing:-.5px;color:var(--white)}
.hero-form-subtitle{font-size:13px;color:var(--gray-500);margin-bottom:22px}

/* ─────────────────────────────────────
   FORM ELEMENTS
───────────────────────────────────── */
/* ── Form UX v5.2 — improved spacing, contrast, touch targets ── */
.form-group{margin-bottom:18px}
.form-label{
  display:block;font-size:12px;font-weight:700;
  color:var(--gray-600);margin-bottom:8px;
  letter-spacing:.05em;text-transform:uppercase;
}
.form-input,.form-select,.form-textarea{
  width:100%;background:var(--s3);
  border:1.5px solid var(--border2);  /* grubsza granica — lepiej widoczna */
  border-radius:var(--r);padding:14px 16px;font-size:15px; /* 15px > 14px — mobile czytelność */
  color:var(--white);outline:none;transition:all .2s;font-family:inherit;
  min-height:48px; /* WCAG touch target */
}
.form-input::placeholder{color:var(--gray-400)}
.form-input:focus,.form-select:focus,.form-textarea:focus{
  border-color:var(--gold);background:var(--s3);
  box-shadow:0 0 0 3px rgba(201,168,76,.15);
  outline:2px solid var(--gold);outline-offset:2px; /* widoczny focus WCAG */
}
.form-input:focus-visible,.form-select:focus-visible{
  outline:2px solid var(--gold);outline-offset:2px;
}
.form-input-icon{position:relative}
.form-input-icon .form-input{padding-left:44px}
.form-input-icon .icon{
  position:absolute;left:14px;top:50%;transform:translateY(-50%);
  color:var(--gray-500);font-size:16px;pointer-events:none;
}
.form-input-with-btn{position:relative;overflow:visible}
.form-input-with-btn .form-input{padding-right:56px}
.form-input-with-btn .input-btn{
  position:absolute;right:8px;top:50%;transform:translateY(-50%);
  width:40px;height:40px;
  min-height:44px;
  border-radius:var(--r-sm);
  background:var(--s4);color:var(--gold);
  display:flex;align-items:center;justify-content:center;
  transition:all .2s;cursor:pointer;border:1px solid rgba(201,168,76,.2);
}
.form-input-with-btn .input-btn:hover{
  background:var(--gold);color:#000;
  transform:translateY(-50%) scale(1.05);
  border-color:var(--gold);
}
/* Przycisk X — czyść pole (pojawia się gdy jest tekst) */
.form-input-with-btn .input-clear-btn{
  position:absolute;right:56px;top:50%;transform:translateY(-50%);
  width:28px;height:28px;border-radius:50%;
  background:var(--s4);color:var(--gray-400);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;border:1px solid var(--border2);transition:all .15s;
  z-index:2;
}
.form-input-with-btn .input-clear-btn:hover{
  background:rgba(239,68,68,.15);color:#ef4444;border-color:rgba(239,68,68,.4);
}
/* X gdy jedyny przycisk w polu (bez GPS) */
.form-input-with-btn .input-clear-btn:only-of-type{right:10px}
.form-input-with-btn:has(.input-clear-btn:only-of-type) .form-input{padding-right:44px}
@media (max-width:480px){
  .form-input-with-btn .input-btn{width:38px;right:6px}
  .form-input-with-btn .form-input{padding-right:50px}
  .form-input-with-btn .input-clear-btn{right:50px}
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}

/* Check-row — zwiększony padding, lepszy kontrast */
.check-row{
  display:flex;align-items:center;gap:12px;
  padding:14px 16px; /* +1px top/bottom */
  border-radius:var(--r);
  background:var(--s3);border:1.5px solid var(--border);
  cursor:pointer;transition:all .2s;margin-bottom:10px;
  min-height:52px; /* touch-friendly */
}
.check-row:hover{border-color:var(--gold);background:rgba(201,168,76,.04)}
.check-row-error{border-color:#ef4444 !important;background:rgba(239,68,68,.05) !important;animation:shake .3s ease;}
@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}
.check-row:has(input:checked){
  border-color:var(--gold);background:rgba(201,168,76,.07);
}
.check-row input{
  width:20px;height:20px; /* +2px — łatwiej kliknąć */
  accent-color:var(--gold);cursor:pointer;flex-shrink:0;
}
.check-row-text{font-size:14px;font-weight:500;flex:1;color:var(--gray-700)}
.check-row-price{font-size:13px;font-weight:700;color:var(--green-text)}

.swap-row{display:flex;align-items:center;justify-content:center;margin:-4px 0}
.swap-btn{
  width:44px;height:44px; /* zwiększone do min WCAG */
  border-radius:50%;
  background:var(--s3);border:1px solid var(--border2);
  display:flex;align-items:center;justify-content:center;
  transition:all var(--t);color:var(--gray-500);
}
.swap-btn:hover{border-color:var(--gold);color:var(--gold);transform:rotate(180deg)}
.add-stop-btn{
  width:100%;padding:11px;border:1px dashed var(--border2);
  border-radius:var(--r);color:var(--gray-500);font-size:13px;
  font-weight:600;transition:all var(--t);cursor:pointer;background:transparent;
}
.add-stop-btn:hover{border-color:var(--gold);color:var(--gold);background:var(--gold-50)}

/* ─────────────────────────────────────
   STATS BAR
───────────────────────────────────── */
.stats-bar{
  background:var(--s1);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat-item{padding:24px 16px;text-align:center;position:relative}
.stat-item:not(:last-child)::after{
  content:'';position:absolute;right:0;top:22%;height:56%;
  width:1px;background:var(--border);
}
.stat-value{
  font-size:clamp(26px,3vw,34px);font-weight:800;
  letter-spacing:-1.5px;color:var(--white);line-height:1;margin-bottom:6px;
}
.stat-value .accent{color:var(--gold)}
.stat-label{font-size:12px;color:var(--gray-500);font-weight:500}

/* ─────────────────────────────────────
   ROUTE CARDS
───────────────────────────────────── */
.routes-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.route-card{
  background:var(--s2);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:20px;
  transition:all var(--t);cursor:pointer;position:relative;overflow:hidden;
  text-decoration:none;display:block;color:inherit;
}
.route-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:0;transition:opacity var(--t);
}
.route-card:hover{transform:translateY(-4px);border-color:var(--border2);box-shadow:var(--shadow-lg)}
.route-card:hover::before{opacity:1}
.route-meta{display:flex;align-items:center;gap:6px;margin-bottom:12px}
.route-meta-badge{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 9px;background:var(--s3);border-radius:var(--r-full);
  font-size:11px;font-weight:600;color:var(--gray-500);
}
.route-from-to{
  font-size:15px;font-weight:700;margin-bottom:6px;
  letter-spacing:-.3px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  color:var(--white);
}
.route-arrow{
  display:inline-flex;align-items:center;justify-content:center;
  width:20px;height:20px;background:var(--gold-50);
  border-radius:50%;color:var(--gold);font-size:10px;flex-shrink:0;
}
.route-info{font-size:12px;color:var(--gray-500);margin-bottom:14px}
.route-price{font-size:24px;font-weight:800;color:var(--gold);letter-spacing:-.5px}
.route-price-from{font-size:12px;color:var(--gray-500);font-weight:500}

/* ─────────────────────────────────────
   FLEET CARDS (Vehicle Classes)
───────────────────────────────────── */
.fleet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.fleet-card{
  background:var(--s2);border:1px solid var(--border);
  border-radius:var(--r-2xl);padding:36px 28px 28px;
  position:relative;transition:all .25s ease;
  display:flex;flex-direction:column;overflow:hidden;
  color:var(--white);
}
.fleet-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--border2)}
.fleet-card-popular{border-color:rgba(240,82,82,.4)}
.fleet-card-popular::before{
  content:'✦ POPULARNE';position:absolute;top:0;left:50%;transform:translateX(-50%);
  background:var(--g-red);color:var(--white);
  padding:5px 18px;border-radius:0 0 var(--r) var(--r);
  font-size:10px;font-weight:800;letter-spacing:.08em;white-space:nowrap;
}
.fleet-card-premium{
  background:linear-gradient(160deg,#141200 0%,#1a1700 100%);
  border-color:var(--gold-dark);
}
.fleet-card-premium:hover{border-color:var(--gold)}
.fleet-card-premium::before{
  content:'⭐ BUSINESS VIP';position:absolute;top:0;left:50%;transform:translateX(-50%);
  background:var(--g-gold);color:#000;
  padding:5px 18px;border-radius:0 0 var(--r) var(--r);
  font-size:10px;font-weight:800;letter-spacing:.08em;white-space:nowrap;
}
.fleet-card-premium .fleet-card-name,.fleet-card-premium .fleet-card-price{color:var(--gold-light)}
.fleet-card-premium .fleet-card-desc,.fleet-card-premium .fleet-card-price-from{color:var(--gray-500)}
.fleet-card-premium .fleet-card-car{color:var(--gold-dark)}
.fleet-card-premium .fleet-features li{color:var(--gray-700)}
.fleet-card-premium .fleet-check{background:rgba(201,168,76,.15);color:var(--gold)}

/* ── SVG Car Icon (replaces emoji) ── */
.fleet-card-icon{margin-bottom:20px;line-height:1}
.fleet-car-svg{color:var(--gold);width:100%;max-width:180px}
.fleet-card-name{font-size:24px;font-weight:800;margin-bottom:6px;letter-spacing:-.5px}
.fleet-card-desc{font-size:13px;color:var(--gray-500);margin-bottom:20px;min-height:40px;line-height:1.5}
.fleet-card-price{font-size:32px;font-weight:800;letter-spacing:-1.5px;line-height:1}
.fleet-card-price-from{font-size:12px;color:var(--gray-500);font-weight:500}
.fleet-card-car{font-size:12px;color:var(--gray-500);margin:14px 0 18px;font-style:italic}
.fleet-features{list-style:none;margin-bottom:24px;flex:1}
.fleet-features li{
  font-size:13px;padding:6px 0;color:var(--gray-700);
  display:flex;align-items:center;gap:10px;
  border-bottom:1px solid var(--border);
}
.fleet-features li:last-child{border-bottom:none}
.fleet-check{
  width:18px;height:18px;background:rgba(34,197,94,.12);color:var(--green-text);
  border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  font-size:9px;font-weight:800;flex-shrink:0;
}
.fleet-card .btn{margin-top:auto}

/* ─────────────────────────────────────
   WHY US
───────────────────────────────────── */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.why-card{
  padding:28px;background:var(--s2);
  border:1px solid var(--border);border-radius:var(--r-xl);
  transition:all var(--t);
}
.why-card:hover{border-color:var(--gold-dark);transform:translateY(-3px);box-shadow:var(--shadow)}
.why-icon{
  width:54px;height:54px;
  background:rgba(201,168,76,.08);
  border:1px solid rgba(201,168,76,.18);
  border-radius:var(--r-lg);display:flex;align-items:center;
  justify-content:center;font-size:26px;margin-bottom:18px;
  transition:background var(--t),border-color var(--t);
}
.why-card:hover .why-icon{
  background:rgba(201,168,76,.14);
  border-color:rgba(201,168,76,.35);
}
.why-title{font-size:16px;font-weight:700;margin-bottom:8px;letter-spacing:-.2px;color:var(--white)}
.why-desc{font-size:14px;color:var(--gray-500);line-height:1.55}

/* ─────────────────────────────────────
   HOW IT WORKS
───────────────────────────────────── */
.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;position:relative}
.how-grid::before{
  content:'';position:absolute;
  top:50px;left:calc(100%/6 + 26px);right:calc(100%/6 + 26px);
  height:1px;background:linear-gradient(90deg,var(--gold),rgba(201,168,76,.3));
  pointer-events:none;
}
.how-step{text-align:center;padding:24px 16px;position:relative}
.how-num{
  width:56px;height:56px;background:var(--g-gold);color:#000;
  border-radius:50%;margin:0 auto 24px;
  display:flex;align-items:center;justify-content:center;
  font-size:20px;font-weight:800;box-shadow:var(--shadow-gold);
  position:relative;z-index:1;
}
.how-num::after{
  content:'';position:absolute;inset:-5px;
  border-radius:50%;border:1.5px solid rgba(201,168,76,.25);
}
.how-title{font-size:18px;font-weight:700;margin-bottom:10px;letter-spacing:-.3px;color:var(--white)}
.how-desc{font-size:14px;color:var(--gray-500);line-height:1.55}

/* ─────────────────────────────────────
   FAQ
───────────────────────────────────── */
.faq-list{max-width:800px;margin:0 auto}
.faq-item{
  background:var(--s2);border:1px solid var(--border);
  border-radius:var(--r-lg);margin-bottom:10px;overflow:hidden;
  transition:border-color var(--t);
}
.faq-item:hover{border-color:var(--border2)}
.faq-item.open{border-color:var(--gold-dark)}
.faq-question{
  width:100%;padding:20px 24px;display:flex;
  align-items:center;justify-content:space-between;gap:16px;
  font-size:15px;font-weight:600;text-align:left;
  color:var(--white);cursor:pointer;transition:background var(--t);
}
.faq-question:hover{background:var(--s3)}
.faq-item.open .faq-question{background:var(--s3)}
.faq-toggle{
  width:30px;height:30px;background:var(--s3);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;color:var(--gray-500);transition:all var(--t);flex-shrink:0;
}
.faq-item.open .faq-toggle{transform:rotate(45deg);background:var(--gold);color:#000}
.faq-answer{
  max-height:0;overflow:hidden;
  transition:max-height .3s ease,padding .3s ease;
  font-size:14px;line-height:1.7;color:var(--gray-600);
}
.faq-item.open .faq-answer{max-height:400px;padding:0 24px 22px}

/* ─────────────────────────────────────
   CTA STRIP
───────────────────────────────────── */
.cta-strip{
  background:var(--s1);border-top:1px solid var(--border);
  color:var(--white);padding:68px 0;text-align:center;
  position:relative;overflow:hidden;
}
.cta-strip::before{
  content:'';position:absolute;top:-200px;left:50%;transform:translateX(-50%);
  width:700px;height:700px;
  background:radial-gradient(circle,rgba(201,168,76,.08) 0%,transparent 65%);
  pointer-events:none;
}
.cta-strip .container{position:relative}
.cta-strip-title{
  font-size:clamp(26px,4vw,42px);font-weight:800;
  margin-bottom:14px;letter-spacing:-1px;color:var(--white);
}
.cta-strip-subtitle{font-size:17px;color:var(--gray-600);margin-bottom:32px}
.cta-strip-buttons{display:inline-flex;gap:14px;flex-wrap:wrap;justify-content:center}

/* ─────────────────────────────────────
   FOOTER
───────────────────────────────────── */
.footer{background:var(--s1);color:var(--gray-600);padding:72px 0 40px;border-top:1px solid var(--border)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:48px;margin-bottom:56px}
.footer-brand .logo{color:var(--white);margin-bottom:18px}
.footer-about{font-size:14px;line-height:1.65;margin-bottom:24px;max-width:340px;color:var(--gray-500)}
.footer-payments{display:flex;gap:8px;flex-wrap:wrap}
.footer-payment-badge{
  padding:5px 10px;background:var(--s3);
  border:1px solid var(--border);border-radius:var(--r-sm);
  font-size:11px;font-weight:600;color:var(--gray-500);
}
.footer-title{
  color:var(--white);font-weight:700;font-size:11px;
  text-transform:uppercase;letter-spacing:.1em;margin-bottom:18px;
}
.footer-links{list-style:none}
.footer-links li{margin-bottom:11px}
.footer-links a{font-size:14px;color:var(--gray-500);transition:color var(--t)}
.footer-links a:hover{color:var(--white)}
.footer-contact-item{font-size:14px;margin-bottom:9px;color:var(--gray-500)}
.footer-contact-item a{color:var(--gray-500);transition:color var(--t)}
.footer-contact-item a:hover{color:var(--white)}
.footer-socials{display:flex;gap:10px;margin-top:18px}
.footer-social{
  width:38px;height:38px;background:var(--s3);
  border:1px solid var(--border);border-radius:var(--r-sm);
  display:flex;align-items:center;justify-content:center;
  color:var(--gray-500);transition:all var(--t);
}
.footer-social:hover{background:var(--gold);color:#000;border-color:transparent}
.footer-bottom{
  border-top:1px solid var(--border);padding-top:28px;
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:16px;font-size:13px;color:var(--gray-500);
}

/* ─────────────────────────────────────
   MOBILE BOTTOM BAR
───────────────────────────────────── */
.mobile-bottom-bar{
  display:none;position:fixed;bottom:0;left:0;right:0;z-index:100;
  background:var(--s2);border-top:1px solid var(--border);
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  gap:10px;box-shadow:0 -8px 32px rgba(0,0,0,.7);
}
.mbb-btn{
  flex:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:4px;padding:10px 6px;border-radius:var(--r-lg);
  font-size:11px;font-weight:700;transition:all var(--t);text-align:center;
}
.mbb-btn-primary{
  background:var(--g-gold);color:#000;
  box-shadow:var(--shadow-gold);flex:1.6;
}
.mbb-btn-primary:hover{transform:translateY(-1px)}
.mbb-btn-secondary{background:var(--s3);color:var(--gray-700)}
.mbb-btn-secondary:hover{background:var(--s4)}
.mbb-icon{font-size:22px;line-height:1}

/* ─────────────────────────────────────
   BOOKING PAGE
───────────────────────────────────── */
.booking-page{background:var(--black);min-height:100vh}
.booking-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;padding:24px 0}
.booking-map-wrap{
  background:var(--s2);border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;
  height:calc(100vh - 130px);position:sticky;top:90px;box-shadow:var(--shadow);
}
#map{width:100%;height:100%}
.booking-form-wrap{
  background:var(--s2);
  border:1px solid var(--border);border-radius:var(--r-xl);
  padding:32px 28px; /* więcej powietrza */
  box-shadow:var(--shadow-xl);
  position:relative;overflow:hidden;
}
/* złota kreska — spójność z hero-form-card */
.booking-form-wrap::before{
  content:'';position:absolute;top:0;left:24px;right:24px;
  height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);
}
.booking-form-title{
  font-size:24px;font-weight:800;margin-bottom:6px;
  letter-spacing:-.5px;color:var(--white);
}
.booking-form-subtitle{
  font-size:14px;color:var(--gray-500);margin-bottom:28px;
  line-height:1.5;
}

.price-preview{
  background:rgba(34,197,94,.08);
  border:1px solid rgba(34,197,94,.25);border-radius:var(--r-lg);padding:20px;margin-top:20px;
}
.price-preview-row{display:flex;justify-content:space-between;padding:4px 0;font-size:13px;color:var(--gray-700)}
.price-preview-total{
  display:flex;justify-content:space-between;align-items:baseline;
  padding-top:12px;margin-top:8px;
  border-top:1px dashed rgba(34,197,94,.3);font-weight:800;font-size:14px;
}
.price-preview-total .amount{font-size:28px;color:var(--green-text);letter-spacing:-1px}
.price-preview-loading{color:var(--gray-500);text-align:center;padding:20px;font-size:14px}

.class-selector{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin:16px 0}
.class-option{
  border:1.5px solid var(--border);border-radius:var(--r);
  padding:14px 8px;
  cursor:pointer;transition:all .2s;
  text-align:center;background:var(--s3);position:relative;color:var(--white);
  min-height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.class-option:hover{
  border-color:var(--border3);background:var(--s4);
  transform:translateY(-2px);
  box-shadow:0 4px 16px rgba(0,0,0,.3);
}
.class-option.selected{
  border-color:var(--gold);background:rgba(201,168,76,.09);
  box-shadow:0 0 0 3px rgba(201,168,76,.15),0 4px 16px rgba(201,168,76,.1);
  transform:translateY(-2px);
}
.class-option-icon{
  display:flex;align-items:center;justify-content:center;
  min-height:60px;width:100%;margin-bottom:8px;
  overflow:hidden;
}
.class-option-icon img{max-width:100%;height:auto;object-fit:contain}
.class-option:hover .class-option-icon{color:var(--gray-400)}
.class-option.selected .class-option-icon{color:var(--gold)}
.class-option-name{font-size:13px;font-weight:700;margin-bottom:2px;color:var(--white)}
.class-option-sub{font-size:10px;color:var(--gray-500);margin-bottom:3px}
.class-option-price{font-size:11px;color:var(--gray-500);font-weight:500;line-height:1.3}
.class-option.unavailable{opacity:.35;cursor:not-allowed;pointer-events:none}
.class-option.unavailable::after{
  content:'Niedostępne';position:absolute;top:5px;right:5px;
  font-size:9px;color:var(--red);font-weight:700;
  background:rgba(220,38,38,.1);padding:1px 4px;border-radius:3px;
}
.class-option.cap-exceeded{opacity:.38;cursor:not-allowed;pointer-events:none}
.class-option.cap-exceeded::after{
  content:attr(data-cap-warn);position:absolute;top:6px;right:6px;
  font-size:9px;color:#fff;font-weight:800;
  background:#e53e3e;padding:2px 6px;border-radius:10px;
}

/* ─────────────────────────────────────
   AUTOCOMPLETE
───────────────────────────────────── */
.autocomplete-wrap{position:relative}
.autocomplete-list{
  position:absolute;top:calc(100% + 5px);left:0;right:0;
  background:var(--s2);border:1px solid var(--border2);
  border-radius:var(--r-lg);max-height:280px;overflow-y:auto;
  box-shadow:var(--shadow-lg);z-index:50;
}
.autocomplete-item{
  padding:11px 16px;cursor:pointer;
  border-bottom:1px solid var(--border);font-size:13px;transition:background var(--t);
}
.autocomplete-item:last-child{border-bottom:none}
.autocomplete-item:hover{background:var(--s3)}
.autocomplete-item.priority{background:rgba(201,168,76,.05);font-weight:600}
.autocomplete-item .item-name{color:var(--white)}
.autocomplete-item .item-detail{color:var(--gray-500);font-size:12px;margin-top:2px}
.autocomplete-item .item-icon{display:inline-block;margin-right:6px}

/* ─────────────────────────────────────
   PILLS
───────────────────────────────────── */
.pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--r-full);font-size:12px;font-weight:600}
.pill-green{background:rgba(34,197,94,.12);color:var(--green-text)}
.pill-blue{background:var(--blue-bg);color:var(--blue-text)}
.pill-red{background:var(--red-50);color:var(--red)}
.pill-gray{background:var(--s3);color:var(--gray-700)}
.pill-gold{background:rgba(201,168,76,.12);color:var(--gold)}

/* ─────────────────────────────────────
   COMPETITOR ICONS (SVG geometric)
───────────────────────────────────── */
.comp-icon{display:inline-flex;align-items:center;gap:8px;font-weight:700}
.comp-icon svg{flex-shrink:0}
.comp-taxi{color:#fde047}
.comp-uber{color:#ffffff}
.comp-bolt{color:#34d058}

/* ─────────────────────────────────────
   ANIMATIONS
───────────────────────────────────── */
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.animate-in{animation:fadeInUp .4s ease-out}
@keyframes spin{to{transform:rotate(360deg)}}
.spinner{
  width:18px;height:18px;
  border:2px solid rgba(255,255,255,.15);border-top-color:var(--gold);
  border-radius:50%;display:inline-block;animation:spin .6s linear infinite;
}

/* ─────────────────────────────────────
   ALERT BOXES (admin flash)
───────────────────────────────────── */
.abox{padding:12px 18px;border-radius:var(--r);margin-bottom:16px;font-size:14px;font-weight:500}
.a-ok{background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.25);color:#4ade80}
.a-err{background:rgba(240,82,82,.1);border:1px solid rgba(240,82,82,.25);color:#f87171}
.a-warn{background:rgba(201,168,76,.1);border:1px solid rgba(201,168,76,.25);color:var(--gold)}

/* ─────────────────────────────────────
   RESPONSIVE
───────────────────────────────────── */

/* ── Tablet ────────────────────────── */
@media (max-width:1024px){
  .routes-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
  .booking-layout{grid-template-columns:1fr}
  .booking-map-wrap{height:320px;position:relative;top:0;order:-1;border-radius:var(--r-xl) var(--r-xl) 0 0}
  .booking-form-wrap{border-radius:0 0 var(--r-xl) var(--r-xl)}
  /* Transfer — mapa trasy */
  #routeMap{height:280px}
}

/* ── Mobile ────────────────────────── */
@media (max-width:768px){
  .nav{display:none}
  .menu-toggle{display:flex}
  .hero-grid{grid-template-columns:1fr;gap:36px}
  .fleet-grid{grid-template-columns:1fr;max-width:420px;margin:0 auto}
  .why-grid{grid-template-columns:1fr 1fr}
  .how-grid{grid-template-columns:1fr;gap:16px}
  .how-grid::before{display:none}
  .form-row,.form-row-3{grid-template-columns:1fr}
  .mobile-bottom-bar{display:flex}
  body{padding-bottom:90px}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .stat-item:nth-child(2)::after{display:none}
  /* Booking mapa */
  .booking-map-wrap{height:260px}
  /* Konto — statystyki */
  .account-stats{grid-template-columns:repeat(3,1fr)!important}
  /* Track mapa */
  #trackMapWrap{height:220px!important}
  /* Transfer price boxes → 1 kolumna */
  .price-boxes-grid{grid-template-columns:1fr!important}
  /* Transfer why-grid */
  .why-grid{grid-template-columns:1fr 1fr}
  /* Class selector */
  .class-selector{gap:8px}
  .class-option{padding:10px 6px}
  .class-option-icon{min-height:22px}
  /* Competitor grid */
  .comp-grid-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* ── Mobile S ──────────────────────── */
@media (max-width:480px){
  .container{padding:0 14px}
  .why-grid{grid-template-columns:1fr}
  .routes-grid{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr}
  .hero-cta-group{flex-direction:column}
  .cta-strip-buttons{flex-direction:column;align-items:center}
  .hero-form-card{padding:20px 16px}
  .fleet-grid{max-width:100%}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  /* Booking mapa */
  .booking-map-wrap{height:220px}
  /* Class selector — 3 kolumny zostają ale mniejsze */
  .class-option-name{font-size:11px}
  .class-option-price{font-size:10px}
  /* Transfer hero */
  .transfer-price-boxes{grid-template-columns:1fr!important}
  /* Track */
  #trackMapWrap{height:200px!important}
  /* Konto stats */
  .account-stats{grid-template-columns:1fr 1fr 1fr!important}
}

/* ── Mobile XS ─────────────────────── */
@media (max-width:360px){
  .routes-grid{grid-template-columns:1fr}
  .container{padding:0 12px}
  .class-selector{grid-template-columns:1fr!important}
  .account-stats{grid-template-columns:1fr!important}
  .form-row{grid-template-columns:1fr}
  .booking-form-wrap{padding:18px 14px}
}

/* ─────────────────────────────────────
   BOOKING WIZARD — MULTI-STEP
───────────────────────────────────── */
.booking-form-header { margin-bottom:28px }
.booking-form-header-top {
  display:flex;align-items:baseline;justify-content:space-between;margin-bottom:18px;
}
.booking-step-counter {
  font-size:12px;font-weight:700;color:var(--gray-500);
  text-transform:uppercase;letter-spacing:.06em;
}

/* Progress bar */
.booking-progress {
  display:flex;align-items:center;gap:0;
}
.bp-step {
  display:flex;flex-direction:column;align-items:center;gap:5px;
  background:none;border:none;cursor:pointer;padding:0;
  transition:all var(--t);flex-shrink:0;
}
.bp-step-num {
  width:32px;height:32px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:800;
  background:var(--s3);color:var(--gray-500);border:2px solid var(--border2);
  transition:all var(--t);
}
.bp-step-label {
  font-size:11px;font-weight:600;color:var(--gray-500);
  letter-spacing:.03em;white-space:nowrap;transition:color var(--t);
}
.bp-step.active .bp-step-num {
  background:var(--gold);color:#000;border-color:var(--gold);
  box-shadow:var(--shadow-gold);
}
.bp-step.active .bp-step-label { color:var(--gold); }
.bp-step.done .bp-step-num {
  background:rgba(201,168,76,.15);color:var(--gold);border-color:var(--gold-dark);
}
.bp-step.done .bp-step-label { color:var(--gold-dark); }
.bp-step.locked .bp-step-num { opacity:.45; }
.bp-step.locked { cursor:default; }
.bp-connector {
  flex:1;height:2px;background:var(--border2);margin-bottom:16px;
  transition:background .35s;
}
.bp-connector.done { background:var(--gold-dark); }

/* Step panels */
.booking-step { animation:stepFadeIn .25s ease-out both; }
@keyframes stepFadeIn {
  from { opacity:0;transform:translateX(16px); }
  to   { opacity:1;transform:none; }
}
.booking-step.hidden { display:none !important; }

/* Step nav row */
.booking-step-nav {
  display:flex;justify-content:space-between;align-items:center;
  margin-top:24px;padding-top:20px;
  border-top:1px solid var(--border);gap:12px;
}
.btn-step-next { flex:1;max-width:260px; }
.btn-step-back {
  flex-shrink:0;background:var(--s3);color:var(--gray-700);
  border:1px solid var(--border2);padding:13px 20px;
}
.btn-step-back:hover { background:var(--s4);color:var(--white); }

/* Route summary strip (krok 2+) */
.route-summary-strip {
  display:flex;align-items:center;gap:8px;
  background:var(--s3);border:1px solid var(--border2);
  border-radius:var(--r);padding:10px 14px;margin-bottom:20px;
  font-size:13px;font-weight:500;color:var(--gray-700);
  overflow:hidden;
}
.route-summary-dot {
  width:8px;height:8px;border-radius:50%;flex-shrink:0;
}
.route-summary-dot.from { background:var(--gold); }
.route-summary-dot.to   { background:var(--gray-600); }
.route-summary-text { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px; }

/* Form sections (krok 3) */
.form-section {
  padding:20px 0;border-bottom:1px solid var(--border);
}
.form-section:last-of-type { border-bottom:none; }
.form-section-title {
  font-size:15px;font-weight:700;color:var(--white);margin-bottom:16px;
  letter-spacing:-.2px;
}

/* Improved form labels */
.form-label { display:flex;align-items:center;gap:6px; }
.form-label-icon {
  width:14px;height:14px;color:var(--gray-500);flex-shrink:0;
}
.form-label-opt {
  font-weight:400;color:var(--gray-500);text-transform:none;letter-spacing:0;font-size:11px;
}
.form-label-req { color:var(--red);font-size:13px;margin-left:2px; }
.form-label-badge-free {
  margin-left:auto;font-size:10px;font-weight:700;
  background:rgba(34,197,94,.12);color:var(--green-text);
  padding:2px 7px;border-radius:var(--r-full);text-transform:none;letter-spacing:0;
}
.form-hint {
  font-size:11px;color:var(--gray-500);margin-top:5px;line-height:1.45;
}

/* Error shake */
@keyframes fieldShake {
  0%,100% { transform:translateX(0); }
  20%,60%  { transform:translateX(-5px); }
  40%,80%  { transform:translateX(5px); }
}
.form-input-error {
  border-color:var(--red) !important;
  box-shadow:0 0 0 3px rgba(220,38,38,.15) !important;
  animation:fieldShake .4s ease;
}

/* Flight field — deprioritized visually */
.form-group-flight { opacity:.85; }
.form-group-flight:focus-within { opacity:1; }

/* Select — compact variant */
.form-select-compact { max-width:200px; }

/* Luggage grid */
.luggage-grid {
  display:flex;flex-direction:column;gap:10px;
}
.luggage-item {
  display:flex;align-items:center;gap:10px;
  padding:10px 14px;
  background:var(--s3);border:1px solid var(--border);border-radius:var(--r);
}
.luggage-icon { font-size:18px;flex-shrink:0; }
.luggage-label {
  flex:1;font-size:13px;font-weight:600;color:var(--white);
  display:flex;flex-direction:column;gap:1px;
}
.luggage-label small { font-size:11px;color:var(--gray-500);font-weight:400; }
.luggage-input {
  width:64px !important;padding:8px !important;
  text-align:center;min-height:40px !important;
}

/* Luggage stepper controls (+/−) */
.luggage-stepper {
  display:flex;align-items:center;gap:6px;flex-shrink:0;margin-left:auto;
}
.lug-btn {
  width:34px;height:34px;border-radius:8px;
  background:rgba(201,168,76,.08);border:1.5px solid var(--gold);
  color:var(--gold);font-size:20px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background var(--t),transform .1s;
  line-height:1;padding:0;user-select:none;
}
.lug-btn:hover { background:rgba(201,168,76,.22); }
.lug-btn:active { transform:scale(.90); }
.lug-val {
  min-width:26px;text-align:center;font-size:15px;font-weight:700;
  color:var(--text);transition:color var(--t),font-weight var(--t);
}
.lug-val.lug-active { color:var(--gold); }

/* Child seat options */
.seat-list { display:flex;flex-direction:column;gap:8px; }
.seat-option {
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;
  background:var(--s3);border:1.5px solid var(--border);border-radius:var(--r);
  cursor:pointer;transition:border-color var(--t),background var(--t);
}
.seat-option:hover { border-color:var(--border2); }
.seat-checkbox { position:absolute;opacity:0;width:0;height:0;pointer-events:none; }
.seat-check {
  width:20px;height:20px;border-radius:50%;
  border:2px solid var(--border2);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  transition:all var(--t);
}
.seat-checkbox:checked ~ .seat-check,
.seat-option:has(.seat-checkbox:checked) .seat-check {
  background:var(--gold);border-color:var(--gold);
}
.seat-option:has(.seat-checkbox:checked) .seat-check::after {
  content:'✓';font-size:11px;font-weight:800;color:#000;
}
.seat-option:has(.seat-checkbox:checked) {
  border-color:var(--gold);background:rgba(201,168,76,.07);
}
.seat-content { display:flex;flex-direction:column;gap:2px; }
.seat-name { font-size:13px;font-weight:700;color:var(--white); }
.seat-desc { font-size:11px;color:var(--gray-500); }
.seat-option:focus-within .seat-check {
  outline:2px solid var(--gold);outline-offset:2px;
}

/* Payment options */
.payment-options { display:flex;flex-direction:column;gap:8px; }
.payment-option-row {
  display:flex;align-items:center;gap:12px;
  padding:14px 16px;
  background:var(--s3);border:1.5px solid var(--border);border-radius:var(--r);
  cursor:pointer;transition:all var(--t);
}
.payment-option-row:hover { border-color:var(--border2); }
.payment-option-row:has(.payment-radio:checked) {
  border-color:var(--gold);background:rgba(201,168,76,.07);
}
.payment-radio { position:absolute;opacity:0;width:0;height:0; }
.payment-option-content {
  display:flex;align-items:center;gap:12px;flex:1;
}
.payment-option-icon { font-size:22px;flex-shrink:0; }
.payment-option-body {
  display:flex;flex-direction:column;gap:2px;
  font-size:14px;color:var(--gray-700);
}
.payment-option-body strong { color:var(--white);font-size:14px; }

/* Negotiate toggle */
.negotiate-toggle {
  display:flex;align-items:flex-start;gap:14px;
  padding:16px;
  background:var(--s3);border:1px solid var(--border);border-radius:var(--r);
  cursor:pointer;transition:border-color var(--t);
}
.negotiate-toggle:hover { border-color:var(--border2); }
.negotiate-checkbox { position:absolute;opacity:0;width:0;height:0; }
.negotiate-toggle-content { flex:1; }
.negotiate-toggle-title { font-size:14px;font-weight:700;color:var(--white);display:block;margin-bottom:3px; }
.negotiate-toggle-desc  { font-size:12px;color:var(--gray-500);display:block; }
.negotiate-toggle-indicator {
  width:44px;height:24px;border-radius:12px;background:var(--s4);
  border:2px solid var(--border2);flex-shrink:0;margin-top:2px;
  position:relative;transition:all var(--t);
}
.negotiate-toggle-indicator::after {
  content:'';position:absolute;top:2px;left:2px;
  width:16px;height:16px;border-radius:50%;
  background:var(--gray-500);transition:all var(--t);
}
.negotiate-checkbox:checked ~ .negotiate-toggle-content ~ .negotiate-toggle-indicator,
.negotiate-toggle:has(.negotiate-checkbox:checked) .negotiate-toggle-indicator {
  background:rgba(201,168,76,.2);border-color:var(--gold);
}
.negotiate-toggle:has(.negotiate-checkbox:checked) .negotiate-toggle-indicator::after {
  transform:translateX(20px);background:var(--gold);
}
.negotiate-fields { margin-top:16px;padding-top:16px;border-top:1px solid var(--border); }

/* Submit area */
.btn-submit-main {
  margin-top:20px;font-size:17px;gap:10px;
  transition:all var(--t);
}
.btn-submit-main.btn-submit-ready {
  box-shadow:var(--shadow-gold);
}
.btn-submit-main:disabled {
  opacity:.45;cursor:not-allowed;transform:none !important;
}
.submit-hint {
  text-align:center;font-size:12px;color:var(--gray-500);
  margin-top:10px;min-height:20px;
}
.submit-trust {
  display:flex;align-items:center;justify-content:center;
  gap:8px;font-size:11px;color:var(--gray-500);
  margin-top:12px;flex-wrap:wrap;
}

/* Price strip (krok 3 summary) */
.price-strip {
  background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.2);
  border-radius:var(--r);padding:12px 16px;
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:20px;
}
.price-strip-label { font-size:13px;color:var(--gray-600); }
.price-strip-amount { font-size:22px;font-weight:800;color:var(--green-text); }

/* Form notice */
.form-notice {
  display:flex;align-items:flex-start;gap:10px;
  padding:11px 14px;border-radius:var(--r);
  font-size:13px;margin-bottom:16px;
}
.form-notice-success {
  background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.2);
  color:var(--green-text);
}

/* Consents section — tighter */
.form-section-consents { padding-bottom:4px; }
.form-section-consents .check-row { margin-bottom:8px; }

/* Return discount badge in check-row */
.check-row-badge {
  display:inline-flex;align-items:center;
  background:rgba(34,197,94,.12);color:var(--green-text);
  font-size:11px;font-weight:800;padding:2px 7px;
  border-radius:var(--r-full);margin-left:8px;
}

/* Link gold */
.link-gold { color:var(--gold);text-decoration:underline;text-decoration-color:rgba(201,168,76,.35); }
.link-gold:hover { text-decoration-color:var(--gold); }

/* Form compact input */
.form-input-compact { max-width:180px; }

/* Reduce-motion safe */
@media (prefers-reduced-motion:reduce) {
  .booking-step { animation:none; }
  .swap-btn:hover { transform:none; }
  .form-input-error { animation:none; }
}

/* ── Responsive — wizard ── */
@media (max-width:768px) {
  .bp-step-label { display:none; }
  .booking-form-header-top { margin-bottom:14px; }
  .booking-step-nav { flex-wrap:wrap; }
  .btn-step-next { max-width:100%; }
}
@media (max-width:480px) {
  .route-summary-text { max-width:100px; }
  .luggage-grid { gap:8px; }
}

/* ═══════════════════════════════════════════════════════════════════
   TRYB JASNY — [data-theme="light"]
   ═══════════════════════════════════════════════════════════════════ */
[data-theme="light"] {
  --white:    #0d0d0d;
  --ivory:    #f8f8f8;
  --black:    #f8f8f8;

  --s0: #ffffff;
  --s1: #f8f8f8;
  --s2: #f0f0f0;
  --s3: #e8e8e8;
  --s4: #e0e0e0;

  --border:  #e0e0e0;
  --border2: #d0d0d0;
  --border3: #c0c0c0;

  --gray-50:  #f5f5f5;
  --gray-100: #eeeeee;
  --gray-200: #e0e0e0;
  --gray-300: #d0d0d0;
  --gray-400: #9a9a9a;
  --gray-500: #777777;
  --gray-600: #555555;
  --gray-700: #363636;
  --gray-800: #1a1a1a;
  --gray-900: #080808;

  --red-50:  rgba(220,38,38,.08);
  --red-100: rgba(220,38,38,.14);
  --gold-50: rgba(201,168,76,.07);
  --gold-100:rgba(201,168,76,.13);

  --shadow-xs: 0 1px 4px rgba(0,0,0,.07);
  --shadow-sm: 0 2px 10px rgba(0,0,0,.1);
  --shadow:    0 4px 24px rgba(0,0,0,.12);
  --shadow-lg: 0 12px 48px rgba(0,0,0,.14);
  --shadow-xl: 0 24px 80px rgba(0,0,0,.18);
  --shadow-gold: 0 8px 32px rgba(201,168,76,.2),0 2px 8px rgba(201,168,76,.1);
  --g-dark: linear-gradient(135deg,#f0f0f0,#e8e8e8);
}
[data-theme="light"] body { color-scheme: light; }
[data-theme="light"] input,
[data-theme="light"] textarea,
[data-theme="light"] select { color-scheme: light; color: var(--white); }
[data-theme="light"] .section-dark  { background: var(--s1); }
[data-theme="light"] .section-ivory { background: var(--s2); }
[data-theme="light"] .btn-secondary { background: var(--s3); color: var(--white); border-color: var(--border2); }
[data-theme="light"] .btn-dark      { background: var(--s3); color: var(--white); }
[data-theme="light"] .btn-outline   { background: rgba(0,0,0,.04); color: var(--white); border-color: var(--border2); }
[data-theme="light"] .nav-link      { color: var(--gray-700); }
[data-theme="light"] .nav-link:hover{ color: var(--white); }
/* Pływający przycisk motywu — dostosuj kolor w jasnym trybie */
[data-theme="light"] #gt-theme-float {
  background: var(--s3) !important;
  color: var(--white) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,.12) !important;
}
