/* ============================================================
   PifPaf.fun – wspólny ciemny system projektowy (motyw taktyczny)
   Akcent: butelkowa zieleń (Zjawa.it). Używany przez podstrony.
   Strona główna (index.html) ma własne style inline.
   ============================================================ */

:root{
  --ground:#0C110F;          /* tło: zielono-grafitowa czerń */
  --surface:#121A16;         /* karty */
  --surface-2:#16221C;       /* karty: hover / głębsze */
  --line:#22332B;            /* obramowania / linie */
  --text:#E8EFEA;            /* tekst podstawowy */
  --muted:#8DA197;           /* tekst drugorzędny */
  --accent:#1FBE83;          /* butelkowa zieleń, rozjaśniona pod ciemne tło */
  --accent-deep:#0f3d3e;     /* najgłębsza butelkowa */
  --accent-mid:#1f6e5c;      /* brandowa butelkowa */
  --on-accent:#06110c;       /* tekst na akcencie */
  --radius:14px;
  --shadow: 0 10px 30px rgba(0,0,0,.45);
  --shadow-lg: 0 24px 60px rgba(0,0,0,.6);
  --ring: 0 0 0 4px rgba(31,190,131,.25);
  --mono:ui-monospace,"SF Mono","Cascadia Mono",Menlo,Consolas,monospace;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,Cantarell,"Noto Sans",sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0;font-family:var(--sans);color:var(--text);background:var(--ground);
  line-height:1.6;-webkit-font-smoothing:antialiased}
body{overflow-x:hidden}
a{color:var(--accent);text-decoration:none;transition:color .2s ease}
a:hover{color:var(--text)}
img{max-width:100%;display:block}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}

/* ── Layout ── */
.container,.wrap{max-width:1180px;margin-inline:auto;padding:0 24px}

/* ── Utility: monospace "range-data" ── */
.mono{font-family:var(--mono);text-transform:uppercase;letter-spacing:.18em;font-size:11px;color:var(--muted)}
.mono .on{color:var(--accent)}

/* ── Header / nav (wzorzec .bar – spójny z index.html) ── */
header{position:sticky;top:0;z-index:60;backdrop-filter:blur(10px);
  background:rgba(12,17,15,.72);border-bottom:1px solid var(--line)}
