/* ============================================================
   RADZIN / automotive — design system
   ============================================================ */

/* ---------- 1. Tokens ---------- */
:root{
  /* tło i powierzchnie */
  --bg:          #08090a;
  --bg-2:        #0c0e10;
  --surface:     #101315;
  --surface-2:   #161a1d;
  --line:        rgba(255,255,255,.09);
  --line-strong: rgba(255,255,255,.18);

  /* tekst */
  --fg:          #f4f5f6;
  --fg-2:        #b9bfc4;
  --fg-3:        #7e868d;

  /* akcent — ciepły bursztyn, dopasowany do światła na zdjęciach */
  --accent:      #e6a44b;
  --accent-2:    #f0c37c;
  --accent-ink:  #150e03;
  --accent-soft: rgba(230,164,75,.14);

  /* promienie / cienie */
  --r-sm: 8px;
  --r:    14px;
  --r-lg: 22px;
  --r-xl: 30px;
  --shadow:    0 22px 60px -22px rgba(0,0,0,.85);
  --shadow-lg: 0 40px 110px -30px rgba(0,0,0,.95);

  /* rytm */
  --gutter: clamp(20px, 4vw, 56px);
  --maxw: 1320px;
  --section-y: clamp(72px, 10vw, 152px);

  /* typografia */
  --font: "Inter", ui-sans-serif, system-ui, "Segoe UI", Roboto, Arial, sans-serif;
  --font-display: "Inter Tight", "Inter", ui-sans-serif, system-ui, "Segoe UI", sans-serif;
  --font-mono: ui-monospace, "SF Mono", "Cascadia Mono", "Segoe UI Mono", Menlo, monospace;

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
}

/* ---------- 2. Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:84px}
body{
  background:var(--bg); color:var(--fg);
  font-family:var(--font); font-size:16px; line-height:1.65;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{display:block; max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit; color:inherit}
button{background:none; border:0; cursor:pointer}
a{color:inherit; text-decoration:none}
ul,ol{list-style:none; padding:0}
::selection{background:var(--accent); color:var(--accent-ink)}

:focus-visible{outline:2px solid var(--accent); outline-offset:3px; border-radius:4px}

/* ziarno — delikatna faktura filmowa na całej stronie */
body::after{
  content:""; position:fixed; inset:0; z-index:9998; pointer-events:none; opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

.skip-link{
  position:fixed; top:-100px; left:16px; z-index:10000;
  background:var(--accent); color:var(--accent-ink); padding:12px 20px; border-radius:var(--r-sm); font-weight:600;
  transition:top .2s;
}
.skip-link:focus{top:16px}

/* ---------- 3. Layout ---------- */
.container{width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter)}
.section{padding-block:var(--section-y); position:relative}
.section--tight{padding-block:clamp(56px,7vw,104px)}
.section--surface{background:var(--bg-2); border-block:1px solid var(--line)}

.section__head{max-width:62ch; margin-bottom:clamp(36px,5vw,68px)}
.section__head--row{
  max-width:none; display:flex; gap:32px; align-items:flex-end; justify-content:space-between; flex-wrap:wrap;
}
.section__title{
  font-family:var(--font-display); font-weight:700;
  font-size:clamp(2rem, 1.15rem + 3.6vw, 4.05rem);
  line-height:1.02; letter-spacing:-.035em; text-wrap:balance;
}
.section__sub{color:var(--fg-2); margin-top:18px; max-width:56ch; font-size:1.02rem}
.section__sub a{color:var(--accent); text-decoration:underline; text-underline-offset:3px}
.section__note{color:var(--fg-3); font-size:.85rem; line-height:1.6; text-align:right}
kbd{
  font-family:var(--font-mono); font-size:.75em; border:1px solid var(--line-strong);
  border-radius:5px; padding:1px 5px; background:rgba(255,255,255,.05)
}

.eyebrow{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--accent); display:flex; align-items:center; gap:12px; margin-bottom:20px;
}
.eyebrow::before{content:""; width:26px; height:1px; background:var(--accent); opacity:.7; flex:none}

