/* =========================================================================
   BARTECKI GROUP - nowa odsłona | Soft UI (Neumorphism + Glassmorphism)
   Hybryda 2026: flat baza, neumorfizm na kartach/przyciskach/inputach,
   glass na nawigacji i pływających kartach. Kontrast WCAG zachowany.
   Tryb jasny (domyślny) + ciemny. Fallbacki reduced-motion / reduced-transparency.
   ========================================================================= */

:root {
  --grad: linear-gradient(120deg, #5b8cff 0%, #22d3ee 52%, #34d399 100%);
  --r-sm: 14px; --r: 22px; --r-lg: 30px; --r-xl: 38px; --r-pill: 999px;
  --ff-display: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ff-body: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --container: 1180px;
  --header-h: 78px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---- MOTYW JASNY (neumorficzny "canvas") ---- */
[data-theme="light"] {
  color-scheme: light;
  /* miękka, ciepło-neutralna baza - nie "laserowo biała" */
  --bg:#e8e7ec; --bg-2:#e2e1e8; --surface:#e8e7ec;
  --neu-l:#f3f2f7; --neu-d:#c9c7d2;   /* podświetlenie stonowane, nie #fff */
  --text:#272636; --text-muted:#56546a; --text-dim:#79778d;
  --line:rgba(39,38,54,.10); --line-2:rgba(39,38,54,.18);
  --accent:#4361cf; --accent-soft:rgba(67,97,207,.12);
  --glass-bg:rgba(243,242,247,.62); --glass-brd:rgba(255,255,255,.55);
  --cta-shadow:rgba(40,110,170,.26); --on-grad:#07101d;
}
/* ---- MOTYW CIEMNY (soft dark slate) ---- */
[data-theme="dark"] {
  color-scheme: dark;
  --bg:#1e2230; --bg-2:#1a1e2a; --surface:#1e2230;
  --neu-l:#272d3e; --neu-d:#14171f;
  --text:#e9ecf6; --text-muted:#a7adc3; --text-dim:#838aa1;
  --line:rgba(233,236,246,.10); --line-2:rgba(233,236,246,.18);
  --accent:#7aa2ff; --accent-soft:rgba(122,162,255,.14);
  --glass-bg:rgba(28,32,46,.52); --glass-brd:rgba(255,255,255,.08);
  --cta-shadow:rgba(0,0,0,.45); --on-grad:#08111f;
}

/* shadow recipes */
:root {
  --neu-raised: 6px 6px 14px var(--neu-d), -6px -6px 14px var(--neu-l);
  --neu-raised-sm: 4px 4px 9px var(--neu-d), -4px -4px 9px var(--neu-l);
  --neu-raised-lg: 10px 10px 26px var(--neu-d), -10px -10px 26px var(--neu-l);
  --neu-inset: inset 5px 5px 11px var(--neu-d), inset -5px -5px 11px var(--neu-l);
  --neu-inset-sm: inset 3px 3px 7px var(--neu-d), inset -3px -3px 7px var(--neu-l);
}

/* ---- RESET ---- */
*,*::before,*::after { box-sizing:border-box; }
* { margin:0; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body {
  font-family:var(--ff-body); background:var(--bg); color:var(--text);
  line-height:1.7; font-size:1.02rem; -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility; overflow-x:hidden;
  transition:background .4s var(--ease), color .4s var(--ease);
}
img,svg { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button { font:inherit; cursor:pointer; }
::selection { background: color-mix(in srgb, var(--accent) 28%, transparent); }
h1,h2,h3,h4 { font-family:var(--ff-display); font-weight:800; line-height:1.1; letter-spacing:-.025em; text-wrap:balance; }
p,li { text-wrap:pretty; }
.container { width:min(var(--container), calc(100% - 2.6rem)); margin-inline:auto; }
:focus-visible { outline:2px solid var(--accent); outline-offset:3px; border-radius:4px; }

/* ---- UTIL ---- */
.text-grad { background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }
.eyebrow { display:inline-flex; align-items:center; gap:.6rem; font-family:var(--ff-display); font-size:.75rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--text-muted); padding:.5rem 1rem; border-radius:var(--r-pill); background:var(--bg); box-shadow:var(--neu-raised-sm); }
.eyebrow::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--grad); }
.lead { font-size:1.16rem; line-height:1.7; color:var(--text-muted); max-width:60ch; }
.muted { color:var(--text-muted); }
.skip-link { position:absolute; left:1rem; top:-100px; z-index:200; background:var(--bg); color:var(--text); padding:.7rem 1.1rem; border-radius:var(--r-sm); box-shadow:var(--neu-raised-sm); }
.skip-link:focus { top:1rem; }

/* ---- PRZYCISKI ---- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.55rem; font-family:var(--ff-display); font-weight:700; font-size:.97rem; padding:.92rem 1.7rem; border-radius:var(--r-pill); border:0; background:transparent; color:var(--text); transition:transform .2s var(--ease), box-shadow .2s var(--ease), background .2s, color .2s; white-space:nowrap; }
.btn svg { width:18px; height:18px; }
.btn-sm { padding:.62rem 1.15rem; font-size:.9rem; }
.btn-primary { background:var(--grad); color:var(--on-grad); box-shadow:6px 6px 16px var(--cta-shadow), -5px -5px 14px var(--neu-l); }
.btn-primary:hover { transform:translateY(-2px); box-shadow:8px 10px 24px var(--cta-shadow), -5px -5px 14px var(--neu-l); }
.btn-primary:active { transform:translateY(0); }
.btn-soft { background:var(--bg); color:var(--text); box-shadow:var(--neu-raised-sm); }
.btn-soft:hover { transform:translateY(-2px); box-shadow:var(--neu-raised); color:var(--accent); }
.btn-soft:active { box-shadow:var(--neu-inset-sm); transform:translateY(0); }
.btn-ghost { color:var(--text-muted); padding-inline:.4rem; }
.btn-ghost:hover { color:var(--text); }

/* ---- TOPBAR + przełącznik języka ---- */
.topbar { background:var(--bg-2); border-bottom:1px solid var(--line); }
.topbar-inner { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:40px; padding:.35rem 0; }
.topbar-note { color:var(--text-dim); font-size:.82rem; letter-spacing:.03em; }
.lang-switch { display:inline-flex; gap:.18rem; background:var(--bg); border-radius:999px; padding:.22rem; box-shadow:var(--neu-inset-sm); }
.lang-switch a { padding:.2rem .65rem; border-radius:999px; font-family:var(--ff-display); font-weight:700; font-size:.76rem; letter-spacing:.04em; color:var(--text-muted); transition:color .2s; }
.lang-switch a:hover { color:var(--text); }
.lang-switch a.on { color:var(--on-grad); background:var(--grad); box-shadow:var(--neu-raised-sm); }
@media (max-width:520px) { .topbar-note { display:none; } .topbar-inner { justify-content:flex-end; } }

/* ---- HEADER / NAV (glass) ---- */
.site-header { position:sticky; top:0; z-index:100; background:var(--glass-bg); backdrop-filter:blur(14px) saturate(150%); -webkit-backdrop-filter:blur(14px) saturate(150%); border-bottom:1px solid transparent; transition:box-shadow .3s, border-color .3s; }
.site-header.scrolled { border-bottom-color:var(--glass-brd); box-shadow:0 10px 30px rgba(20,23,31,.10); }
.header-inner { display:flex; align-items:center; gap:1.25rem; height:var(--header-h); }
.brand { display:inline-flex; align-items:center; gap:.65rem; }
.brand-mark { display:grid; place-items:center; filter:drop-shadow(0 5px 12px rgba(34,211,238,.3)); transition:transform .4s var(--ease); }
.brand:hover .brand-mark { transform:rotate(-8deg) scale(1.05); }
.brand-text { font-family:var(--ff-display); font-weight:800; font-size:1.16rem; letter-spacing:-.02em; }
.site-nav { display:flex; gap:.2rem; margin-left:auto; }
.site-nav a { padding:.55rem .95rem; border-radius:var(--r-pill); color:var(--text-muted); font-weight:600; font-size:.95rem; transition:color .2s, box-shadow .2s; }
.site-nav a:hover { color:var(--text); }
.site-nav a.is-active { color:var(--text); box-shadow:var(--neu-inset-sm); background:var(--bg); }
.header-actions { display:flex; align-items:center; gap:.6rem; }
.theme-toggle { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:var(--bg); color:var(--text); box-shadow:var(--neu-raised-sm); transition:box-shadow .2s, color .2s, transform .3s var(--ease); }
.theme-toggle:hover { transform:rotate(16deg); color:var(--accent); }
.theme-toggle:active { box-shadow:var(--neu-inset-sm); }
.theme-toggle .icon-sun { display:block; } .theme-toggle .icon-moon { display:none; }
[data-theme="dark"] .theme-toggle .icon-sun { display:none; } [data-theme="dark"] .theme-toggle .icon-moon { display:block; }
.nav-toggle { display:none; width:46px; height:46px; border-radius:var(--r-sm); background:var(--bg); box-shadow:var(--neu-raised-sm); flex-direction:column; gap:5px; align-items:center; justify-content:center; }
.nav-toggle span { width:20px; height:2px; background:var(--text); border-radius:2px; transition:transform .3s var(--ease), opacity .2s; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);} .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;} .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-nav { display:none; flex-direction:column; gap:.3rem; padding:1rem 1.25rem 1.5rem; background:var(--bg); }
.mobile-nav.open { display:flex; animation:drop .35s var(--ease); }
.mobile-nav a { padding:.85rem 1.1rem; border-radius:var(--r-sm); color:var(--text-muted); font-weight:600; }
.mobile-nav a.is-active, .mobile-nav a:hover { color:var(--text); box-shadow:var(--neu-inset-sm); }
.mobile-nav a.btn.btn-primary { color:var(--on-grad); box-shadow:var(--neu-raised-sm); margin-top:.5rem; }
@keyframes drop { from{opacity:0;transform:translateY(-10px);} to{opacity:1;transform:none;} }

