/* =========================================================
   AIOS PL - system projektowy
   Tokeny -> baza -> komponenty -> sekcje -> responsywnosc
   ========================================================= */

/* ---------- 1. TOKENY ---------- */
:root{
  /* kolory */
  --ink:            #0b1220;
  --ink-2:          #131c2e;
  --navy:           #0e1728;
  --slate-900:      #0f172a;
  --slate-700:      #334155;
  --slate-600:      #475569;
  --slate-500:      #64748b;
  --slate-400:      #94a3b8;
  --slate-300:      #cbd5e1;
  --slate-200:      #e2e8f0;
  --slate-100:      #f1f5f9;
  --slate-50:       #f8fafc;
  --white:          #ffffff;

  --accent:         #2f6bff;
  --accent-600:     #2557d6;
  --accent-300:     #7ba3ff;
  --accent-soft:    #eaf0ff;
  --teal:           #12b8a0;
  --teal-300:       #5ee0cc;

  --text:           var(--slate-700);
  --text-strong:    var(--slate-900);
  --text-muted:     var(--slate-500);
  --bg:             var(--white);
  --bg-alt:         var(--slate-50);
  --border:         var(--slate-200);

  /* typografia */
  --font-display: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body:    "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;

  --fs-eyebrow: .78rem;
  --fs-body:    1.0625rem;
  --fs-lead:    clamp(1.05rem, .55vw + .95rem, 1.25rem);
  --fs-h3:      clamp(1.15rem, .4vw + 1.05rem, 1.35rem);
  --fs-h2:      clamp(1.85rem, 2vw + 1.2rem, 3rem);
  --fs-h1:      clamp(2.35rem, 3.6vw + 1.1rem, 4.15rem);

  /* skala odstepow (baza 4px) */
  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px;
  --s-5: 24px; --s-6: 32px; --s-7: 48px; --s-8: 64px;
  --s-9: 96px; --s-10: 128px;

  /* promienie i cienie */
  --r-sm: 8px; --r-md: 14px; --r-lg: 20px; --r-xl: 28px; --r-full: 999px;
  --sh-sm: 0 1px 2px rgba(15,23,42,.06), 0 1px 3px rgba(15,23,42,.05);
  --sh-md: 0 4px 12px rgba(15,23,42,.06), 0 12px 28px rgba(15,23,42,.06);
  --sh-lg: 0 18px 48px rgba(15,23,42,.10), 0 2px 8px rgba(15,23,42,.05);
  --sh-accent: 0 10px 30px rgba(47,107,255,.28);

  --container: 1200px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- 2. RESET / BAZA ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:88px; }
body{
  margin:0;
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:1.65;
  color:var(--text);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--text-strong);
  line-height:1.14;
  letter-spacing:-.022em;
  margin:0 0 var(--s-4);
  font-weight:800;
}
h2{ font-size:var(--fs-h2); }
h3{ font-size:var(--fs-h3); font-weight:700; letter-spacing:-.012em; }
h4{ font-size:.95rem; font-weight:700; letter-spacing:.01em; }
p{ margin:0 0 var(--s-4); }
p:last-child{ margin-bottom:0; }
a{ color:var(--accent); text-decoration:none; transition:color .2s var(--ease); }
a:hover{ color:var(--accent-600); }
ul,ol{ margin:0; padding:0; list-style:none; }
img,svg{ max-width:100%; }
:focus-visible{ outline:3px solid var(--accent-300); outline-offset:3px; border-radius:4px; }

.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--s-5); }
.container--narrow{ max-width:820px; }

