/* ===== Limitless Web v2.2 ===== */

/* Reset */
*,
*::before,
*::after { box-sizing: border-box; }
html, body { margin:0; padding:0; width:100%; overflow-x:hidden; }
html:focus-within { scroll-behavior: smooth; }
img, picture, video, canvas, svg { display:block; max-width:100%; }
input, button, textarea, select { font: inherit; }
:target { scroll-margin-top: 96px; }

:root {
  --bg:#0B0F19; --bg-alt:#0f1626; --text:#E6EAF2; --muted:#9AA3B2;
  --card:#121a2c; --line:#1e2a44;
  --primary:#7B5CFF; --secondary:#00D1FF; --accent:#00FFA3;
  --shadow:0 10px 24px rgba(0,0,0,.28); --radius:16px;
}

@media (prefers-color-scheme:light){
  :root{ --bg:#fff; --bg-alt:#f6f8ff; --text:#0B0F19; --muted:#4b5565; --card:#fff; --line:#e5e7eb; }
}

/* Base */
body{ background:var(--bg); color:var(--text); font-family:"Inter", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial; line-height:1.6; }
.app--blurred{ filter:blur(4px) saturate(.9) brightness(.85); pointer-events:none; user-select:none; }
.skip-link{ position:absolute; left:-9999px; } .skip-link:focus{ position:fixed; left:16px; top:16px; padding:10px 14px; background:var(--card); border-radius:8px; z-index:9999; }
.container{ width:min(1120px,92vw); margin:0 auto; }

/* Header & Nav */
.header{ position:sticky; top:0; z-index:80; backdrop-filter: blur(10px); background:color-mix(in srgb, var(--bg) 75%, transparent); border-bottom:1px solid var(--line); }
.header.scrolled{ background:color-mix(in srgb, var(--bg) 90%, transparent); }
.header__inner{ display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:center; padding:14px 0; }
.brand{ display:flex; align-items:center; gap:10px; color:inherit; text-decoration:none; font-weight:700; }
.brand__name b{ background:linear-gradient(90deg,var(--primary),var(--secondary)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.nav{ position:relative; } /* anchor dropdown to Menu */
.nav__toggle{ display:none; background:none; border:1px solid var(--line); padding:8px 12px; border-radius:10px; color:var(--text); }
.nav__list{ display:flex; gap:20px; list-style:none; padding:0; margin:0; }
.nav__list a{ text-decoration:none; color:var(--muted); font-weight:500; }
.nav__list a:hover{ color:var(--text); }
.only-desktop{ display:inline-flex; }

@media(max-width:860px){
  .nav__toggle{ display:inline-flex; }
  .nav__list{ display:none; position:absolute; right:0; top:calc(100% + 8px); flex-direction:column; background:var(--card); border:1px solid var(--line); padding:12px; border-radius:12px; box-shadow:var(--shadow); z-index:100; min-width: 180px; }
  .nav__list.open, .nav__list[aria-expanded="true"]{ display:flex; }
  .only-desktop{ display:none !important; } /* hide CTA on mobile */
  .header__inner{ grid-template-columns:auto auto auto; }
}

/* Buttons */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:14px 18px; border-radius:14px; border:none; font-weight:600; cursor:pointer; text-decoration:none; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.btn--primary{ background:linear-gradient(135deg,var(--primary),var(--secondary)); color:#fff; box-shadow:0 8px 18px rgba(123,92,255,.25); }
.btn--primary:hover{ transform: translateY(-2px); box-shadow:0 12px 24px rgba(123,92,255,.32); }
.btn--ghost{ background:transparent; color:var(--text); border:1px solid var(--line); }
.btn--ghost:hover{ background: color-mix(in srgb, var(--bg) 95%, white 5%); }
.btn--small{ padding:10px 12px; border-radius:12px; font-size:.95rem; }
.btn--magnetic{ position:relative; overflow:hidden; } .btn--magnetic::after{ content:""; position:absolute; inset:0; background: radial-gradient(120px 120px at var(--mx,50%) var(--my,50%), rgba(255,255,255,.13), transparent 60%); opacity:0; transition:opacity .2s; } .btn--magnetic:hover::after{ opacity:1; }

/* Hero */
.hero{ position:relative; padding:72px 0 24px; background: radial-gradient(1000px 600px at 70% -10%, rgba(123,92,255,.22), transparent), radial-gradient(900px 700px at 10% 110%, rgba(0,209,255,.18), transparent); overflow-x: clip; }
.hero__bg img{ width:100%; height: clamp(300px, 46vw, 680px); object-fit:cover; border-radius:36px; opacity:.6; filter:saturate(1.12) contrast(1.04) blur(1px); position:absolute; inset:0 0 auto 0; z-index:-1; margin:auto; }
.hero__content{ text-align:center; padding-top: clamp(40px, 8vw, 100px); }
.hero__title{ font-size: clamp(2.4rem, 6vw, 5rem); line-height:1.05; letter-spacing:-1.2px; margin:0 0 12px; }
.shimmer{ background:linear-gradient(90deg,var(--text),#a7b3c6 40%,var(--text) 60%); -webkit-background-clip:text; background-clip:text; color:transparent; background-size:200% 100%; animation: shimmer 6s linear infinite; }
@keyframes shimmer{ 0%{background-position:200% 0;} 100%{background-position:-200% 0;} }
.hero__subtitle{ color:var(--muted); font-size:clamp(1rem, 2.2vw, 1.25rem); margin-bottom:18px; }
.hero__cta{ display:flex; gap:12px; justify-content:center; margin-bottom:26px; }

/* Forms */
.form{ background:var(--card); border:1px solid var(--line); border-radius:18px; padding:18px; box-shadow:var(--shadow); }
.form--hero{ margin:0 auto; max-width:720px; }
.form--wide{ max-width:980px; margin:0 auto; }
.form__title{ margin:0 0 12px; font-size:1.15rem; }
.form__row{ display:flex; flex-direction:column; gap:8px; margin-bottom:12px; }
.form__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.form__row--full{ grid-column:1/-1; }
.form__row label{ font-weight:600; }
.form__row input, .form__row textarea, .form__row select{ background:color-mix(in srgb, var(--bg) 82%, white 18%); border:1px solid var(--line); color:var(--text); padding:12px 14px; border-radius:12px; outline:none; resize:vertical; }
.form__row input:focus, .form__row textarea:focus{ border-color: color-mix(in srgb, var(--secondary) 60%, var(--primary) 40%); box-shadow:0 0 0 4px rgba(0,209,255,.15); }
.form__actions{ display:flex; gap:12px; align-items:center; }
.form__hint{ color:var(--muted); font-size:.95rem; } .form__privacy{ color:var(--muted); font-size:.9rem; }
.radios{ display:flex; gap:14px; flex-wrap:wrap; }
.hp{ position:absolute; left:-9999px; opacity:0; width:1px; height:1px; }

/* Sections */
.section{ position:relative; }
.section--pad{ padding:64px 0; }
.section--alt{ padding:64px 0; background:var(--bg-alt); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.section__header h2{ font-size: clamp(1.6rem, 4vw, 2.4rem); margin:0 0 6px; }
.section__header p{ color:var(--muted); margin:0 0 24px; }

.grid{ display:grid; gap:16px; }
.grid--2{ grid-template-columns:repeat(2,1fr); }
.grid--3{ grid-template-columns:repeat(3,1fr); }
@media(max-width:960px){ .grid--2, .grid--3{ grid-template-columns:1fr; } .form__grid{ grid-template-columns:1fr; } }

/* Cards */
.card{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:18px; box-shadow:var(--shadow); }
.card.mini{ padding:14px; }
.card h3, .card h4{ margin-top:4px; }
.list{ padding-left:18px; }
.list--check li{ position:relative; padding-left:22px; }
.list--check li::before{ content:"✓"; position:absolute; left:0; color:var(--secondary); font-weight:800; }

.lift{ transition: transform .18s ease, box-shadow .18s ease; }
.lift:hover{ transform: translateY(-3px); box-shadow:0 14px 26px rgba(0,0,0,.30); }

/* Trust chips */
.trust{ margin-top:22px; }
.trust__list{ display:flex; flex-wrap:wrap; gap:10px; list-style:none; padding:0; margin:0; justify-content:center; }
.chip{ background: color-mix(in srgb, var(--bg) 85%, white 15%); border:1px solid var(--line); color:var(--text); padding:8px 10px; border-radius:999px; font-weight:600; font-size:.95rem; }
.chip--ghost{ background:transparent; color:var(--muted); }
.chip.is-active{ border-color: color-mix(in srgb, var(--secondary) 60%, var(--primary) 40%); color: var(--text); }

/* Stats */
.stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.stat{ background:var(--card); border:1px solid var(--line); border-radius:14px; padding:16px; text-align:center; }
.stat__num{ display:block; font-weight:900; font-size:clamp(1.8rem,5vw,2.6rem); background:linear-gradient(135deg,var(--secondary),var(--primary)); -webkit-background-clip:text; background-clip:text; color:transparent; line-height:1.1; }
.stat__label{ color:var(--muted); font-weight:600; }
.note{ color:var(--muted); margin-top:8px; font-size:.92rem; }
@media(max-width:960px){ .stats{ grid-template-columns:1fr; } }

/* Realizacje (squares) */
.case-filter{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.case-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.case{ border:1px solid var(--line); background:var(--card); border-radius:14px; overflow:hidden; }
.case img{ width:100%; display:block; aspect-ratio:1/1; object-fit:cover; }
.case figcaption{ padding:10px 12px; color:var(--muted); }
@media(max-width:960px){ .case-grid{ grid-template-columns:1fr; } }

/* Slider (Opinie) */
.slider{ position:relative; overflow:hidden; } /* prevent side scroll */
.slider__viewport{ overflow:hidden; position:relative; }
.slider__track{ display:flex; gap:16px; transition: transform .5s ease; will-change: transform; }
.slide{ min-width: min(480px, 90vw); }
.slider__btn{ position:absolute; top:50%; transform: translateY(-50%); border:1px solid var(--line); background:var(--card); color:var(--text); width:36px; height:36px; border-radius:8px; display:grid; place-items:center; cursor:pointer; z-index:5; box-shadow: var(--shadow); }
.slider__btn--prev{ left:8px; } .slider__btn--next{ right:8px; }
.slider__dots{ display:flex; gap:8px; justify-content:center; margin-top:10px; }
.slider__dots button{ width:8px; height:8px; border-radius:50%; border:1px solid var(--line); background:transparent; }
.slider__dots button.is-active{ background: color-mix(in srgb, var(--secondary) 60%, var(--primary) 40%); border-color:transparent; }
@media(max-width:640px){ .slider__btn{ display:none; } }

/* FAQ accordion */
.accordion details{ background:var(--card); border:1px solid var(--line); border-radius:12px; padding:0; overflow:hidden; }
.accordion details + details{ margin-top:10px; }
.accordion summary{ list-style:none; cursor:pointer; padding:14px 16px; font-weight:700; display:flex; align-items:center; justify-content:space-between; }
.accordion summary::-webkit-details-marker{ display:none; }
.accordion summary::after{ content:""; width:10px; height:10px; border-right:2px solid var(--muted); border-bottom:2px solid var(--muted); transform: rotate(-45deg); transition: transform .25s ease; }
.accordion details[open] summary::after{ transform: rotate(45deg); }
.accordion__content{ padding:0 16px 14px; color:var(--muted); }

/* Success card */
.success-card{ background:var(--card); border:1px solid var(--line); border-radius:14px; padding:16px; box-shadow:var(--shadow); }

/* Cookie modal */
.cookie-modal{ position:fixed; inset:0; display:grid; place-items:center; background:rgba(0,0,0,.6); z-index:1000; }
.cookie-modal[hidden]{ display:none; }
.cookie-modal__card{ width:min(680px,92vw); background:var(--card); border:1px solid var(--line); border-radius:16px; padding:20px; box-shadow:var(--shadow); }
.cookie-modal__logo{ display:flex; align-items:center; gap:8px; margin-bottom:4px; }
.cookie-modal__actions{ display:flex; gap:10px; margin-top:12px; }
.cookie-modal__meta{ color:var(--muted); font-size:.92rem; }

/* Reveal */
.reveal{ opacity:0; transform: translateY(12px); transition: opacity .5s ease, transform .5s ease; }
.reveal.is-visible{ opacity:1; transform: translateY(0); }

/* Tilt */
.tilt{ transform-style: preserve-3d; transition: transform .12s ease-out; }

/* Footer */
.footer{ border-top:1px solid var(--line); padding:28px 0; }
.footer__inner{ display:grid; grid-template-columns:1fr auto auto; gap:20px; align-items:center; }
.footer__nav{ display:flex; gap:14px; } .footer__nav a{ color:var(--muted); text-decoration:none; } .footer__nav a:hover{ color:var(--text); }
.footer__meta{ display:flex; flex-direction:column; gap:8px; align-items:flex-end; }
.link{ background:none; border:none; padding:0; color:var(--secondary); text-decoration:underline; cursor:pointer; }

/* Not found */
.notfound{ display:grid; place-items:center; min-height:100vh; background:var(--bg); }
.nf{text-align:center;} .nf h1{ font-size:6rem; margin:0 0 10px; } .nf p{ color:var(--muted); margin-bottom:16px; }

/* Motion safety */
@media (prefers-reduced-motion: reduce){ *{ animation:none !important; transition:none !important; } }