/* ---- HERO (mesh + glass card) ---- */
.hero { position:relative; padding:clamp(3.5rem,8vw,6.5rem) 0 clamp(3rem,6vw,5rem); overflow:hidden; }
.hero::before { content:""; position:absolute; inset:-20% -10% auto -10%; height:120%; z-index:0; pointer-events:none; opacity:.6; filter:blur(70px);
  background:radial-gradient(36% 44% at 18% 22%, rgba(91,140,255,.5), transparent 60%), radial-gradient(34% 42% at 82% 18%, rgba(34,211,238,.42), transparent 60%), radial-gradient(40% 48% at 60% 80%, rgba(52,211,153,.4), transparent 62%); }
[data-theme="dark"] .hero::before { opacity:.5; }
.hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,4vw,3.5rem); align-items:center; }
.hero h1 { font-size:clamp(2.6rem,6vw,4.5rem); font-weight:800; letter-spacing:-.035em; margin-top:1.4rem; line-height:1; }
.hero .lead { margin-top:1.6rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.85rem; margin-top:2.2rem; }
.hero-trust { display:flex; flex-wrap:wrap; gap:1.4rem 2rem; margin-top:2.6rem; }
.hero-trust strong { font-family:var(--ff-display); font-weight:800; font-size:1.75rem; display:block; line-height:1; }
.hero-trust .ht-item span { font-size:.85rem; color:var(--text-dim); display:block; margin-top:.3rem; }

