/* ---------------------------------------------------------------
   Silver TV – Rynek 50+ (/rynek/)
   Analizy i raporty o rynku dojrzałego konsumenta.

   Zmienne marki i komponenty wspólne (header, stopka, przyciski,
   sekcje) są 1:1 z prasa.css i z index.html. Osobny plik, bo wpis
   o rynku potrzebuje innych komponentów niż komunikat prasowy:
   kart statystyk, słupków danych, kroków frameworku.

   UWAGA: zmiana kolorów marki wymaga ruszenia TRZECH miejsc —
   tutaj, w prasa/assets/prasa.css i w _zrodlo/szablon.html.
   --------------------------------------------------------------- */

:root{
  --navy:#023850;
  --navy-2:#012A3D;
  --navy-3:#01465F;
  --amber:#F9A00B;
  --amber-d:#E08E00;
  --ink:#023850;
  --paper:#FFFFFF;
  --mist:#EDF0F2;
  --muted:#5E7078;
  --muted-2:#A9BCC4;
  --line:#DCE0E3;
  --line-d:rgba(255,255,255,.14);
  --maxw:1180px;
  --ring:0 0 0 3px rgba(249,160,11,.55);
  --shadow-card:0 1px 2px rgba(2,56,80,.06), 0 12px 30px -22px rgba(2,56,80,.5);
  --shadow-hi:0 30px 60px -30px rgba(2,56,80,.55);
  color-scheme:light;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;font-size:106.25%;-webkit-text-size-adjust:100%}
img{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit}
h1,h2,h3,h4,p{margin:0}

body{
  font-family:"Open Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--ink);background:var(--paper);line-height:1.62;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:clip;
}

.inset{max-width:var(--maxw);margin:0 auto;padding-inline:clamp(22px,5vw,64px)}
.bleed{width:100%}
.up{text-transform:uppercase}
.display{font-weight:800;letter-spacing:-.018em;line-height:1.06;text-wrap:balance}
.eyebrow{font-size:clamp(.74rem,1vw,.84rem);letter-spacing:.26em;font-weight:700;text-transform:uppercase;line-height:1.3}

a.inline{color:var(--amber-d);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}
a.inline:hover{color:var(--navy)}

.skip{position:absolute;left:16px;top:-60px;z-index:100;background:var(--amber);color:var(--navy);
  font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:12px 20px;border-radius:8px;transition:top .2s}
.skip:focus{top:16px}