.skip-link{
  position:absolute; left:var(--s-4); top:-70px; z-index:200;
  background:var(--accent); color:#fff; padding:12px 18px; border-radius:var(--r-sm);
  font-weight:600; transition:top .2s var(--ease);
}
.skip-link:focus{ top:var(--s-4); color:#fff; }

.grad{
  background:linear-gradient(100deg,var(--accent-300) 0%, var(--teal-300) 60%, #a9c4ff 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.eyebrow{
  font-family:var(--font-display);
  font-size:var(--fs-eyebrow); font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--accent-300); margin:0 0 var(--s-4);
}
.eyebrow--dark{ color:var(--accent); }

/* ---------- 3. PRZYCISKI ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font-display); font-weight:700; font-size:.95rem;
  padding:13px 22px; border-radius:var(--r-full);
  border:1px solid transparent; cursor:pointer; white-space:nowrap;
  transition:transform .18s var(--ease), box-shadow .25s var(--ease),
             background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);
}
.btn--primary{ background:var(--accent); color:#fff; box-shadow:var(--sh-accent); }
.btn--primary:hover{ background:var(--accent-600); color:#fff; transform:translateY(-2px); box-shadow:0 14px 36px rgba(47,107,255,.36); }
.btn--primary:active{ transform:translateY(0); }
.btn--ghost{ background:rgba(255,255,255,.06); color:#fff; border-color:rgba(255,255,255,.25); backdrop-filter:blur(6px); }
.btn--ghost:hover{ background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.45); color:#fff; transform:translateY(-2px); }
.btn--lg{ padding:16px 30px; font-size:1rem; }
.btn--sm{ padding:10px 18px; font-size:.88rem; }
.btn--full{ width:100%; }

/* ---------- 4. NAWIGACJA ---------- */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:100;
  padding:var(--s-4) 0;
  transition:background-color .3s var(--ease), box-shadow .3s var(--ease),
             backdrop-filter .3s var(--ease), padding .3s var(--ease);
}
.nav__inner{ display:flex; align-items:center; justify-content:space-between; gap:var(--s-5); }
.nav.is-stuck{
  background:rgba(255,255,255,.88); backdrop-filter:blur(14px) saturate(140%);
  box-shadow:0 1px 0 var(--border), 0 8px 24px rgba(15,23,42,.06);
  padding:10px 0;
}