.grad{
  background:linear-gradient(96deg,var(--accent-2) 0%,var(--accent) 55%,#c9822f 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

/* ---------- 4. Przyciski ---------- */
.btn{
  --btn-py:15px; --btn-px:26px;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:var(--btn-py) var(--btn-px); border-radius:100px;
  font-weight:600; font-size:.94rem; letter-spacing:-.01em; line-height:1;
  position:relative; overflow:hidden; white-space:nowrap;
  transition:transform .35s var(--ease-out), background-color .25s, border-color .25s, color .25s, box-shadow .35s;
}
.btn svg{transition:transform .35s var(--ease-out)}
.btn:hover svg{transform:translateX(4px)}
.btn:active{transform:scale(.97)}

.btn--primary{background:var(--accent); color:var(--accent-ink); box-shadow:0 10px 34px -12px rgba(230,164,75,.6)}
.btn--primary:hover{background:var(--accent-2); box-shadow:0 16px 44px -12px rgba(230,164,75,.75); transform:translateY(-2px)}

.btn--glass{
  background:rgba(255,255,255,.055); color:var(--fg);
  border:1px solid var(--line-strong); backdrop-filter:blur(12px);
}
.btn--glass:hover{background:rgba(255,255,255,.11); border-color:rgba(255,255,255,.32); transform:translateY(-2px)}

.btn--ghost{background:transparent; border:1px solid var(--line-strong); color:var(--fg-2)}
.btn--ghost:hover{color:var(--fg); border-color:var(--line-strong); background:rgba(255,255,255,.06)}

.btn--sm{--btn-py:11px; --btn-px:18px; font-size:.86rem}
.btn--lg{--btn-py:19px; --btn-px:34px; font-size:1rem}
.btn--full{width:100%}

.link-arrow{
  display:inline-flex; align-items:center; gap:9px; color:var(--accent);
  font-weight:600; font-size:.95rem; padding-bottom:3px;
  border-bottom:1px solid rgba(230,164,75,.35); transition:gap .3s var(--ease-out), border-color .3s;
}
.link-arrow:hover{gap:15px; border-color:var(--accent)}

/* ---------- 5. Nawigacja ---------- */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:900;
  transition:background-color .4s var(--ease), backdrop-filter .4s, border-color .4s;
  border-bottom:1px solid transparent;
}
.nav.is-stuck{
  background:rgba(8,9,10,.72); backdrop-filter:blur(18px) saturate(140%);
  border-bottom-color:var(--line);
}
.nav.is-hidden{transform:translateY(-100%)}
.nav{transition:transform .45s var(--ease), background-color .4s, backdrop-filter .4s, border-color .4s}

.nav__inner{
  max-width:var(--maxw); margin-inline:auto; padding:16px var(--gutter);
  display:flex; align-items:center; gap:28px;
}
.logo{display:flex; align-items:center; gap:11px; flex:none}
.logo__mark{color:var(--accent); display:grid; place-items:center; transition:transform .5s var(--ease-out)}
.logo:hover .logo__mark{transform:rotate(90deg)}
.logo__text{
  font-family:var(--font-display); font-weight:800; font-size:1.06rem;
  letter-spacing:.02em; display:flex; align-items:baseline; gap:7px;
}
.logo__text em{
  font-family:var(--font-mono); font-style:normal; font-weight:400;
  font-size:.62rem; letter-spacing:.12em; color:var(--fg-3); text-transform:lowercase;
}

.nav__links{display:flex; gap:4px; margin-left:auto}
.nav__links a{
  padding:9px 15px; border-radius:100px; font-size:.9rem; font-weight:500; color:var(--fg-2);
  transition:color .25s, background-color .25s;
}
.nav__links a:hover, .nav__links a.is-current{color:var(--fg); background:rgba(255,255,255,.06)}

.nav__cta{display:flex; gap:10px; align-items:center}
.nav__burger{
  display:none; width:44px; height:44px; border-radius:12px; border:1px solid var(--line-strong);
  flex-direction:column; align-items:center; justify-content:center; gap:5px; margin-left:auto;
}
.nav__burger span{width:17px; height:1.6px; background:var(--fg); border-radius:2px; transition:transform .35s var(--ease), opacity .25s}
.nav__burger[aria-expanded="true"] span:first-child{transform:translateY(3.3px) rotate(45deg)}
.nav__burger[aria-expanded="true"] span:last-child{transform:translateY(-3.3px) rotate(-45deg)}

.nav__progress{
  height:1.5px; background:linear-gradient(90deg,var(--accent),var(--accent-2));
  width:0%; transition:width .1s linear; opacity:0;
}
.nav.is-stuck .nav__progress{opacity:1}

.mobile-menu{
  position:fixed; inset:0; z-index:899; background:rgba(8,9,10,.97); backdrop-filter:blur(20px);
  display:flex; flex-direction:column; justify-content:center; gap:40px; padding:100px var(--gutter) 48px;
  animation:menuIn .35s var(--ease-out);
}
@keyframes menuIn{from{opacity:0; transform:translateY(-12px)}to{opacity:1; transform:none}}
.mobile-menu nav{display:flex; flex-direction:column; gap:2px}
.mobile-menu nav a{
  font-family:var(--font-display); font-size:clamp(1.7rem,8vw,2.4rem); font-weight:700;
  letter-spacing:-.03em; padding:11px 0; border-bottom:1px solid var(--line);
}
.mobile-menu__cta{
  border-bottom:0 !important; margin-top:20px; align-self:flex-start;
  background:var(--accent); color:var(--accent-ink) !important; border-radius:100px;
  padding:14px 30px !important; font-size:1.1rem !important;
  box-shadow:0 12px 34px -12px rgba(230,164,75,.6);
}
.mobile-menu__meta{display:flex; gap:24px; color:var(--fg-3); font-size:.9rem; font-family:var(--font-mono)}

/* ---------- 6. Hero ---------- */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:flex-end;
  padding-block:140px clamp(52px,7vw,88px); overflow:hidden; isolation:isolate;
}
.hero__media{position:absolute; inset:0; z-index:-2}
.hero__media img{
  width:100%; height:100%; object-fit:cover; object-position:center 58%;
  animation:heroZoom 26s var(--ease) forwards;
}
@keyframes heroZoom{from{transform:scale(1.1)}to{transform:scale(1)}}
.hero__scrim{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(to top, var(--bg) 2%, rgba(8,9,10,.86) 26%, rgba(8,9,10,.32) 55%, rgba(8,9,10,.55) 100%),
    linear-gradient(100deg, rgba(8,9,10,.82) 0%, rgba(8,9,10,.25) 52%, transparent 78%);
}
.hero__content{position:relative}
.hero__title{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(2.5rem, 1.1rem + 5.9vw, 6.2rem);
  line-height:.98; letter-spacing:-.045em; max-width:16ch; text-wrap:balance;
}
.hero__lead{
  margin-top:26px; max-width:56ch; color:var(--fg-2);
  font-size:clamp(1rem,.94rem + .3vw,1.14rem); line-height:1.6;
}
.hero__actions{display:flex; gap:14px; margin-top:38px; flex-wrap:wrap}