.hero-card { position:relative; border-radius:var(--r-xl); background:var(--glass-bg); backdrop-filter:blur(16px) saturate(140%); -webkit-backdrop-filter:blur(16px) saturate(140%); border:1px solid var(--glass-brd); box-shadow:0 30px 70px rgba(20,23,31,.18); padding:1.7rem; display:grid; gap:1rem; }
.hero-stat { display:flex; align-items:center; gap:1rem; padding:1.05rem 1.15rem; border-radius:var(--r); background:var(--bg); box-shadow:var(--neu-raised-sm); }
.hero-stat .ico { display:grid; place-items:center; width:48px; height:48px; border-radius:14px; background:var(--grad); color:var(--on-grad); flex-shrink:0; }
.hero-stat .ico svg { width:24px; height:24px; }
.hero-stat b { font-family:var(--ff-display); font-weight:700; font-size:1.04rem; display:block; }
.hero-stat span { color:var(--text-muted); font-size:.9rem; }

/* ---- SEKCJE ---- */
.section { padding:clamp(3.5rem,7vw,6rem) 0; position:relative; }
.section-tint { background:var(--bg-2); }
.section-head { max-width:64ch; margin-bottom:3rem; }
.section-head.center { margin-inline:auto; text-align:center; }
.section-head.center .eyebrow { margin-inline:auto; }
.section-head h2 { font-size:clamp(2rem,4vw,3rem); margin-top:1rem; }
.section-head p { margin-top:1rem; }

