/* ============================================================
   MICHAŁ SUMIONKA — TRENER PERSONALNY GDYNIA
   Design system: dark premium + lime accent (zachowany z projektu Framer)
   Fonts: Rajdhani (display) + Inter (body)
   ============================================================ */

:root{
  --bg:#0A0A0A;
  --bg-alt:#0E1013;
  --panel:#1A1D21;
  --panel-2:#202327;
  --graphite:#3A3D42;
  --line:rgba(255,255,255,0.07);
  --text:#F2F2F2;
  --muted:#9A9DA3;
  --lime:#C6FF00;
  --lime-hi:#d4ff26;
  --lime-soft:rgba(198,255,0,.08);
  --r:20px; --r-sm:14px; --r-lg:28px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-smooth:cubic-bezier(.45,.05,.15,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:"Inter",sans-serif;background:var(--bg);color:var(--text);
  width:100%;overflow-x:hidden;line-height:1.5;-webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.logo-txt,.amt,.serv-price,.pprice .amt{
  font-family:"Rajdhani",sans-serif;
}
img{display:block;max-width:100%;}
a{text-decoration:none;color:inherit;}
a:visited{color:inherit;}
::selection{background:var(--lime);color:var(--bg);}
body{accent-color:var(--lime);caret-color:var(--lime);}
input,textarea,select{accent-color:var(--lime);font-family:inherit;}
select option{background:var(--bg-alt);color:var(--text);}
button{font-family:inherit;}
svg{display:block;}

/* Accessibility: visible focus state everywhere */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--lime); outline-offset:3px; border-radius:6px;
}

/* cursor-reactive spotlight glow on interactive cards */
.serv,.pcard,.tcard,.lcard{ isolation:isolate; }
.serv::before,.pcard::before,.tcard::before,.lcard::before{
  content:""; position:absolute; inset:0; border-radius:inherit; z-index:0; pointer-events:none;
  opacity:0; transition:opacity .4s ease;
  background:radial-gradient(280px circle at var(--mx,50%) var(--my,50%), rgba(198,255,0,.10), transparent 70%);
}
.serv:hover::before,.pcard:hover::before,.tcard:hover::before,.lcard:hover::before{ opacity:1; }
.serv > *,.pcard > *,.tcard > *,.lcard > *{ position:relative; z-index:1; }

/* Skip link */
.skip-link{
  position:absolute; left:-999px; top:auto; background:var(--lime); color:var(--bg);
  padding:12px 20px; border-radius:0 0 12px 0; font-weight:700; z-index:999; font-size:14px;
}
.skip-link:focus{ left:0; top:0; }

/* ===== shared ===== */
.wrap{ max-width:1280px; margin:0 auto; padding:0 40px; }
.eyebrow{ display:inline-flex; align-items:center; gap:14px; font-size:12.5px; font-weight:700;
  letter-spacing:3.4px; text-transform:uppercase; color:var(--lime); font-family:"Rajdhani",sans-serif; }
.eyebrow::before{ content:""; width:38px; height:2px; border-radius:2px;
  background:linear-gradient(90deg, var(--lime) 55%, transparent); }
.eyebrow.sym::after{ content:""; width:38px; height:2px; border-radius:2px;
  background:linear-gradient(270deg, var(--lime) 55%, transparent); }