.hero__trust{
  display:flex; gap:clamp(24px,4vw,56px); margin-top:clamp(40px,5vw,64px); flex-wrap:wrap;
  padding-top:26px; border-top:1px solid var(--line);
}
.hero__trust li{display:flex; flex-direction:column; gap:3px}
.hero__trust strong{
  font-family:var(--font-display); font-size:clamp(1.15rem,1rem + .6vw,1.5rem);
  font-weight:700; letter-spacing:-.02em;
}
.hero__trust span{font-size:.78rem; color:var(--fg-3); font-family:var(--font-mono); letter-spacing:.06em}

.hero__scroll{
  position:absolute; right:var(--gutter); bottom:clamp(52px,7vw,88px);
  width:26px; height:44px; border:1px solid var(--line-strong); border-radius:100px;
  display:grid; place-items:start center; padding-top:8px;
}
.hero__scroll span{width:2px; height:7px; border-radius:2px; background:var(--accent); animation:scrollDot 1.8s var(--ease) infinite}
@keyframes scrollDot{0%{opacity:0; transform:translateY(0)}30%{opacity:1}100%{opacity:0; transform:translateY(18px)}}

/* ---------- 7. Marquee ---------- */
.marquee{
  overflow:hidden; border-block:1px solid var(--line); background:var(--bg-2);
  padding-block:16px; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.marquee__track{
  display:flex; align-items:center; gap:26px; width:max-content;
  animation:marquee 42s linear infinite;
}
.marquee__track span{
  font-family:var(--font-display); font-weight:600; font-size:clamp(.9rem,.85rem + .3vw,1.1rem);
  letter-spacing:-.01em; color:var(--fg-2); white-space:nowrap;
}
.marquee__track i{color:var(--accent); font-size:.5rem; font-style:normal}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- 8. Wartości ---------- */
.values{display:grid; grid-template-columns:repeat(auto-fit,minmax(248px,1fr)); gap:1px; background:var(--line)}
.value{background:var(--bg); padding:clamp(26px,3vw,38px); position:relative; transition:background-color .4s}
.value:hover{background:var(--surface)}
.value__num{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.18em; color:var(--accent);
  display:block; margin-bottom:22px;
}
.value h3{
  font-family:var(--font-display); font-size:1.22rem; font-weight:700; letter-spacing:-.02em; margin-bottom:11px;
}
.value p{color:var(--fg-2); font-size:.94rem; line-height:1.62}

/* ---------- 9. Portfolio ---------- */
.filters{display:flex; gap:9px; flex-wrap:wrap; align-items:center; margin-bottom:26px}
.filters__sep{width:1px; height:22px; background:var(--line-strong); margin-inline:6px}
.chip{
  padding:9px 17px; border-radius:100px; border:1px solid var(--line-strong);
  font-size:.86rem; font-weight:500; color:var(--fg-2);
  transition:all .28s var(--ease);
}
.chip:hover{color:var(--fg); border-color:rgba(255,255,255,.34); background:rgba(255,255,255,.05)}
.chip.is-active{background:var(--accent); border-color:var(--accent); color:var(--accent-ink); font-weight:600}

.gallery{--gap:10px; display:flex; flex-direction:column; gap:var(--gap)}
.grow{display:flex; gap:var(--gap)}
.tile{
  position:relative; overflow:hidden; border-radius:var(--r); background:var(--surface);
  cursor:zoom-in; flex:none; isolation:isolate;
  animation:tileIn .55s var(--ease-out) both;
}
@keyframes tileIn{from{opacity:0; transform:translateY(14px) scale(.985)}to{opacity:1; transform:none}}
.tile img{
  width:100%; height:100%; object-fit:cover;
  opacity:0; transition:transform .85s var(--ease-out), filter .5s, opacity .55s var(--ease);
  filter:saturate(.97);
}
.tile img.is-loaded{opacity:1}
.tile:hover img{transform:scale(1.055); filter:saturate(1.05)}
.tile::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to top, rgba(0,0,0,.7) 0%, transparent 46%);
  opacity:0; transition:opacity .4s;
}
.tile:hover::after, .tile:focus-visible::after{opacity:1}
.tile__meta{
  position:absolute; left:16px; right:16px; bottom:14px; z-index:2;
  display:flex; justify-content:space-between; align-items:flex-end; gap:12px;
  opacity:0; transform:translateY(9px); transition:opacity .4s var(--ease), transform .45s var(--ease-out);
}
.tile:hover .tile__meta, .tile:focus-visible .tile__meta{opacity:1; transform:none}
.tile__project{font-size:.82rem; font-weight:600; letter-spacing:-.01em}
.tile__cat{
  font-family:var(--font-mono); font-size:.64rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--accent);
}
.tile__zoom{
  position:absolute; top:14px; right:14px; z-index:2; width:34px; height:34px; border-radius:50%;
  background:rgba(8,9,10,.55); backdrop-filter:blur(8px); display:grid; place-items:center;
  opacity:0; transform:scale(.8); transition:all .35s var(--ease-out); color:#fff;
}
.tile:hover .tile__zoom{opacity:1; transform:none}