/* ---- GRID / KARTY (neumorficzne) ---- */
.grid { display:grid; gap:1.6rem; }
.grid-2 { grid-template-columns:repeat(2,1fr); }
.grid-3 { grid-template-columns:repeat(3,1fr); }
.split { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,4vw,3.5rem); align-items:center; }
.card { position:relative; padding:2rem; border-radius:var(--r-lg); background:var(--bg); box-shadow:var(--neu-raised); transition:transform .35s var(--ease), box-shadow .35s; }
.card:hover { transform:translateY(-5px); box-shadow:var(--neu-raised-lg); }
.card-ico { display:grid; place-items:center; width:58px; height:58px; border-radius:18px; background:var(--grad); color:var(--on-grad); margin-bottom:1.3rem; box-shadow:var(--neu-raised-sm); transition:transform .35s var(--ease); }
.card:hover .card-ico { transform:translateY(-2px) scale(1.05); }
.card-ico svg { width:27px; height:27px; }
.card h3 { font-size:1.28rem; font-weight:700; margin-bottom:.55rem; }
.card p { color:var(--text-muted); font-size:.99rem; }
.card .card-num { position:absolute; top:1.3rem; right:1.6rem; font-family:var(--ff-display); font-weight:800; color:var(--text-dim); opacity:.6; }
.check-list { display:grid; gap:.85rem; margin-top:1.3rem; }
.check-list li { list-style:none; display:flex; gap:.75rem; align-items:flex-start; color:var(--text-muted); }
.check-list li::before { content:""; flex-shrink:0; width:24px; height:24px; margin-top:1px; border-radius:8px; background:var(--bg); box-shadow:var(--neu-raised-sm);
  -webkit-mask: none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322a3c7' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E"); background-size:14px; background-repeat:no-repeat; background-position:center; }

/* ---- MARKI ---- */
.brand-card { position:relative; padding:2.5rem; border-radius:var(--r-xl); background:var(--bg); box-shadow:var(--neu-raised); overflow:hidden; transition:transform .4s var(--ease), box-shadow .4s; }
.brand-card:hover { transform:translateY(-5px); box-shadow:var(--neu-raised-lg); }
.brand-card .brand-tag { display:inline-flex; align-items:center; gap:.5rem; font-family:var(--ff-display); font-weight:700; letter-spacing:.04em; font-size:.82rem; text-transform:uppercase; color:var(--text-muted); padding:.5rem .95rem; border-radius:var(--r-pill); background:var(--bg); box-shadow:var(--neu-inset-sm); }
.brand-card h3 { font-size:1.7rem; font-weight:800; margin:1.1rem 0 .8rem; }
.brand-card .brand-meta { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1.3rem; }
.chip { font-size:.82rem; padding:.42rem .9rem; border-radius:var(--r-pill); background:var(--bg); box-shadow:var(--neu-raised-sm); color:var(--text-muted); }
.brand-card .brand-soon { margin-top:1.4rem; font-size:.9rem; color:var(--text-dim); }
.brand-card .brand-actions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.6rem; }

