/* Strona główna — sekcje statyczne pod scroll-world */
.sw-root{--sw-bg:#0E1428;--sw-ink:oklch(94% 0.012 85);--sw-ink-soft:oklch(69% 0.022 262);--sw-accent:#E8B45A}

/* dekoracje sekcji: .wrap ponad warstwą tła (::before/::after sekcji) */
main section{position:relative;overflow:clip}
main section>.wrap{position:relative;z-index:1}

/* proces — „plan roboty": siatka punktów jak na rozrysowanej mapie + wielkie
   konturowe numery zamiast czterech identycznych kart */
#proces::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(oklch(38% .045 262/.55) 1px,transparent 1.5px);
  background-size:28px 28px;
  mask-image:radial-gradient(90% 110% at 50% -10%,#000 20%,transparent 78%);
  -webkit-mask-image:radial-gradient(90% 110% at 50% -10%,#000 20%,transparent 78%)}
.steps{list-style:none;counter-reset:krok;margin-top:var(--sp-3);
  display:grid;gap:clamp(2rem,4vw,2.6rem) var(--sp-3);
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.steps li{counter-increment:krok;position:relative}
.steps li::before{content:"0" counter(krok);display:block;
  font-family:var(--display);font-weight:600;line-height:.9;
  font-size:clamp(3.4rem,3rem + 2.4vw,5rem);letter-spacing:-.03em;
  color:transparent;-webkit-text-stroke:1.5px var(--brass-deep);
  transition:color .45s var(--ease)}
.steps li:hover::before{color:var(--brass-deep)}
.steps li::after{content:"";position:absolute;left:2px;top:calc(clamp(3.4rem,3rem + 2.4vw,5rem) + .55rem);
  width:2rem;height:2px;background:var(--brass);opacity:.8}
.steps b{display:block;font-family:var(--display);font-weight:700;font-size:1.3rem;
  letter-spacing:-.015em;margin-top:1.3rem}
.steps p{color:var(--muted);font-size:.95rem;margin-top:.5rem;max-width:34ch}

/* cennik — mosiężna poświata + ogromne konturowe „zł" w tle */
.pricing{background:var(--bg-deep);border-block:1px solid var(--line)}
.pricing::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(46% 60% at 86% 4%,oklch(78% .115 84/.1),transparent 70%)}
.pricing::after{content:"zł";position:absolute;right:-.06em;bottom:-.22em;z-index:0;
  line-height:1;font-family:var(--display);font-weight:780;letter-spacing:-.04em;
  font-size:clamp(11rem,26vw,22rem);color:transparent;
  -webkit-text-stroke:1.5px oklch(30% .045 262);
  pointer-events:none;user-select:none}
.price-rows{margin-top:var(--sp-3);border-top:1px solid var(--line)}
.price-row{display:flex;align-items:baseline;gap:1rem;text-decoration:none;
  padding-block:clamp(1.1rem,2.5vw,1.7rem);border-bottom:1px solid var(--line);
  transition:padding-left .4s var(--ease)}
.price-row:hover{padding-left:.8rem}
.price-row span{font-family:var(--display);font-weight:650;letter-spacing:-.015em;
  font-size:clamp(1.1rem,1rem + 1vw,1.6rem)}
.price-row i{flex:1;border-bottom:1px dashed var(--line);transform:translateY(-.35em)}
.price-row b{color:var(--brass);font-weight:600;white-space:nowrap;
  font-size:clamp(.95rem,.9rem + .5vw,1.15rem)}
.price-row:hover span{color:var(--brass)}

/* faq — wielki konturowy znak zapytania, lekko przekręcony */
#faq::before{content:"?";position:absolute;top:50%;right:clamp(-3rem,-1vw,0rem);z-index:0;
  transform:translateY(-50%) rotate(10deg);line-height:1;
  font-family:var(--display);font-weight:780;font-size:clamp(17rem,34vw,28rem);
  color:transparent;-webkit-text-stroke:1.5px oklch(30% .045 262);
  pointer-events:none;user-select:none}
#faq::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(40% 55% at 88% 50%,oklch(78% .115 84/.05),transparent 70%)}
.faqs{margin-top:var(--sp-3);border-top:1px solid var(--line);max-width:760px}
.faqs details{border-bottom:1px solid var(--line)}
.faqs summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;
  align-items:center;gap:1rem;padding-block:1.2rem;min-height:44px;
  font-family:var(--display);font-weight:650;font-size:1.08rem;letter-spacing:-.01em;
  transition:color .3s}
.faqs summary::-webkit-details-marker{display:none}
.faqs summary::after{content:"+";color:var(--brass);font-weight:300;font-size:1.6rem;
  transition:transform .35s var(--ease)}
.faqs details[open] summary{color:var(--brass)}
.faqs details[open] summary::after{transform:rotate(45deg)}
.faqs details p{color:var(--muted);padding-bottom:1.2rem;max-width:60ch}

/* kontakt — snop światła ze sceny (reflektor iluzjonisty) */
.contact{background:var(--bg-deep);border-top:1px solid var(--line)}
.contact::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(56% 46% at 50% -6%,oklch(78% .115 84/.13),transparent 72%),
    radial-gradient(26% 20% at 50% -4%,oklch(92% .05 85/.1),transparent 70%)}