.gallery__more{display:flex; justify-content:center; margin-top:38px}
#moreCount{color:var(--fg-3); font-weight:400}

/* ---------- 10. Realizacje ---------- */
.case{padding-block:clamp(40px,5vw,66px)}
.case__inner{display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(32px,5vw,72px); align-items:center}
.case--alt .case__text{order:2}
.case__tag{
  font-family:var(--font-mono); font-size:.7rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--fg-3); margin-bottom:14px;
}
.case__title{
  font-family:var(--font-display); font-size:clamp(1.7rem,1.2rem + 1.9vw,2.7rem);
  font-weight:700; letter-spacing:-.035em; line-height:1.05; margin-bottom:16px;
}
.case__text > p{color:var(--fg-2); max-width:46ch; font-size:1rem}
.case__facts{display:flex; gap:26px; flex-wrap:wrap; margin:26px 0 28px; padding-top:22px; border-top:1px solid var(--line)}
.case__facts li{display:flex; flex-direction:column; gap:2px}
.case__facts span{font-family:var(--font-mono); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--fg-3)}
.case__facts strong{font-size:.95rem; font-weight:600; letter-spacing:-.01em}

.case__strip{display:grid; grid-template-columns:repeat(6,1fr); grid-auto-rows:1fr; gap:8px}
.case__strip .cs{overflow:hidden; border-radius:var(--r-sm); background:var(--surface); cursor:zoom-in}
.case__strip .cs img{width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease-out)}
.case__strip .cs:hover img{transform:scale(1.07)}
.case__strip .cs:nth-child(1){grid-column:span 4; grid-row:span 2}
.case__strip .cs:nth-child(2){grid-column:span 2}
.case__strip .cs:nth-child(3){grid-column:span 2}
.case__strip .cs:nth-child(4){grid-column:span 2}
.case__strip .cs:nth-child(5){grid-column:span 2}
.case__strip .cs:nth-child(6){grid-column:span 2}