.bar,.nav{display:flex;align-items:center;justify-content:space-between;height:66px;gap:16px}
.brand{display:flex;align-items:center;gap:11px;font-weight:800;letter-spacing:.02em;color:var(--text)}
.brand:hover{color:var(--text)}
.brand img{height:34px;width:auto;border-radius:0}
.brand .name,.brand b{font-size:18px;font-weight:800}
.brand .name span,.brand b span{color:var(--accent)}
nav.main,nav[aria-label="Główne"] ul{display:flex;align-items:center;gap:6px;list-style:none;margin:0;padding:0}
nav.main a,nav[aria-label="Główne"] a{padding:9px 14px;border-radius:9px;font-size:14px;font-weight:600;color:var(--muted);transition:.2s}
nav.main a:hover,nav[aria-label="Główne"] a:hover{color:var(--text);background:#ffffff0d}
.cta-sm{margin-left:8px;padding:10px 16px;border-radius:9px;font-size:14px;font-weight:700;
  color:var(--on-accent) !important;background:var(--accent);transition:.2s}
.cta-sm:hover{filter:brightness(1.08);transform:translateY(-1px);background:var(--accent);color:var(--on-accent) !important}

/* dropdown „Oferta" (desktop) */
nav.main .has-drop{position:relative}
nav.main .drop-toggle{display:inline-flex;align-items:center;gap:5px;cursor:pointer}
nav.main .drop-toggle::after{content:"▾";font-size:11px;opacity:.75}
nav.main .drop{position:absolute;top:100%;left:0;display:flex;flex-direction:column;gap:2px;
  min-width:236px;padding:7px;background:rgba(12,17,15,.97);backdrop-filter:blur(10px);
  border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s ease,transform .18s ease,visibility .18s}
nav.main .has-drop:hover .drop,nav.main .has-drop:focus-within .drop{opacity:1;visibility:visible;transform:none}
nav.main .drop a{white-space:nowrap;color:var(--muted)}
nav.main .drop a:hover{color:var(--text);background:#ffffff0d}

.menu-btn{display:none;background:none;border:1px solid var(--line);color:var(--text);
  width:42px;height:42px;border-radius:9px;cursor:pointer;font-size:18px;align-items:center;justify-content:center}
.mobile{display:none}
@media(max-width:820px){
  nav.main,nav[aria-label="Główne"] ul{display:none}
  .menu-btn{display:inline-flex}
  .mobile{display:none;position:absolute;left:0;right:0;top:100%;border-bottom:1px solid var(--line);
    background:var(--ground)}
  .mobile.open{display:block}
  header{position:sticky}
  .mobile a{display:block;padding:15px 24px;border-top:1px solid var(--line);font-weight:600;color:var(--text)}
  .mobile a.cta-m{color:var(--accent)}
}

/* ── Buttons ── */
.btn{appearance:none;display:inline-flex;align-items:center;gap:10px;padding:16px 26px;border-radius:11px;
  font-weight:800;font-size:16px;cursor:pointer;border:1px solid transparent;transition:.2s;font-family:inherit}
.btn.primary{background:var(--accent);color:var(--on-accent);box-shadow:0 10px 30px -8px rgba(31,190,131,.5)}
.btn.primary:hover{transform:translateY(-2px);filter:brightness(1.07);color:var(--on-accent)}
.btn.secondary,.btn.ghost{background:transparent;border-color:var(--line);color:var(--text)}
.btn.secondary:hover,.btn.ghost:hover{border-color:var(--accent);color:var(--accent)}

/* ── Badges / pills ── */
.badge{display:inline-flex;align-items:center;gap:8px;background:rgba(31,190,131,.1);
  border:1px solid rgba(31,190,131,.3);color:var(--accent);padding:8px 14px;border-radius:999px;
  font-size:12px;font-weight:700;font-family:var(--mono);text-transform:uppercase;letter-spacing:.14em}
.badge svg path{stroke:var(--accent)}
.pill{display:inline-block;font-family:var(--mono);text-transform:uppercase;letter-spacing:.14em;
  font-size:11px;background:rgba(31,190,131,.08);color:var(--accent);border:1px solid var(--line);
  padding:6px 12px;border-radius:999px;font-weight:600}

/* ── Sections / headings ── */
section{scroll-margin-top:84px;position:relative}
.section{padding:80px 0}
.section h2,.sec-head h2{font-size:clamp(26px,4vw,42px);margin:10px 0 0;font-weight:800;
  letter-spacing:-.02em;text-transform:uppercase;line-height:1.05;color:var(--text)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:40px;flex-wrap:wrap}
.sec-head p{color:var(--muted);max-width:46ch;margin:0}
.lead{color:var(--muted);font-size:clamp(16px,2.1vw,19px);line-height:1.65}
.lead b,.lead strong{color:var(--text)}

/* ── Eyebrow ── */
.eyebrow{display:flex;flex-wrap:wrap;gap:8px 18px}
.eyebrow span{display:inline-flex;align-items:center;gap:8px}
.eyebrow span::before{content:"";width:6px;height:6px;background:var(--accent);
  box-shadow:0 0 10px var(--accent);border-radius:50%}

/* ── Page hero (podstrony) ── */
.page-hero{position:relative;overflow:hidden;padding:72px 0 56px;
  background:radial-gradient(700px 360px at 80% -10%, rgba(31,190,131,.12), transparent 60%)}
.page-hero h1{font-size:clamp(32px,6vw,64px);line-height:1;letter-spacing:-.02em;font-weight:800;
  text-transform:uppercase;margin:18px 0 16px}
.page-hero h1 span{color:var(--accent)}

/* ── Generic tiles / cards ── */
.tile,.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:28px;overflow:hidden;transition:.28s;display:flex;flex-direction:column}
.tile::after,.card::after{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--accent);transition:.3s}
.tile:hover,.card:hover{transform:translateY(-5px);border-color:var(--accent);background:var(--surface-2)}
.tile:hover::after,.card:hover::after{width:100%}

/* ── Process / steps ── */
.process{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
.step{background:var(--ground);padding:36px 30px}
.step .num{font-family:var(--mono);font-size:13px;color:var(--accent);letter-spacing:.2em}
.step h4{font-size:20px;font-weight:800;text-transform:uppercase;letter-spacing:-.01em;margin:14px 0 8px}
.step p{color:var(--muted);font-size:14.5px;margin:0}
@media(max-width:760px){.steps{grid-template-columns:1fr}}

/* ── Closing CTA block ── */
.close{text-align:center;background:radial-gradient(700px 300px at 50% 0%,rgba(31,190,131,.12),transparent 70%)}
.close h2{font-size:clamp(30px,5vw,52px);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;margin:0 0 18px}
.close p{color:var(--muted);max-width:50ch;margin:0 auto 34px}

/* ── Forms ── */
label{font-weight:600;font-size:13px;display:block;margin-bottom:8px;color:var(--accent);
  font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em}
input,textarea,select{width:100%;padding:14px 16px;border-radius:10px;background:var(--surface);
  border:1px solid var(--line);color:var(--text);outline:none;font-family:inherit;font-size:15px;transition:.2s}
input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:var(--ring)}
textarea{min-height:120px;resize:vertical}
::placeholder{color:#5f7268}

/* ── Footer ── */
footer{border-top:1px solid var(--line);padding:34px 0;color:var(--muted);background:var(--ground)}
.foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;font-size:14px}
.foot a{color:var(--accent)}
.foot a:hover{color:var(--text)}
.foot .legal{color:var(--muted);opacity:.55;font-size:12px;margin-left:10px;text-decoration:none}
.foot .legal:hover{opacity:1;color:var(--muted)}

/* ── Reveal on scroll ── */
.reveal{opacity:1}
@media(prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
  .reveal.in{opacity:1;transform:none}
}