.contact-grid{display:grid;gap:var(--sp-3);margin-top:var(--sp-3);
  grid-template-columns:repeat(auto-fit,minmax(290px,1fr));align-items:start}
form[data-kontakt]{display:grid;gap:1rem}
form[data-kontakt] label{display:grid;gap:.4rem;font-size:.88rem;font-weight:600;color:var(--muted)}
form[data-kontakt] input,form[data-kontakt] textarea{
  font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);
  border-radius:var(--r-s);padding:.8rem 1rem;min-height:44px;resize:vertical;
  transition:border-color .3s}
form[data-kontakt] input:focus,form[data-kontakt] textarea:focus{outline:none;border-color:var(--brass)}
.form-status{min-height:1.4em;font-size:.92rem}
.form-status.ok{color:var(--brass)}
.form-status.err{color:var(--spark)}
.contact-alt p{color:var(--muted)}
.contact-alt .tel{display:inline-block;font-family:var(--display);font-weight:750;letter-spacing:-.02em;
  font-size:clamp(1.5rem,1rem + 2.5vw,2.4rem);text-decoration:none;margin-block:.5rem 1.4rem;
  background-image:linear-gradient(var(--brass),var(--brass));background-repeat:no-repeat;
  background-size:0% 3px;background-position:0 96%;transition:background-size .6s var(--ease),color .3s}
.contact-alt .tel:hover{color:var(--brass);background-size:100% 3px}

/* silnik świata: chowamy jego topbar (mamy własny nav), rail zostaje */
.sw-topbar{display:none!important}
.sw-scrollbar{z-index:45} /* pod naszym nav (50) i otwartym menu (60) */
/* domyślne pills i przycisk primary silnika są pod jasny motyw — na naszym
   granacie pill był białą plamą, a primary CTA kremowym blokiem z białym tekstem */
.sw-copy__tags li{color:var(--ink);
  background:color-mix(in srgb,var(--sw-accent) 20%,var(--bg));
  border-color:color-mix(in srgb,var(--sw-accent) 45%,transparent)}
.sw-btn--primary{background:var(--brass);color:var(--bg-deep)}
.sw-btn--ghost{color:var(--ink);border-color:color-mix(in srgb,var(--ink) 35%,transparent)}
/* rail z kropkami znika po wylocie ze świata (silnik dodaje .is-past) */
.sw-route{transition:opacity .4s}
.sw-route.is-past{opacity:0;pointer-events:none}
/* sceny o zmierzchu na małych ekranach OLED wypadają zbyt ciemno */
@media(max-width:860px){
  .sw-scene__video,.sw-scene__still{filter:brightness(1.14) contrast(1.03) saturate(1.06)}
}
/* sekcje statyczne muszą przykrywać fixed stage silnika (z-index:10) */
main,.site-footer{position:relative;z-index:20;background:var(--bg)}

/* ziarno na sekcjach statycznych — spina je fakturą z dioramą świata */
main::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}

/* footer: mosiężny akcent na górnej krawędzi */
.site-footer::before{content:"";position:absolute;top:-1px;left:50%;transform:translateX(-50%);
  width:min(340px,60%);height:1px;
  background:linear-gradient(90deg,transparent,var(--brass),transparent)}

/* mobile: ikona myszki to zły sygnał na dotyku + nachodziła na tagi hero */
@media(max-width:860px){
  .sw-hint i{display:none}
  .sw-hint{font-size:.7rem}
}