/* ---------- 11. Pakiety ---------- */
.pricing{display:grid; grid-template-columns:repeat(auto-fit,minmax(288px,1fr)); gap:20px; align-items:stretch}
.plan{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(26px,3vw,36px); display:flex; flex-direction:column; gap:22px; position:relative;
  transition:transform .45s var(--ease-out), border-color .35s, background-color .35s;
}
.plan:hover{transform:translateY(-5px); border-color:var(--line-strong)}
.plan--featured{
  background:linear-gradient(168deg, rgba(230,164,75,.1) 0%, var(--surface) 42%);
  border-color:rgba(230,164,75,.4); box-shadow:var(--shadow);
}
.plan--featured::before{
  content:""; position:absolute; inset:-1px; border-radius:inherit; pointer-events:none;
  background:linear-gradient(180deg, rgba(230,164,75,.5), transparent 45%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; padding:1px;
}
.plan__badge{
  position:absolute; top:0; left:50%; transform:translate(-50%,-50%);
  background:var(--accent); color:var(--accent-ink); font-size:.68rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; padding:6px 15px; border-radius:100px; white-space:nowrap;
}
.plan h3{font-family:var(--font-display); font-size:1.42rem; font-weight:700; letter-spacing:-.025em}
.plan__for{color:var(--fg-3); font-size:.88rem; margin-top:6px; line-height:1.5}
.plan__price{
  font-family:var(--font-display); font-size:clamp(2.4rem,2rem + 1.4vw,3.1rem); font-weight:800;
  letter-spacing:-.045em; line-height:1; display:flex; align-items:baseline; gap:7px;
}
.plan__from{font-size:.8rem; font-weight:500; color:var(--fg-3); font-family:var(--font-mono); letter-spacing:.1em; text-transform:uppercase}
.plan__cur{font-size:1.1rem; font-weight:600; color:var(--fg-2)}
.plan__list{display:flex; flex-direction:column; gap:11px; flex:1}
.plan__list li{
  position:relative; padding-left:26px; font-size:.92rem; color:var(--fg-2); line-height:1.5;
}
.plan__list li::before{
  content:""; position:absolute; left:0; top:.52em; width:13px; height:8px;
  border-left:1.8px solid var(--accent); border-bottom:1.8px solid var(--accent);
  transform:rotate(-45deg);
}

.addons{
  margin-top:26px; border:1px dashed var(--line-strong); border-radius:var(--r-lg);
  padding:24px clamp(20px,3vw,32px); display:flex; gap:22px; align-items:center; flex-wrap:wrap;
}
.addons__label{
  font-family:var(--font-mono); font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); flex:none;
}
.addons ul{display:flex; gap:10px 28px; flex-wrap:wrap}
.addons li{font-size:.88rem; color:var(--fg-2)}
.addons b{color:var(--fg); font-weight:600}

/* ---------- 12. Proces ---------- */
.steps{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:clamp(24px,3vw,38px)}
.step{position:relative; padding-top:30px; border-top:1px solid var(--line)}
.step::before{
  content:""; position:absolute; top:-1px; left:0; width:34px; height:2px; background:var(--accent);
}
.step__num{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.2em; color:var(--fg-3);
  display:block; margin-bottom:16px;
}
.step h3{font-family:var(--font-display); font-size:1.2rem; font-weight:700; letter-spacing:-.02em; margin-bottom:10px}
.step p{color:var(--fg-2); font-size:.93rem; line-height:1.62}

/* ---------- 13. O mnie ---------- */
.about{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.06fr); gap:clamp(32px,5vw,80px); align-items:center}
.about__media{position:relative; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg)}
.about__media img{width:100%; aspect-ratio:4/3; object-fit:cover}
.about__badge{
  position:absolute; left:18px; bottom:18px; right:18px;
  background:rgba(8,9,10,.62); backdrop-filter:blur(14px); border:1px solid var(--line);
  border-radius:var(--r); padding:14px 18px; display:flex; flex-direction:column; gap:3px;
}
.about__badge strong{font-family:var(--font-display); font-size:.98rem; font-weight:700; letter-spacing:-.015em}
.about__badge span{font-family:var(--font-mono); font-size:.7rem; letter-spacing:.06em; color:var(--fg-3)}
.about__text > p{color:var(--fg-2); margin-top:18px; max-width:52ch}
.about__stats{display:flex; gap:30px; flex-wrap:wrap; margin-top:34px; padding-top:26px; border-top:1px solid var(--line)}
.about__stats li{display:flex; flex-direction:column; gap:2px}
.about__stats strong{font-family:var(--font-display); font-size:1.05rem; font-weight:700; letter-spacing:-.02em}
.about__stats span{font-family:var(--font-mono); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--fg-3)}

