/* dziewczynaai.pl — wspólny system stylów mockupu
   Używany przez index.html, blog.html i artykul.html.
   Style specyficzne dla pojedynczego widoku zostają inline w tym widoku. */
:root{
    /* Paleta: ciepły, głęboki grafit + róż jako akcent główny, bursztyn jako akcent ocen.
       Świadomie inna niż neon-róż-na-czerni Candy AI — mamy być rozpoznawalni, nie podobni. */
    --bg:#0a0509; --bg-2:#100810; --surface:#170e18; --surface-2:#1f1421; --surface-3:#2a1a2c;
    --line:#2c1e2e; --line-2:#3d2a40;
    --text:#faf5f8; --muted:#c0aebd; --dim:#94818f;
    --rose:#ff3d7f; --rose-2:#ff7aa8; --rose-soft:rgba(255,61,127,.12);
    --amber:#ffb545; --violet:#9d5cff; --green:#3ddc97; --red:#ff6b6b;
    --radius:18px; --radius-sm:12px;
    --shadow:0 24px 60px -24px rgba(0,0,0,.9);
    --max:1140px;
    --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,"Helvetica Neue",Arial,sans-serif;
  }
  *,*::before,*::after{box-sizing:border-box}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
  body{
    margin:0;background:var(--bg);color:var(--text);font-family:var(--font);
    font-size:17px;line-height:1.65;letter-spacing:-.005em;overflow-x:hidden;
  }
  /* tło: dwie miękkie łuny + delikatna siatka — daje głębię bez kosztu obrazka */
  body::before{
    content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;
    background:
      radial-gradient(1200px 700px at 82% -10%,rgba(255,61,127,.20),transparent 60%),
      radial-gradient(900px 600px at 0% 6%,rgba(157,92,255,.14),transparent 58%),
      radial-gradient(700px 500px at 50% 100%,rgba(255,181,69,.06),transparent 60%);
  }
  body::after{
    content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;
    background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),
                     linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);
    background-size:64px 64px;
    mask-image:radial-gradient(1000px 700px at 50% 0%,#000,transparent 75%);
    -webkit-mask-image:radial-gradient(1000px 700px at 50% 0%,#000,transparent 75%);
  }
  img{max-width:100%;height:auto;display:block}
  a{color:var(--rose-2);text-decoration:none}
  a:hover{text-decoration:underline}
  .wrap{max-width:var(--max);margin:0 auto;padding:0 20px;position:relative}
  .narrow{max-width:820px}

  h1,h2,h3,h4{line-height:1.15;letter-spacing:-.03em;margin:0 0 .5em}
  h1{font-size:clamp(2rem,4.6vw,3.05rem);font-weight:800}
  h2{font-size:clamp(1.55rem,3.7vw,2.3rem);font-weight:780}
  h3{font-size:clamp(1.16rem,2.2vw,1.42rem);font-weight:700}
  h4{font-size:1.03rem;font-weight:700}
  p{margin:0 0 1.05em}
  section{padding:clamp(52px,7.5vw,92px) 0;position:relative}
  section+section::before{
    content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
    width:min(var(--max),100% - 40px);height:1px;
    background:linear-gradient(90deg,transparent,var(--line-2) 22%,var(--line-2) 78%,transparent);
  }
  .lede{color:var(--muted);font-size:1.07rem;max-width:68ch;margin-bottom:2.2em}

  /* eyebrow: numerowany rozdział — magazynowo, nasza sygnatura */
  .eyebrow{
    display:flex;align-items:center;gap:12px;margin-bottom:16px;
    font-size:.76rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);
  }
  .eyebrow b{
    color:var(--rose);font-size:.95rem;letter-spacing:.04em;
    font-variant-numeric:tabular-nums;
  }
  .eyebrow::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line-2),transparent)}

  /* ---------- header ---------- */
  header.site{
    position:sticky;top:0;z-index:60;
    background:rgba(10,5,9,.78);backdrop-filter:blur(16px) saturate(1.4);
    border-bottom:1px solid var(--line);
  }
  .nav{display:flex;align-items:center;gap:24px;height:64px}
  .logo{font-weight:800;font-size:1.08rem;color:var(--text);letter-spacing:-.04em;white-space:nowrap}
  .logo span{color:var(--rose)}
  .nav ul{display:flex;gap:22px;list-style:none;margin:0;padding:0;font-size:.92rem}
  .nav ul a{color:var(--muted);white-space:nowrap;position:relative}
  .nav ul a:hover{color:var(--text);text-decoration:none}
  .nav ul a::after{
    content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;border-radius:2px;
    background:var(--rose);transform:scaleX(0);transition:transform .2s ease
  }
  .nav ul a:hover::after{transform:scaleX(1)}
  .nav .spacer{flex:1}
  @media(max-width:900px){.nav ul{display:none}}

  /* ---------- buttons ---------- */
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:9px;
    padding:15px 28px;border-radius:999px;font-weight:700;font-size:1rem;
    border:1px solid transparent;cursor:pointer;text-align:center;position:relative;
    transition:transform .16s ease,box-shadow .16s ease,background .16s ease;
  }
  .btn:hover{text-decoration:none;transform:translateY(-2px)}
  .btn-primary{
    background:linear-gradient(135deg,#ff5c93,var(--rose) 48%,#d92b8a);
    color:#fff;box-shadow:0 12px 34px -12px rgba(255,61,127,.75),inset 0 1px 0 rgba(255,255,255,.22);
  }
  .btn-primary:hover{box-shadow:0 18px 44px -12px rgba(255,61,127,.9),inset 0 1px 0 rgba(255,255,255,.28)}
  .btn-ghost{background:rgba(255,255,255,.03);border-color:var(--line-2);color:var(--text)}
  .btn-ghost:hover{background:var(--surface-2);border-color:var(--rose)}
  .btn-sm{padding:10px 20px;font-size:.9rem}
  .cta-note{font-size:.82rem;color:var(--dim);margin:12px 0 0}

  /* ---------- disclosure ---------- */
  .disclosure{
    background:linear-gradient(135deg,rgba(157,92,255,.09),transparent 60%);
    border:1px solid var(--line);border-left:3px solid var(--violet);
    border-radius:var(--radius-sm);padding:16px 20px;font-size:.87rem;color:var(--muted);margin:0 0 32px;
  }
  .disclosure b{color:var(--text)}

  /* ---------- tabele ---------- */
  .table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);
                background:var(--surface);margin-bottom:36px;box-shadow:var(--shadow)}
  table{width:100%;border-collapse:collapse;min-width:660px;font-size:.93rem}
  th,td{padding:15px 17px;text-align:left;border-bottom:1px solid var(--line)}
  thead th{background:var(--surface-2);font-size:.75rem;text-transform:uppercase;letter-spacing:.09em;
           color:var(--dim);font-weight:800;white-space:nowrap}
  tbody tr:last-child td{border-bottom:0}
  tbody tr.is-top td{background:linear-gradient(90deg,var(--rose-soft),transparent 65%)}
  tbody tr.is-top td:first-child{box-shadow:inset 3px 0 0 var(--rose)}
  td b{color:#fff}
  .yes{color:var(--green);font-weight:700}
  .no{color:var(--red);font-weight:700}
  .part{color:var(--amber);font-weight:700}
  .sub{color:var(--dim);font-size:.81rem;display:block}

  /* ---------- kafle ---------- */
  .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  .grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;align-items:center}
  /* `1fr` nie schodzi poniżej min-content swojej zawartości, więc szeroka tabela
     (min-width:560px) rozpychała kolumnę do 562px przy oknie 375px i dawała poziomy
     scroll całej strony. `minmax(0,1fr)` pozwala kolumnie się skurczyć, a tabela
     przewija się wtedy we własnej ramce, tak jak było zamierzone. */
  @media(max-width:900px){.grid-3{grid-template-columns:minmax(0,1fr)}.grid-2{grid-template-columns:minmax(0,1fr)}}
  .tile{background:linear-gradient(165deg,var(--surface-2),var(--surface));border:1px solid var(--line);
        border-radius:var(--radius);padding:26px;transition:border-color .2s ease,transform .2s ease}
  .tile:hover{border-color:var(--line-2);transform:translateY(-2px)}
  .tile .ico{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;margin-bottom:16px;
             background:var(--rose-soft);border:1px solid rgba(255,61,127,.28)}
  .tile .ico svg{width:21px;height:21px;stroke:var(--rose)}
  .tile h3{font-size:1.08rem;margin-bottom:9px}
  .tile p{margin:0;color:var(--muted);font-size:.94rem}
  .tile img{border-radius:13px;margin-bottom:17px;aspect-ratio:4/3;object-fit:cover;object-position:center 22%}

  /* lista z ikonami zamiast myślników */
  .iconlist{list-style:none;padding:0;margin:0 0 1.05em;display:grid;gap:13px}
  .iconlist li{display:flex;gap:14px;align-items:flex-start;color:var(--muted);font-size:.97rem}
  .iconlist svg{width:20px;height:20px;flex:none;stroke:var(--rose);margin-top:3px}
  .iconlist b{color:var(--text)}

  /* pull-quote */
  .pull{
    border-left:3px solid var(--rose);padding:6px 0 6px 26px;margin:32px 0;
    font-size:clamp(1.12rem,2.4vw,1.42rem);line-height:1.45;font-weight:650;color:var(--text);letter-spacing:-.02em
  }
  .pull cite{display:block;font-size:.84rem;font-weight:500;font-style:normal;color:var(--dim);margin-top:12px;letter-spacing:0}

  /* ---------- kroki ---------- */
  .steps{counter-reset:s;display:grid;gap:16px;margin:0;padding:0;list-style:none}
  .step{counter-increment:s;background:linear-gradient(165deg,var(--surface-2),var(--surface));
        border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px 24px 80px;position:relative}
  .step::before{
    content:counter(s,decimal-leading-zero);position:absolute;left:24px;top:22px;
    font-weight:800;font-size:1.45rem;letter-spacing:-.05em;
    background:linear-gradient(140deg,var(--rose),var(--amber));-webkit-background-clip:text;background-clip:text;color:transparent;
  }
  .step h3{font-size:1.06rem;margin-bottom:7px}
  .step p{margin:0;color:var(--muted);font-size:.94rem}

  /* ---------- FAQ ---------- */
  .faq{display:grid;gap:11px}
  details{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;
          transition:border-color .2s ease}
  details[open]{border-color:var(--line-2);background:var(--surface-2)}
  summary{cursor:pointer;padding:18px 54px 18px 22px;font-weight:650;font-size:1rem;position:relative;list-style:none}
  summary::-webkit-details-marker{display:none}
  summary:hover{color:var(--rose-2)}
  summary::after{
    content:"";position:absolute;right:24px;top:50%;width:9px;height:9px;
    border-right:2px solid var(--rose);border-bottom:2px solid var(--rose);
    transform:translateY(-70%) rotate(45deg);transition:transform .22s ease
  }
  details[open] summary::after{transform:translateY(-20%) rotate(225deg)}
  details .answer{padding:0 22px 20px;color:var(--muted);font-size:.95rem}
  details .answer p:last-child{margin-bottom:0}

  /* ---------- linki wewnętrzne ---------- */
  .links{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;list-style:none;padding:0;margin:0}
  @media(max-width:760px){.links{grid-template-columns:1fr}}
  .links a{
    display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);
    padding:17px 19px;color:var(--text);font-weight:650;font-size:.97rem;position:relative;
    transition:border-color .16s ease,background .16s ease,transform .16s ease
  }
  .links a:hover{border-color:var(--rose);background:var(--surface-2);text-decoration:none;transform:translateX(3px)}
  .links a span{display:block;font-weight:400;font-size:.85rem;color:var(--dim);margin-top:5px}

  /* ---------- final ---------- */
  .final{
    position:relative;overflow:hidden;border:1px solid var(--line-2);border-radius:26px;
    padding:clamp(34px,5.5vw,62px);text-align:center;
    background:linear-gradient(150deg,rgba(255,61,127,.16),rgba(157,92,255,.12) 55%,rgba(255,181,69,.08));
  }
  .final::before{
    content:"";position:absolute;inset:0;z-index:0;
    background:radial-gradient(600px 300px at 50% 0%,rgba(255,61,127,.24),transparent 70%)
  }
  .final>*{position:relative;z-index:1}
  .final h2{margin-bottom:.45em}
  .final p{color:var(--muted);max-width:56ch;margin:0 auto 28px}

  /* ---------- autor ---------- */
  .author-box{display:flex;gap:18px;align-items:center;background:var(--surface);border:1px solid var(--line);
              border-radius:var(--radius);padding:20px 22px;margin-top:36px;font-size:.9rem;color:var(--muted)}
  .author-box img{width:58px;height:58px;border-radius:50%;object-fit:cover;object-position:center 25%;flex:none;
                  border:2px solid var(--line-2)}
  .author-box b{color:var(--text)}
  /* tylko pierwsze <b> to nazwa autora i ma być osobną linią —
     pogrubienia w treści boksu (np. data weryfikacji) zostają inline */
  .author-box>div>b:first-child{display:block;margin-bottom:3px}

  /* ---------- footer ---------- */
  footer.site{border-top:1px solid var(--line);padding:50px 0 100px;font-size:.88rem;color:var(--dim);background:var(--bg-2)}
  @media(min-width:761px){footer.site{padding-bottom:38px}}
  .foot-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:34px;margin-bottom:32px}
  @media(max-width:760px){.foot-grid{grid-template-columns:1fr}}
  footer.site h4{color:var(--text);font-size:.79rem;text-transform:uppercase;letter-spacing:.11em;margin-bottom:14px}
  footer.site ul{list-style:none;padding:0;margin:0}
  footer.site li{margin-bottom:9px}
  footer.site a{color:var(--muted)}
  .legal{border-top:1px solid var(--line);padding-top:24px;font-size:.8rem;line-height:1.6}
  .age{display:inline-block;border:1px solid var(--rose);color:var(--rose-2);border-radius:6px;
       padding:1px 8px;font-weight:800;font-size:.75rem;margin-right:9px}

  /* ---------- sticky CTA na mobile ---------- */
  .sticky-cta{
    position:fixed;left:0;right:0;bottom:0;z-index:70;padding:11px 16px calc(11px + env(safe-area-inset-bottom));
    background:rgba(10,5,9,.9);backdrop-filter:blur(16px);border-top:1px solid var(--line-2);
    display:flex;gap:12px;align-items:center
  }
  .sticky-cta .txt{flex:1;min-width:0;font-size:.78rem;color:var(--dim);line-height:1.3}
  .sticky-cta .txt b{display:block;color:var(--text);font-size:.88rem}
  @media(min-width:761px){.sticky-cta{display:none}}

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

  /* ---------- badge + chipy (współdzielone) ---------- */
  .badge{
    display:inline-flex;align-items:center;gap:9px;
    background:linear-gradient(135deg,rgba(255,61,127,.14),rgba(157,92,255,.1));
    border:1px solid var(--line-2);
    padding:7px 16px;border-radius:999px;font-size:.81rem;color:var(--muted);
    margin-bottom:22px;font-weight:600;
  }
  .dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(61,220,151,.18);
       animation:pulse 2.4s ease-in-out infinite}
  @keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}

  /* chipy kategorii — skrót do trzech różnych intencji */
  .chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}
  .chip{
    display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:999px;
    background:var(--surface);border:1px solid var(--line-2);color:var(--muted);
    font-size:.87rem;font-weight:600;transition:all .16s ease
  }
  .chip:hover{border-color:var(--rose);color:var(--text);background:var(--surface-2);text-decoration:none;transform:translateY(-1px)}
  .chip svg{width:15px;height:15px;flex:none;stroke:var(--rose)}

  /* ---------- dodatki motywu (poza mockupem) ---------- */
  /* Klasy pomocnicze dla elementów, które w mockupie były pisane stylem inline.
     W szablonie nie chcemy atrybutów style= — trudniej je potem zmienić w jednym miejscu. */
  .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
                   clip:rect(0 0 0 0);white-space:nowrap;border:0}
  .section-more{font-size:.9rem;color:var(--dim)}
  .section-outro{margin-top:30px;max-width:70ch;color:var(--muted)}
  .section-cta{margin-top:28px}
  .card-text{margin-top:20px}
  .card-note{color:var(--dim);font-size:.86rem;margin-bottom:0}
  .tile-cta{margin-top:14px}
  .framed{border-radius:18px;border:1px solid var(--line-2)}
  .table-narrow{min-width:520px}
  .steps{margin-top:28px}

  /* Skip link — nawigacja klawiaturą trafia od razu do treści. */
  .skip-link{position:absolute;left:-9999px;top:0;z-index:100;padding:12px 20px;background:var(--surface-2);
             color:var(--text);border:1px solid var(--rose);border-radius:0 0 var(--radius-sm) 0}
  .skip-link:focus{left:0}

  /* Widoczny focus — mockup go nie miał, a bez niego strona jest nieużywalna z klawiatury. */
  a:focus-visible,button:focus-visible,summary:focus-visible{
    outline:2px solid var(--rose);outline-offset:3px;border-radius:4px
  }

  /* Gradientowy akcent w H1 — w mockupie żył w home.css, ale używa go też
     nagłówek archiwum, więc miejsce jest tutaj. */
  .accent{
    background:linear-gradient(100deg,var(--rose) 10%,#ff9ac0 50%,var(--amber) 92%);
    -webkit-background-clip:text;background-clip:text;color:transparent;
  }

  /* Przycisk w nagłówku łamał się na wąskim ekranie na dwie linie i rozpychał
     pasek do podwójnej wysokości (zgłoszone na iPhone 375×667). */
  .nav .btn{white-space:nowrap;flex:none}
  @media(max-width:520px){
    .nav .btn-sm{padding:9px 15px;font-size:.84rem}
    .logo{font-size:.97rem}
    .nav{gap:12px}
  }

  /* Bezpiecznik przeciw „grid blowout" w pozostałych siatkach. Domyślne
     min-width:auto na elemencie siatki sprawia, że pojedyncze długie słowo
     (np. adres URL w tytule wpisu) rozpycha całą stronę w poziomie.
     Same siatki mogą zostać przy 1fr — to elementy muszą móc się skurczyć. */
  .posts > li, .related > li, .starter > li, .postnav > a,
  .links > li, .foot-grid > div, .grid-2 > *, .grid-3 > *,
  .lead-body, .card, .tile{min-width:0}

  /* Długie, nierozdzielne ciągi w tytułach łamiemy zamiast rozpychać kartę. */
  .post-body h3, .related b, .starter b, .lead-body h2{overflow-wrap:anywhere}