.white .eyebrow.sym::after{ background:linear-gradient(270deg, #0A0A0A 55%, transparent); }
@keyframes dotPulse{ 0%,100%{ box-shadow:0 0 6px var(--lime); opacity:1; } 50%{ box-shadow:0 0 14px 3px var(--lime); opacity:.78; } }
.h2{ font-size:clamp(36px,4.2vw,60px); font-weight:700; line-height:1.02; letter-spacing:-1.5px; margin-top:20px; }
.glow{ position:absolute; border-radius:50%; filter:blur(90px); pointer-events:none; z-index:0; }

section[id]{ scroll-margin-top:84px; }
.sec{ position:relative; padding:110px 0; }
.sec.alt{ background:var(--bg-alt); }
.sec.graphite{ background:
  radial-gradient(900px 500px at 50% 0%, rgba(198,255,0,.045), transparent 60%),
  linear-gradient(180deg, #14171C 0%, #191D23 100%);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line); }

/* buttons */
.btn{ display:inline-flex; align-items:center; gap:10px; background:var(--lime); color:var(--bg) !important;
  padding:17px 34px; font-size:16px; font-weight:700; letter-spacing:.1px;
  font-family:"Inter",sans-serif; box-shadow:0 8px 26px rgba(198,255,0,.22);
  border-radius:100px; transition:.25s; border:none; cursor:pointer; position:relative; overflow:hidden; }
.btn:hover{ background:var(--lime-hi); transform:translateY(-2px); box-shadow:0 14px 38px rgba(198,255,0,.38); }
.btn:active,.navcta:active,.pcta:active,.submit:active,.btn-ghost:active{ transform:scale(.96) !important; }
.btn::after,.navcta::after,.pcta.solid::after,.submit::after{
  content:""; position:absolute; top:0; left:-65%; width:35%; height:100%;
  background:linear-gradient(115deg, transparent, rgba(255,255,255,.5), transparent);
  transform:skewX(-18deg); transition:left .6s ease; pointer-events:none; }
.btn:hover::after,.navcta:hover::after,.pcta.solid:hover::after,.submit:hover::after{ left:135%; }
.btn-ghost{ display:inline-flex; align-items:center; gap:10px; color:var(--text); font-size:15.5px; font-weight:600;
  letter-spacing:.1px; font-family:"Inter",sans-serif; padding:16px 28px; border:1.5px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.03); border-radius:100px; transition:.25s; }
.btn-ghost svg{ transition:transform .2s; }
.btn-ghost:hover{ color:var(--lime); border-color:rgba(198,255,0,.5); background:var(--lime-soft); transform:translateY(-2px); }
.btn-ghost:hover svg{ transform:translateX(4px); }
.btn:focus-visible,.btn-ghost:focus-visible{ outline-offset:4px; }

/* ===== NAV ===== */
.nav{ position:sticky; top:0; z-index:200; backdrop-filter:blur(14px); transition:box-shadow .35s,background .35s;
  background:linear-gradient(to bottom, rgba(10,10,10,.92), rgba(10,10,10,.7)); border-bottom:1px solid var(--line); }
.nav.scrolled{ box-shadow:0 14px 36px rgba(0,0,0,.5); background:rgba(10,10,10,.88); }
.nav-in{ max-width:1280px; margin:0 auto; padding:14px 40px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.logo{ display:flex; align-items:center; flex-shrink:0; }
.logo-img{ height:40px; width:auto; display:block; }
.foot-logo{ margin-bottom:18px; }
.foot-logo .logo-img{ height:36px; }
.links{ display:flex; gap:30px; list-style:none; }
.links a{ color:var(--muted); font-size:13.5px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; transition:color .2s; position:relative; }
.links a::after{ content:""; position:absolute; left:0; bottom:-6px; width:0; height:2px; background:var(--lime); transition:width .25s; }
.links a:hover,.links a.active{ color:var(--text); }
.links a:hover::after,.links a.active::after{ width:100%; }
.nav-right{ display:flex; align-items:center; gap:16px; }
.navcta{ display:inline-flex; align-items:center; gap:9px; background:var(--lime); color:var(--bg) !important;
  padding:12px 24px; font-size:14.5px; font-weight:700; letter-spacing:.1px; font-family:"Inter",sans-serif;
  border-radius:100px; transition:.25s; white-space:nowrap; position:relative; overflow:hidden;
  box-shadow:0 6px 20px rgba(198,255,0,.30); }
.navcta:hover{ background:var(--lime-hi); transform:translateY(-1px); box-shadow:0 10px 30px rgba(198,255,0,.42); }

/* mobile nav toggle */
.nav-burger{ display:none; width:44px; height:44px; border-radius:12px; border:1px solid var(--line);
  background:transparent; flex-direction:column; align-items:center; justify-content:center; gap:5px; cursor:pointer; flex-shrink:0; }
.nav-burger span{ width:20px; height:2px; background:var(--text); border-radius:2px; transition:.3s; }
.nav-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.mobile-panel{
  position:fixed; inset:0; top:0; z-index:199; background:var(--bg); padding:100px 28px 40px;
  display:flex; flex-direction:column; gap:6px; transform:translateY(-100%); opacity:0;
  transition:transform .4s var(--ease), opacity .4s var(--ease); overflow-y:auto;
}
.mobile-panel.is-open{ transform:translateY(0); opacity:1; }
.mobile-panel a{ font-size:22px; font-weight:700; padding:16px 4px; border-bottom:1px solid var(--line); color:var(--text); font-family:"Rajdhani",sans-serif; }
.mobile-panel a:hover{ color:var(--lime); }
.mobile-panel .btn{ margin-top:24px; justify-content:center; }
body.menu-open{ overflow:hidden; }

/* ===== HERO ===== */
.hero{ position:relative; overflow:hidden; background:
  radial-gradient(1200px 820px at 82% 22%, rgba(198,255,0,.07), transparent 62%),
  linear-gradient(180deg, var(--bg) 0%, var(--bg-alt) 100%); }
.hero::after{ content:""; position:absolute; width:720px; height:720px; border-radius:50%;
  background:radial-gradient(circle, rgba(198,255,0,.17), transparent 68%);
  top:-180px; right:-160px; z-index:0; pointer-events:none; filter:blur(2px);
  animation:driftGlow 16s ease-in-out infinite alternate; }
@keyframes driftGlow{ 0%{ transform:translate(0,0) scale(1); } 100%{ transform:translate(-70px,60px) scale(1.18); } }
.hero-pattern{ position:absolute; inset:0; z-index:0; opacity:.22;
  background-image: linear-gradient(rgba(255,255,255,0.07) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.07) 1px, transparent 1px);
  background-size: 56px 56px; -webkit-mask-image: radial-gradient(circle at 75% 40%, #000 0%, transparent 70%);
  mask-image: radial-gradient(circle at 75% 40%, #000 0%, transparent 70%); }
.hero-in{ position:relative; z-index:2; max-width:1280px; margin:0 auto; padding:0 40px;
  display:grid; grid-template-columns:1.06fr .94fr; gap:48px; align-items:center; min-height:82vh; }
.hero-l{ padding:64px 0 90px; }
.hello{ font-size:19px; font-weight:600; color:var(--lime); letter-spacing:1px; margin-bottom:16px; display:flex; align-items:center; gap:10px; }
.hello::before{ content:""; width:26px; height:2px; background:var(--lime); }
.h1{ font-size:clamp(52px,6.4vw,92px); font-weight:700; line-height:.94; letter-spacing:-2px; margin-bottom:28px; font-family:"Rajdhani",sans-serif; }
.h1 .l2{ color:var(--lime); display:block; }
.lead{ font-size:17px; color:var(--muted); line-height:1.7; max-width:480px; margin-bottom:14px; }
.lead strong{ color:var(--text); font-weight:700; }
.hero-cta{ display:flex; gap:16px; align-items:center; flex-wrap:wrap; margin-top:34px; }
@keyframes heroUp{ from{ opacity:0; transform:translateY(28px); } to{ opacity:1; transform:translateY(0); } }
@keyframes heroFadeScale{ from{ opacity:0; transform:scale(1.035); } to{ opacity:1; transform:scale(1); } }
.hero-l > *{ opacity:0; animation:heroUp .8s var(--ease) forwards; }
.hero-l > *:nth-child(1){ animation-delay:.05s; }
.hero-l > *:nth-child(2){ animation-delay:.16s; }
.hero-l > *:nth-child(3){ animation-delay:.30s; }
.hero-l > *:nth-child(4){ animation-delay:.40s; }
.hero-l > *:nth-child(5){ animation-delay:.52s; }
.hero-r{ position:relative; align-self:center; display:flex; align-items:center; justify-content:center;
  padding:64px 0; opacity:0; animation:heroFadeScale 1s var(--ease) .22s forwards; }
.hero-imgwrap{ position:relative; width:min(100%,520px); height:min(70vh,640px); min-height:480px; margin:0 auto;
  transition:transform .25s ease-out; transform-style:preserve-3d; will-change:transform; }
.hero-imgwrap::before{ content:""; position:absolute; inset:-10% -14%; z-index:0; pointer-events:none;
  background:radial-gradient(closest-side, rgba(198,255,0,.20), transparent 74%); filter:blur(24px); }
.hero-img{ position:relative; z-index:1; width:100%; height:100%; object-fit:cover; object-position:center 18%;
  filter:contrast(1.08) brightness(.98) saturate(1.04); border-radius:var(--r-lg);
  box-shadow:0 0 0 1px rgba(198,255,0,.28), 0 34px 80px rgba(0,0,0,.6), 0 0 110px rgba(198,255,0,.10); }
.hero-frame,.hero-deco,.hero-vert{ display:none; }
.hero-vert{ position:absolute; top:50%; right:-46px; transform:translateY(-50%) rotate(90deg); transform-origin:center;
  font-size:11px; font-weight:700; letter-spacing:4px; color:rgba(242,242,242,.38); white-space:nowrap; z-index:2;
  display:flex; align-items:center; gap:10px; }
.hero-vert::before{ content:""; width:30px; height:1px; background:rgba(242,242,242,.3); }
.hero-avail{ position:absolute; top:22px; right:22px; z-index:3; display:inline-flex; align-items:center; gap:10px;
  background:rgba(10,10,10,.6); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.14); padding:11px 18px 11px 14px; border-radius:100px;
  font-size:12.5px; font-weight:600; color:var(--text); box-shadow:0 14px 34px rgba(0,0,0,.4);
  opacity:0; animation:heroFadeScale .8s var(--ease) .75s forwards; }
.hero-avail-dot{ width:9px; height:9px; border-radius:50%; background:var(--lime); box-shadow:0 0 10px var(--lime); animation:dotPulse 2.2s ease-in-out infinite; flex-shrink:0; }
.hero-badge{ position:absolute; left:18px; bottom:24px; z-index:3; background:var(--bg);
  border:1px solid var(--line); padding:20px 24px; display:flex; align-items:center; gap:14px;
  box-shadow:0 24px 60px rgba(0,0,0,.6); border-radius:18px; }
.hero-badge .n{ font-size:34px; font-weight:700; color:var(--lime); line-height:1; font-family:"Rajdhani",sans-serif; }
.hero-badge .t{ font-size:12px; font-weight:600; letter-spacing:1.4px; text-transform:uppercase; color:var(--muted); line-height:1.35; }
.scroll-cue{ position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column;
  align-items:center; gap:8px; color:var(--muted); }
.scroll-cue .lbl{ font-size:11px; letter-spacing:2px; text-transform:uppercase; }
.scroll-cue .mouse{ width:22px; height:34px; border:1.5px solid var(--muted); border-radius:12px; position:relative; }
.scroll-cue .mouse::after{ content:""; position:absolute; left:50%; top:6px; transform:translateX(-50%); width:3px; height:6px;
  border-radius:2px; background:var(--lime); animation:wheel 1.6s ease-in-out infinite; }
@keyframes wheel{ 0%{opacity:0; transform:translate(-50%,0)} 30%{opacity:1} 100%{opacity:0; transform:translate(-50%,10px)} }

/* ===== MARQUEE ===== */
.strip{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--bg-alt); overflow:hidden; }
.strip-in{ display:flex; width:max-content; animation:scrollx 36s linear infinite; }
.strip-row{ display:flex; align-items:center; padding:18px 0; flex-shrink:0; }
.strip-item{ display:inline-flex; align-items:center; font-size:14px; font-weight:600; letter-spacing:1.6px; text-transform:uppercase; color:var(--muted); white-space:nowrap; padding:0 30px; }
.strip-dot{ width:6px; height:6px; border-radius:50%; background:var(--lime); margin-right:30px; flex-shrink:0; opacity:.9; }
@keyframes scrollx{ from{transform:translateX(0)} to{transform:translateX(-50%)} }
.strip:hover .strip-in{ animation-play-state:paused; }

/* ===== SERVICES ===== */
.serv-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:56px; gap:40px; flex-wrap:wrap; }
.serv-head .h2{ max-width:520px; margin-top:18px; }
.serv-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.serv{ position:relative; background:var(--panel); border:1px solid var(--line); padding:36px 36px 34px; color:var(--text);
  overflow:hidden; transition:transform .35s,border-color .35s,background .35s,box-shadow .35s; display:flex; flex-direction:column; border-radius:var(--r); }
.serv:hover{ border-color:rgba(198,255,0,.35); background:var(--panel-2); box-shadow:0 24px 60px rgba(0,0,0,.45); }
.serv:hover .serv-ic{ transform:scale(1.12) rotate(-6deg); background:rgba(198,255,0,.16); }
.serv-top{ display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:auto; }
.serv-ic{ width:56px; height:56px; border-radius:16px; background:var(--lime-soft); border:1px solid rgba(198,255,0,.22); transition:transform .4s var(--ease),background .3s;
  display:flex; align-items:center; justify-content:center; color:var(--lime); }
.serv-arr{ width:42px; height:42px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center;
  justify-content:center; color:var(--muted); transition:.3s; }
.serv:hover .serv-arr{ background:var(--lime); color:var(--bg); border-color:var(--lime); transform:rotate(-45deg); }
.serv-tag{ font-size:12px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase; color:var(--lime); margin:24px 0 8px; }
.serv-name{ font-size:23px; font-weight:700; margin:0 0 10px; letter-spacing:.2px; color:var(--text); }
.serv-desc{ font-size:14.5px; color:var(--muted); line-height:1.6; }
.serv-gains{ list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; padding:0; }
.serv-gains li{ display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:600; color:var(--text);
  padding:7px 13px; border-radius:100px; background:rgba(255,255,255,.04); border:1px solid var(--line); transition:.25s; }
.serv-gains li::before{ content:""; width:5px; height:5px; border-radius:50%; background:var(--lime); flex-shrink:0; }
.serv:hover .serv-gains li{ border-color:rgba(198,255,0,.25); }
.serv-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:20px; }
.serv-price{ font-size:16px; font-weight:700; color:var(--text); }
.serv-more{ font-size:12px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:var(--muted); transition:color .25s; }
.serv:hover .serv-more{ color:var(--lime); }
.serv-line{ margin-top:22px; height:2px; width:100%; background:var(--line); position:relative; overflow:hidden; }
.serv-line::after{ content:""; position:absolute; inset:0; width:0; background:var(--lime); transition:width .4s; }
.serv:hover .serv-line::after{ width:100%; }

/* ===== ABOUT ===== */
.about{ position:relative; display:grid; grid-template-columns:.92fr 1.08fr; gap:64px; align-items:center; }
.about-media{ position:relative; }
.about-media::before{ content:""; position:absolute; top:22px; left:-22px; right:22px; bottom:-22px;
  border:1.5px solid rgba(198,255,0,.3); border-radius:var(--r-lg); z-index:0; pointer-events:none; }
.about-img{ position:relative; z-index:1; width:100%; height:640px; object-fit:cover; object-position:center 32%;
  filter:contrast(1.06) saturate(1.03); border-radius:var(--r-lg);
  box-shadow:0 0 0 1px rgba(198,255,0,.2), 0 36px 80px rgba(0,0,0,.55); }
.about-c .h2{ margin:18px 0 24px; }
.about-quote{ position:relative; font-size:19px; color:var(--text); padding:24px 26px 24px 30px; margin-bottom:30px;
  line-height:1.5; font-weight:600; background:linear-gradient(135deg, rgba(198,255,0,.07), transparent); border-left:3px solid var(--lime); border-radius:0 16px 16px 0; }
.quote-mark{ position:absolute; top:6px; right:18px; font-family:Georgia,serif; font-size:64px; line-height:.5; color:rgba(198,255,0,.22); }
.about-p{ font-size:16px; color:var(--muted); line-height:1.78; margin-bottom:18px; }
.about-p strong{ color:var(--text); font-weight:600; }
.certs{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:30px; }
.cert{ display:flex; align-items:center; gap:11px; font-size:14px; font-weight:500; color:var(--text); }
.cert svg{ color:var(--lime); flex-shrink:0; }
.cert.soon{ color:var(--muted); font-style:italic; }
.cert.soon svg{ color:var(--muted); }
.pillars{ display:flex; gap:14px; margin-top:32px; }
.pill{ flex:1; padding:20px 22px; background:rgba(255,255,255,.03); border:1px solid var(--line); border-top:2px solid var(--lime); border-radius:14px; }
.pill .l{ font-size:26px; font-weight:700; color:var(--lime); line-height:1; }
.pill .w{ font-size:13px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; margin:6px 0 4px; }
.pill .d{ font-size:12.5px; color:var(--muted); line-height:1.45; }

/* ===== CO REALNIE ZYSKUJESZ (interaktywny selektor) ===== */
.gains-head{ text-align:center; margin-bottom:50px; }
.gains-head .eyebrow{ justify-content:center; margin-bottom:18px; }
.gains-sub{ font-size:17px; color:var(--muted); max-width:620px; margin:16px auto 0; line-height:1.65; }
.gains-x{ display:grid; grid-template-columns:.82fr 1.18fr; gap:22px; align-items:stretch; }
.gains-nav{ display:flex; flex-direction:column; gap:10px; }
.gtab{ display:flex; align-items:center; gap:14px; text-align:left; background:#fff; border:1px solid rgba(0,0,0,.08);
  border-radius:16px; padding:15px 18px; cursor:pointer; transition:.3s var(--ease); position:relative; overflow:hidden; font-family:inherit; }
.gtab .ic{ width:42px; height:42px; border-radius:12px; background:#EFEFEA; color:#0A0A0A;
  display:flex; align-items:center; justify-content:center; transition:.3s; flex-shrink:0; }
.gtab .t{ font-size:15.5px; font-weight:700; color:#0A0A0A; }
.gtab .progress{ position:absolute; left:0; bottom:0; height:3px; width:0; background:var(--lime); border-radius:0 3px 3px 0; }
.gtab:hover{ border-color:rgba(0,0,0,.2); transform:translateX(4px); }
.gtab.is-active{ border-color:#0A0A0A; box-shadow:0 14px 34px rgba(0,0,0,.10); transform:translateX(6px); }
.gtab.is-active .ic{ background:#0A0A0A; color:var(--lime); }
.gains-x.auto .gtab.is-active .progress{ animation:gainProg 5s linear forwards; }
@keyframes gainProg{ from{ width:0 } to{ width:100% } }
.gains-stage{ position:relative; background:#0A0A0A; border-radius:var(--r-lg); overflow:hidden; min-height:420px;
  box-shadow:0 30px 70px rgba(0,0,0,.18); }
.gains-stage::after{ content:""; position:absolute; right:-70px; bottom:-70px; width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle, rgba(198,255,0,.14), transparent 70%); pointer-events:none; }
.gpanel{ position:absolute; inset:0; padding:46px 48px; display:flex; flex-direction:column; justify-content:center;
  opacity:0; transform:translateY(16px); transition:opacity .55s var(--ease), transform .55s var(--ease); pointer-events:none; }
.gpanel.is-active{ opacity:1; transform:none; pointer-events:auto; }
.gpanel .gnum{ position:absolute; top:16px; right:28px; font-family:"Rajdhani",sans-serif; font-size:110px; font-weight:700;
  line-height:1; color:rgba(198,255,0,.09); letter-spacing:-4px; }
.gpanel .gic{ width:66px; height:66px; border-radius:18px; background:rgba(198,255,0,.09); border:1px solid rgba(198,255,0,.3);
  color:var(--lime); display:flex; align-items:center; justify-content:center; margin-bottom:22px; }
.gpanel h3{ color:#fff; font-size:31px; font-weight:700; margin-bottom:12px; font-family:"Rajdhani",sans-serif; letter-spacing:.3px; }
.gpanel .gd{ color:#B9BCC2; font-size:16px; line-height:1.7; max-width:480px; }
.gpanel .gr{ margin-top:20px; padding:14px 18px; border-left:3px solid var(--lime); background:rgba(198,255,0,.06);
  color:#E9EAEC; border-radius:0 12px 12px 0; font-size:14.5px; line-height:1.6; max-width:480px; }
.gpanel .gr b{ color:var(--lime); font-weight:700; }
.gpanel .gbg{ position:absolute; top:0; right:0; width:60%; height:100%; object-fit:cover; z-index:0; opacity:0;
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, #000 52%); mask-image:linear-gradient(90deg, transparent 0%, #000 52%);
  filter:grayscale(.3) contrast(1.05); transform:scale(1.08);
  transition:opacity 1s var(--ease-smooth), transform 7s var(--ease-smooth); }
.gpanel.is-active .gbg{ opacity:.5; transform:scale(1); }
.gpanel::after{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg, #0A0A0A 34%, rgba(10,10,10,.6) 62%, rgba(10,10,10,.18) 100%); }
.gpanel > *{ position:relative; z-index:2; }
.gpanel .gbg{ z-index:0; }

/* ===== VIDEO/APPROACH ===== */
.video-sec{ position:relative; overflow:hidden; }
.video-grid{ display:grid; grid-template-columns:1.3fr 1fr; gap:48px; align-items:center; }
.video-box{ position:relative; border:1px solid var(--line); overflow:hidden; background:#000; border-radius:var(--r-lg); }
.video-box img,.video-box video{ width:100%; height:100%; max-height:520px; object-fit:cover; display:block; object-position:center 15%; }
.video-tag{ position:absolute; top:18px; left:18px; z-index:3; display:inline-flex; align-items:center; gap:8px;
  background:rgba(10,10,10,.7); backdrop-filter:blur(6px); border:1px solid var(--line); padding:9px 16px;
  font-size:12px; font-weight:600; letter-spacing:1.4px; text-transform:uppercase; color:var(--text); border-radius:100px; }
.video-tag .dot{ width:8px; height:8px; border-radius:50%; background:var(--lime); box-shadow:0 0 10px var(--lime); }
.video-q{ position:relative; font-size:clamp(24px,2.6vw,34px); font-weight:700; line-height:1.32; letter-spacing:-.6px; padding-left:22px; border-left:3px solid var(--lime); }
.video-q .hl{ color:var(--lime); }
.video-sign{ margin-top:24px; font-size:15px; color:var(--muted); }
.video-sign b{ color:var(--text); font-weight:700; display:block; font-size:17px; letter-spacing:.5px; font-family:"Rajdhani",sans-serif; }
.video-soc{ display:flex; gap:12px; margin-top:26px; }
.soc{ width:44px; height:44px; border-radius:12px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center;
  color:var(--muted); transition:.2s; }
.soc:hover{ border-color:var(--lime); color:var(--lime); transform:translateY(-2px); }

/* ===== WHITE STATS ===== */
.white{ background:#F2F2F2; color:#0A0A0A; position:relative; overflow:hidden; padding:104px 0; }
.white .eyebrow{ color:#4a5a00; }
.white .eyebrow::before{ background:linear-gradient(90deg, #0A0A0A 55%, transparent); }
.white .gains-sub,.white .video-sign,.white .lbl{ color:#55585d; }
.white .video-sign b{ color:#0A0A0A; }
.white .soc{ border-color:rgba(0,0,0,.14); color:#55585d; }
.white .soc:hover{ border-color:var(--lime-hi); color:#3f4d00; background:rgba(198,255,0,.12); }
.approach-q{ font-family:"Rajdhani",sans-serif; font-size:clamp(27px,3.1vw,42px); font-weight:700;
  line-height:1.2; letter-spacing:-.6px; margin-top:24px; }
.approach-q .hl{ background:linear-gradient(transparent 62%, rgba(198,255,0,.95) 62%); padding:0 3px; }
.white .approach-q{ color:#0A0A0A; }
.approach-foot{ display:flex; justify-content:space-between; align-items:center; gap:28px; flex-wrap:wrap;
  margin-top:36px; padding-top:26px; border-top:1px solid rgba(0,0,0,.12); }
.approach-foot .video-sign{ margin-top:0; }
.approach-foot .video-soc{ margin-top:0; gap:14px; }
.approach-foot .soc{ width:54px; height:54px; border-radius:16px; }
.approach-foot .soc svg{ width:21px; height:21px; }
.white-head{ text-align:center; margin-bottom:54px; }
.white-head .eyebrow{ justify-content:center; margin-bottom:18px; }
.white-h{ font-size:clamp(30px,3.4vw,48px); font-weight:700; line-height:1.08; letter-spacing:-1px; color:#0A0A0A; margin-top:0; font-family:"Rajdhani",sans-serif; }
.white-h .u{ position:relative; display:inline-block; }
.white-h .u::after{ content:""; position:absolute; left:-2px; right:-2px; bottom:4px; height:13px; background:var(--lime); z-index:-1; }
.statgrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.stat{ background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:24px; padding:38px 30px; text-align:left;
  box-shadow:0 14px 40px rgba(0,0,0,.06); position:relative; overflow:hidden; transition:transform .3s,box-shadow .3s; }
.stat:hover{ transform:translateY(-5px); box-shadow:0 24px 56px rgba(0,0,0,.1); }
.stat::after{ content:""; position:absolute; right:-24px; bottom:-24px; width:96px; height:96px; border-radius:50%;
  background:radial-gradient(circle, rgba(198,255,0,.22), transparent 72%); }
.stat .num{ font-size:60px; font-weight:700; line-height:1; letter-spacing:-2px; color:#0A0A0A; font-family:"Rajdhani",sans-serif; }
.stat .num span{ color:#8aa800; }
.stat .num.gd{ font-size:46px; font-weight:700; letter-spacing:-1px; }
.stat .lbl{ font-size:14px; font-weight:600; color:#3a3d42; margin-top:10px; }

/* ===== PROCESS / ROAD ===== */
.proc-head{ text-align:center; margin-bottom:56px; padding-top:8px; }
.proc-head .eyebrow{ justify-content:center; margin-bottom:18px; }
.road{ position:relative; display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-top:8px; }
.road-line{ position:absolute; top:37px; left:8%; right:8%; height:2px; background:rgba(255,255,255,.08); border-radius:3px; overflow:hidden; }
.road-fill{ position:absolute; left:0; top:0; bottom:0; width:0; background:linear-gradient(90deg,var(--lime),var(--lime-hi)); border-radius:3px; transition:width 2s var(--ease-smooth); }
.road.is-in .road-fill{ width:100%; }
.rstep{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; text-align:center; padding:0 10px;
  color:var(--text); cursor:pointer; background:none; border:none; }
.rnode{ width:76px; height:76px; border-radius:50%; background:var(--bg-alt); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; margin-bottom:22px; position:relative;
  transition:background .7s var(--ease-smooth), border-color 1s var(--ease-smooth), transform .7s var(--ease-smooth), box-shadow .7s var(--ease-smooth); }
.rnode::before{ content:""; position:absolute; inset:-8px; border-radius:50%; border:1px dashed rgba(198,255,0,.3);
  opacity:0; transform:scale(.86); transition:opacity .7s var(--ease-smooth), transform .7s var(--ease-smooth); }
.rstep:hover .rnode::before,.rstep.open .rnode::before,.rstep:focus-visible .rnode::before{
  opacity:1; transform:scale(1); animation:spinSlow 16s linear infinite; }
@keyframes spinSlow{ to{ transform:rotate(360deg); } }
.rnum{ font-size:20px; font-weight:700; color:var(--muted); transition:color 1s var(--ease-smooth); font-family:"Rajdhani",sans-serif; }
/* sequential lighting once the road scrolls in */
.road.is-in .rstep:nth-child(2) .rnode{ border-color:rgba(198,255,0,.55); transition-delay:.2s; }
.road.is-in .rstep:nth-child(3) .rnode{ border-color:rgba(198,255,0,.55); transition-delay:.5s; }
.road.is-in .rstep:nth-child(4) .rnode{ border-color:rgba(198,255,0,.55); transition-delay:.8s; }
.road.is-in .rstep:nth-child(5) .rnode{ border-color:rgba(198,255,0,.55); transition-delay:1.1s; }
.road.is-in .rstep:nth-child(6) .rnode{ border-color:rgba(198,255,0,.55); transition-delay:1.4s; }
.road.is-in .rstep:nth-child(2) .rnum{ color:var(--lime); transition-delay:.2s; }
.road.is-in .rstep:nth-child(3) .rnum{ color:var(--lime); transition-delay:.5s; }
.road.is-in .rstep:nth-child(4) .rnum{ color:var(--lime); transition-delay:.8s; }
.road.is-in .rstep:nth-child(5) .rnum{ color:var(--lime); transition-delay:1.1s; }
.road.is-in .rstep:nth-child(6) .rnum{ color:var(--lime); transition-delay:1.4s; }
.rstep:hover .rnode,.rstep.open .rnode,.rstep:focus-visible .rnode{ background:var(--lime); border-color:var(--lime); transform:translateY(-3px); box-shadow:0 0 0 9px rgba(198,255,0,.08),0 18px 44px rgba(198,255,0,.2); transition-delay:0s; }
.rstep:hover .rnum,.rstep.open .rnum{ color:var(--bg); transition-delay:0s; }
.rtitle{ font-size:19px; font-weight:700; margin-bottom:8px; transition:color .25s; font-family:"Rajdhani",sans-serif; }
.rstep:hover .rtitle,.rstep.open .rtitle{ color:var(--lime); }
.rdesc{ font-size:13.5px; color:var(--muted); line-height:1.55; max-width:200px; }
.rmore{ max-height:0; overflow:hidden; opacity:0; transition:max-height .6s var(--ease-smooth), opacity .5s var(--ease-smooth), margin .6s var(--ease-smooth); width:100%; }
.rstep:hover .rmore,.rstep.open .rmore{ max-height:220px; opacity:1; margin-top:16px; }
.rmore p{ font-size:13px; color:#C9CCD1; line-height:1.6; background:var(--panel); border:1px solid rgba(198,255,0,.2); border-radius:14px; padding:14px 16px; }
.rgo{ display:inline-flex; align-items:center; gap:7px; margin-top:12px; font-size:12px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:var(--lime); }
.rgo:hover{ text-decoration:underline; }

/* ===== PRICING ===== */
.price-head{ text-align:center; margin-bottom:18px; padding-top:8px; }
.price-head .eyebrow{ justify-content:center; margin-bottom:18px; }
.price-sub{ text-align:center; font-size:17px; color:var(--muted); max-width:520px; margin:14px auto 56px; }
.price-sub b{ color:var(--lime); }
.pgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:start; }
.graphite .pcard{ background:#1E222A; border-color:rgba(255,255,255,.09); box-shadow:0 18px 50px rgba(0,0,0,.3); }
.graphite .pcard.feat{ background:linear-gradient(180deg, #1B2114, #1E222A); box-shadow:0 40px 90px rgba(0,0,0,.45); }
.pcard{ position:relative; background:var(--panel); border:1px solid var(--line); padding:42px 36px;
  display:flex; flex-direction:column; transition:transform .35s,border-color .35s,box-shadow .35s; border-radius:var(--r); }
.pcard:hover{ border-color:rgba(255,255,255,.16); }
.pcard:hover .pic{ transform:scale(1.12) rotate(-6deg); background:rgba(198,255,0,.16); }
.pcard.feat{ background:linear-gradient(180deg, #161a13, var(--panel)); border-color:rgba(198,255,0,.4);
  box-shadow:0 40px 90px rgba(0,0,0,.5); transform:scale(1.04); border-radius:var(--r-lg); }
.pcard.feat:hover{ transform:scale(1.03) translateY(-6px); }
.pbadge{ position:absolute; top:0; left:50%; transform:translate(-50%,-50%); background:var(--lime); color:var(--bg);
  font-size:11px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase; padding:8px 20px; white-space:nowrap; border-radius:100px; box-shadow:0 8px 24px rgba(198,255,0,.3); }
.pic{ width:54px; height:54px; border-radius:16px; background:var(--lime-soft); border:1px solid rgba(198,255,0,.22); transition:transform .4s var(--ease),background .3s;
  display:flex; align-items:center; justify-content:center; color:var(--lime); margin-bottom:20px; }
.pname{ font-size:23px; font-weight:700; letter-spacing:.3px; }
.ptag{ font-size:14.5px; color:var(--muted); margin:6px 0 26px; line-height:1.45; }
.pprice{ display:flex; align-items:baseline; gap:6px; padding-bottom:26px; margin-bottom:26px; border-bottom:1px solid var(--line); }
.pprice .amt{ font-size:52px; font-weight:700; letter-spacing:-2px; line-height:1; }
.pcard.feat .amt{ color:var(--lime); }
.pprice .per{ font-size:15px; color:var(--muted); font-family:"Inter",sans-serif; }
.pfeat{ list-style:none; display:flex; flex-direction:column; gap:13px; margin-bottom:32px; flex:1; }
.pfeat li{ display:flex; align-items:flex-start; gap:11px; font-size:14px; color:var(--text); line-height:1.5; }
.pfeat svg{ color:var(--lime); flex-shrink:0; margin-top:2px; }
.pnote{ font-size:12px; color:var(--muted); margin:-14px 0 20px; }
.pcta{ display:block; text-align:center; padding:15px; font-size:15px; font-weight:700; letter-spacing:.1px; transition:.25s; border-radius:100px; }
.pcta.outline{ border:1px solid rgba(255,255,255,.2); color:var(--text); }
.pcta.outline:hover{ border-color:var(--lime); color:var(--lime); background:var(--lime-soft); }
.pcta.solid{ background:var(--lime); color:var(--bg) !important; border:none; position:relative; overflow:hidden; }
.pcta.solid:hover{ background:var(--lime-hi); box-shadow:0 8px 26px rgba(198,255,0,.32); }

/* ===== TRANSFORMATIONS ===== */
.trans-head{ text-align:center; margin-bottom:30px; padding-top:8px; }
.trans-head .eyebrow{ justify-content:center; margin-bottom:18px; }
.trans-callout{ font-size:18px; font-weight:700; color:var(--text); max-width:680px; margin:22px auto 0; line-height:1.55; }
.trans-callout .hl{ color:var(--lime); }
.trans-sub{ font-size:15.5px; color:var(--muted); max-width:560px; margin:14px auto 0; line-height:1.6; }
.ba-grid{ display:grid; grid-template-columns:1fr 1fr; gap:26px; margin-top:46px; align-items:stretch; }
.ba{ height:100%; }
.ba-glass{ position:relative; height:100%; display:flex; flex-direction:column; border-radius:26px; padding:16px; overflow:hidden;
  background:linear-gradient(155deg, rgba(255,255,255,.08), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.12); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  box-shadow:0 30px 70px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.14); transition:transform .4s,box-shadow .4s; }
.ba-glass::before{ content:""; position:absolute; top:0; left:0; right:0; height:50%; pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,.10), transparent); }
.ba-glass::after{ content:""; position:absolute; right:-30px; top:-30px; width:160px; height:160px; border-radius:50%;
  background:radial-gradient(circle, rgba(198,255,0,.18), transparent 70%); pointer-events:none; }
.ba:hover .ba-glass{ transform:translateY(-6px); box-shadow:0 44px 90px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.18); }
.ba-pair{ display:grid; grid-template-columns:1fr 1fr; gap:12px; position:relative; }
.ba-fig{ position:relative; border-radius:18px; overflow:hidden; }
.ba-fig img,.ba-ph{ width:100%; height:340px; object-fit:cover; object-position:center top; display:block; transition:transform .6s; }
.ba-ph{ background:linear-gradient(150deg,#1a1e12,#16191E 55%,#0E1013); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; color:rgba(198,255,0,.55); }
.ba-ph svg{ width:46px; height:46px; }
.ba-ph span{ font-size:10.5px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase; color:rgba(242,242,242,.32); }
.ba:hover .ba-fig img{ transform:scale(1.04); }
.ba-fig figcaption{ position:absolute; top:12px; left:12px; font-size:11px; font-weight:700; letter-spacing:1.4px; text-transform:uppercase;
  padding:6px 13px; border-radius:100px; background:rgba(10,10,10,.62); backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.14); color:var(--text); }
.ba-fig figcaption.po{ background:var(--lime); color:var(--bg); border-color:var(--lime); }
.ba-cap{ padding:20px 8px 8px; }
.ba-cap .t{ font-size:19px; font-weight:700; font-family:"Rajdhani",sans-serif; }
.ba-cap .d{ font-size:14px; color:var(--muted); margin-top:4px; line-height:1.5; }

/* ===== TESTIMONIALS ===== */
.test-head{ text-align:center; margin-bottom:54px; padding-top:8px; }
.test-head .eyebrow{ justify-content:center; margin-bottom:18px; }
.test-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.tcard{ background:var(--panel); border:1px solid var(--line); padding:34px 32px; position:relative; transition:.35s; border-radius:var(--r); }
.tcard:hover{ border-color:rgba(198,255,0,.3); }
.tcard.big{ grid-row:span 2; background:linear-gradient(165deg, #1a1e12, var(--panel)); border-color:rgba(198,255,0,.3); }
.tstars{ color:var(--lime); font-size:15px; letter-spacing:2px; margin-bottom:18px; }
.ttext{ font-size:15px; color:var(--text); line-height:1.7; margin-bottom:26px; opacity:.92; }
.tcard.big .ttext{ font-size:19px; line-height:1.6; }
.tauthor{ display:flex; align-items:center; gap:13px; }
.tav{ width:46px; height:46px; border-radius:50%; background:rgba(198,255,0,.12); border:1px solid rgba(198,255,0,.3);
  display:flex; align-items:center; justify-content:center; font-size:17px; font-weight:700; color:var(--lime); font-family:"Rajdhani",sans-serif; }
.tn{ font-size:15px; font-weight:700; }
.tr{ font-size:12.5px; color:var(--muted); }
.qglyph{ position:absolute; top:22px; right:26px; font-family:Georgia,serif; font-size:90px; line-height:.5; color:rgba(198,255,0,.16); }
.rating-pill{ display:inline-flex; align-items:center; gap:14px; margin:0 auto; padding:16px 26px;
  background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--lime); border-radius:16px; }
.rating-pill .n{ font-size:30px; font-weight:700; line-height:1; font-family:"Rajdhani",sans-serif; }
.rating-pill .s{ color:var(--lime); font-size:16px; }
.rating-pill .t{ font-size:12.5px; color:var(--muted); text-align:left; }

/* ===== CERTYFIKATY ===== */
.certs-sec{ position:relative; overflow:hidden;
  background:
    radial-gradient(820px 460px at 88% 0%, rgba(198,255,0,.10), transparent 62%),
    linear-gradient(180deg, #0D120C 0%, #111611 55%, #0E130E 100%);
  border-top:1px solid rgba(198,255,0,.14); border-bottom:1px solid var(--line); }
.certs-sec::before{ content:"CERTYFIKATY"; position:absolute; top:30px; left:50%; transform:translateX(-50%);
  font-family:"Rajdhani",sans-serif; font-weight:700; font-size:clamp(64px,14vw,200px); letter-spacing:8px; line-height:1;
  color:transparent; -webkit-text-stroke:1.5px rgba(198,255,0,.055); pointer-events:none; white-space:nowrap; user-select:none; }
.certs-grid{ display:grid; grid-template-columns:.92fr 1.3fr; gap:64px; align-items:start; position:relative; z-index:1; }
.certs-side{ position:sticky; top:110px; }
.certs-side .h2{ margin:18px 0 30px; font-size:clamp(32px,3.3vw,48px); }
.certs-big{ display:flex; align-items:center; gap:20px; padding:24px 28px; margin-bottom:16px;
  background:rgba(198,255,0,.07); border:1px solid rgba(198,255,0,.28); border-radius:var(--r);
  box-shadow:0 20px 50px rgba(0,0,0,.3), inset 0 1px 0 rgba(198,255,0,.12); }
.certs-big .n{ font-family:"Rajdhani",sans-serif; font-size:76px; font-weight:700; color:var(--lime); line-height:.9; letter-spacing:-2px; }
.certs-big .t{ font-size:14px; font-weight:700; letter-spacing:1.8px; text-transform:uppercase; line-height:1.55; }
.certs-range{ font-size:13.5px; color:var(--muted); letter-spacing:.4px; margin-bottom:22px; display:flex; align-items:center; gap:9px; }
.certs-range::before{ content:""; width:22px; height:2px; background:var(--lime); border-radius:2px; flex-shrink:0; }
.certs-sub{ font-size:15.5px; color:var(--muted); line-height:1.7; max-width:380px; }
.certs-sub b{ color:var(--lime); font-weight:700; }
.cert-list{ border-top:1px solid rgba(198,255,0,.14); position:relative; z-index:1; }
.cert-row{ display:grid; grid-template-columns:88px 1fr auto; gap:28px; align-items:baseline; width:100%; text-align:left;
  background:none; border:none; border-bottom:1px solid rgba(255,255,255,.07); padding:24px 18px 24px 18px; color:var(--text);
  font-family:inherit; position:relative; transition:background .35s var(--ease-smooth); }
button.cert-row{ cursor:pointer; }
.cert-row::before{ content:""; position:absolute; left:0; top:24px; bottom:24px; width:2px; background:var(--lime);
  border-radius:2px; transform:scaleY(0); transform-origin:top; transition:transform .45s var(--ease-smooth); }
.cert-row:hover{ background:rgba(198,255,0,.035); }
.cert-row:hover::before{ transform:scaleY(1); }
.cyear{ font-family:"Rajdhani",sans-serif; font-size:26px; font-weight:700; color:var(--graphite); transition:color .4s var(--ease-smooth); letter-spacing:1px; line-height:1; }
.cert-row:hover .cyear{ color:var(--lime); }
.cname{ display:flex; align-items:center; gap:11px; flex-wrap:wrap; font-size:17.5px; font-weight:700; line-height:1.35; }
.ctag{ font-size:11px; font-weight:700; letter-spacing:1.4px; text-transform:uppercase; color:var(--lime);
  border:1px solid rgba(198,255,0,.35); border-radius:100px; padding:4px 11px; white-space:nowrap; line-height:1.4; }
.ciss{ font-size:13.5px; color:var(--muted); margin-top:7px; line-height:1.55; max-width:54ch; }
.cact{ display:inline-flex; align-items:center; justify-content:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--muted);
  border:1px solid var(--line); border-radius:100px; padding:10px 20px; min-width:112px; align-self:center;
  transition:.3s var(--ease-smooth); white-space:nowrap; }
.cact svg{ transition:transform .25s; }
.cert-row:hover .cact{ border-color:var(--lime); color:var(--lime); }
.cert-row:hover .cact svg{ transform:translate(2px,-2px); }
.clevels{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-start; margin-top:14px; }
.clevel{ display:inline-flex; align-items:center; font-size:13px; font-weight:600; color:var(--muted); background:none;
  border:1px solid var(--line); border-radius:100px; padding:9px 16px; cursor:pointer; transition:.25s; font-family:inherit; }
.clevel:hover{ border-color:var(--lime); color:var(--lime); background:var(--lime-soft); }
.cert-row.multi{ cursor:default; grid-template-columns:88px 1fr; }
.cert-more{ display:inline-flex; align-items:center; gap:8px; margin-top:26px; font-size:14px; font-weight:700; color:var(--lime); }
.cert-more svg{ transition:transform .25s; }
.cert-more:hover svg{ transform:translateX(4px); }

/* lightbox */
.lightbox{ position:fixed; inset:0; z-index:600; background:rgba(6,7,8,.9); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  display:flex; align-items:center; justify-content:center; padding:26px; opacity:0; pointer-events:none; transition:opacity .35s var(--ease); }
.lightbox.show{ opacity:1; pointer-events:auto; }
.lightbox figure{ max-width:min(940px,94vw); margin:0; display:flex; flex-direction:column; gap:16px;
  transform:scale(.96) translateY(10px); transition:transform .35s var(--ease); }
.lightbox.show figure{ transform:none; }
.lightbox img{ width:100%; height:auto; max-height:76vh; object-fit:contain; border-radius:14px;
  background:#fff; box-shadow:0 50px 120px rgba(0,0,0,.65); }
.lightbox figcaption{ text-align:center; color:var(--text); font-size:15px; font-weight:600; }
.lb-close{ position:absolute; top:22px; right:26px; width:50px; height:50px; border-radius:50%; background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.22); color:#fff; font-size:26px; line-height:1; cursor:pointer; transition:.25s; }
.lb-close:hover{ background:var(--lime); color:var(--bg); border-color:var(--lime); transform:rotate(90deg); }

/* ===== LOCATIONS / MAPS ===== */
.loc-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.lcard{ background:var(--panel); border:1px solid var(--line); overflow:hidden; transition:.35s; border-radius:var(--r); }
.lcard:hover{ border-color:rgba(198,255,0,.3); }
.lmap{ position:relative; width:100%; height:230px; background:var(--bg-alt); }
.lmap iframe{ width:100%; height:100%; border:0; filter:grayscale(.45) contrast(1.08) brightness(.78) saturate(1.1); display:block; }
.lmap::after{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg, rgba(10,10,10,.35), rgba(10,10,10,0) 35%, rgba(10,10,10,0) 70%, rgba(10,10,10,.4)); }
.lc{ padding:30px 34px; }
.lnum{ font-size:11px; font-weight:700; letter-spacing:2.5px; color:var(--lime); text-transform:uppercase; margin-bottom:11px; }
.lname{ font-size:21px; font-weight:700; margin-bottom:8px; font-family:"Rajdhani",sans-serif; }
.laddr{ font-size:14px; color:var(--muted); line-height:1.5; margin-bottom:14px; }
.lhours{ font-size:13px; color:var(--muted); margin-bottom:22px; display:flex; gap:8px; align-items:center; }
.lhours svg{ color:var(--lime); flex-shrink:0; }
.llinks{ display:flex; gap:11px; flex-wrap:wrap; }
.llink{ display:inline-flex; align-items:center; gap:7px; padding:11px 20px; font-size:13.5px; font-weight:600;
  letter-spacing:.1px; border:1px solid var(--line); transition:.2s; border-radius:100px; }
.llink:hover{ border-color:var(--lime); color:var(--lime); }
.llink.pri{ background:var(--lime); color:var(--bg) !important; border-color:var(--lime); }
.llink.pri:hover{ background:var(--lime-hi); color:var(--bg); }

/* white variant — lokalizacje na jasnym tle */
.white .lcard{ background:#fff; border-color:rgba(0,0,0,.07); box-shadow:0 16px 44px rgba(0,0,0,.07); color:#0A0A0A; }
.white .lcard:hover{ border-color:rgba(0,0,0,.14); box-shadow:0 28px 64px rgba(0,0,0,.12); }
.white .lname{ color:#0A0A0A; }
.white .laddr,.white .lhours{ color:#55585d; }
.white .lnum{ color:#4a5a00; }
.white .lhours svg{ color:#4a5a00; }
.white .lmap{ background:#e8e8e8; }
.white .lmap iframe{ filter:saturate(1.05) contrast(1.02); }
.white .lmap::after{ display:none; }
.white .llink{ border-color:rgba(0,0,0,.16); color:#0A0A0A; }
.white .llink.pri{ background:#0A0A0A; color:var(--lime) !important; border-color:#0A0A0A; box-shadow:0 10px 26px rgba(10,10,10,.2); }
.white .llink.pri:hover{ background:#1A1D21; }

/* ===== FAQ ===== */
.faq-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:56px; align-items:start; }
.faq-l .h2{ margin:18px 0 20px; }
.faq-l p{ font-size:16px; color:var(--muted); line-height:1.7; margin-bottom:28px; }
.faq-list{ display:flex; flex-direction:column; }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{ width:100%; text-align:left; background:none; border:none; cursor:pointer; color:var(--text);
  font-family:inherit; font-size:18px; font-weight:600; padding:24px 0; display:flex; justify-content:space-between;
  align-items:center; gap:20px; transition:color .2s; }
.faq-q:hover{ color:var(--lime); }
.faq-icon{ width:26px; height:26px; flex-shrink:0; position:relative; }
.faq-icon::before,.faq-icon::after{ content:""; position:absolute; background:var(--lime); transition:.3s; }
.faq-icon::before{ top:12px; left:3px; right:3px; height:2px; }
.faq-icon::after{ left:12px; top:3px; bottom:3px; width:2px; }
.faq-item.open .faq-icon::after{ transform:rotate(90deg); opacity:0; }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .35s ease,padding .35s ease; }
.faq-item.open .faq-a{ max-height:260px; padding-bottom:24px; }
.faq-a p{ font-size:15px; color:var(--muted); line-height:1.7; }

/* ===== CONTACT ===== */
.contact{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.contact-l .h2{ margin:18px 0 22px; }
.contact-l>p{ font-size:16px; color:var(--muted); line-height:1.7; margin-bottom:34px; max-width:440px; }
.contact-info{ display:flex; flex-direction:column; gap:20px; }
.cinfo{ display:flex; align-items:center; gap:16px; }
.cinfo a{ display:flex; align-items:center; gap:16px; }
.cinfo-ic{ width:52px; height:52px; border-radius:16px; background:var(--lime-soft); border:1px solid rgba(198,255,0,.22);
  display:flex; align-items:center; justify-content:center; color:var(--lime); flex-shrink:0; }
.cinfo .lbl{ font-size:12px; color:var(--muted); letter-spacing:1.2px; text-transform:uppercase; }
.cinfo .val{ font-size:17px; font-weight:600; }
.form{ background:var(--panel); border:1px solid var(--line); padding:40px 38px; display:flex; flex-direction:column; gap:18px; border-radius:var(--r-lg); }
.field{ display:flex; flex-direction:column; gap:8px; }
.field label{ font-size:12px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; color:var(--muted); }
.field .req{ color:var(--lime); }
.field input,.field textarea,.field select{ background:var(--bg-alt); border:1px solid var(--line); padding:14px 16px;
  color:var(--text); font-size:15px; transition:border-color .2s; border-radius:12px; width:100%; }
.field input:focus,.field textarea:focus,.field select:focus{ outline:none; border-color:var(--lime); }
.field input.invalid,.field textarea.invalid{ border-color:#ff5c5c; }
.field .err{ font-size:12.5px; color:#ff8080; display:none; }
.field.has-error .err{ display:block; }
.field textarea{ resize:vertical; min-height:110px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.consent{ display:flex; align-items:flex-start; gap:10px; font-size:13px; color:var(--muted); line-height:1.5; }
.field .consent{ text-transform:none; letter-spacing:normal; font-weight:400; font-size:13px; }
.field.has-error .consent input{ outline:2px solid #ff5c5c; outline-offset:2px; border-radius:4px; }
.consent input{ width:18px; height:18px; margin-top:2px; accent-color:var(--lime); flex-shrink:0; }
.consent a{ color:var(--lime); text-decoration:underline; }
.honeypot{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.submit{ margin-top:6px; background:var(--lime); color:var(--bg) !important; border:none; cursor:pointer; padding:16px;
  font-size:15.5px; font-weight:700; letter-spacing:.1px; transition:.2s;
  border-radius:100px; font-family:"Inter",sans-serif; display:flex; align-items:center; justify-content:center; gap:10px;
  position:relative; overflow:hidden; }
.submit:hover{ background:var(--lime-hi); box-shadow:0 10px 30px rgba(198,255,0,.3); }
.submit:disabled{ opacity:.65; cursor:not-allowed; transform:none !important; box-shadow:none !important; }
.form-msg{ display:none; padding:16px 18px; border-radius:14px; font-size:14px; font-weight:600; line-height:1.5; }
.form-msg.show{ display:flex; align-items:flex-start; gap:10px; }
.form-msg.ok{ background:rgba(198,255,0,.1); border:1px solid rgba(198,255,0,.3); color:var(--lime); }
.form-msg.bad{ background:rgba(255,92,92,.1); border:1px solid rgba(255,92,92,.3); color:#ff8080; }
.spinner{ width:16px; height:16px; border-radius:50%; border:2px solid rgba(10,10,10,.3); border-top-color:var(--bg); animation:spin .7s linear infinite; display:none; }
.submit.loading .spinner{ display:inline-block; }
.submit.loading .submit-txt{ display:none; }
@keyframes spin{ to{ transform:rotate(360deg); } }

/* ===== CTA ===== */
.cta{ position:relative; overflow:hidden; text-align:center; padding:130px 0;
  background:radial-gradient(1000px 560px at 50% -5%, rgba(198,255,0,.08), transparent 64%), var(--bg); }
.cta::before{ content:""; position:absolute; width:520px; height:520px; border-radius:50%;
  background:radial-gradient(circle, rgba(198,255,0,.12), transparent 70%);
  bottom:-220px; left:-140px; z-index:0; pointer-events:none;
  animation:driftGlow 18s ease-in-out infinite alternate-reverse; }
.cta .wrap{ position:relative; z-index:1; }
.cta .h2{ font-size:clamp(40px,5.4vw,76px); }
.cta .hl{ color:var(--lime); }
.cta p{ font-size:18px; color:var(--muted); max-width:560px; margin:22px auto 40px; line-height:1.6; }
.cta-actions{ display:flex; gap:18px; justify-content:center; flex-wrap:wrap; }

/* ===== FOOTER ===== */
.foot{ background:#000; border-top:1px solid var(--line); padding:60px 0 26px; }
.foot-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid var(--line); }
.foot-about{ font-size:14px; color:var(--muted); line-height:1.6; max-width:300px; }
.foot-col h4{ font-size:13px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--text); margin-bottom:18px; font-family:"Rajdhani",sans-serif; }
.foot-col a,.foot-col div{ display:block; font-size:14px; color:var(--muted); margin-bottom:11px; transition:color .2s; }
.foot-col a:hover{ color:var(--lime); }
.foot-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:26px; flex-wrap:wrap; gap:14px; }
.foot-bottom span{ font-size:13px; color:var(--muted); }
.foot-legal{ display:flex; gap:18px; flex-wrap:wrap; }
.foot-legal a{ font-size:13px; color:var(--muted); }
.foot-legal a:hover{ color:var(--lime); }
.foot-soc{ display:flex; gap:12px; }

/* ===== COOKIE BANNER ===== */
.cookie-bar{ position:fixed; left:20px; bottom:20px; right:auto; z-index:500; max-width:380px;
  background:var(--panel); border:1px solid var(--line); border-radius:18px; padding:20px 22px;
  box-shadow:0 24px 60px rgba(0,0,0,.5); display:flex; flex-wrap:wrap; gap:14px; align-items:flex-start; justify-content:space-between;
  transform:translateY(120%); opacity:0; transition:transform .5s var(--ease), opacity .5s var(--ease); }
.cookie-bar.show{ transform:translateY(0); opacity:1; }
.cookie-bar.hide-for-menu{ transform:translateY(120%) !important; opacity:0 !important; pointer-events:none; }
.cookie-bar p{ font-size:13px; color:var(--muted); line-height:1.55; flex:1 1 100%; }
.cookie-bar a{ color:var(--lime); text-decoration:underline; }
.cookie-actions{ display:flex; gap:10px; flex-shrink:0; flex-wrap:wrap; }
.cookie-actions button{ padding:11px 20px; font-size:13.5px; font-weight:700; letter-spacing:.1px; border-radius:100px; cursor:pointer; transition:.2s; font-family:"Inter",sans-serif; }
.cookie-accept{ background:var(--lime); color:var(--bg); border:none; }
.cookie-accept:hover{ background:var(--lime-hi); }
.cookie-decline{ background:transparent; color:var(--text); border:1px solid var(--line); }
.cookie-decline:hover{ border-color:var(--lime); color:var(--lime); }

/* scroll reveal — content is visible by default (safe if JS fails to load);
   JS adds .reveal-init to opt an element into the hide-then-fade-in animation */
[data-reveal].reveal-init{ opacity:0; transform:translateY(22px); filter:blur(9px);
  transition:opacity .9s var(--ease), transform .9s var(--ease), filter .9s var(--ease); will-change:opacity,transform,filter; }
[data-reveal].reveal-init.is-in{ opacity:1; transform:none; filter:none; }

/* scroll progress */
.scroll-progress{ position:fixed; top:0; left:0; height:3px; width:0; z-index:400;
  background:linear-gradient(90deg, var(--lime), var(--lime-hi)); box-shadow:0 0 12px rgba(198,255,0,.5); }
@media (prefers-reduced-motion: reduce){
  [data-reveal].reveal-init{ opacity:1 !important; transform:none !important; filter:none !important; }
  .rnode::before{ animation:none !important; }
  .gains-x.auto .gtab.is-active .progress{ animation:none !important; }
  .scroll-progress{ display:none; }
  html{ scroll-behavior:auto; }
  .strip-in{ animation:none; }
  .scroll-cue .mouse::after{ animation:none; }
  .hero-l > *,.hero-r{ animation:none !important; opacity:1 !important; transform:none !important; }
  .hero-avail{ animation:none !important; opacity:1 !important; }
  .hero-avail-dot{ animation:none !important; }
  .hero::after,.cta::before{ animation:none !important; }
  .eyebrow::before{ animation:none !important; }
  .btn::after,.navcta::after,.pcta.solid::after,.submit::after{ display:none !important; }
}

/* ===== TABLET (max 1200px) ===== */
@media (max-width:1200px) and (min-width:981px){
  .wrap,.nav-in,.hero-in{ padding-left:32px; padding-right:32px; }
  .links{ gap:20px; }
  .pgrid{ gap:16px; }
  .pcard{ padding:34px 26px; }
  .pcard.feat{ transform:none; }
  .test-grid{ grid-template-columns:1fr 1fr; }
  .tcard.big{ grid-column:span 2; }
  .road{ gap:10px; }
  .serv{ padding:32px 28px 30px; }
  .about-img{ height:560px; }
  .gains-x{ grid-template-columns:1fr 1.2fr; }
}
/* ===== SMALL TABLET (max 900px) ===== */
@media (max-width:900px){
  .road{ grid-template-columns:1fr; gap:22px; }
  .road-line{ display:none; }
  .rdesc{ max-width:none; }
  .statgrid{ grid-template-columns:1fr 1fr; }
  .test-grid{ grid-template-columns:1fr; }
  .tcard.big{ grid-column:auto; grid-row:auto; }
  .faq-grid,.contact,.about,.video-grid{ grid-template-columns:1fr; gap:40px; }
  .certs-grid{ grid-template-columns:1fr; gap:44px; }
  .certs-side{ position:static; }
  .gains-x{ grid-template-columns:1fr; }
  .gains-nav{ flex-direction:row; overflow-x:auto; padding-bottom:6px; -webkit-overflow-scrolling:touch; }
  .gtab{ flex-shrink:0; }
  .gtab .t{ white-space:nowrap; }
  .gtab.is-active,.gtab:hover{ transform:none; }
  .gains-stage{ min-height:460px; }
  .gpanel{ padding:34px 28px; justify-content:flex-end; }
  .gpanel .gbg{ width:100%; height:62%; -webkit-mask-image:linear-gradient(180deg,#000 45%,transparent); mask-image:linear-gradient(180deg,#000 45%,transparent); }
  .gpanel::after{ background:linear-gradient(180deg, rgba(10,10,10,.25) 0%, rgba(10,10,10,.75) 45%, #0A0A0A 72%); }
}
/* ===== MOBILE (max 760px) ===== */
@media (max-width:760px){
  .form-row{ grid-template-columns:1fr; }
  .h2{ font-size:clamp(28px,7vw,40px); }
  .contact-l .h2,.cta .h2{ font-size:clamp(30px,8vw,44px); }
  .form{ padding:28px 22px; }
  .field input,.field textarea{ font-size:16px; }
  .wrap,.nav-in,.hero-in,.foot-top,.foot-bottom{ padding-left:22px; padding-right:22px; }
  .hero-l{ padding:90px 0 70px; }
  .hero-cta{ flex-direction:column; align-items:stretch; gap:12px; }
  .hero-cta .btn,.hero-cta .btn-ghost{ justify-content:center; width:100%; }
  .scroll-cue{ display:none; }
  .stat{ padding:28px 22px; }
  .stat .num{ font-size:42px; }
  .stat .num.gd{ font-size:32px; }
  .about-img{ height:480px; }
  .about-media::before{ top:14px; left:-12px; right:14px; bottom:-12px; }
  .h1{ letter-spacing:-1px; }
  .serv-head{ gap:18px; }
  .ba-fig img,.ba-ph{ height:230px; }
  .ba-pair{ gap:8px; }
  .video-q{ font-size:22px; }
  .sec{ padding:70px 0; }
  .links,.nav-right .navcta{ display:none; }
  .nav-burger{ display:flex; }
  .hero-in{ grid-template-columns:1fr; min-height:auto; }
  .hero-r{ height:420px; margin-top:8px; }
  .hero-imgwrap{ height:100%; max-height:none; }
  .hero-vert,.hero-deco{ display:none; }
  .hero-avail{ top:14px; right:14px; padding:9px 14px 9px 12px; font-size:11.5px; }
  .serv-grid,.pgrid,.gal-grid,.loc-grid,.ba-grid{ grid-template-columns:1fr; }
  .pcard.feat{ transform:none; }
  .pcard.feat:hover{ transform:translateY(-6px); }
  .foot-top{ grid-template-columns:1fr; gap:30px; }
  .cookie-bar{ left:14px; right:14px; bottom:14px; padding:18px; }
  .lc{ padding:24px 24px; }
  .cert-row{ grid-template-columns:1fr; gap:10px; padding:22px 10px; }
  .cyear{ font-size:22px; }
  .clevels{ justify-content:flex-start; }
  .cact{ justify-self:start; }
  .certs-grid{ grid-template-columns:1fr; gap:40px; }
  .certs-side{ position:static; }
  .certs-big .n{ font-size:58px; }
  .gpanel .gnum{ font-size:76px; }
  .approach-foot{ align-items:flex-start; flex-direction:column; }
}