/* ---------- 14. Opinie ---------- */
.quotes{display:grid; grid-template-columns:repeat(auto-fit,minmax(272px,1fr)); gap:20px}
.quote{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(24px,3vw,32px); display:flex; flex-direction:column; gap:18px;
  transition:transform .45s var(--ease-out), border-color .35s;
}
.quote:hover{transform:translateY(-4px); border-color:var(--line-strong)}
.quote__stars{display:flex; gap:3px; color:var(--accent)}
.quote p{color:var(--fg-2); font-size:.97rem; line-height:1.62; flex:1}
.quote footer{display:flex; flex-direction:column; gap:2px; padding-top:16px; border-top:1px solid var(--line)}
.quote cite{font-style:normal; font-weight:600; font-size:.92rem}
.quote small{font-family:var(--font-mono); font-size:.68rem; letter-spacing:.1em; color:var(--fg-3); text-transform:uppercase}

/* ---------- 15. FAQ ---------- */
.faq{display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:clamp(32px,5vw,72px); align-items:start}
.faq__head{position:sticky; top:110px}
.qa{border-bottom:1px solid var(--line)}
.qa summary{
  list-style:none; cursor:pointer; padding:22px 44px 22px 0; position:relative;
  font-family:var(--font-display); font-size:clamp(1rem,.95rem + .3vw,1.15rem); font-weight:600;
  letter-spacing:-.02em; transition:color .25s;
}
.qa summary::-webkit-details-marker{display:none}
.qa summary:hover{color:var(--accent)}
.qa__icon{position:absolute; right:6px; top:50%; width:14px; height:14px; transform:translateY(-50%)}
.qa__icon::before, .qa__icon::after{
  content:""; position:absolute; background:var(--accent); border-radius:2px; transition:transform .35s var(--ease);
}
.qa__icon::before{left:0; top:6px; width:14px; height:1.8px}
.qa__icon::after{left:6px; top:0; width:1.8px; height:14px}
.qa[open] .qa__icon::after{transform:rotate(90deg) scaleX(0)}
.qa__body{overflow:hidden; animation:qaOpen .38s var(--ease-out)}
.qa__body p{color:var(--fg-2); font-size:.95rem; line-height:1.68; padding-bottom:24px; max-width:62ch}
@keyframes qaOpen{from{opacity:0; transform:translateY(-8px)}to{opacity:1; transform:none}}

/* ---------- 16. Kontakt ---------- */
.section--contact{
  background:
    radial-gradient(1100px 520px at 15% 0%, rgba(230,164,75,.1), transparent 62%),
    var(--bg-2);
  border-top:1px solid var(--line);
}
.contact{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.94fr); gap:clamp(36px,5vw,80px); align-items:start}
.contact__lead{color:var(--fg-2); margin-top:20px; max-width:46ch}

.contact__slots{
  display:flex; gap:14px; align-items:flex-start; margin-top:30px;
  background:rgba(230,164,75,.07); border:1px solid rgba(230,164,75,.24);
  border-radius:var(--r); padding:16px 20px;
}
.contact__slots p{font-size:.9rem; color:var(--fg-2); line-height:1.55}
.contact__slots strong{color:var(--fg)}
.pulse{
  width:9px; height:9px; border-radius:50%; background:#4ade80; flex:none; margin-top:7px; position:relative;
}
.pulse::after{
  content:""; position:absolute; inset:0; border-radius:50%; background:#4ade80;
  animation:pulse 2.2s var(--ease) infinite;
}
@keyframes pulse{0%{transform:scale(1); opacity:.7}100%{transform:scale(3.4); opacity:0}}

.contact__direct{display:flex; flex-direction:column; gap:2px; margin-top:32px}
.contact__direct a{
  display:flex; align-items:center; gap:13px; padding:13px 0; color:var(--fg-2);
  border-bottom:1px solid var(--line); transition:color .25s, padding-left .3s var(--ease-out);
}
.contact__direct a:hover{color:var(--accent); padding-left:8px}
.contact__direct svg{color:var(--accent); flex:none}
.contact__direct span{font-size:.95rem}