/* ---- STATY (neumorficzny pasek) ---- */
.stat-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:1.3rem; }
.stat-box { text-align:center; padding:2rem 1rem; border-radius:var(--r-lg); background:var(--bg); box-shadow:var(--neu-raised); }
.stat-box .num { font-family:var(--ff-display); font-weight:800; font-size:clamp(2.1rem,4vw,2.9rem); line-height:1; background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.stat-box .label { color:var(--text-muted); font-size:.92rem; margin-top:.7rem; }

/* ---- KROKI ---- */
.steps { counter-reset:step; display:grid; gap:1.4rem; }
.steps.grid-2 { grid-template-columns:1fr 1fr; }
.step { position:relative; padding:1.7rem 1.7rem 1.7rem 5rem; border-radius:var(--r-lg); background:var(--bg); box-shadow:var(--neu-raised); }
.step::before { counter-increment:step; content:counter(step,decimal-leading-zero); position:absolute; left:1.5rem; top:1.5rem; width:2.4rem; height:2.4rem; display:grid; place-items:center; border-radius:50%; background:var(--bg); box-shadow:var(--neu-inset-sm); font-family:var(--ff-display); font-weight:800; font-size:.95rem; background-image:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.step h4 { font-size:1.18rem; font-weight:700; margin-bottom:.4rem; }
.step p { color:var(--text-muted); }

/* ---- FAQ ---- */
.faq { display:grid; gap:1rem; }
.faq-item { border-radius:var(--r); background:var(--bg); box-shadow:var(--neu-raised-sm); overflow:hidden; transition:box-shadow .3s; }
.faq-item.open { box-shadow:var(--neu-raised); }
.faq-q { width:100%; text-align:left; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.3rem 1.5rem; font-family:var(--ff-display); font-weight:700; font-size:1.06rem; color:var(--text); background:transparent; }
.faq-q .plus { flex-shrink:0; width:30px; height:30px; border-radius:50%; background:var(--bg); box-shadow:var(--neu-raised-sm); position:relative; transition:transform .3s var(--ease); }
.faq-q .plus::before, .faq-q .plus::after { content:""; position:absolute; inset:50% 8px auto 8px; height:2px; background:var(--accent); border-radius:2px; transform:translateY(-50%); transition:opacity .3s; }
.faq-q .plus::after { transform:translateY(-50%) rotate(90deg); }
.faq-item.open .faq-q .plus { transform:rotate(180deg); }
.faq-item.open .faq-q .plus::after { opacity:0; }
.faq-a { max-height:0; overflow:hidden; transition:max-height .35s var(--ease); }
.faq-a-inner { padding:0 1.5rem 1.4rem; color:var(--text-muted); }

/* ---- CTA ---- */
.cta-band { position:relative; border-radius:var(--r-xl); padding:clamp(2.8rem,5vw,4.5rem); overflow:hidden; background:var(--bg); box-shadow:var(--neu-raised-lg); text-align:center; }
.cta-band::before { content:""; position:absolute; inset:0; opacity:.5; pointer-events:none; background:radial-gradient(60% 110% at 50% 0%, rgba(34,211,238,.18), transparent 60%); }
.cta-band > * { position:relative; z-index:1; }
.cta-band h2 { font-size:clamp(1.9rem,3.6vw,2.7rem); }
.cta-band p { color:var(--text-muted); max-width:56ch; margin:1.1rem auto 2rem; }
.cta-actions { display:flex; gap:.9rem; justify-content:center; flex-wrap:wrap; }

/* ---- PAGE HERO ---- */
.page-hero { position:relative; padding:clamp(3rem,6vw,5rem) 0 clamp(2rem,4vw,3rem); overflow:hidden; }
.page-hero::before { content:""; position:absolute; inset:-30% 0 auto 0; height:90%; z-index:0; opacity:.7; filter:blur(70px); pointer-events:none; background:radial-gradient(34% 60% at 16% 16%, rgba(91,140,255,.42), transparent 60%), radial-gradient(34% 60% at 84% 6%, rgba(52,211,153,.38), transparent 60%); }
[data-theme="dark"] .page-hero::before { opacity:.42; }
.page-hero .container { position:relative; z-index:1; }
.page-hero h1 { font-size:clamp(2.4rem,5vw,3.7rem); font-weight:800; margin-top:1.2rem; }
.page-hero .lead { margin-top:1.2rem; }
.breadcrumb { display:flex; gap:.5rem; align-items:center; font-size:.88rem; color:var(--text-dim); }
.breadcrumb a:hover { color:var(--accent); }
.breadcrumb span { opacity:.5; }
.error-hero { min-height:62vh; display:grid; align-items:center; }
.error-code { font-family:var(--ff-display); font-weight:800; font-size:clamp(4rem,16vw,9rem); line-height:1; margin:.5rem 0; }

/* ---- FORMULARZ (inputy neumorficzne wklęsłe) ---- */
.contact-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,4vw,3.5rem); align-items:start; }
.contact-info { display:grid; gap:1rem; }
.contact-info .info-row { display:flex; gap:1rem; align-items:center; padding:1.1rem 1.2rem; border-radius:var(--r); background:var(--bg); box-shadow:var(--neu-raised-sm); }
.contact-info .info-row .ico { display:grid; place-items:center; width:46px; height:46px; border-radius:14px; background:var(--grad); color:var(--on-grad); flex-shrink:0; }
.contact-info .info-row .ico svg { width:22px; height:22px; }
.contact-info .info-row b { font-family:var(--ff-display); font-weight:700; display:block; font-size:.94rem; }
.contact-info .info-row a, .contact-info .info-row span { color:var(--text-muted); font-size:.97rem; }
.contact-info .info-row a:hover { color:var(--accent); }
.contact-form { padding:clamp(1.7rem,3vw,2.5rem); border-radius:var(--r-xl); background:var(--bg); box-shadow:var(--neu-raised); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.field { display:grid; gap:.45rem; margin-bottom:1.1rem; }
.field label { font-size:.9rem; font-weight:700; font-family:var(--ff-display); color:var(--text); }
.field label .req { color:var(--accent); }
.field input, .field textarea, .field select { width:100%; padding:.95rem 1.05rem; border-radius:var(--r-sm); font:inherit; background:var(--bg); border:0; color:var(--text); box-shadow:var(--neu-inset-sm); transition:box-shadow .2s; }
.field input::placeholder, .field textarea::placeholder { color:var(--text-dim); }
.field input:focus, .field textarea:focus, .field select:focus { outline:none; box-shadow:var(--neu-inset-sm), 0 0 0 2px var(--accent); }
.field textarea { min-height:150px; resize:vertical; }
.field.invalid input, .field.invalid textarea { box-shadow:var(--neu-inset-sm), 0 0 0 2px #e2574c; }
.field .err { font-size:.82rem; color:#e2574c; display:none; }
.field.invalid .err { display:block; }
.form-consent { display:flex; gap:.7rem; align-items:flex-start; font-size:.88rem; color:var(--text-muted); margin-bottom:1.3rem; }
.form-consent input { width:20px; height:20px; margin-top:2px; accent-color:var(--accent); flex-shrink:0; }
.form-consent a { color:var(--accent); text-decoration:underline; }
.hp-field { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.captcha-widget { margin-bottom:1.3rem; }
.captcha-field input { max-width:160px; }
.form-submit { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.form-note { font-size:.85rem; color:var(--text-dim); }
.form-alert { padding:1rem 1.2rem; border-radius:var(--r-sm); margin-bottom:1.3rem; font-size:.95rem; display:flex; gap:.7rem; box-shadow:var(--neu-inset-sm); }
.form-alert.ok { color:#0c7a52; } [data-theme="dark"] .form-alert.ok { color:#5fd6a0; }
.form-alert.err { color:#c0392b; } [data-theme="dark"] .form-alert.err { color:#ff8b80; }
.btn.loading { pointer-events:none; opacity:.75; }
.btn.loading .btn-label { opacity:.5; }
.spinner { width:16px; height:16px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:spin .7s linear infinite; display:none; }
.btn.loading .spinner { display:inline-block; }
@keyframes spin { to{transform:rotate(360deg);} }
.contact-map { margin-top:2.5rem; border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--neu-raised); line-height:0; }
.contact-map iframe { width:100%; height:360px; border:0; display:block; }
[data-theme="dark"] .contact-map iframe { filter:invert(.92) hue-rotate(180deg) saturate(.8) brightness(.95); }

/* ---- PROSE ---- */
.prose { max-width:74ch; }
.prose h2 { font-size:1.6rem; font-weight:800; margin:2.4rem 0 .8rem; }
.prose h3 { font-size:1.2rem; font-weight:700; margin:1.6rem 0 .6rem; }
.prose p, .prose li { color:var(--text-muted); margin-bottom:.8rem; }
.prose ul, .prose ol { padding-left:1.3rem; }
.prose a { color:var(--accent); text-decoration:underline; }
.prose strong { color:var(--text); }

/* ---- STOPKA ---- */
.site-footer { margin-top:2rem; padding-top:clamp(3rem,5vw,4rem); background:var(--bg-2); }
.footer-grid { display:grid; grid-template-columns:1.7fr 1fr 1fr 1.2fr; gap:2.6rem; padding-bottom:3rem; }
.footer-tagline { color:var(--text-muted); margin-top:1.1rem; max-width:38ch; font-size:.96rem; }
.footer-social { display:flex; gap:.6rem; margin-top:1.4rem; }
.footer-social a { display:grid; place-items:center; width:42px; height:42px; border-radius:14px; background:var(--bg-2); box-shadow:var(--neu-raised-sm); color:var(--text-muted); font-family:var(--ff-display); font-weight:700; font-size:.85rem; transition:color .2s; }
.footer-social a:hover { color:var(--accent); }
.footer-col h3 { font-family:var(--ff-display); font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-dim); margin-bottom:1.1rem; font-weight:700; }
/* linki nawigacyjne w stopce - każdy pod sobą */
.footer-col a:not(.btn) { display:flex; align-items:center; gap:.35rem; width:fit-content; color:var(--text-muted); padding:.35rem 0; transition:color .2s; }
.footer-col a:not(.btn):hover { color:var(--accent); }
.footer-contact span { display:block; color:var(--text-muted); padding:.35rem 0; }
.footer-contact .btn { display:inline-flex; width:fit-content; max-width:100%; margin-top:1rem; }
.footer-legal { padding:1.5rem 0 0; color:var(--text-dim); font-size:.86rem; line-height:1.7; }
.footer-legal strong { color:var(--text-muted); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; padding:1.5rem 0; margin-top:1.4rem; border-top:1px solid var(--line); color:var(--text-dim); font-size:.9rem; }
.footer-bottom-links a:hover { color:var(--accent); }

/* ---- TO-TOP / COOKIES ---- */
.to-top { position:fixed; right:1.4rem; bottom:1.4rem; z-index:90; width:48px; height:48px; border-radius:50%; display:grid; place-items:center; background:var(--bg); color:var(--accent); box-shadow:var(--neu-raised); opacity:0; visibility:hidden; transform:translateY(12px); transition:opacity .3s, transform .3s, visibility .3s; }
.to-top.show { opacity:1; visibility:visible; transform:none; }
.to-top:active { box-shadow:var(--neu-inset-sm); }
.cookie-bar { position:fixed; left:50%; bottom:1.2rem; transform:translateX(-50%) translateY(160%); z-index:120; width:min(680px, calc(100% - 2rem)); display:flex; gap:1.1rem; align-items:center; flex-wrap:wrap; justify-content:space-between; padding:1.1rem 1.3rem; border-radius:var(--r-lg); background:var(--glass-bg); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border:1px solid var(--glass-brd); box-shadow:0 24px 60px rgba(20,23,31,.22); opacity:0; visibility:hidden; transition:transform .5s var(--ease), opacity .4s, visibility .4s; }
.cookie-bar.show { transform:translateX(-50%) translateY(0); opacity:1; visibility:visible; }
.cookie-bar p { font-size:.9rem; color:var(--text-muted); margin:0; flex:1 1 280px; }
.cookie-bar p a { color:var(--accent); text-decoration:underline; }
.cookie-bar .cookie-actions { display:flex; gap:.6rem; flex-shrink:0; }

/* ---- SCROLL REVEAL ---- */
[data-reveal] { opacity:0; transform:translateY(24px); transition:opacity .75s var(--ease), transform .75s var(--ease); }
[data-reveal].in { opacity:1; transform:none; }
[data-reveal][data-delay="1"]{transition-delay:.08s;} [data-reveal][data-delay="2"]{transition-delay:.16s;} [data-reveal][data-delay="3"]{transition-delay:.24s;} [data-reveal][data-delay="4"]{transition-delay:.32s;}

/* ===== DOSTĘPNOŚĆ: respektuj preferencje systemu ===== */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; }
  [data-reveal] { opacity:1; transform:none; }
}
@media (prefers-reduced-transparency: reduce) {
  .site-header, .hero-card, .cookie-bar { background:var(--bg-2)!important; backdrop-filter:none!important; -webkit-backdrop-filter:none!important; border:1px solid var(--line-2)!important; }
}

/* ---- RWD ---- */
@media (max-width:980px) {
  .site-nav, .header-cta { display:none; }
  .nav-toggle { display:flex; }
  .hero-grid { grid-template-columns:1fr; }
  .hero-card { order:-1; }
  .split, .contact-layout { grid-template-columns:1fr; }
  .grid-3 { grid-template-columns:repeat(2,1fr); }
  .steps.grid-2 { grid-template-columns:1fr; }
  .stat-strip { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:1fr 1fr; gap:2rem; }
  .footer-brand { grid-column:1 / -1; }
}
@media (max-width:620px) {
  .grid-2, .grid-3, .stat-strip { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-bottom { flex-direction:column; align-items:flex-start; }
  .hero-trust { gap:1.2rem 1.8rem; }
}
@media (max-width:600px) {
  .btn { white-space:normal; text-align:center; }
  .hero-actions .btn, .cta-actions .btn { width:100%; }
  .footer-contact a.btn { width:auto; }
}
@media (max-width:480px) {
  .container { width:calc(100% - 1.8rem); }
  .hero h1, .page-hero h1 { word-break:break-word; }
  .brand-text { font-size:1.04rem; }
  .breadcrumb { flex-wrap:wrap; }
  .stat-box { padding:1.6rem 1rem; }
  .card, .brand-card, .contact-form { padding:1.55rem; }
  .brand-actions { flex-direction:column; }
  .brand-actions .btn { width:100%; }
  .cta-band { padding:2rem 1.3rem; }
  .header-inner { gap:.6rem; }
}