/* ---------- przyciski (1:1 z index.html) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;
  padding:17px 34px;border-radius:8px;font-size:clamp(.88rem,1.05vw,1.02rem);min-height:56px;
  transition:transform .18s cubic-bezier(.2,.7,.2,1),background .2s,color .2s,box-shadow .2s,border-color .2s}
.btn-amber{background:var(--amber);color:var(--navy);box-shadow:0 14px 30px -16px rgba(249,160,11,.9)}
.btn-amber:hover{background:var(--amber-d);transform:translateY(-2px);color:var(--navy)}
.btn-navy{background:var(--navy);color:#fff;box-shadow:0 14px 30px -18px rgba(2,56,80,.9)}
.btn-navy:hover{background:var(--navy-2);color:#fff;transform:translateY(-2px)}
.btn-outline{border:2px solid var(--navy);color:var(--navy);background:transparent}
.btn-outline:hover{background:var(--navy);color:#fff;transform:translateY(-2px)}
.btn-light{border:2px solid rgba(255,255,255,.5);color:#fff;background:transparent}
.btn-light:hover{background:#fff;color:var(--navy);transform:translateY(-2px);border-color:#fff}
:focus-visible{outline:none;box-shadow:var(--ring);border-radius:8px}
a.btn:focus-visible{box-shadow:0 0 0 3px var(--navy),0 0 0 6px var(--amber)}

/* ---------- header ---------- */
.hdr{background:rgba(2,56,80,.94);backdrop-filter:saturate(140%) blur(10px);color:#fff;position:sticky;top:0;z-index:40;border-bottom:1px solid var(--line-d)}
.hdr .inset{display:flex;align-items:center;gap:24px;min-height:84px;flex-wrap:wrap}
.hdr .logo{display:flex;align-items:center;gap:12px;flex:none}
.hdr .logo img{height:40px;width:auto;max-width:none;flex:none}
.hdr nav{display:flex;gap:clamp(14px,1.7vw,28px);margin-left:auto;align-items:center;flex-wrap:wrap}
.hdr nav a{font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.9rem;color:#dfe8ec;
  padding:8px 2px;border-bottom:3px solid transparent;transition:color .2s,border-color .2s}
.hdr nav a:hover,.hdr nav a[aria-current="page"]{color:#fff;border-color:var(--amber)}

/* ---------- ścieżka powrotu ---------- */
.crumb{background:var(--navy-2);color:var(--muted-2);border-bottom:1px solid var(--line-d)}
.crumb .inset{padding-block:14px;font-size:.84rem;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.crumb a{color:#cde0e7;font-weight:600}
.crumb a:hover{color:var(--amber)}
.crumb span[aria-hidden]{opacity:.5}

/* ---------- nagłówek wpisu ---------- */
.phead{background:
    radial-gradient(rgba(255,255,255,.05) 1.2px,transparent 1.6px) 0 0/30px 30px,
    radial-gradient(120% 120% at 88% -12%,rgba(249,160,11,.14),transparent 46%),
    radial-gradient(120% 120% at 85% -10%,#02455f,var(--navy) 62%);
  color:#fff}
.phead .inset{padding-block:clamp(48px,5.4vw,92px)}
.phead .eyebrow{color:var(--amber)}
.phead h1{font-size:clamp(2rem,4.6vw,3.7rem);margin:18px 0 20px;letter-spacing:-.022em}
.phead .lead{font-size:clamp(1.02rem,1.4vw,1.24rem);color:#e7eef1;max-width:64ch;font-weight:500}
.phead .meta{display:flex;gap:12px 26px;flex-wrap:wrap;align-items:center;margin-top:26px;font-size:.86rem;color:var(--muted-2)}
.phead .meta time{font-weight:700;color:#fff}

/* zdjęcie prowadzące pod nagłówkiem, pełna szerokość */
.hero{background:var(--navy-2)}
.hero img{width:100%;height:clamp(220px,32vw,420px);object-fit:cover;object-position:center 32%}

/* ---------- sekcje ---------- */
.sec{padding-block:clamp(48px,5vw,86px)}
.sec-mist{background:var(--mist);border-top:1px solid #e3e7ea;border-bottom:1px solid #e3e7ea}
.sec-navy{background:
    radial-gradient(rgba(255,255,255,.038) 1.2px,transparent 1.6px) 0 0/32px 32px,
    var(--navy);
  color:#fff}
.sec-head{margin-bottom:clamp(26px,3vw,44px)}
.sec-head .eyebrow{color:var(--amber-d);display:block;margin-bottom:14px}
.sec-navy .sec-head .eyebrow{color:var(--amber)}
.sec h2{font-size:clamp(1.5rem,3.1vw,2.4rem);letter-spacing:-.018em}
.sec-head .sub{margin-top:14px;color:var(--muted);max-width:70ch;font-size:1.02rem}
.sec-navy .sec-head .sub{color:var(--muted-2)}

/* ---------- treść ---------- */
.body>p,.body>h3,.body>ul,.body>ol{max-width:880px}
.body p{margin-bottom:1.15em}
.body p:last-child{margin-bottom:0}
.body h3{font-size:clamp(1.12rem,1.9vw,1.42rem);font-weight:800;letter-spacing:-.012em;margin:1.9em 0 .55em;line-height:1.28}
.body ul,.body ol{margin:0 0 1.15em;padding-left:1.35em}
.body li{margin-bottom:.5em}
.body strong{font-weight:700}

/* przypis źródła pod sekcją */
.srcline{margin-top:26px;font-size:.82rem;color:var(--muted);max-width:80ch;line-height:1.55}
.sec-navy .srcline{color:var(--muted-2)}

/* ---------- spis treści ---------- */
.toc{background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(22px,2.4vw,32px);box-shadow:var(--shadow-card)}
.toc .eyebrow{color:var(--amber-d);display:block;margin-bottom:18px}
.toc ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2px 28px;counter-reset:t}
.toc li{counter-increment:t;margin:0}
.toc a{display:flex;gap:12px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--line);font-weight:600;line-height:1.4}
.toc li:last-child a,.toc li:nth-last-child(2):nth-child(odd) a{border-bottom:0}
.toc a::before{content:counter(t);font-weight:800;color:var(--amber-d);font-size:.86rem;min-width:18px}
.toc a:hover{color:var(--amber-d)}

/* ---------- karty statystyk ---------- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(16px,2vw,26px)}
.stat{background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(22px,2.4vw,30px);box-shadow:var(--shadow-card)}
.sec-navy .stat{background:rgba(255,255,255,.05);border-color:var(--line-d)}
.stat b{display:block;font-size:clamp(2.4rem,5vw,3.4rem);font-weight:800;line-height:1;letter-spacing:-.03em;color:var(--navy)}
.sec-navy .stat b{color:var(--amber)}
.stat h3{margin:14px 0 8px;font-size:1.02rem;font-weight:800;line-height:1.3}
.stat p{color:var(--muted);font-size:.94rem}
.sec-navy .stat p{color:var(--muted-2)}

/* ---------- słupki danych ---------- */
.bars{display:grid;gap:18px;max-width:820px}
.bar{display:grid;grid-template-columns:clamp(96px,14vw,132px) 1fr auto;gap:16px;align-items:center}
.bar .lbl{font-weight:700;font-size:.96rem}
.bar .track{background:var(--mist);border-radius:999px;height:16px;overflow:hidden}
.sec-navy .bar .track{background:rgba(255,255,255,.12)}
/* display:block jest konieczne: .fill to <span>, czyli domyślnie element inline,
   a na inline szerokość i wysokość są ignorowane. Bez tego słupek zostaje pusty
   i z materiału o liczbach znikają liczby. Element .track uchodzi uwadze, bo jako
   dziecko grida .bar jest blokowany automatycznie. */
.bar .fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--amber-d),var(--amber))}
.bar .val{font-weight:800;font-size:1.06rem;min-width:52px;text-align:right;font-variant-numeric:tabular-nums}

/* ---------- dwie kolumny porównawcze ---------- */
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(18px,2.2vw,28px)}
.split>div{border-radius:18px;padding:clamp(24px,2.6vw,34px);border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-card)}
.split .hi{background:var(--amber);border-color:var(--amber);color:var(--navy)}
.split h3{font-size:clamp(1.1rem,1.9vw,1.36rem);font-weight:800;margin-bottom:12px}
.split p{color:var(--muted)}
.split .hi p{color:#4a3406}

/* ---------- kroki frameworku ---------- */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:clamp(16px,2vw,24px);counter-reset:s}
.step{counter-increment:s;background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(22px,2.4vw,30px);
  box-shadow:var(--shadow-card);transition:transform .2s,box-shadow .2s,border-color .2s}
.step:hover{transform:translateY(-3px);box-shadow:var(--shadow-hi);border-color:var(--amber)}
.step::before{content:counter(s);display:grid;place-items:center;width:46px;height:46px;border-radius:12px;
  background:var(--navy);color:var(--amber);font-weight:800;font-size:1.2rem;margin-bottom:16px}
.step h3{font-size:1.08rem;font-weight:800;margin-bottom:8px}
.step p{color:var(--muted);font-size:.95rem}
.step .anti{display:block;margin-top:10px;font-size:.88rem;color:var(--navy);font-weight:700}

/* ---------- siatka kategorii ---------- */
.cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:clamp(14px,1.8vw,20px)}
.cat{background:var(--navy);color:#fff;border-radius:16px;padding:clamp(20px,2.2vw,26px);display:flex;gap:14px;align-items:center;
  transition:transform .2s,box-shadow .2s}
.cat:hover{transform:translateY(-3px);box-shadow:var(--shadow-hi)}
.cat span{font-size:1.5rem;line-height:1;flex:none;color:var(--amber)}
.cat b{font-weight:800;font-size:1rem;line-height:1.3}

/* ---------- wyróżniony blok ---------- */
.callout{border-radius:16px;padding:clamp(22px,2.4vw,30px);border-left:5px solid var(--amber);background:var(--mist);
  max-width:900px;margin:2em 0}
.callout p{color:var(--ink)}
.callout p+p{margin-top:.8em}
.sec-navy .callout{background:rgba(255,255,255,.06);border-left-color:var(--amber)}
.sec-navy .callout p{color:#e7eef1}
.callout b{font-weight:800}

/* ---------- cytat ---------- */
.pull{border-left:5px solid var(--amber);padding:6px 0 6px 26px;margin:2em 0;max-width:840px}
.pull p{font-size:clamp(1.1rem,1.9vw,1.42rem);font-weight:700;line-height:1.42;letter-spacing:-.012em}
.pull cite{display:block;margin-top:14px;font-style:normal;font-size:.88rem;color:var(--muted);font-weight:600}
.sec-navy .pull cite{color:var(--muted-2)}

/* ---------- blok źródeł ---------- */
.sources{background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(24px,2.6vw,34px);box-shadow:var(--shadow-card)}
.sources ol{margin:0;padding-left:1.3em;color:var(--muted);font-size:.94rem}
.sources li{margin-bottom:.75em;line-height:1.6}
.sources li:last-child{margin-bottom:0}
.sources a{color:var(--amber-d);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.sources a:hover{color:var(--navy)}

/* ---------- lista wpisów (/rynek/) ----------
   Bez miniatur: wpisy o rynku to materiały tekstowo-liczbowe, nie mają
   zdjęcia prasowego. Zamiast kadru nośnikiem jest tytuł i lead. */
.postlist{display:grid;gap:22px}
.post{background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(24px,2.8vw,36px);
  box-shadow:var(--shadow-card);transition:transform .2s,box-shadow .2s,border-color .2s;
  border-left:5px solid var(--amber)}
.post:hover{transform:translateY(-3px);box-shadow:var(--shadow-hi);border-color:var(--amber)}
.post .date{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.post .date time{font-weight:700;font-size:.86rem;color:var(--muted)}
.post .tag{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800;
  background:var(--mist);color:var(--navy);padding:5px 11px;border-radius:999px}
.post h2{font-size:clamp(1.22rem,2.2vw,1.72rem);font-weight:800;letter-spacing:-.014em;line-height:1.24;margin-bottom:12px}
.post p{color:var(--muted);max-width:74ch}
.post .more{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-weight:800;text-transform:uppercase;
  letter-spacing:.05em;font-size:.8rem;color:var(--amber-d)}
.post:hover .more{color:var(--navy)}

/* ---------- nawigacja między wpisami ---------- */
.postnav{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.postnav a{border:1px solid var(--line);border-radius:14px;padding:20px 24px;background:#fff;
  box-shadow:var(--shadow-card);transition:border-color .2s,transform .18s}
.postnav a:hover{border-color:var(--amber);transform:translateY(-3px)}
.postnav .eyebrow{color:var(--muted);display:block;margin-bottom:8px}
.postnav b{font-weight:800;color:var(--navy);line-height:1.3;display:block}

/* ---------- wezwanie końcowe ---------- */
.final{background:linear-gradient(140deg,var(--amber) 0%,#ffc457 100%);color:var(--navy);text-align:center}
.final .inset{padding-block:clamp(52px,5.4vw,88px)}
.final .eyebrow{color:#7a5203}
.final h2{font-size:clamp(1.7rem,3.6vw,2.7rem);margin-top:14px}
.final .sub{margin:16px auto 0;max-width:60ch;font-size:1.04rem;color:#4a3406;font-weight:500}
.final .cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:38px}

/* ---------- stopka ---------- */
.ftr{background:var(--navy);color:var(--muted-2)}
.ftr .inset{padding-block:clamp(38px,3.6vw,58px);display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:center}
.ftr nav{display:flex;gap:clamp(14px,1.6vw,28px);flex-wrap:wrap}
.ftr nav a{text-transform:uppercase;letter-spacing:.06em;font-weight:700;font-size:.85rem;color:#cde0e7;
  padding:4px 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.ftr nav a:hover{color:var(--amber);border-color:var(--amber)}
.ftr .brand{flex:none}
.ftr .brand img{height:34px;width:auto;max-width:none;flex:none}
.ftr .copy{width:100%;border-top:1px solid var(--line-d);padding-top:20px;margin-top:4px;font-size:.82rem;
  color:#8fa6b0;display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;align-items:center}
.ftr .foot-legal{display:inline-flex;gap:18px;flex-wrap:wrap}
.ftr .foot-legal a{color:#cde0e7;font-weight:600}
.ftr .foot-legal a:hover{color:var(--amber)}

/* ---------- responsywność ---------- */
@media (max-width:900px){
  .hdr nav a{font-size:.82rem}
  .toc li a{border-bottom:1px solid var(--line)}
}
@media (max-width:620px){
  .hdr .inset{min-height:0;gap:10px;padding-block:12px}
  .hdr .logo{width:100%}
  .hdr .logo img{height:32px}
  .hdr nav{margin-left:0;gap:16px;row-gap:6px}
  .hdr nav a{font-size:.74rem;letter-spacing:.04em;padding:4px 0}
  .bar{grid-template-columns:1fr auto;gap:6px 12px}
  .bar .lbl{grid-column:1}
  .bar .val{grid-column:2}
  .bar .track{grid-column:1/-1}
  .ftr .copy{flex-direction:column;align-items:flex-start}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}
}

@media print{
  .hdr,.crumb,.ftr,.postnav,.toc,.final{display:none}
  .phead{background:none;color:#000}
  .phead .lead,.phead .meta{color:#000}
  .sec-navy{background:none;color:#000}
  .sec-navy .stat b{color:#000}
  body{font-size:11pt}
}