/* formularz */
.form{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-xl);
  padding:clamp(24px,3.2vw,40px); display:flex; flex-direction:column; gap:16px; box-shadow:var(--shadow);
}
.form__row{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.field{position:relative}
.field input, .field select, .field textarea{
  width:100%; background:var(--surface-2); border:1px solid var(--line);
  border-radius:var(--r); padding:26px 16px 11px; font-size:.95rem;
  transition:border-color .25s, background-color .25s, box-shadow .25s;
}
.field textarea{resize:vertical; min-height:112px; line-height:1.55}
.field select{appearance:none; cursor:pointer; padding-right:44px}
.field--select::after{
  content:""; position:absolute; right:18px; top:50%; width:8px; height:8px; pointer-events:none;
  border-right:1.6px solid var(--fg-3); border-bottom:1.6px solid var(--fg-3);
  transform:translateY(-70%) rotate(45deg);
}
.field label{
  position:absolute; left:17px; top:19px; font-size:.95rem; color:var(--fg-3);
  pointer-events:none; transform-origin:0 0;
  transition:transform .22s var(--ease), color .22s;
}
.field input:focus, .field textarea:focus, .field select:focus{
  outline:none; border-color:var(--accent); background:#191d20; box-shadow:0 0 0 3px var(--accent-soft);
}
.field input:not(:placeholder-shown) + label,
.field textarea:not(:placeholder-shown) + label,
.field input:focus + label,
.field textarea:focus + label,
.field--select label{
  transform:translateY(-11px) scale(.74); color:var(--accent);
}
.field textarea + label{top:17px}
.field.is-invalid input, .field.is-invalid textarea{border-color:#f87171}
.field__err{color:#f87171; font-size:.78rem; margin-top:6px; min-height:0; display:none}
.field.is-invalid .field__err{display:block}
.field__err--block{display:none; margin-top:-8px}
.field__err--block.is-shown{display:block}

.check{display:flex; gap:11px; align-items:flex-start; font-size:.84rem; color:var(--fg-3); line-height:1.5; cursor:pointer; margin-top:4px}
.check input{
  appearance:none; width:19px; height:19px; flex:none; margin-top:1px;
  border:1px solid var(--line-strong); border-radius:6px; background:var(--surface-2);
  transition:all .22s; cursor:pointer; position:relative;
}
.check input:checked{background:var(--accent); border-color:var(--accent)}
.check input:checked::after{
  content:""; position:absolute; left:6px; top:2.5px; width:5px; height:10px;
  border-right:2px solid var(--accent-ink); border-bottom:2px solid var(--accent-ink); transform:rotate(42deg);
}
.check .u{color:var(--fg-2); text-decoration:underline; text-underline-offset:2px}
.form__micro{font-size:.78rem; color:var(--fg-3); text-align:center}
.form__status{font-size:.9rem; text-align:center; display:none; padding:12px; border-radius:var(--r)}
.form__status.is-ok{display:block; background:rgba(74,222,128,.1); color:#86efac; border:1px solid rgba(74,222,128,.28)}
.form__status.is-err{display:block; background:rgba(248,113,113,.1); color:#fca5a5; border:1px solid rgba(248,113,113,.28)}

/* ---------- 17. Stopka ---------- */
.footer{border-top:1px solid var(--line); padding-top:clamp(48px,6vw,72px); background:var(--bg)}
.footer__inner{display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:36px; padding-bottom:44px}
.footer__brand p{color:var(--fg-3); font-size:.88rem; margin-top:14px; max-width:38ch; line-height:1.6}
.footer__nav, .footer__meta{display:flex; flex-direction:column; gap:11px}
.footer__nav a, .footer__meta a{color:var(--fg-2); font-size:.9rem; transition:color .25s}
.footer__nav a:hover, .footer__meta a:hover{color:var(--accent)}
.footer__bottom{
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
  padding-block:22px; border-top:1px solid var(--line); color:var(--fg-3); font-size:.8rem;
}
.footer__bottom a:hover{color:var(--accent)}

/* ---------- 18. Sticky CTA (mobile) ---------- */
.sticky-cta{
  position:fixed; left:12px; right:12px; bottom:12px; z-index:880;
  display:none; gap:10px; padding-bottom:env(safe-area-inset-bottom);
  transform:translateY(140%); transition:transform .45s var(--ease-out);
}
.sticky-cta.is-shown{transform:none}
.sticky-cta .btn--ghost{
  background:rgba(16,19,21,.9); backdrop-filter:blur(14px); width:52px; flex:none; padding:0; height:52px;
}
.sticky-cta .btn--primary{height:52px}

/* ---------- 19. Lightbox ---------- */
.lb{
  position:fixed; inset:0; z-index:9999; background:rgba(6,7,8,.96); backdrop-filter:blur(10px);
  display:grid; place-items:center; padding:clamp(16px,4vw,64px);
  animation:lbIn .3s var(--ease-out);
}
@keyframes lbIn{from{opacity:0}to{opacity:1}}
.lb__figure{max-width:min(1500px,100%); max-height:100%; display:flex; flex-direction:column; gap:14px; align-items:center}
.lb__figure img{
  max-width:100%; max-height:calc(100svh - 150px); object-fit:contain;
  border-radius:var(--r); box-shadow:var(--shadow-lg); animation:lbImg .4s var(--ease-out);
}
@keyframes lbImg{from{opacity:0; transform:scale(.965)}to{opacity:1; transform:none}}
.lb__cap{
  display:flex; gap:18px; align-items:center; justify-content:center; flex-wrap:wrap;
  font-size:.85rem; color:var(--fg-2);
}
.lb__count{font-family:var(--font-mono); font-size:.74rem; letter-spacing:.12em; color:var(--fg-3)}
.lb__close, .lb__nav{
  position:absolute; z-index:2; width:48px; height:48px; border-radius:50%;
  background:rgba(255,255,255,.07); border:1px solid var(--line); color:#fff;
  display:grid; place-items:center; backdrop-filter:blur(10px);
  transition:background-color .25s, transform .25s var(--ease-out), border-color .25s;
}
.lb__close:hover, .lb__nav:hover{background:rgba(255,255,255,.16); border-color:var(--line-strong); transform:scale(1.06)}
.lb__close{top:clamp(14px,3vw,28px); right:clamp(14px,3vw,28px)}
.lb__nav{top:50%; margin-top:-24px}
.lb__nav--prev{left:clamp(10px,2.5vw,28px)}
.lb__nav--next{right:clamp(10px,2.5vw,28px)}
body.lb-open{overflow:hidden}

/* ---------- 20. Reveal on scroll ---------- */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .8s var(--ease-out), transform .8s var(--ease-out)}
.reveal.is-in{opacity:1; transform:none}
.reveal[data-delay="1"]{transition-delay:.08s}
.reveal[data-delay="2"]{transition-delay:.16s}
.reveal[data-delay="3"]{transition-delay:.24s}
.reveal[data-delay="4"]{transition-delay:.32s}

/* ---------- 21. Responsywność ---------- */
@media (max-width:1080px){
  .nav__links{display:none}
  .nav__cta{display:none}
  .nav__burger{display:flex}
  .faq{grid-template-columns:1fr}
  .faq__head{position:static}
  .contact{grid-template-columns:1fr}
  .about{grid-template-columns:1fr}
  .about__media{order:2}
  .case__inner{grid-template-columns:1fr}
  .case--alt .case__text{order:0}
  .footer__inner{grid-template-columns:1fr 1fr}
  .footer__brand{grid-column:1/-1}
}
@media (max-width:760px){
  html{scroll-padding-top:72px}
  .hide-sm{display:none}
  .hero{min-height:92svh; padding-bottom:104px}
  /* kadr przesunięty na auto — przy pionowym ekranie środek zdjęcia to sama hala */
  .hero__media img{object-position:64% 54%}
  .hero__scrim{
    background:
      linear-gradient(to top, var(--bg) 0%, rgba(8,9,10,.93) 32%, rgba(8,9,10,.6) 66%, rgba(8,9,10,.5) 100%);
  }
  .hero__lead{margin-top:20px; font-size:1rem}
  .hero__actions{margin-top:28px; gap:10px}
  .hero__scroll{display:none}
  .hero__trust{gap:18px; margin-top:32px; padding-top:22px}
  .hero__trust li{min-width:calc(50% - 9px)}
  .section__head--row{align-items:flex-start}
  .section__note{text-align:left}
  .form__row{grid-template-columns:1fr}
  .sticky-cta{display:flex}
  .footer__inner{grid-template-columns:1fr; gap:28px}
  .lb__nav{width:42px; height:42px}
  .addons{flex-direction:column; align-items:flex-start; gap:14px}
  .gallery{--gap:8px}
  .case__strip{grid-template-columns:repeat(4,1fr)}
  .case__strip .cs:nth-child(1){grid-column:span 4; grid-row:span 1}
  .case__strip .cs:nth-child(n+2){grid-column:span 2}
  body{padding-bottom:0}
}
@media (max-width:480px){
  .hero__actions .btn{width:100%}
}

/* ---------- 22. Dostępność / preferencje ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important; scroll-behavior:auto !important;
  }
  .reveal{opacity:1; transform:none}
  .hero__media img{animation:none}
  .marquee__track{animation:none}
}
@media print{
  .nav,.sticky-cta,.hero__scroll,.marquee,.lb{display:none !important}
  body{background:#fff; color:#000}
}