.brand{ display:inline-flex; align-items:center; gap:10px; color:#fff; }
.brand__mark{ width:34px; height:34px; flex:none; }
.brand__name{
  font-family:var(--font-display); font-weight:800; font-size:1.25rem;
  letter-spacing:.03em;
}
.nav.is-stuck .brand{ color:var(--text-strong); }

.nav__links{ display:flex; gap:var(--s-6); margin-left:auto; }
.nav__links a{
  position:relative; color:rgba(255,255,255,.82);
  font-size:.94rem; font-weight:500; padding:6px 0;
}
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:0; height:2px; width:0;
  background:var(--accent-300); border-radius:2px; transition:width .25s var(--ease);
}
.nav__links a:hover{ color:#fff; }
.nav__links a:hover::after{ width:100%; }
.nav.is-stuck .nav__links a{ color:var(--slate-600); }
.nav.is-stuck .nav__links a:hover{ color:var(--accent); }
.nav.is-stuck .nav__links a::after{ background:var(--accent); }

.nav__actions{ display:flex; align-items:center; gap:var(--s-3); }
.nav__toggle{
  display:none; width:44px; height:44px; border:0; background:transparent;
  cursor:pointer; padding:10px; border-radius:var(--r-sm);
}
.nav__toggle span{
  display:block; height:2px; background:#fff; border-radius:2px; margin:4px 0;
  transition:transform .25s var(--ease), opacity .2s var(--ease);
}
.nav.is-stuck .nav__toggle span{ background:var(--text-strong); }
.nav__toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.nav__toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav__toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

.nav__mobile{
  display:none; flex-direction:column; gap:var(--s-2);
  margin:var(--s-4) var(--s-5) 0; padding:var(--s-5);
  background:#fff; border:1px solid var(--border);
  border-radius:var(--r-lg); box-shadow:var(--sh-lg);
}
.nav__mobile a{ color:var(--slate-700); font-weight:600; padding:10px 4px; }
.nav__mobile .btn{ margin-top:var(--s-2); color:#fff; }

/* ---------- 5. HERO ---------- */
.hero{
  position:relative; isolation:isolate;
  background:var(--ink); color:rgba(255,255,255,.78);
  padding:calc(var(--s-10) + 32px) 0 var(--s-9);
  overflow:hidden;
}
.hero__bg{ position:absolute; inset:0; z-index:-1; }
.hero__grid{
  position:absolute; inset:0;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
                   linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 90% 70% at 50% 30%, #000 30%, transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 30%, #000 30%, transparent 78%);
}
.hero__glow{ position:absolute; border-radius:50%; filter:blur(90px); opacity:.5; }
.hero__glow--a{ width:640px; height:640px; top:-220px; left:-140px; background:radial-gradient(circle,#2f6bff 0%, transparent 68%); }
.hero__glow--b{ width:720px; height:720px; bottom:-320px; right:-180px; background:radial-gradient(circle,#12b8a0 0%, transparent 68%); opacity:.34; }
.hero__glow--c{ width:800px; height:800px; top:-280px; right:-220px; background:radial-gradient(circle,#2f6bff 0%, transparent 70%); opacity:.28; }

.hero__inner{
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:var(--s-8); align-items:center;
}
.hero__title{ font-size:var(--fs-h1); color:#fff; margin-bottom:var(--s-5); text-wrap:balance; }
.hero__lead{ font-size:var(--fs-lead); max-width:36em; color:rgba(255,255,255,.72); margin-bottom:var(--s-6); }
.hero__cta{ display:flex; flex-wrap:wrap; gap:var(--s-3); margin-bottom:var(--s-7); }
.hero__chips{
  display:flex; flex-wrap:wrap; gap:var(--s-2) var(--s-5);
  font-size:.875rem; color:rgba(255,255,255,.62);
}
.hero__chips li{ display:inline-flex; align-items:center; gap:8px; }
.dot{ width:7px; height:7px; border-radius:50%; background:var(--teal-300); box-shadow:0 0 0 4px rgba(94,224,204,.14); }

/* okno rozmowy */
.term{
  background:linear-gradient(165deg, rgba(23,34,56,.96), rgba(12,19,34,.96));
  border:1px solid rgba(255,255,255,.10);
  border-radius:var(--r-xl);
  box-shadow:0 40px 90px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.08);
  overflow:hidden;
  transform:perspective(1400px) rotateY(-6deg) rotateX(2deg);
  transition:transform .6s var(--ease);
}
.term:hover{ transform:perspective(1400px) rotateY(-2deg) rotateX(0deg); }
.term__bar{
  display:flex; align-items:center; gap:7px;
  padding:14px var(--s-5); border-bottom:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.03);
}
.term__bar span{ width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.16); }
.term__bar em{
  margin-left:auto; font-style:normal; font-family:var(--font-display);
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.42);
}
.term__body{ padding:var(--s-5); display:flex; flex-direction:column; gap:var(--s-3); }
.msg{
  margin:0; font-size:.925rem; line-height:1.6; padding:13px 16px;
  border-radius:16px; max-width:92%;
  animation:msgIn .6s var(--ease) both;
}
.msg--user{
  align-self:flex-end; background:rgba(47,107,255,.20);
  border:1px solid rgba(123,163,255,.32); color:#e7eeff; border-bottom-right-radius:5px;
}
.msg--ai{
  align-self:flex-start; background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.09); color:rgba(255,255,255,.80); border-bottom-left-radius:5px;
}
.msg--ai strong{ color:var(--teal-300); }
.msg--ai:nth-of-type(2){ animation-delay:.15s; }
.msg--ai:nth-of-type(3){ animation-delay:.3s; }
.msg--ai:nth-of-type(4){ animation-delay:.45s; }
.msg--typing{
  align-self:flex-start; display:flex; gap:5px; padding:15px 16px;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.09);
  border-radius:16px; border-bottom-left-radius:5px; animation-delay:.6s;
}
.msg--typing span{
  width:6px; height:6px; border-radius:50%; background:var(--teal-300);
  animation:blink 1.4s infinite both;
}
.msg--typing span:nth-child(2){ animation-delay:.2s; }
.msg--typing span:nth-child(3){ animation-delay:.4s; }
@keyframes msgIn{ from{ opacity:0; transform:translateY(12px);} to{ opacity:1; transform:none; } }
@keyframes blink{ 0%,60%,100%{ opacity:.25; } 30%{ opacity:1; } }

/* ---------- 6. SEKCJE ---------- */
.section{ padding:var(--s-9) 0; position:relative; }
.section--tight{ padding-block:var(--s-8); }
.section--alt{ background:var(--bg-alt); border-block:1px solid var(--border); }
.section--dark{
  background:var(--navy); color:rgba(255,255,255,.72);
  overflow:hidden; isolation:isolate;
}
.sec-dark__bg{ position:absolute; inset:0; z-index:-1; }

.sec-head{ max-width:56ch; margin-bottom:var(--s-8); }
.sec-head h2{ text-wrap:balance; }
.sec-head--light h2{ color:#fff; }
.sec-head__lead{ font-size:var(--fs-lead); color:var(--text-muted); }
.sec-head--light .sec-head__lead{ color:rgba(255,255,255,.66); }

/* porownanie */
.compare{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s-5); }
.compare__col{ padding:var(--s-6); border-radius:var(--r-xl); border:1px solid var(--border); }
.compare__col h3{ margin-bottom:var(--s-5); }
.compare__col--muted{ background:var(--slate-50); }
.compare__col--muted h3{ color:var(--slate-500); }
.compare__col--hi{
  position:relative; border-color:rgba(47,107,255,.28);
  background:linear-gradient(158deg,#fff 55%, rgba(47,107,255,.06) 100%);
  box-shadow:var(--sh-lg);
}
.compare__badge{
  position:absolute; top:-13px; left:var(--s-6);
  background:var(--accent); color:#fff; font-family:var(--font-display); font-weight:800;
  font-size:.7rem; letter-spacing:.16em; padding:6px 14px; border-radius:var(--r-full);
  box-shadow:var(--sh-accent);
}
.list li{
  position:relative; padding-left:34px; margin-bottom:var(--s-3); font-size:.98rem;
}
.list li:last-child{ margin-bottom:0; }
.list li::before{
  position:absolute; left:0; top:1px;
  width:22px; height:22px; border-radius:50%;
  display:grid; place-items:center; font-size:.85rem; font-weight:700;
}
.list--minus li{ color:var(--slate-500); }
.list--minus li::before{ content:"–"; background:var(--slate-200); color:var(--slate-500); }
.list--plus li::before{ content:"✓"; background:rgba(18,184,160,.14); color:#0d8f7c; font-size:.75rem; }

/* karty funkcji */
.cards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s-5); }
.card{
  position:relative; padding:var(--s-6); background:#fff;
  border:1px solid var(--border); border-radius:var(--r-xl);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.card::after{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; z-index:0;
  background:linear-gradient(160deg, rgba(47,107,255,.05), transparent 55%);
  opacity:0; transition:opacity .3s var(--ease);
}
.card:hover{ transform:translateY(-5px); box-shadow:var(--sh-lg); border-color:rgba(47,107,255,.3); }
.card:hover::after{ opacity:1; }
.card__icon{
  width:48px; height:48px; border-radius:14px; margin-bottom:var(--s-5);
  display:grid; place-items:center; color:var(--accent);
  background:var(--accent-soft); border:1px solid rgba(47,107,255,.16);
  transition:transform .3s var(--ease);
}
.card:hover .card__icon{ transform:scale(1.06) rotate(-3deg); }
.card__icon svg{ width:24px; height:24px; }
.card h3{ margin-bottom:var(--s-3); }
.card p{ font-size:.96rem; color:var(--text-muted); }

/* zastosowania */
.uses{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s-4); }
.use{
  padding:var(--s-6); background:#fff; border:1px solid var(--border);
  border-radius:var(--r-lg); border-left:3px solid var(--accent);
  transition:transform .28s var(--ease), box-shadow .28s var(--ease);
}
.use:hover{ transform:translateY(-4px); box-shadow:var(--sh-md); }
.use__tag{
  display:inline-block; font-family:var(--font-display); font-size:.7rem; font-weight:800;
  letter-spacing:.12em; text-transform:uppercase; color:var(--accent);
  background:var(--accent-soft); padding:5px 11px; border-radius:var(--r-full);
  margin-bottom:var(--s-4);
}
.use h3{ font-size:1.1rem; margin-bottom:var(--s-2); }
.use p{ font-size:.94rem; color:var(--text-muted); }

/* statystyki */
.stats{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--s-5);
  margin-top:var(--s-8); padding-top:var(--s-7); border-top:1px solid var(--border);
}
.stat{ text-align:center; }
.stat__num,.stat__suf{
  font-family:var(--font-display); font-weight:800; font-size:2.6rem;
  color:var(--text-strong); letter-spacing:-.03em; line-height:1;
}
.stat__suf{ color:var(--accent); }
.stat p{ margin-top:var(--s-3); font-size:.9rem; color:var(--text-muted); }

/* kroki */
.steps{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s-6); counter-reset:step; }
.step{ position:relative; padding-top:var(--s-6); border-top:2px solid var(--border); }
.step::after{
  content:""; position:absolute; top:-2px; left:0; height:2px; width:0;
  background:linear-gradient(90deg,var(--accent),var(--teal)); transition:width .9s var(--ease) .2s;
}
.step.is-visible::after{ width:100%; }
.step__num{
  display:block; font-family:var(--font-display); font-weight:800; font-size:.85rem;
  letter-spacing:.18em; color:var(--accent); margin-bottom:var(--s-3);
}
.step p{ color:var(--text-muted); font-size:.98rem; }

/* bezpieczenstwo */
.sec-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s-4); }
.sec-item{
  padding:var(--s-6);
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.09);
  border-radius:var(--r-lg);
  backdrop-filter:blur(8px);
  transition:transform .28s var(--ease), background-color .28s var(--ease), border-color .28s var(--ease);
}
.sec-item:hover{ transform:translateY(-4px); background:rgba(255,255,255,.06); border-color:rgba(94,224,204,.28); }
.sec-item__icon{
  width:44px; height:44px; border-radius:12px; margin-bottom:var(--s-4);
  display:grid; place-items:center; color:var(--teal-300);
  background:rgba(18,184,160,.12); border:1px solid rgba(94,224,204,.20);
}
.sec-item__icon svg{ width:22px; height:22px; }
.sec-item h3{ color:#fff; font-size:1.08rem; margin-bottom:var(--s-2); }
.sec-item p{ font-size:.94rem; color:rgba(255,255,255,.62); }
.sec-note{
  margin-top:var(--s-6); font-size:.9rem; color:rgba(255,255,255,.58);
  padding-left:var(--s-4); border-left:2px solid rgba(255,255,255,.14);
}

/* FAQ */
.faq{ display:flex; flex-direction:column; gap:var(--s-3); }
.faq__item{
  background:#fff; border:1px solid var(--border); border-radius:var(--r-md);
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.faq__item[open]{ border-color:rgba(47,107,255,.35); box-shadow:var(--sh-md); }
.faq__item summary{
  cursor:pointer; list-style:none; padding:var(--s-5) var(--s-6);
  font-family:var(--font-display); font-weight:700; font-size:1.03rem; color:var(--text-strong);
  display:flex; align-items:center; justify-content:space-between; gap:var(--s-4);
}
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary::after{
  content:""; flex:none; width:12px; height:12px;
  border-right:2px solid var(--accent); border-bottom:2px solid var(--accent);
  transform:rotate(45deg) translateY(-3px); transition:transform .3s var(--ease);
}
.faq__item[open] summary::after{ transform:rotate(-135deg) translateY(-3px); }
.faq__body{ padding:0 var(--s-6) var(--s-5); color:var(--text-muted); font-size:.98rem; }

/* CTA / kontakt */
.section--cta{ background:var(--bg-alt); border-top:1px solid var(--border); }
.cta{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.85fr); gap:var(--s-8);
  align-items:start;
  background:var(--ink);
  border-radius:var(--r-xl);
  padding:var(--s-8);
  position:relative; overflow:hidden; isolation:isolate;
  box-shadow:var(--sh-lg);
}
.cta::before{
  content:""; position:absolute; width:600px; height:600px; top:-260px; left:-160px; z-index:-1;
  background:radial-gradient(circle,rgba(47,107,255,.55) 0%, transparent 68%); filter:blur(80px);
}
.cta h2{ color:#fff; }
.cta__lead{ color:rgba(255,255,255,.70); font-size:var(--fs-lead); }
.cta__points{ margin:var(--s-5) 0; display:flex; flex-direction:column; gap:10px; }
.cta__points li{
  position:relative; padding-left:28px; font-size:.96rem; color:rgba(255,255,255,.72);
}
.cta__points li::before{
  content:"✓"; position:absolute; left:0; top:0; color:var(--teal-300); font-weight:700;
}
.cta__direct{
  margin-top:var(--s-6); padding-top:var(--s-5); border-top:1px solid rgba(255,255,255,.12);
  display:flex; flex-wrap:wrap; gap:var(--s-3); align-items:center;
  font-family:var(--font-display); font-weight:600;
}
.cta__direct a{ color:var(--teal-300); }
.cta__direct a:hover{ color:#fff; }
.cta__direct span{ color:rgba(255,255,255,.25); }

/* formularz */
.form{
  background:#fff; border-radius:var(--r-lg); padding:var(--s-6);
  display:flex; flex-direction:column; gap:var(--s-4);
  box-shadow:0 20px 50px rgba(0,0,0,.28);
}
.form__row{ display:flex; flex-direction:column; gap:7px; }
.form__grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s-4); }
.form label{
  font-family:var(--font-display); font-size:.82rem; font-weight:700;
  color:var(--slate-600); letter-spacing:.01em;
}
.req{ color:var(--accent); }
.form input[type="text"],.form input[type="email"],.form input[type="tel"],.form textarea{
  font-family:var(--font-body); font-size:.97rem; color:var(--text-strong);
  padding:12px 14px; border:1px solid var(--slate-300); border-radius:var(--r-sm);
  background:var(--white); transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
  width:100%;
}
.form input:focus,.form textarea:focus{
  outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(47,107,255,.16);
}
.form input:user-invalid,.form textarea:user-invalid{ border-color:#e05252; }
.form textarea{ resize:vertical; min-height:96px; }
.form__check{
  display:flex; gap:10px; align-items:flex-start;
  font-family:var(--font-body); font-size:.82rem; font-weight:400;
  color:var(--text-muted); line-height:1.5; text-transform:none; letter-spacing:0;
}
.form__check input{ margin-top:3px; width:16px; height:16px; accent-color:var(--accent); flex:none; }
.form__note{ font-size:.8rem; color:var(--slate-500); text-align:center; margin:0; }
.form__status{ margin:0; font-size:.88rem; font-weight:600; text-align:center; }
.form__status.is-ok{ color:#0d8f7c; }
.form__status.is-err{ color:#c93b3b; }

/* ---------- 7. STOPKA ---------- */
.footer{ background:var(--ink); color:rgba(255,255,255,.64); padding-top:var(--s-8); }
.footer__inner{
  display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr); gap:var(--s-8);
  padding-bottom:var(--s-7);
}
.footer__brand p{ margin-top:var(--s-4); font-size:.92rem; max-width:36ch; }
.footer__links{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s-5); }
.footer__links h4{ color:#fff; margin-bottom:var(--s-4); }
.footer__links a{ display:block; color:rgba(255,255,255,.64); font-size:.92rem; padding:5px 0; }
.footer__links a:hover{ color:var(--teal-300); }
.footer__bottom{
  display:flex; flex-wrap:wrap; gap:var(--s-4); justify-content:space-between;
  padding-block:var(--s-5); border-top:1px solid rgba(255,255,255,.09);
  font-size:.84rem; color:rgba(255,255,255,.55);
}
.footer__bottom p{ margin:0; }
.footer__bottom a{ color:rgba(255,255,255,.55); }
.footer__bottom a:hover{ color:var(--teal-300); }

/* ---------- 8. ANIMACJE WEJSCIA ---------- */
.reveal{ opacity:0; transform:translateY(22px); }
.reveal.is-visible{
  opacity:1; transform:none;
  transition:opacity .7s var(--ease), transform .7s var(--ease);
}

/* ---------- 9. RESPONSYWNOSC ---------- */
@media (max-width:1024px){
  .hero__inner{ grid-template-columns:1fr; gap:var(--s-7); }
  .hero__panel{ max-width:620px; margin-inline:auto; }
  .term{ transform:none; }
  .cards,.uses,.sec-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .steps{ grid-template-columns:1fr; gap:var(--s-5); }
  .stats{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s-6); }
  .cta{ grid-template-columns:1fr; gap:var(--s-6); padding:var(--s-6); }
  .footer__inner{ grid-template-columns:1fr; gap:var(--s-6); }
}

@media (max-width:768px){
  :root{ --s-9:64px; --s-10:80px; }
  .nav__links{ display:none; }
  .nav__toggle{ display:block; }
  .nav.is-open .nav__mobile{ display:flex; }
  .hero{ padding-top:118px; }
  .compare{ grid-template-columns:1fr; }
  .cards,.uses,.sec-grid{ grid-template-columns:1fr; }
  .footer__links{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer__bottom{ flex-direction:column; gap:var(--s-2); }
}

@media (max-width:480px){
  .container{ padding-inline:var(--s-4); }
  .btn--lg{ width:100%; }
  .hero__cta{ flex-direction:column; align-items:stretch; }
  .form__grid{ grid-template-columns:1fr; }
  .stats{ grid-template-columns:1fr; gap:var(--s-5); }
  .stat__num,.stat__suf{ font-size:2.2rem; }
  .faq__item summary{ padding:var(--s-4); font-size:.98rem; }
  .faq__body{ padding:0 var(--s-4) var(--s-4); }
  .compare__col,.card,.use,.sec-item{ padding:var(--s-5); }
}

/* ---------- 10. DOSTEPNOSC ---------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important; scroll-behavior:auto !important;
  }
  .reveal{ opacity:1; transform:none; }
  .term{ transform:none; }
}

@media print{
  .nav,.hero__bg,.form,.nav__mobile{ display:none !important; }
  body{ color:#000; background:#fff; }
  .reveal{ opacity:1; transform:none; }
}
