@charset "UTF-8";
/* ============================================================
   Burzovní svět — design6
   Modern-editorial finance portal · sharp corners, hairline grid
   Fonts: Archivo (display) · Inter (body) · IBM Plex Mono (data)
   ============================================================ */

/* ---------- tokens ---------- */
:root{
  --brand:#2840d4;       /* cobalt — solid fills, bars, buttons */
  --brand-700:#1d2ea8;
  --accent:#2840d4;      /* blue used as text/links (adapts in dark) */

  --ink:#0d0e13;         /* black chrome: header, footer, drawer */
  --paper:#ffffff;
  --paper-2:#f4f5f8;     /* alt section background */

  --text:#14161d;
  --text-2:#363b48;      /* body copy */
  --muted:#6a7080;
  --line:#e4e6ec;
  --line-2:#d2d5dd;

  --up:#138a4e;
  --down:#d22b27;
  --amber:#e3a008;
  --teal:#2c9d83;
  --tint:#eef1ff;        /* light blue fill (valuation box, etc.) */
  --panel:#f1f0ec;       /* warm gray — Fortune-style lead panel */

  /* --font-outfit wstawia <Font> z astro:assets (patrz BaseLayout) i zawiera już
     pełny stos: Outfit, "Outfit fallback" (metryki dociągnięte size-adjustem),
     sans-serif. Drugi argument var() ratuje strony spoza BaseLayout. */
  --f-display:var(--font-outfit,'Outfit',sans-serif);   /* free stand-in for design; revert to Gilroy = these 3 tokens */
  --f-body:var(--font-outfit,'Outfit',sans-serif);
  --f-mono:var(--font-outfit,'Outfit',sans-serif);      /* labels/data; tabular-nums for alignment */

  --wrap:1400px;
  --pad:24px;
}

[data-theme="dark"]{
  --accent:#fff;
  --ink:#07080b;
  --paper:#101518;
  --paper-2:#15171e;
  --text:#eceef3;
  --text-2:#bcc1cd;
  --muted:#878d9c;
  --line:#272a33;
  --line-2:#333744;
  --up:#27b365;
  --down:#f0524d;
  --tint:#1a2150;
  --panel:#16181e;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
/* overflow-x:clip zabezpiecza przed poziomym scrollem od pojedynczego zbłąkanego
   elementu (off-canvas, szeroki obraz itp.). „clip" zamiast „hidden" — nie tworzy
   scroll-kontenera, więc nie psuje position:sticky (sidebar). Fallback hidden dla
   starszych przeglądarek bez wsparcia clip. */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden;overflow-x:clip}
body{
  overflow-x:hidden;overflow-x:clip;
  margin:0;
  font-family:var(--f-body);
  font-size:16px;
  color:var(--text);
  background:var(--paper);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
h1,h2,h3,h4{margin:0;font-family:var(--f-display);font-weight:800;color:var(--text)}
p{margin:0}
ul,ol{margin:0;padding:0}
::selection{background:var(--brand);color:#fff}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}

/* ---------- shared bits ---------- */
.kicker{
  font-family:var(--f-mono);
  font-size:11px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--accent);
}
.kicker--bar{position:relative;padding-left:13px;display:inline-block}
@media (hover:hover){a.kicker:hover{text-decoration:underline}}
.module__title a{color:inherit}
.section-title a{color:inherit}
.kicker--bar::before{content:"";position:absolute;left:0;top:1px;bottom:1px;width:4px;background:var(--brand)}
.kicker--light{color:rgba(255,255,255,.72)}
/* wiele kategorii w kickerze: „AKCIE · AI" — każda klikalna */
@media (hover:hover){.kicker__cat:hover{text-decoration:underline}}
/* kropka w tym samym kolorze co rubryki (bez przygaszania) i ciasno przy nich —
   przy letter-spacing kickera 6px marginesu robiło z niej osobny element */
.kicker__sep{margin:0 4px}

.byline{font-family:var(--f-mono);font-size:12px;color:var(--muted);display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.byline__author{color:var(--text);font-weight:600}
.dot{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.5;flex:none;margin:0 6px}

.chg{font-family:var(--f-mono);font-weight:600;font-size:13px;font-variant-numeric:tabular-nums}
.chg.up{color:var(--up)} .chg.down{color:var(--down)}
.mono{font-family:var(--f-mono)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-size:14px;font-weight:600;padding:13px 22px;
  border:1px solid transparent;background:none;color:var(--text);
  transition:background .15s,border-color .15s,color .15s;
}
.btn svg{width:18px;height:18px}
.btn--solid{background:var(--brand);color:#fff;border-color:var(--brand)}
@media (hover:hover){.btn--solid:hover{background:var(--brand-700);border-color:var(--brand-700)}}
.btn--ghost{border-color:var(--line-2);color:var(--text)}
@media (hover:hover){.btn--ghost:hover{border-color:var(--text);background:var(--paper-2)}}
.btn--ghost svg{width:17px;height:17px}

.link-arrow{
  margin-left:auto;display:inline-flex;align-items:center;gap:9px;
  font-family:var(--f-mono);font-size:12px;font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;color:var(--accent);white-space:nowrap;
}
.link-arrow svg{width:26px;height:11px;transition:transform .2s}
@media (hover:hover){.link-arrow:hover svg{transform:translateX(4px)}}

/* ============================================================
   MASTHEAD
   ============================================================ */
/* utility bar */
.util{background:var(--brand);color:#fff}
.util__row{display:flex;align-items:center;justify-content:space-between;min-height:40px}
.util__social{display:flex;align-items:center;gap:4px}
.util__social a{width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.82)}
@media (hover:hover){.util__social a:hover{color:#fff}}
/* margin:auto, bo samo align-items:center rodzica nie wyśrodkowuje tu <img>
   (Apple Podcasts to jedyny PNG — reszta to inline SVG). Bez tego ikona siada
   przy górnej krawędzi pola i odstaje od pozostałych. */
.util__social svg,.util__social img{width:16px;height:16px;object-fit:contain;margin:auto}
.util__links{display:flex;align-items:center;gap:20px}
.util__links a{
  display:inline-flex;align-items:center;gap:7px;
  font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  color:rgba(255,255,255,.9);
}
@media (hover:hover){.util__links a:hover{color:#fff}}
.util__links .ico{width:15px;height:15px}
/* Dwustanowy przełącznik motywu: widać ikonę tego, co się włączy po kliknięciu
   — w jasnym motywie księżyc, w ciemnym słońce. Pełny wybór z „Auto" jest w
   szufladzie (.thememode). */
.theme-toggle{
  width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;
  border:0;background:transparent;color:#fff;
}
@media (hover:hover){.theme-toggle:hover{background:rgba(255,255,255,.12)}}
.theme-toggle svg{width:15px;height:15px}
.theme-toggle__sun{display:none}
[data-theme="dark"] .theme-toggle__moon{display:none}
[data-theme="dark"] .theme-toggle__sun{display:block}
/* strona z wymuszonym motywem (data-theme-lock, np. /podcast/) — przełącznik
   nie miałby co przełączać, więc znika zamiast klikać w pustkę */
[data-theme-lock] .theme-toggle{display:none}

/* main nav (sticky) */
.masthead{display:contents}
/* tło mastheadu = --paper z dark theme (#101518), na sztywno w obu motywach */
.nav{background:#101518;position:sticky;top:0;z-index:120;border-bottom:1px solid rgba(255,255,255,.08)}
.nav__row{display:flex;align-items:stretch;min-height:64px}
.brand{display:flex;align-items:center;margin-right:34px}
.brand img{height:78px;width:auto}
.nav{transition:transform .32s cubic-bezier(.22,.61,.36,1)}
.nav--hidden{transform:translateY(-100%)}
@media (prefers-reduced-motion:reduce){
  .nav{transition:none}
}
.nav__menu{display:flex;align-items:stretch;gap:6px;flex:1}
.nav__menu > a,.nav__item > a{
  display:inline-flex;align-items:center;gap:5px;padding:0 13px;white-space:nowrap;
  font-size:15px;font-weight:600;letter-spacing:.03em;
  color:#fff;box-shadow:inset 0 0 0 var(--brand);
  transition:color .15s,box-shadow .15s;
}
@media (hover:hover){.nav__menu > a:hover,.nav__item > a:hover,.nav__item:hover > a{color:#fff}}
.nav__menu > a.is-active,.nav__item > a.is-active{color:#fff;box-shadow:inset 0 -3px 0 var(--brand)}
.nav__item{display:flex;align-items:stretch}
.has-caret::after{content:"";width:11px;height:11px;flex:none;background:currentColor;opacity:.6;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9.5l6 6 6-6' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9.5l6 6 6-6' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .2s ease,opacity .15s}
@media (hover:hover){.nav__menu > a:hover::after,.nav__item:hover .has-caret::after{opacity:1}}
@media (hover:hover){.nav__item:hover .has-caret::after{transform:rotate(180deg)}}
.search-btn,.burger{
  display:flex;align-items:center;justify-content:center;width:46px;
  background:none;border:none;color:#fff;flex:none;
}
.nav__cta{align-self:center;display:inline-flex;align-items:center;margin:0 14px 0 12px;padding:10px 15px 10px 17px;background:#ffffff1a;color:#fff;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;transition:background .15s}
@media (hover:hover){.nav__cta:hover{background:#ffffff14}}
.nav__cta-stub{display:inline-flex;align-items:center;margin-left:12px;padding-left:11px;border-left:1.5px dashed rgba(255,255,255,.4)}
.nav__cta svg{width:24px;height:11px;flex:none;transition:transform .2s}
@media (hover:hover){.nav__cta:hover svg{transform:translateX(4px)}}
.search-btn{align-self:center;width:42px;height:42px;color:rgba(255,255,255,.8);transition:color .15s,background .15s}
@media (hover:hover){.search-btn:hover{color:#fff;background:#ffffff14}}
.search-btn svg,.burger svg{width:22px;height:22px}
.burger{display:none;margin-left:-12px}

/* mega menu (IPO Radar) */
/* pointer-events:none na zamkniętym/gasnącym panelu — panel jest dzieckiem
   .nav__item, więc bez tego najechanie na obszar dogasającego mega (np. ruch
   kursorem w górę strony tuż po zamknięciu) liczyło się jako hover na itemie
   i otwierało menu z powrotem */
/* tło jak .nav (#101518) — mega wysuwa się spod paska i musi być jego przedłużeniem */
.mega{position:absolute;left:0;right:0;top:100%;z-index:110;background:#101518;border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 28px 48px rgb(0 0 0 / 38%);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(10px);transition:opacity .22s ease,transform .26s cubic-bezier(.22,.61,.36,1),visibility 0s linear .26s}
.nav__item:focus-within .mega{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition-delay:.12s,.12s,0s}
@media (hover:hover){.nav__item:hover .mega{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition-delay:.12s,.12s,0s}}

/* compact nav dropdown (e.g. Media) */
.nav__item--drop{position:relative}
/* to samo dla mniejszych rozwijek (Trhy, Úspěch, Media) — wychodzą z tego samego paska */
.submenu{position:absolute;top:100%;left:12px;z-index:110;min-width:230px;background:#101518;border:1px solid rgba(255,255,255,.1);box-shadow:0 24px 44px rgb(0 0 0 / 40%);padding:8px;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s ease,transform .24s cubic-bezier(.22,.61,.36,1),visibility 0s linear .24s}
.nav__item--drop:focus-within .submenu{opacity:1;visibility:visible;transform:none;transition-delay:.05s,.05s,0s}
@media (hover:hover){.nav__item--drop:hover .submenu{opacity:1;visibility:visible;transform:none;transition-delay:.05s,.05s,0s}}
.submenu a{display:flex;align-items:center;gap:13px;padding:12px 14px;font-family:var(--f-display);font-weight:600;font-size:14.5px;letter-spacing:-.005em;color:rgba(255,255,255,.85);white-space:nowrap;transition:background .14s,color .14s}
@media (hover:hover){.submenu a:hover{background:rgba(255,255,255,.07);color:#fff}}
.submenu svg{flex:none;width:19px;height:19px;color:rgba(255,255,255,.5);transition:color .14s}
@media (hover:hover){.submenu a:hover svg{color:#fff}}
.mega__grid{display:grid;grid-template-columns:1.4fr .95fr 1.05fr;gap:48px;padding-top:30px;padding-bottom:36px}
.mega__label{font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:16px}
.mega__tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ipotile{display:flex;flex-direction:column;gap:8px}
.ipotile__media{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:#1c1f28;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.ipotile__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .3s cubic-bezier(.22,.61,.36,1)}
@media (hover:hover){.ipotile:hover .ipotile__media img{transform:scale(1.05)}}
.ipotile__date{position:absolute;left:10px;bottom:10px;font-family:var(--f-mono);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:rgba(7,8,11,.55);padding:3px 8px;backdrop-filter:blur(3px)}
.ipotile i{font-style:normal;font-size:12px;font-weight:500;color:rgba(255,255,255,.72);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s}
@media (hover:hover){.ipotile:hover i{color:#fff}}
.mega__row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:10.5px 0;border-bottom:1px solid rgba(255,255,255,.09);font-family:var(--f-display);font-weight:600;font-size:14.5px;color:#fff;transition:color .15s}
@media (hover:hover){.mega__row:hover{color:#fff}}
.mega__row time{font-family:var(--f-mono);font-size:11.5px;font-weight:500;color:rgba(255,255,255,.42);white-space:nowrap}
.mega__news{display:block;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.09)}
.mega__news:first-of-type{padding-top:0}
.mega__news-t{display:block;font-family:var(--f-display);font-weight:600;font-size:14.5px;line-height:1.42;color:rgba(255,255,255,.88);transition:color .15s}
@media (hover:hover){.mega__news:hover .mega__news-t{color:#fff}}
.mega__news-d{display:block;margin-top:5px;font-family:var(--f-mono);font-size:11px;color:rgba(255,255,255,.4)}
.mega__more{display:inline-flex;align-items:center;gap:9px;margin-top:18px;font-family:var(--f-mono);font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#fff}
.mega__more svg{width:24px;height:11px;transition:transform .2s}
@media (hover:hover){.mega__more:hover svg{transform:translateX(4px)}}
.meganov{display:grid;grid-template-columns:1fr 400px;padding-top:32px;padding-bottom:40px}
.meganov__left{padding-right:56px}
.meganov__cats{display:grid;grid-template-columns:repeat(3,1fr);column-gap:42px;row-gap:4px}
.meganov__link{display:flex;align-items:flex-start;gap:13px;padding:9px 0;transition:transform .18s}
.meganov__link i{flex:none;min-width:20px;margin-top:3px;font-style:normal;font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.04em;color:rgba(255,255,255,.38);transition:color .15s}
.meganov__link b{display:block;font-family:var(--f-display);font-weight:700;font-size:15px;letter-spacing:-.01em;color:rgba(255,255,255,.9);transition:color .15s;white-space:nowrap}
.meganov__link small{display:block;margin-top:2px;font-size:11.5px;line-height:1.4;color:rgba(255,255,255,.45)}
@media (hover:hover){.meganov__link:hover{transform:translateX(4px)}}
@media (hover:hover){.meganov__link:hover b{color:#fff}}
@media (hover:hover){.meganov__link:hover i{color:#fff}}
.meganov__foot{display:flex;align-items:center;gap:38px;margin-top:26px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1)}
.meganov__spec{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-display);font-weight:700;font-size:18px;color:rgba(255,255,255,.85);transition:color .15s}
@media (hover:hover){.meganov__spec:hover{color:#fff}}
.meganov__foot .mega__more{margin:0 0 0 auto}
.meganov__dot{flex:none;width:7px;height:7px;border-radius:50%}
.meganov__dot--live{background:var(--down);animation:megaPulse 1.8s infinite}
.meganov__dot--blue{background:#4a63f0}
/* Rubryki przeniesione tu z listy „Rubriky" — bez animacji: puls przy
   „Právě teď" znaczy „na żywo". Kolory z PROMOTED_DOT_VARIANT (category.ts):
   Trendy bursztyn (dawna kropka „Právě teď"), Nejčtenější fiolet. */
.meganov__dot--plain{background:rgba(255,255,255,.4)}
.meganov__dot--gold{background:var(--amber)}
.meganov__dot--violet{background:#8b5cf6}
@keyframes megaPulse{0%{box-shadow:0 0 0 0 rgba(210,43,39,.5)}70%{box-shadow:0 0 0 7px rgba(210,43,39,0)}100%{box-shadow:0 0 0 0 rgba(210,43,39,0)}}
.meganov__feat{border-left:1px solid rgba(255,255,255,.1);padding-left:44px}
.meganov__cta b{display:block;font-family:var(--f-display);font-weight:800;font-size:29px;line-height:1.3;letter-spacing:-.01em;color:#fff}
.meganov__cta p{margin-top:9px;font-size:12.5px;line-height:1.55;color:rgba(255,255,255,.55)}
.meganov__cta ul{list-style:none;margin:15px 0 0;display:flex;flex-direction:column;gap:9px}
.meganov__cta li{position:relative;padding-left:24px;font-size:12.5px;line-height:1.45;color:rgba(255,255,255,.8)}
.meganov__cta li::before{content:"✓";position:absolute;left:0;top:0;font-family:var(--f-mono);font-weight:700;color:#0a9981}
.meganov__cta-btn{margin-top:20px;width:100%;padding:12px 20px;font-size:13.5px}
@media (prefers-reduced-motion:reduce){.mega{transition:none}}

/* ============================================================
   TICKER
   ============================================================ */
.ticker{display:flex;align-items:stretch;height:40px;background:var(--paper);border-bottom:1px solid var(--line);overflow:hidden;position:relative;z-index:1}
.ticker__live{
  flex:none;display:flex;align-items:center;gap:7px;padding:0 15px;background:var(--ink);color:#fff;
  font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
}
.ticker__live i{width:7px;height:7px;background:var(--down);display:block;animation:pulse 1.6s infinite}
.ticker__viewport{flex:1;display:flex;overflow:hidden}
.ticker__track{display:flex;flex:none;align-items:center;animation:ticker 60s linear infinite;will-change:transform}
@media (hover:hover){.ticker:hover .ticker__track{animation-play-state:paused}}
.tk{display:inline-flex;align-items:center;gap:8px;padding:0 20px;white-space:nowrap;border-right:1px solid var(--line);font-family:var(--f-mono);font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.tk b{color:var(--text);font-weight:600}
.tk em{font-style:normal}
.tk .up{color:var(--up)} .tk .down{color:var(--down)}
@keyframes ticker{to{transform:translateX(-100%)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}

/* ============================================================
   SUBNAV (article categories)
   ============================================================ */
.subnav{background:var(--paper);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.subnav::-webkit-scrollbar{display:none}
.subnav__row{display:flex;gap:24px}
.subnav__row a{
  flex:none;padding:13px 0;font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;
  color:var(--muted);border-bottom:2px solid transparent;transition:color .15s,border-color .15s;
}
@media (hover:hover){.subnav__row a:hover{color:var(--text)}}
.subnav__row a.is-active{color:var(--text);border-bottom-color:var(--brand)}

/* ============================================================
   SECTION HEADINGS
   ============================================================ */
.section{padding:56px 0}
.section-head{display:flex;align-items:baseline;gap:12px;border-bottom:2px solid var(--text);padding-bottom:14px;margin-bottom:28px}
.section-head--tight{border-bottom-width:1px;border-color:var(--line-2)}
.section-title{font-size:25px;letter-spacing:-.015em}
.section-note{font-family:var(--f-mono);font-size:11.5px;color:var(--muted);letter-spacing:.02em}

/* ============================================================
   LEAD
   ============================================================ */
.lead{display:grid;grid-template-columns:1fr 360px;gap:44px;padding:44px 0}
.lead__media{display:block;overflow:hidden}
.lead__media img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .5s}
@media (hover:hover){.lead__media:hover img{transform:scale(1.03)}}
.lead__main .kicker--bar{margin:20px 0 0}
.lead__title{font-size:40px;line-height:1.08;letter-spacing:-.022em;margin:12px 0 14px}
@media (hover:hover){.lead__title a:hover{color:var(--accent)}}
.lead__deck{font-size:18px;line-height:1.5;color:var(--text-2);margin-bottom:16px}

.lead__side{border-left:1px solid var(--line);padding-left:32px;display:flex;flex-direction:column}
.side-story{display:grid;grid-template-columns:1fr 96px;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.side-story:first-child{padding-top:0}
.side-story:last-child{border-bottom:none}
.side-story__txt .kicker{display:block;margin-bottom:7px}
.side-story h3{font-size:16.5px;font-weight:700;line-height:1.22;letter-spacing:-.01em;margin-bottom:8px}
@media (hover:hover){.side-story h3 a:hover{color:var(--accent)}}
.side-story__media{display:block;overflow:hidden;align-self:start}
.side-story__media img{width:96px;height:74px;object-fit:cover}

/* ============================================================
   MARKETS
   ============================================================ */
.markets{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:52px 0}
.markets .section-head{align-items:center}
.markets__grid{display:grid;grid-template-columns:1fr 320px;gap:32px}

.snaps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.snap{background:var(--paper);padding:16px 17px}
.snap header{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.snap__sym{font-family:var(--f-display);font-weight:700;font-size:15px}
.snap__cls{font-family:var(--f-mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.snap__px{font-family:var(--f-mono);font-weight:600;font-size:21px;letter-spacing:-.01em;margin:11px 0 9px;font-variant-numeric:tabular-nums}
.snap footer{display:flex;align-items:center;justify-content:space-between;gap:10px}
.spark{width:86px;height:30px;flex:none}

.movers{background:var(--paper);border:1px solid var(--line);align-self:start}
.movers__head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}
.movers__head h3{font-size:15px;font-weight:700}
.badge-live{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--up)}
.badge-live i{width:7px;height:7px;background:var(--up);display:block;animation:pulse 1.6s infinite}
.mover{display:grid;grid-template-columns:54px 1fr auto;gap:12px;align-items:center;padding:11px 16px;border-bottom:1px solid var(--line)}
.mover:last-child{border-bottom:none}
@media (hover:hover){.mover:hover{background:var(--paper-2)}}
.mover__tk{font-family:var(--f-mono);font-size:12.5px;font-weight:600;color:var(--text)}
.mover__nm{font-size:13.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ============================================================
   CARDS
   ============================================================ */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.card{display:flex;flex-direction:column;border:1px solid var(--line);background:var(--paper)}
.card__media{display:block;overflow:hidden;border-bottom:1px solid var(--line)}
.card__media img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .5s}
@media (hover:hover){.card:hover .card__media img{transform:scale(1.04)}}
.card__body{display:flex;flex-direction:column;gap:9px;padding:18px 18px 20px;flex:1}
.card__title{font-size:19px;font-weight:700;line-height:1.2;letter-spacing:-.012em}
@media (hover:hover){.card__title a:hover{color:var(--accent)}}
.card__excerpt{font-size:14.5px;line-height:1.5;color:var(--text-2);flex:1}
.card .byline{margin-top:4px}

/* ============================================================
   BAND — most read + opportunity
   ============================================================ */
.rank{list-style:none}
.rank li{border-bottom:1px solid var(--line)}
.rank li:last-child{border-bottom:none}
.rank a{display:flex;gap:16px;align-items:flex-start;padding:16px 0}
.rank__no{font-family:var(--f-display);font-weight:800;font-size:26px;line-height:1;color:var(--line-2);flex:none;width:30px}
@media (hover:hover){.rank a:hover .rank__no{color:var(--accent)}}
.rank .kicker{display:block;margin-bottom:6px}
.rank a>span:last-child{font-family:var(--f-display);font-weight:700;font-size:16px;line-height:1.25;color:var(--text)}
@media (hover:hover){.rank a:hover>span:last-child{color:var(--accent)}}

.oppo__media{display:block;overflow:hidden}
.oppo__media img{width:100%;aspect-ratio:16/8;object-fit:cover;transition:transform .5s}
@media (hover:hover){.oppo__media:hover img{transform:scale(1.03)}}
.oppo__body{padding-top:18px}
.oppo__body .kicker--bar{margin-bottom:10px}
.oppo__title{font-size:27px;line-height:1.12;letter-spacing:-.018em;margin-bottom:12px}
@media (hover:hover){.oppo__title a:hover{color:var(--accent)}}
.oppo__deck{font-size:16px;line-height:1.55;color:var(--text-2)}
.oppo .btn{margin-top:18px}

/* ============================================================
   NEWSLETTER CTA
   ============================================================ */
.cta{background:var(--brand);color:#fff;padding:56px 0}
.cta__inner{display:grid;grid-template-columns:1fr 430px;gap:44px;align-items:center}
.cta h2{color:#fff;font-size:30px;line-height:1.14;letter-spacing:-.018em;margin-top:10px}
.cta__sub{color:rgba(255,255,255,.82);font-size:15px;margin-top:12px;max-width:46ch}
.cta__form{min-width:0}
.cta__row{display:flex;min-width:0}
.cta__row input{
  flex:1;min-width:0;padding:15px 16px;font-family:var(--f-body);font-size:15px;
  border:1px solid rgba(255,255,255,.55);border-right:none;background:rgba(255,255,255,.1);color:#fff;
}
.cta__row input::placeholder{color:rgba(255,255,255,.65)}
.cta__row input:focus{outline:none;background:rgba(255,255,255,.16)}
/* jméno + telefon — schowane, rozwijają się po wejściu w formularz (.is-open na .cta__col) */
.cta__more{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .32s cubic-bezier(.22,.61,.36,1),opacity .26s ease,margin-top .32s ease;margin-top:0}
.cta__morein{min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:10px}
.cta__col.is-open .cta__more{grid-template-rows:1fr;opacity:1;margin-top:10px}
@media (prefers-reduced-motion:reduce){.cta__more{transition:none}}
.cta__form .btn--solid{background:#fff;color:var(--brand);border-color:#fff;white-space:nowrap}
@media (hover:hover){.cta__form .btn--solid:hover{background:var(--ink);color:#fff;border-color:var(--ink)}}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--ink);color:rgba(255,255,255,.7);padding:56px 0 0}
.footer__grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:40px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.1)}
.footer__brand img{height:26px;margin-bottom:16px}
.footer__brand p{color:rgba(255,255,255,.55);font-size:14px;line-height:1.55;max-width:330px}
.footer__social{display:flex;gap:10px;margin-top:18px}
.footer__social a{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.72)}
@media (hover:hover){.footer__social a:hover{background:var(--brand);border-color:var(--brand);color:#fff}}
.footer__social svg,.footer__social img{width:16px;height:16px;object-fit:contain;margin:auto} /* margin:auto — patrz .util__social */
.footer__col h4{font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff;margin-bottom:14px}
.footer__col a{display:block;color:rgba(255,255,255,.6);font-size:14px;padding:5px 0}
@media (hover:hover){.footer__col a:hover{color:#fff}}
/* disclaimer prawny — trzy nazwane kolumny drobnego druku nad dolną belką */
.footer__disclaimer{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 40px;border-top:1px solid rgba(255,255,255,.12);padding:26px 0 14px;margin-top:8px}
.footer__disccol h5{margin:0 0 10px;font-family:var(--f-mono);font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.footer__disccol p{font-size:11px;line-height:1.62;color:rgba(255,255,255,.4);margin:0}
@media (max-width:900px){
  .footer__disclaimer{grid-template-columns:1fr;gap:18px}
}
.footer__bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0 28px;font-size:13px;color:rgba(255,255,255,.45)}
.footer__legal{display:flex;gap:18px}
@media (hover:hover){.footer__legal a:hover{color:#fff}}

/* ============================================================
   ARTICLE
   ============================================================ */
.article__wrap{max-width:780px;margin:0 auto;padding:34px 0 8px}
/* article + sidebar layout */
.article__grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:56px;align-items:start;padding-top:34px}
.article__main{min-width:0}
.article__side{display:flex;flex-direction:column;gap:32px;position:sticky;top:88px}
@media (max-width:980px){
  .article__grid{grid-template-columns:1fr;gap:40px}
  /* sidebar jest modułem desktopowym — pod spodem doklejał się na koniec
     artykułu jako ~900px treści, której nikt tam nie oczekuje */
  .article__side{display:none}
}
.crumbs{display:flex;align-items:center;gap:11px;font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:24px}
.crumbs a{transition:color .15s}
@media (hover:hover){.crumbs a:hover{color:var(--accent)}}
.crumbs i{width:5px;height:5px;border-right:1.5px solid var(--line-2);border-top:1.5px solid var(--line-2);transform:rotate(45deg);flex:none}
.crumbs span{color:var(--text)}

/* listen-to-article: compact trigger */
.audiotrig{display:inline-flex;align-items:center;gap:8px;margin-left:auto;height:32px;padding:0 14px;border:1px solid var(--line-2);background:var(--paper);font-family:var(--f-mono);font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;transition:border-color .15s,background .15s}
/* ── Pasek akcji artykułu: Poslechnout + Shrnout s AI w jednej grupie ── */
.article__acts{display:inline-flex;align-items:center;gap:8px;margin-left:auto}
.article__acts .audiotrig{margin-left:0}
.aisum{position:relative}
.aisum summary{list-style:none;display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 14px;border:1px solid var(--line-2);background:var(--paper);font-family:var(--f-mono);font-size:12px;font-weight:600;color:var(--text);cursor:pointer;white-space:nowrap;transition:border-color .15s,background .15s;user-select:none}
.aisum summary::-webkit-details-marker{display:none}
@media (hover:hover){.aisum summary:hover{background:var(--paper-2)}}
.aisum__spark{width:13px;height:13px;color:var(--brand)}
.aisum__chev{width:10px;height:10px;color:var(--muted);transition:transform .15s}
.aisum[open] .aisum__chev{transform:rotate(180deg)}
.aisum__menu{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:176px;padding:6px;background:var(--paper);border:1px solid var(--line-2);box-shadow:0 12px 32px rgba(0,0,0,.14)}
.aisum__menu a{display:flex;align-items:center;gap:10px;padding:9px 10px;font-family:var(--f-mono);font-size:12px;font-weight:600;color:var(--text)}
.aisum__menu a svg{width:15px;height:15px;flex:none}
@media (hover:hover){.aisum__menu a:hover{background:var(--paper-2);color:var(--brand)}}
/* ── Mockup „preferowane źródło w Google" — cichy pasek domykający nagłówek ── */
.gsource{display:flex;align-items:center;gap:11px;margin-top:16px;padding:11px 14px;background:var(--paper-2);font-family:var(--f-mono);font-size:11.5px;font-weight:600;letter-spacing:.02em;color:var(--muted);transition:color .15s}
.gsource b{color:var(--text);font-weight:700}
.gsource > svg:first-child{width:16px;height:16px;flex:none}
.gsource__arr{width:18px;height:9px;margin-left:auto;flex:none;color:var(--muted);transition:transform .15s}
@media (hover:hover){.gsource:hover{color:var(--text)}.gsource:hover .gsource__arr{transform:translateX(3px)}}
@media (hover:hover){.audiotrig:hover{background:var(--paper-2)}}
.audiotrig svg{width:13px;height:13px;color:var(--brand)}
.audiotrig em{font-style:normal;color:var(--muted);font-size:11px}

/* floating audio player */
.audiofloat{position:fixed;left:22px;bottom:22px;z-index:350;display:flex;align-items:center;gap:14px;width:min(92vw,390px);padding:12px 14px 14px;background:var(--paper);border:1px solid var(--line);box-shadow:0 14px 38px rgb(0 0 0 / 20%);opacity:0;transform:translateY(14px);transition:opacity .24s ease,transform .28s cubic-bezier(.22,.61,.36,1)}
.audiofloat[hidden]{display:none}
.audiofloat.open{opacity:1;transform:none}
.audiofloat__btn{flex:none;width:46px;height:46px;border:none;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;transition:background .15s}
@media (hover:hover){.audiofloat__btn:hover{background:var(--brand-700)}}
.audiofloat__btn svg{width:18px;height:18px}
.audiofloat__pause{display:none}
.audiofloat.is-playing .audiofloat__play{display:none}
.audiofloat.is-playing .audiofloat__pause{display:block}
.audiofloat__id{display:flex;flex-direction:column;gap:1px;min-width:0}
.audiofloat__label{font-family:var(--f-display);font-weight:700;font-size:14px;color:var(--text);white-space:nowrap}
.audiofloat__time{font-family:var(--f-mono);font-size:10.5px;color:var(--muted);white-space:nowrap}
.audiofloat__wave{display:inline-flex;align-items:flex-end;gap:2.5px;height:16px;margin-left:2px}
.audiofloat__wave i{width:2.5px;height:100%;background:var(--brand);transform:scaleY(.35);transform-origin:bottom;animation:audioWave 1.1s ease-in-out infinite;animation-play-state:paused}
.audiofloat.is-playing .audiofloat__wave i{animation-play-state:running}
.audiofloat__wave i:nth-child(2){animation-delay:.15s}
.audiofloat__wave i:nth-child(3){animation-delay:.3s}
.audiofloat__wave i:nth-child(4){animation-delay:.45s}
.audiofloat__wave i:nth-child(5){animation-delay:.6s}
.audiofloat__wave i:nth-child(6){animation-delay:.75s}
.audiofloat__wave i:nth-child(7){animation-delay:.9s}
@keyframes audioWave{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
.audiofloat__close{margin-left:auto;flex:none;width:32px;height:32px;border:none;background:none;color:var(--muted);display:flex;align-items:center;justify-content:center;transition:color .15s}
@media (hover:hover){.audiofloat__close:hover{color:var(--text)}}
.audiofloat__close svg{width:16px;height:16px}
.audiofloat__bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--line)}
.audiofloat__bar i{display:block;width:0;height:100%;background:var(--brand);animation:audioProgress 420s linear forwards;animation-play-state:paused}
.audiofloat.is-playing .audiofloat__bar i{animation-play-state:running}
@keyframes audioProgress{to{width:100%}}

/* mid-article lead capture */
.leadcta{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--tint);border:1px solid var(--line);border-left:4px solid var(--brand);padding:20px 24px;margin:38px 0}
.leadcta strong{display:block;font-family:var(--f-display);font-weight:800;font-size:18px;letter-spacing:-.01em;color:var(--text)}
.leadcta span{display:block;margin-top:5px;font-size:13.5px;line-height:1.5;color:var(--text-2)}
.leadcta .btn{white-space:nowrap;flex:none;color:#fff;text-decoration:none}
.leadbar{display:flex;align-items:center;justify-content:center;gap:11px;padding:15px;margin:20px 0 10px;background:var(--brand);color:#fff;font-family:var(--f-display);font-weight:800;font-size:16px;transition:background .15s}
@media (hover:hover){.leadbar:hover{background:var(--brand-700)}}
.leadbar svg{width:24px;height:11px;flex:none;transition:transform .2s}
@media (hover:hover){.leadbar:hover svg{transform:translateX(4px)}}
/* „Související / Další recenze" — lista z niebieskimi kropkami (współdzielona:
   ArticlePage + ReviewPage). Globalnie, żeby działała też w produkcyjnym buildzie. */
.relatedlist{margin-top:46px;padding-top:34px;border-top:1px solid var(--line)}
.relatedlist__head{font-family:var(--f-display);font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--text);margin-bottom:12px}
.relatedlist ul{list-style:none;display:flex;flex-direction:column}
.relatedlist a{position:relative;display:block;padding:15px 16px 15px 30px;border-radius:14px;transition:background .16s ease}
@media (hover:hover){.relatedlist a:hover{background:var(--paper-2)}}
.relatedlist a::before{content:"";position:absolute;left:10px;top:23px;width:8px;height:8px;border-radius:50%;background:var(--brand);transition:transform .16s ease}
/* powiązany wpis z Právě teď — czerwona kropka (jak puls live w feedzie) */
.relatedlist a.is-live::before{background:#d22b28}
@media (hover:hover){.relatedlist a:hover::before{transform:scale(1.35)}}
.relatedlist__title{font-family:var(--f-display);font-size:18px;font-weight:700;line-height:1.34;letter-spacing:-.012em;color:var(--text);transition:color .16s ease}
@media (hover:hover){.relatedlist a:hover .relatedlist__title{color:var(--brand)}}
.relatedlist__badge{display:inline-flex;align-items:center;gap:5px;vertical-align:middle;margin-left:9px;padding:3px 10px;border-radius:2px;background:var(--brand);color:#fff;font-family:var(--f-mono);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.relatedlist__badge svg{width:12px;height:12px}
.relatedlist__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.relatedlist__cat{color:var(--text-2)}
.relatedlist__meta>*:not(:first-child){padding-left:10px;border-left:1px solid var(--line-2)}
.btn--up{background:var(--up);border-color:var(--up)}
@media (hover:hover){.btn--up:hover{background:#0e6e3f;border-color:#0e6e3f}}
@media (max-width:680px){
  .leadcta{flex-direction:column;align-items:flex-start;gap:14px}
  .audioplay__bar{display:none}
}

.article__head .kicker--bar{margin-bottom:14px}
.article__title{font-size:clamp(30px,5vw,46px);line-height:1.08;letter-spacing:-.022em;margin-bottom:18px}
.article__deck{font-size:19px;line-height:1.5;color:var(--text-2)}
.article__meta{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line);font-family:var(--f-mono);font-size:12.5px;color:var(--muted)}
.author{display:flex;align-items:center;gap:9px}
.author__ava{width:30px;height:30px;object-fit:cover;border:1px solid var(--line);border-radius:50%}
.author__name{font-family:var(--f-body);font-weight:600;font-size:13px;color:var(--text)}
.article__meta time{display:inline-flex;align-items:center;gap:7px}
.article__read{display:inline-flex;align-items:center;gap:7px}
.article__meta .ico{width:15px;height:15px}
/* kropka + „Zdroj" zawijają się razem, nigdy osobno */
.article__metasrc{display:inline-flex;align-items:center}
@media (max-width:600px){
  /* ciaśniejsza meta, żeby autor, data i czas czytania zmieściły się w jednej
     linii; „Zdroj" schodzi niżej już bez wiszącego separatora przed sobą */
  .article__meta{gap:9px;margin-top:18px;padding-top:14px;font-size:11.5px}
  .article__meta .dot{margin:0 3px}
  /* „Zdroj" bywa ostatnie w linii albo spada do nowej — zależnie od długości
     nazwiska autora; bez separatora nie da się trafić na wiodącą kropkę */
  .article__metasrc > .dot{display:none}
  .author{gap:8px}
  .author__ava{width:26px;height:26px}
  .author__name{font-size:12.5px}
  /* pasek rubryk siedzi tuż nad okruszkami — 40px przerwy było za dużo */
  .article__grid{padding-top:16px}
}
.article__share{display:flex;gap:6px}
.article__share a{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);color:var(--muted)}
@media (hover:hover){.article__share a:hover{border-color:var(--brand);color:var(--brand)}}
.article__share svg{width:15px;height:15px}

.article__hero{margin:30px 0}
.article__hero img{width:100%;aspect-ratio:16/9;object-fit:cover}
.article__hero figcaption{font-family:var(--f-mono);font-size:11.5px;color:var(--muted);margin-top:11px;padding-left:13px;border-left:3px solid var(--line-2)}

/* key points */
.keypoints{background:var(--paper-2);border:1px solid var(--line);border-left:4px solid var(--brand);padding:22px 26px;margin:32px 0}
.keypoints__title{font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-bottom:15px}
.keypoints ul{list-style:none}
.keypoints li{position:relative;padding-left:26px;margin-bottom:13px;font-size:16px;font-weight:600;line-height:1.5;color:var(--text-2)}
.keypoints li:last-child{margin-bottom:0}
.keypoints li::before{content:"";position:absolute;left:2px;top:7px;width:9px;height:9px;background:var(--amber);border-radius:50%}
.keypoints b{color:var(--text);font-weight:700}

/* body */
.article__body{font-size:17.5px;line-height:1.72;color:var(--text-2)}
.article__body p{margin:0 0 22px}
.article__body>p:first-of-type::first-letter{float:left;font-family:var(--f-display);font-weight:800;font-size:56px;line-height:.84;padding:5px 12px 0 0;color:var(--text)}
.article__body h2{font-size:26px;line-height:1.2;letter-spacing:-.012em;color:var(--text);margin:40px 0 16px}
.article__body a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.article__body strong{color:var(--text)}
.article__body em{color:var(--muted)}
.article__body .mono{font-size:.88em;color:var(--text);background:var(--paper-2);padding:1px 6px;border:1px solid var(--line)}
.article__body blockquote{margin:32px 0;padding:4px 0 4px 24px;border-left:4px solid var(--brand);font-family:var(--f-display);font-weight:600;font-size:21px;line-height:1.4;color:var(--text)}
.article__body ul{list-style:none;margin:0 0 22px}
.article__body ul li{position:relative;padding-left:24px;margin-bottom:11px}
.article__body ul li::before{content:"";position:absolute;left:0;top:11px;width:8px;height:8px;background:var(--brand)}

/* ---------- artykuł na mobile: zwarta czołówka ----------
   Zmierzone (390px, artykuł z trzema tickerami): hero z y=520 na y=483,
   pasek meta ze 114px na 73px. Blok @media (max-width:600px) wyżej (gap,
   font meta, padding gridu) NADAL obowiązuje — tu tylko to, czego tam nie ma.
   Blok musi stać PO bezwarunkowych regułach sekcji „body" (wyżej) —
   trzy selektory mają identyczną specyficzność jak tamte, więc przy remisie
   wygrywa kolejność w pliku, nie @media. */
@media (max-width:680px){
  /* okruszki: kicker nad tytułem i tak linkuje do rubryki, a ostatni segment
     był i tak ucinany wielokropkiem; DOM zostaje (breadcrumb dla wyszukiwarek) */
  .article .crumbs{display:none}
  /* „Poslechnout článek" wraca do szerokości treści i siada w rzędzie meta
     zamiast zajmować własną belkę 40px pod spodem */
  /* mobile: akcje jako własny wiersz z dwiema równymi pigułkami — koniec
     z guzikiem doklejonym w losowym miejscu zawijanego paska meta */
  .article__acts{flex-basis:100%;display:flex;margin-left:0;margin-top:4px}
  .article__acts .audiotrig,.aisum summary{flex:1;justify-content:center;height:34px;padding:0 10px;font-size:11px}
  .aisum{flex:1;display:flex}
  .aisum summary{width:100%}
  .aisum__menu{left:0;right:0;min-width:0}
  .article__meta .audiotrig{margin-left:0;width:auto}
  /* awatar autora rozpychał pierwszy rząd meta do 30px — sama nazwa wystarczy */
  .article__meta .author__ava{display:none}
  .article__title{margin-bottom:14px}
  .article__hero{margin:22px 0}
  /* kolumna ma tu ~34 znaki — 17,5px/1,72 dawało mocno postrzępiony tekst */
  .article__body{font-size:16.5px;line-height:1.62}
  .article__body p{margin:0 0 18px}
  /* inicjał 56px na ekranie 390px zjadał trzy linie; na desktopie zostaje
     (i dopiero teraz działa — wcześniej kradł go pusty <p class="symbole">) */
  .article__body>p:first-of-type::first-letter{float:none;font-family:inherit;font-weight:inherit;font-size:inherit;line-height:inherit;padding:0;color:inherit}
}

/* quote / data card (chart stand-in) */
.quote-card{background:var(--paper);margin:34px 0}
.quote-card__head{display:flex;align-items:center;gap:13px;padding:16px 18px;border-bottom:1px solid var(--line)}
.quote-card__flag{position:relative;width:40px;height:40px;flex:none;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--f-mono);font-weight:600;font-size:16px}
.quote-card__flag i{position:absolute;right:-3px;bottom:-3px;font-style:normal;font-size:11px;background:var(--brand);color:#fff;padding:1px 4px}
.quote-card__sym{display:block;font-family:var(--f-display);font-weight:700;font-size:17px;color:var(--text)}
.quote-card__sub{font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.quote-card__main{display:flex;align-items:baseline;gap:14px;padding:16px 18px 6px}
.quote-card__px{font-family:var(--f-mono);font-weight:600;font-size:30px;letter-spacing:-.01em;color:var(--text);font-variant-numeric:tabular-nums}
.quote-card__chart{display:block;width:100%;height:280px;border:0;background:var(--paper)}

/* reading progress */
.readbar{position:fixed;top:0;left:0;right:0;height:3px;z-index:400;background:var(--brand);transform-origin:left;transform:scaleX(0);pointer-events:none}

/* actions / tags / author */
.article__actions{display:flex;gap:12px;margin:36px 0 0;padding-top:26px;border-top:1px solid var(--line)}
.article__tags{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0}
.tag{font-family:var(--f-mono);font-size:12px;padding:7px 12px;border:1px solid var(--line-2);color:var(--text-2)}
@media (hover:hover){.tag:hover{border-color:var(--brand);color:var(--brand);background:var(--paper-2)}}
.author-bio{display:flex;gap:18px;background:var(--paper-2);border:1px solid var(--line);padding:22px;margin-top:14px}
.author-bio__ava{width:64px;height:64px;flex:none;object-fit:cover;border:1px solid var(--line-2);border-radius:50%}
.author-bio .kicker{margin-bottom:6px}
.author-bio__name{font-size:18px;font-weight:700;margin-bottom:8px}
.author-bio__txt{font-size:14.5px;line-height:1.55;color:var(--text-2)}

/* ============================================================
   MOBILE DRAWER
   ============================================================ */
/* full-screen mobile drawer — drill-down navigation */
.drawer{position:fixed;inset:0;z-index:300;background:var(--ink);color:#fff;display:flex;flex-direction:column;opacity:0;visibility:hidden;transition:opacity .19s ease,visibility 0s linear .19s}
.drawer.open{opacity:1;visibility:visible;transition:opacity .16s cubic-bezier(0,0,.2,1)}
/* Wejście treści: krótka kaskada zamiast jednego przenikania. Każdy element
   rusza się 240 ms, kolejne startują co 25 ms, więc ostatni kończy przed 400 ms
   — menu wygląda płynnie, ale nie każe na siebie czekać. Zamykanie kaskady nie
   ma: przy wyjściu liczy się natychmiastowość, nie efekt. */
@keyframes drawerRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.drawer.open .drawer__bar,
.drawer.open .drawer__panel--root>*{animation:drawerRise .24s cubic-bezier(.22,1,.36,1) both}
.drawer.open .drawer__panel--root>:nth-child(1){animation-delay:.025s}
.drawer.open .drawer__panel--root>:nth-child(2){animation-delay:.05s}
.drawer.open .drawer__panel--root>:nth-child(3){animation-delay:.075s}
.drawer.open .drawer__panel--root>:nth-child(4){animation-delay:.1s}
.drawer.open .drawer__panel--root>:nth-child(5){animation-delay:.125s}
.drawer.open .drawer__panel--root>:nth-child(6){animation-delay:.15s}
@media (prefers-reduced-motion:reduce){
  .drawer.open .drawer__bar,.drawer.open .drawer__panel--root>*{animation:none}
}
.drawer__bar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 22px}
.drawer__close{background:none;border:none;color:rgba(255,255,255,.72);display:flex;padding:6px;margin-right:-6px;transition:color .15s}
.drawer__close svg{width:28px;height:28px}
.drawer__view{position:relative;flex:1;overflow:hidden}
.drawer__panel{position:absolute;inset:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 22px 46px;display:flex;flex-direction:column;background:var(--ink);transition:transform .34s cubic-bezier(.4,0,.2,1),opacity .3s ease;will-change:transform}
.drawer__panel--sub{transform:translateX(100%);opacity:0;visibility:hidden;pointer-events:none}
.drawer__panel--sub.is-active{transform:none;opacity:1;visibility:visible;pointer-events:auto}
.drawer__view.is-deep .drawer__panel--root{transform:translateX(-24%);opacity:0;pointer-events:none}

/* root level items — bez kresek między pozycjami: lista ma czytać się jako
   zwarty blok typografii, nie jako płot. Padding zszedł z 16px na 11px, bo
   luz liczony pod kreskę bez niej rozjeżdżał wiersze. */
.drawer__item{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:11px 2px;border:0;background:none;text-align:left;font-family:var(--f-display);font-weight:700;font-size:23px;letter-spacing:-.012em;color:#fff;cursor:pointer;transition:color .15s}
.drawer__item svg{flex:none;width:19px;height:19px;color:rgba(255,255,255,.42);transition:color .15s}

/* sub level */
.drawer__back{display:inline-flex;align-items:center;gap:9px;align-self:flex-start;background:none;border:0;color:rgba(255,255,255,.7);font-family:var(--f-mono);font-size:11.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;padding:4px 8px 4px 0;margin-bottom:12px;cursor:pointer;transition:color .15s}
.drawer__back svg{width:16px;height:16px}
.drawer__subhead{font-family:var(--f-display);font-weight:800;font-size:30px;letter-spacing:-.02em;color:#fff;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.14)}
.drawer__subhead a{color:inherit}
.drawer__sublabel{font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.42);margin:24px 0 2px}
.drawer__subitem{display:block;padding:13px 2px;border-bottom:1px solid rgba(255,255,255,.08)}
.drawer__subitem b{display:block;font-family:var(--f-display);font-weight:600;font-size:18.5px;letter-spacing:-.01em;color:rgba(255,255,255,.92);transition:color .15s}
.drawer__subitem small{display:block;margin-top:3px;font-family:var(--f-body);font-weight:500;font-size:12.5px;line-height:1.4;color:rgba(255,255,255,.45)}
.drawer__spec{display:flex;align-items:center;gap:11px}
.drawer__spec .dot{flex:none;width:8px;height:8px;border-radius:50%}
.drawer__spec .dot--live{background:var(--down)}
.drawer__spec .dot--blue{background:#4a63f0}
.drawer__spec .dot--plain{background:#fff} /* bazowe .dot ma opacity .5 — wychodzi neutralna szarość */
.drawer__spec .dot--gold{background:var(--amber)}
.drawer__spec .dot--violet{background:#8b5cf6}
.drawer__all{display:inline-flex;align-items:center;gap:11px;align-self:flex-start;margin-top:24px;font-family:var(--f-display);font-weight:800;font-size:18px;letter-spacing:-.01em;color:#fff}
.drawer__all svg{width:26px;height:12px;transition:transform .2s}

/* root footer: utility links + social, a pod nimi pas newslettera.
   Nadwyżkę wysokości (przy pięciu pozycjach menu to na iPhonie ~200px) zjada
   sam pas — stopka i on rosną przez flex:1. Wcześniej robił to margin-top:auto
   i cała nadwyżka siadała jako dziura między listą a linkami. */
.drawer__foot{flex:1;padding-top:16px;display:flex;flex-direction:column;gap:10px}
/* Pas newslettera: pełna szerokość ekranu i dosunięcie do dolnej krawędzi —
   ujemne marginesy odbijają padding `.drawer__panel` (14px 22px 46px).
   Górny odstęp mały, bo ikony społecznościowe mają własne 12px optycznego
   luzu w polu 40×40 — liczony z nimi wychodzi i tak dwa razy tyle. */
/* justify-content:center dopiero gdy pas urośnie — przy naturalnej wysokości
   nie ma czego centrować, a na ekranie bez paska przeglądarki nadwyżka rozkłada
   się nad i pod treścią, zamiast zostawiać martwy błękit pod przyciskiem. */
.drawer__nl{flex:1;display:flex;flex-direction:column;justify-content:center;margin:6px -22px -46px;padding:30px 22px 34px;background:var(--brand);color:#fff}
.drawer__nl-kicker{margin:0;font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.drawer__nl-title{margin:10px 0 0;font-family:var(--f-display);font-weight:800;font-size:25px;line-height:1.14;letter-spacing:-.02em;color:#fff}
.drawer__nl-sub{margin:9px 0 0;max-width:34ch;font-family:var(--f-body);font-weight:500;font-size:14px;line-height:1.5;color:rgba(255,255,255,.78)}
.drawer__nl-cta{display:inline-flex;align-self:flex-start;align-items:center;gap:11px;margin-top:20px;font-family:var(--f-display);font-weight:700;font-size:16.5px;letter-spacing:-.01em;color:#fff}
/* nota prawna zamyka pas — mniejsza niż w formularzach, bo tu nie stoi pod
   polem do wpisania, tylko pod odnośnikiem */
.drawer__nl .nllegal{margin-top:18px}
.drawer__nl-cta svg{flex:none;width:26px;height:12px;transition:transform .2s}
/* Przełącznik motywu: segmentowana pigułka, wskaźnik jeździ pod aktywną opcją.
   Pozycję wskaźnika liczy sam CSS z `data-theme-mode` na <html> — bez JS-owego
   mierzenia szerokości, bo trzy segmenty są równe (1fr każdy). */
.thememode{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:3px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:999px}
.thememode__glide{position:absolute;top:3px;bottom:3px;left:3px;width:calc((100% - 10px)/3);border-radius:999px;background:rgba(255,255,255,.14);transition:transform .26s cubic-bezier(.22,.61,.36,1)}
/* skok o segment = własna szerokość + 2px przerwy z grid-gap */
html[data-theme-mode=light] .thememode__glide{transform:translateX(calc(100% + 2px))}
html[data-theme-mode=dark] .thememode__glide{transform:translateX(calc(200% + 4px))}
.thememode__opt{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 4px;border:0;border-radius:999px;background:none;font-family:var(--f-mono);font-size:11.5px;font-weight:600;letter-spacing:.03em;color:rgba(255,255,255,.55);cursor:pointer;transition:color .18s}
.thememode__opt svg{flex:none;width:14px;height:14px}
.thememode__opt[aria-checked=true]{color:#fff}
/* wariant w pasku szuflady: same ikony, etykiety schodzą do .sr-only. 120px
   daje segment 38×42px — blisko progu dotykowego, a pigułka nie zjada paska. */
.thememode--bare{width:120px}
.thememode--bare .thememode__opt{gap:0;padding:10px 0}
/* potwierdzenie wyboru trybu — zapala się obok pigułki w pasku szuflady
   i gaśnie; margin-right:auto trzyma je przy niej, bo pasek jest
   space-between i bez tego napis odjechałby na środek */
.thememode__flash{margin-right:auto;font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.72);opacity:0;transform:translateX(-4px);transition:opacity .22s ease,transform .22s ease;pointer-events:none}
.thememode__flash.is-on{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.thememode__glide{transition:none}.thememode__flash{transition:opacity .22s ease;transform:none}}

.drawer__utils{display:flex;flex-wrap:wrap;gap:11px 22px}
.drawer__utils a{font-family:var(--f-mono);font-size:12.5px;font-weight:600;letter-spacing:.03em;color:rgba(255,255,255,.7);transition:color .15s}
.drawer__social{display:flex;gap:9px;margin:0 0 0 -10px}
/* bez ramek — kwadrat 40×40 zostaje jako cel dotykowy, tylko przestaje być
   widoczny. Ikony jaśniejsze niż w pasku użytkowym: ramka je dotąd kotwiczyła,
   bez niej przy starej jasności robiły się mgliste. */
.drawer__social a{width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.72);border:0;transition:color .15s}
.drawer__social svg,.drawer__social img{width:16px;height:16px;object-fit:contain;margin:auto} /* margin:auto — patrz .util__social */
.drawer__item:active,.drawer__subitem:active,.drawer__all:active,.drawer__back:active,.drawer__close:active,.drawer__utils a:active,.drawer__social a:active{opacity:.6}
.drawer__nl-cta:active{opacity:.6}
@media (hover:hover){
  .drawer__close:hover{color:#fff}
  .drawer__item:hover{color:var(--brand)}
  .drawer__item:hover svg{color:#fff}
  .drawer__back:hover{color:#fff}
  .drawer__subitem:hover b{color:#fff}
  .drawer__all:hover svg{transform:translateX(5px)}
  .drawer__nl-cta:hover svg{transform:translateX(5px)}
  .drawer__utils a:hover{color:#fff}
  .drawer__social a:hover{color:#fff}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1280px){
  .nav__menu > a,.nav__item > a{padding:0 9px;font-size:12.5px}
  .nav__cta{padding:8px 12px;margin:0 10px 0 8px}
}
@media (max-width:1080px){
  .nav__menu{display:none}
  .burger{display:flex}
  .brand{margin-right:0}
  .nav__row{justify-content:space-between}
  .search-btn{border-left:none}
  .lead{grid-template-columns:1fr 320px;gap:36px}
  .markets__grid{grid-template-columns:1fr}
  .movers{margin-top:0}
  .cta__inner{grid-template-columns:1fr;gap:24px}
}

@media (max-width:820px){
  .util__links{gap:10px}
  .util__links a{font-size:0;gap:0}
  .util__links a .ico{width:18px;height:18px}
  .lead{grid-template-columns:1fr;gap:28px;padding:32px 0}
  .lead__side{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:8px}
  .lead__title{font-size:32px}
  .cards{grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
  .card{border:none}
  .oppo__title{font-size:23px}
}

@media (max-width:680px){
  :root{--pad:16px}
  .nav__cta{display:none}
  .util__social{gap:0}
  .util__social a{width:28px}
  .util__links{gap:6px}
  .util__links a{display:none}
  .nav__row{min-height:56px}
  .ticker__live{padding:0 12px}
  .section{padding:40px 0}
  .section-title{font-size:21px}
  .snaps{grid-template-columns:1fr 1fr}
  .cards{grid-template-columns:1fr}
  .market__head{gap:16px}
  .market__more span{display:none}
  .market__tabs{gap:16px}
  .market__tab{padding:4px 0 10px;font-size:12px;letter-spacing:.04em}
  .market__row{gap:10px}
  .mstock{padding:12px 14px}
  .mstock__head{margin-bottom:8px}
  .mstock__mono{width:28px;height:28px}
  .mstock__mono img{width:17px;height:17px}
  .mstock__tk{font-size:14px}
  .mstock__px{font-size:14.5px}
  .mstock .chg{font-size:12.5px}
  .lead__title{font-size:28px}
  .lead__deck{font-size:16px}
  .footer__grid{grid-template-columns:1fr 1fr;gap:28px}
  .footer__brand{grid-column:1/-1}
  .footer__bottom{flex-direction:column;align-items:flex-start;gap:12px}
  .article__deck{font-size:17px}
  .article__share{margin-left:0;width:100%;margin-top:4px}
  .quote-card__stats{grid-template-columns:1fr 1fr}
  .quote-card__stats>div:nth-child(2){border-right:none}
  .quote-card__stats>div:nth-child(1),.quote-card__stats>div:nth-child(2){border-bottom:1px solid var(--line)}
  .article__actions .btn{flex:1}
  .author-bio{flex-direction:column;gap:14px}
}

/* ============================================================
   HOME — 3-column portal
   ============================================================ */
/* overflow-x:clip — pozwala na full-bleed (.ipocover) bez poziomego paska */
.home{background:var(--paper);padding:28px 0 56px;overflow-x:clip}
.home__grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;grid-template-areas:"main rail";gap:28px;align-items:start}
.col{display:flex;flex-direction:column;gap:38px;min-width:0}
.col--rail{grid-area:rail;position:sticky;top:88px}
.col--main{grid-area:main}

/* Homepage: zamiast ciągłego sidebara — stos pasm. Bezpośrednie dziecko
   .homebands zajmuje pełną szerokość wrapa; `.band` rozbija się na sekcję
   + towarzysza po prawej (Trendy ↔ Právě teď, Zprávy ↔ Nejčtenější, …).
   Szerokość prawej kolumny i gap są te same co w dawnym railu, więc moduły
   towarzyszy nie wymagają żadnych własnych przeróbek. */
.homebands{display:flex;flex-direction:column;gap:38px}
.band{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:38px 28px;align-items:start}
.band > *{min-width:0}
/* opcjonalny wrapper lewej kolumny — gdy pod sekcją ma stać jeszcze coś
   (np. baner), co inaczej wypadłoby pod całym pasmem */
.band__main{display:flex;flex-direction:column;gap:28px;min-width:0}
/* bez sticky — to nie jest sidebar, tylko towarzysz jednej sekcji; ma stać
   w miejscu razem z nią, a nie jechać za scrollem przez całą stronę */
.band__side{display:flex;flex-direction:column;gap:34px;min-width:0}
/* kółko przy tytule tylko u towarzyszy; sekcje pełnowymiarowe mają .link-arrow */
.homebands .module__title::after{display:none}
.homebands .band__side .module__title::after{display:inline-block}
/* Kolumny feedu (kategorie, podcast): dzieci — .livehead, .catfeed/.poditems,
   .loadmore, .pager — mają własne marginesy, więc .col gap:38px by się z nimi
   dublował. Zerujemy gap i polegamy na jednym źródle odstępu (marginesach). */
.catcol,.podpage{gap:0}

/* flat module + big section heading */
.module{background:transparent;border:none}
.module__title{display:flex;align-items:center;font-size:32px;font-weight:800;letter-spacing:-.015em;padding:14px 16px;border-bottom:1px solid var(--line)}
.module__ico{height:28px;width:auto;flex:none;margin-right:11px}
.module__title::after,.section-title::after{content:"";flex:none;width:23px;height:23px;margin-left:11px;background-color:var(--text);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='12' cy='12' r='11' stroke='%23000' stroke-opacity='.32' stroke-width='1.6'/%3E%3Cpath d='M10 7.5l5 4.5-5 4.5' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='12' cy='12' r='11' stroke='%23000' stroke-opacity='.32' stroke-width='1.6'/%3E%3Cpath d='M10 7.5l5 4.5-5 4.5' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.section-title::after{display:inline-block;vertical-align:middle;margin-top:-3px}
.module__title::after,.section-title::after{transition:transform .22s cubic-bezier(.22,.61,.36,1)}
@media (hover:hover){.module__title:hover::after,.section-title:hover::after{transform:translateX(4px)}}
.module__title:has(.module__ico)::after{display:none}
.module__more{display:flex;align-items:center;justify-content:center;gap:8px;margin:0;width:100%;padding:14px;border:none;border-top:1px solid var(--line);color:var(--accent);text-transform:uppercase;font-size:12px;font-weight:600;letter-spacing:.04em}
/* Gdy tytuł ma już jawny link do rubryki po prawej, guzik pod listą powtarza to
   samo — chowamy go. Wraca poniżej 561px, bo tam .link-arrow znika z tytułu. */
@media (min-width:561px){.module:has(.module__title .link-arrow) .module__more{display:none}}
/* wrapper treści guzika — neutralny; mobile robi z niego box między kreskami */
.module__more-in{display:contents}
@media (hover:hover){.module__more:hover{background:var(--paper-2)}}
.module__more svg{width:24px;height:11px}

/* breaking list — live timeline */
.breaking{list-style:none;position:relative;padding:6px 0 8px}
.breaking::before{content:"";position:absolute;left:26px;top:26px;bottom:28px;width:2px;background:var(--line)}
.breaking li{border-bottom:none}
.breaking a{display:block;position:relative;padding:10px 16px 12px 47px;transition:background .15s}
@media (hover:hover){.breaking a:hover{background:var(--paper-2)}}
.breaking a::before{content:"";position:absolute;left:21.5px;top:15px;width:11px;height:11px;border:2px solid #d22b28;border-radius:50%;background:#fff;box-shadow:0 0 0 3px var(--paper)}
[data-theme="dark"] .breaking a::before{background:#0f1116}
.breaking li:first-child a::before{border:2px solid #d22b28;background:var(--down);animation:ping 1.8s ease-out infinite}
@keyframes ping{0%{box-shadow:0 0 0 3px var(--paper),0 0 0 3px rgba(210,43,39,.5)}70%{box-shadow:0 0 0 3px var(--paper),0 0 0 11px rgba(210,43,39,0)}100%{box-shadow:0 0 0 3px var(--paper),0 0 0 3px rgba(210,43,39,0)}}
.breaking__time{display:inline-flex;align-items:center;gap:6px;margin-bottom:6px;font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.breaking__time .ico{width:13px;height:13px}
.breaking li:first-child .breaking__time{color:var(--down);font-weight:700}
.breaking li:first-child .breaking__time::after{content:"Živě";margin-left:6px;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:rgba(210,43,39,.1);color:var(--down);padding:2.5px 7px}
.breaking h3{font-size:15px;font-weight:700;line-height:1.3;color:var(--text)}
/* link „Vše z Právě teď" — tylko mobilny wariant na home */
.breaking__more{display:none}
@media (hover:hover){.breaking a:hover h3{text-decoration:underline}}

/* Okładka najbliższego úpisu na homepage — język .magcover z Miliardáři
   (zdjęcie + scrim + duży tytuł + CTA), ale kontenerowa, bo sąsiednie pasma
   też trzymają się wrapa. */
/* full-bleed mimo siedzenia w .wrap: ujemne marginesy wypychają blok do krawędzi
   viewportu. 50vw liczy się ze szerokością scrollbara, więc nadmiar (~15px)
   przycina .home{overflow-x:clip} — `clip`, nie `hidden`, żeby nie zrobić z
   sekcji kontekstu przewijania i nie popsuć sticky w środku. */
.ipocover{position:relative;display:block;overflow:hidden;background:var(--ink);color:#fff;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
/* bez max-height — cap 600px zjadałby wysokość zadaną w vh */
.ipocover{height:60vh;min-height:400px}
/* zdjęcie ma 20% zapasu wysokości — w tym luzie jedzie parallaxa przy scrollu,
   z marginesem, żeby przy skrajnym przesunięciu nie odsłonić krawędzi */
.ipocover__img{position:absolute;left:0;top:-12%;width:100%;height:124%;object-fit:cover}
.ipocover__scrim{position:absolute;inset:0;display:flex;align-items:stretch;background:linear-gradient(to top,rgba(6,7,11,.97) 0%,rgba(6,7,11,.9) 14%,rgba(6,7,11,.62) 34%,rgba(6,7,11,.3) 54%,rgba(6,7,11,.12) 74%,rgba(6,7,11,.08) 100%),rgba(6,7,11,.34)}
/* tekst trzyma linię wrapa, mimo że tło idzie od krawędzi do krawędzi;
   kicker u góry, blok treści przy dole — stąd space-between */
.ipocover__in{display:flex;flex-direction:column;justify-content:space-between;gap:32px;width:100%;max-width:var(--wrap);margin:0 auto;padding:38px var(--pad) 44px}
.ipocover__kicker{display:flex;align-items:center;gap:13px;font-family:var(--f-mono);font-size:11.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}
.ipocover__kicker b{background:var(--brand);color:#fff;padding:5px 12px;border-radius:100px;font-weight:600}
.ipocover__kicker span{color:rgba(255,255,255,.78)}
.ipocover__body{display:block}
.ipocover__title{display:block;max-width:22ch;font-family:var(--f-display);font-size:clamp(28px,4vw,52px);font-weight:800;line-height:1.04;letter-spacing:-.025em;color:#fff}
.ipocover__dek{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:18px;max-width:60ch;font-size:17px;line-height:1.55;color:rgba(255,255,255,.82)}
/* CTA i fakty w jednej linii — rozciąga treść na szerokość zamiast zbijać w słupek */
.ipocover__foot{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:22px 44px;margin-top:32px;padding-top:26px;border-top:1px solid rgba(255,255,255,.18)}
.ipocover__meta{display:flex;flex-wrap:wrap;gap:12px 40px}
.ipocover__meta > span{display:flex;flex-direction:column;gap:5px;font-family:var(--f-mono);font-size:13px;font-weight:700;letter-spacing:.02em;color:#fff}
.ipocover__meta i{font-style:normal;font-size:9.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.55)}
@media (max-width:680px){
  .ipocover{height:auto;aspect-ratio:4/5;min-height:0;max-height:none}
  .ipocover__scrim{background:linear-gradient(to top,rgba(6,7,11,.97) 0%,rgba(6,7,11,.9) 20%,rgba(6,7,11,.58) 44%,rgba(6,7,11,.28) 64%,rgba(6,7,11,.12) 100%),rgba(6,7,11,.34)}
  .ipocover__in{padding:26px var(--pad) 30px;gap:24px}
  .ipocover__dek{font-size:15px;margin-top:14px}
  .ipocover__foot{margin-top:24px;padding-top:20px}
  .ipocover__meta{gap:12px 26px}
}

/* Wyłanianie się okładki przy scrollu — animacje sterowane pozycją w viewporcie
   (scroll-driven animations, bez JS). Tam, gdzie przeglądarka ich nie zna,
   wszystko zostaje statyczne — stąd @supports zamiast fallbacku skryptem.

   UWAGA: nie da się tu użyć anonimowego `view()`, bo .ipocover ma overflow:hidden,
   czyli sama jest kontenerem przewijania — elementy w środku nigdy z niej nie
   wyjeżdżają i postęp stałby w miejscu. Dlatego okładka NAZYWA swój timeline,
   a dzieci się do niego odwołują. */
@keyframes ipocoverRise{from{transform:translate3d(0,-8%,0)}to{transform:translate3d(0,8%,0)}}
@keyframes ipocoverFadeUp{from{opacity:0;transform:translate3d(0,26px,0)}to{opacity:1;transform:none}}
@keyframes ipocoverVeil{from{opacity:.55}to{opacity:0}}
@supports (animation-timeline: view()){
  @media (prefers-reduced-motion: no-preference){
    .ipocover{view-timeline-name:--ipocover;view-timeline-axis:block}
    /* obraz sunie wolniej niż strona — efekt głębi */
    .ipocover__img{animation-name:ipocoverRise;animation-duration:auto;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--ipocover;animation-range:cover 0% cover 100%}
    /* dodatkowa czerń, która zbiega do zera, gdy okładka wchodzi w kadr */
    .ipocover::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:#06070b;animation-name:ipocoverVeil;animation-duration:auto;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--ipocover;animation-range:entry 0% entry 85%}
    /* tekst wypływa z dołu, kicker odrobinę wcześniej niż reszta */
    .ipocover__kicker{animation-name:ipocoverFadeUp;animation-duration:auto;animation-timing-function:cubic-bezier(.22,.61,.36,1);animation-fill-mode:both;animation-timeline:--ipocover;animation-range:entry 10% entry 60%}
    .ipocover__body{animation-name:ipocoverFadeUp;animation-duration:auto;animation-timing-function:cubic-bezier(.22,.61,.36,1);animation-fill-mode:both;animation-timeline:--ipocover;animation-range:entry 20% entry 75%}
  }
}

/* ad slot */
.adslot{border:1px dashed var(--line-2);background:var(--paper)}
.adslot__label{display:block;padding:7px 14px;border-bottom:1px solid var(--line);background:var(--paper-2);font-family:var(--f-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.adslot__body{padding:18px 16px;display:flex;flex-direction:column;gap:8px}
.adslot__body strong{font-family:var(--f-display);font-size:17px;color:var(--text)}
.adslot__body>span{font-size:13px;color:var(--muted);line-height:1.45}
.adslot__cta{color:var(--accent)!important;font-weight:600}

/* leaderboard ad (1040x160) between sections */
.ad-leaderboard{margin:0}
.ad-leaderboard__label{display:block;font-family:var(--f-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.ad-leaderboard__link{display:block;border:1px solid var(--line)}
.ad-leaderboard__link img{display:block;width:100%;height:auto}

/* MARKET STRIP — trending stocks (light) */
.market{background:var(--paper);color:var(--text);padding:30px 0 0}
.market[hidden]{display:none}
.market__head{display:flex;align-items:flex-end;gap:26px;margin-bottom:20px;border-bottom:1px solid var(--line)}
.market__index{display:inline-flex;align-items:center;gap:12px}
.market__logo{flex:none;width:36px;height:36px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center}
.market__logo img{width:100%;height:100%;object-fit:cover}
.market__title{font-size:22px;font-weight:800;color:var(--text);letter-spacing:-.015em}
.market__chev{width:17px;height:17px;color:var(--muted);transition:transform .2s,color .15s}
@media (hover:hover){.market__index:hover .market__chev{color:var(--text);transform:translateX(2px)}}
.market__more{margin-left:auto;display:inline-flex;align-items:center;gap:8px;padding-bottom:13px;font-family:var(--f-mono);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);white-space:nowrap}
.market__more svg{width:24px;height:11px;transition:transform .2s}
@media (hover:hover){.market__more:hover svg{transform:translateX(4px)}}
.market__tabs{display:flex;gap:26px;max-width:100%;overflow-x:auto;scrollbar-width:none}
.market__tabs::-webkit-scrollbar{display:none}
.market__tab{flex:none;position:relative;appearance:none;border:0;background:none;cursor:pointer;padding:4px 1px 12px;font-family:var(--f-mono);font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);transition:color .15s}
.market__tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--brand);transform:scaleX(0);transform-origin:left;transition:transform .22s ease}
@media (hover:hover){.market__tab:hover{color:var(--text)}}
.market__tab.is-active{color:var(--text)}
.market__tab.is-active::after{transform:scaleX(1)}
.market__row{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:2px;scrollbar-width:none}
.market__row[hidden]{display:none}
.market__row.is-in .mstock{animation:mstockIn .38s cubic-bezier(.22,.61,.36,1) both}
.market__row.is-in .mstock:nth-child(2){animation-delay:.03s}
.market__row.is-in .mstock:nth-child(3){animation-delay:.06s}
.market__row.is-in .mstock:nth-child(4){animation-delay:.09s}
.market__row.is-in .mstock:nth-child(5){animation-delay:.12s}
.market__row.is-in .mstock:nth-child(6){animation-delay:.15s}
.market__row.is-in .mstock:nth-child(7){animation-delay:.18s}
.market__row.is-in .mstock:nth-child(8){animation-delay:.21s}
@keyframes mstockIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.market__row::-webkit-scrollbar{height:0;display:none}
.mstock{flex:0 0 auto;width:180px;min-width:180px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:15px 17px;background:var(--paper);transition:box-shadow .15s;box-shadow:0 2px 6px rgb(0 0 0 / 8%);border-radius:12px}
@media (hover:hover){.mstock:hover{box-shadow:0 5px 14px rgb(0 0 0 / 14%)}}
.mstock__head{display:flex;align-items:center;gap:10px;margin-bottom:10px;align-self:stretch}
.mstock__mono{flex:none;width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:50%;overflow:hidden}
.mstock__mono img{width:20px;height:20px;object-fit:contain}
.mstock__mono--tx{font-family:var(--f-mono);font-weight:700;font-size:10.5px;letter-spacing:.02em;color:var(--ink)}
.mstock__mono--fx{font-size:17px;line-height:1}
.mstock__id{flex:1;min-width:0}
.mstock__tk{display:block;font-family:var(--f-display);font-weight:800;font-size:15px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mstock__nm{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mstock__px{margin-left:0;font-family:var(--f-mono);font-weight:700;font-size:16px;color:var(--text);letter-spacing:-.01em;font-variant-numeric:tabular-nums;text-align:left;white-space:nowrap}
.mstock__px em{font-style:normal;font-size:10px;font-weight:600;color:var(--muted);margin-left:3px}
.mstock .chg{font-size:13.5px;min-width:0;text-align:left}
.mstock .chg.up{color:var(--up)}
.mstock .chg.down{color:var(--down)}

/* hero with overlaid text */
.hero__media{display:block;position:relative;overflow:hidden}
.hero__media img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .5s}
@media (hover:hover){.hero__media:hover img{transform:scale(1.03)}}
.hero__overlay{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:30px 24px 22px;background:linear-gradient(transparent,rgba(7,8,13,.12) 28%,rgba(7,8,13,.9))}
.hero__tag{background:var(--brand);color:#fff;font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:6px 12px}
.hero__title{color:#fff;font-size:28px;font-weight:800;line-height:1.12;letter-spacing:-.018em}
@media (hover:hover){.hero__media:hover .hero__title{text-decoration:underline;text-underline-offset:3px}}
.hero__date{display:inline-flex;align-items:center;gap:7px;color:rgba(255,255,255,.85);font-family:var(--f-mono);font-size:12px}
.hero__date .ico{width:14px;height:14px}

/* podcast banner */
.podcast{display:flex;align-items:center;gap:16px;padding:16px 20px;color:#fff;background:linear-gradient(100deg,var(--ink),#1b2358);border:1px solid var(--ink)}
.podcast__icon{flex:none;width:42px;height:42px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.3)}
.podcast__icon svg{width:22px;height:22px}
.podcast__txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.podcast__txt b{font-family:var(--f-display);font-size:16px;font-weight:700}
.podcast__txt span{font-size:12.5px;color:rgba(255,255,255,.7)}
.podcast__btn{flex:none;background:#fff;color:var(--ink);font-weight:700;font-size:13px;padding:9px 16px}
@media (hover:hover){.podcast:hover .podcast__btn{background:var(--brand);color:#fff}}

/* zprávy — two-up thumbnail grid */
.newsgrid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}
.newsitem{display:flex;gap:12px;padding:16px;background:var(--paper)}
.newsitem__media{flex:none;width:74px;height:64px;overflow:hidden}
.newsitem__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
@media (hover:hover){.newsitem:hover .newsitem__media img{transform:scale(1.06)}}
.newsitem h3{font-size:14px;font-weight:700;line-height:1.28;margin-bottom:6px}
@media (hover:hover){.newsitem h3 a:hover{color:var(--accent)}}
.newsitem time{font-family:var(--f-mono);font-size:11px;color:var(--muted)}

/* akcie — large feed items */
/* meta wierszy: [ikona + wartość] jako nierozrywalna para. Ikony domyślnie
   ukryte — wchodzą dopiero w kompaktowych wierszach mobilnych, gdzie linia
   „data · czas czytania" stoi sama i bez nich wygląda jak surowy tekst */
.byline__bit{display:inline-flex;align-items:center;gap:5px;min-width:0}
/* gdy linia meta ma ikony, kropki-separatory są nadmiarowe — grupy rozdziela
   sama ikona plus szerszy odstęp */
.byline:has(.byline__bit) .dot{display:none}
.byline:has(.byline__bit){gap:4px 14px}
.ico--meta{display:block;width:13px;height:13px;flex:none;opacity:.9}
.feedlist{display:flex;flex-direction:column}
/* wiersze feedu = ten sam vzhled co karty v „řádkovém" widoku kategorii
   (CategoryPage: obraz 320px/16:10, tytuł 25px, excerpt 15.5px/2 linie).
   Padding horyzontalny zostaje 16px — teksty trzymają się linii nagłówka modułu. */
.feeditem{display:flex;gap:30px;align-items:flex-start;padding:21px 16px;border-bottom:1px solid var(--line)}
/* home feedy pobierają 6 pozycji: desktop pokazuje 3 (duże wiersze),
   pełną szóstkę odsłania kompaktowy mobile */
.feedlist--compact .feeditem:nth-child(n+4){display:none}
.feedlist .feeditem:last-child{border-bottom:none}
/* desktop: przy 6 pobranych ostatni WIDOCZNY to trzeci — bez kreski */
.feedlist--compact .feeditem:nth-child(3){border-bottom:none}
@media (max-width:680px){.feedlist--compact .feeditem:nth-child(3){border-bottom:1px solid var(--line)}}
/* --all: feed pokazuje na desktopie wszystkie pobrane pozycje, nie tylko 3
   (mobile ma własny limit 5 i tu go nie ruszamy — stąd min-width) */
@media (min-width:681px){
  .feedlist--compact.feedlist--all .feeditem:nth-child(n+4){display:flex}
  .feedlist--compact.feedlist--all .feeditem:nth-child(3){border-bottom:1px solid var(--line)}
  .feedlist--compact.feedlist--all .feeditem:last-child{border-bottom:none}
}
.feeditem__media{flex:none;width:320px;align-self:flex-start;overflow:hidden}
.feeditem__media img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .5s}
@media (hover:hover){.feeditem:hover .feeditem__media img{transform:scale(1.04)}}
.feeditem__body{flex:1;min-width:0}
.feeditem__body h3{font-size:25px;font-weight:700;line-height:1.2;letter-spacing:-.016em;margin-bottom:0}
@media (hover:hover){.feeditem__body h3 a:hover{text-decoration:underline}}
.feeditem__body p:not(.kicker):not(.byline){margin-top:12px;margin-bottom:0;font-size:16.5px;color:var(--text-2);line-height:1.55;font-weight:500;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* tickery pod linią z datą (byline) — desktop i mobile */
.feeditem__body .ticks{margin:11px 0 0}
.feeditem__body .byline{margin-top:16px;margin-bottom:0}
.feeditem__author{color:inherit}
.feeditem__body .kicker--bar{margin-bottom:12px}
.feeditem__tags{display:flex;flex-wrap:wrap;gap:5px 14px;margin-top:13px}
.feeditem__tags a{font-size:13px;color:var(--muted)}
@media (hover:hover){.feeditem__tags a:hover{color:var(--accent)}}

.cards--pad{padding:18px 16px 16px}

.module__title:has(+ .module__sub){border-bottom:none;padding-bottom:2px}
.module__sub{padding:0 16px 13px;border-bottom:1px solid var(--line);font-size:12.5px;line-height:1.5;color:var(--muted)}
.section-sub{margin:0;font-size:13.5px;color:var(--muted)}

/* e-book shelf band */
.bookband{position:relative;overflow:hidden;color:var(--text);padding:50px 0 56px;background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1640 660' preserveAspectRatio='xMidYMax slice'%3E%3Cpath d='M0 560 C 140 530, 200 470, 330 480 S 560 380, 700 400 S 930 270, 1080 300 S 1330 160, 1470 190 S 1600 120, 1640 100' fill='none' stroke='rgba(106,112,128,0.07)' stroke-width='1.5'/%3E%3C/svg%3E") center bottom/cover no-repeat;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.bookband .section-head{border-bottom:none;padding-bottom:0}
.bookband__slider{position:relative}
.bookband__covers{display:flex;gap:34px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;cursor:grab;padding:6px 22px 6px 4px}
.bookband__covers::-webkit-scrollbar{display:none}
.bookband__covers.is-dragging{cursor:grabbing;scroll-snap-type:none}
.bookband__cover{flex:0 0 20%;scroll-snap-align:start;display:block;min-width:0;text-align:center}
.bookband__bookimg{position:relative;display:block;filter:drop-shadow(0 16px 12px rgb(20 22 29 / 22%));transition:transform .3s cubic-bezier(.22,.61,.36,1)}
@media (hover:hover){.bookband__cover:hover .bookband__bookimg{transform:translateY(-7px) rotate(-1deg)}}
.bookband__bookimg img{display:block;width:100%;aspect-ratio:7/10;object-fit:cover;border-radius:3px 8px 8px 3px}
.bookband__bookimg::before{content:"";position:absolute;inset:0;z-index:1;border-radius:3px 8px 8px 3px;background:linear-gradient(90deg,rgba(0,0,0,.24) 0,rgba(255,255,255,.2) 2.5%,rgba(0,0,0,.1) 5%,transparent 9%,transparent 96%,rgba(0,0,0,.08) 100%);pointer-events:none}
.bookband__bookimg::after{content:"";position:absolute;top:1.5%;bottom:.8%;right:-7px;width:7px;border-radius:0 2.5px 2.5px 0;background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.05) 0 1px,transparent 1px 3px),linear-gradient(90deg,#fff 0,#f2f2f4 55%,#dcdde3 100%)}
.bookband__flag{position:absolute;left:9px;top:9px;z-index:2;font-style:normal;font-family:var(--f-mono);font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;background:var(--amber);color:#14161d;padding:3px 7px}
.bookband__cover b{display:block;margin-top:15px;font-family:var(--f-display);font-weight:700;font-size:14.5px;line-height:1.3;letter-spacing:-.008em;color:var(--text);transition:color .15s}
@media (hover:hover){.bookband__cover:hover b{color:var(--accent)}}
.bookband__cover small{display:block;margin-top:4px;font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.bookband__arrow{position:absolute;top:34%;z-index:2;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-2);background:var(--paper);color:var(--text);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgb(0 0 0 / 12%);transition:background .15s,border-color .15s,color .15s}
@media (hover:hover){.bookband__arrow:hover{background:var(--brand);border-color:var(--brand);color:#fff}}
.bookband__arrow svg{width:18px;height:18px}
.bookband__arrow--prev{left:-14px}
.bookband__arrow--next{right:-14px}
@media (max-width:900px){.bookband__cover{flex-basis:31%}}
@media (max-width:680px){.bookband{padding:38px 0 44px}.bookband__cover{flex-basis:46%}.bookband__arrow{display:none}}

/* Škola bullionáře + e-booky */
.skola{display:grid;grid-template-columns:1fr;padding:22px 16px 4px}
.skola__lead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:32px;align-items:center}
.skola__media{display:block;overflow:hidden}
.skola__media img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .5s}
@media (hover:hover){.skola__lead:hover .skola__media img{transform:scale(1.04)}}
.skola__txt .kicker{display:block;margin-bottom:9px}
.skola__txt h3{font-size:23px;font-weight:800;line-height:1.2;letter-spacing:-.015em;color:var(--text);transition:color .15s}
@media (hover:hover){.skola__lead:hover h3{color:var(--accent)}}
.skola__txt p{margin-top:10px;font-size:15.5px;line-height:1.55;color:var(--text-2)}
.skola__txt .byline{margin-top:12px}
.skola__row{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:22px 16px 0;padding:20px 0 22px;border-top:1px solid var(--line)}
.skolamini{display:block;min-width:0}
.skolamini .kicker{display:block;margin-bottom:7px}
.skolamini h3{font-size:16px;font-weight:800;line-height:1.3;letter-spacing:-.01em;color:var(--text);transition:color .15s}
@media (hover:hover){.skolamini:hover h3{color:var(--accent)}}
.skolamini p{margin-top:7px;font-size:13px;line-height:1.5;color:var(--text-2)}
@media (max-width:680px){.skola__lead{grid-template-columns:1fr}.skola__row{grid-template-columns:1fr;gap:20px}}

/* podcast: featured covers + listen cards */
.podgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:20px 16px 0}
.podfeat{display:block}
.podfeat__media{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;border-radius:14px;background:#1c1f28}
.podfeat__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}
@media (hover:hover){.podfeat:hover .podfeat__media img{transform:scale(1.04)}}
.podfeat__media::after{content:"";position:absolute;inset:0;background:rgba(7,8,11,.12);transition:background .2s}
@media (hover:hover){.podfeat:hover .podfeat__media::after{background:rgba(7,8,11,.22)}}
.podfeat__note{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;color:#fff;filter:drop-shadow(0 2px 8px rgb(0 0 0 / 35%))}
.podfeat__note svg{width:46px;height:46px}
.podfeat__body{display:flex;align-items:flex-start;gap:12px;margin-top:14px;padding:0 2px}
.podfeat__ava{flex:none;width:36px;height:36px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}
.podfeat__id{min-width:0}
.podfeat__id h3{font-size:16px;font-weight:800;line-height:1.32;letter-spacing:-.01em;color:var(--text);transition:color .15s}
@media (hover:hover){.podfeat:hover .podfeat__id h3{color:var(--accent)}}
.podfeat__meta{display:block;margin-top:4px;font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.podrow{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:20px 16px 22px}
.podcardsm{display:flex;align-items:center;gap:15px;padding:15px 17px;border:1px solid var(--line);border-radius:12px;transition:box-shadow .15s,border-color .15s}
@media (hover:hover){.podcardsm:hover{border-color:var(--line-2);box-shadow:0 8px 20px rgb(0 0 0 / 8%)}}
.podcardsm>img{flex:none;width:66px;height:66px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}
.podcardsm__body{min-width:0}
.podcardsm__body h3{font-size:14px;font-weight:700;line-height:1.3;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.podcardsm__body time{display:block;margin-top:3px;font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.podcardsm__listen{display:inline-flex;align-items:center;gap:8px;margin-top:8px;font-size:12.5px;font-weight:700;color:var(--text);transition:color .15s}
.podcardsm__listen i{width:24px;height:24px;border-radius:50%;background:var(--tint);color:var(--accent);display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}
.podcardsm__listen i svg{width:11px;height:11px;margin-left:1px}
@media (hover:hover){.podcardsm:hover .podcardsm__listen{color:var(--accent)}}
@media (hover:hover){.podcardsm:hover .podcardsm__listen i{background:var(--brand);color:#fff}}
.tracks{display:flex;flex-direction:column;padding:10px 8px 12px}
.track{display:flex;align-items:center;gap:13px;padding:9px 8px;border-radius:10px;transition:background .15s}
@media (hover:hover){.track:hover{background:var(--paper-2)}}
.track__thumb{position:relative;flex:none;width:52px;height:52px;border-radius:99px;overflow:hidden;border:1px solid var(--line)}
.track__thumb img{width:100%;height:100%;object-fit:cover;transition:opacity .15s}
.track__thumb svg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:18px;height:18px;color:#fff;opacity:0;transition:opacity .15s;filter:drop-shadow(0 1px 4px rgb(0 0 0 / 45%))}
@media (hover:hover){.track:hover .track__thumb img{opacity:.55}}
@media (hover:hover){.track:hover .track__thumb svg{opacity:1}}
.track__id{min-width:0;flex:1}
.track__id b{display:block;font-family:var(--f-display);font-weight:700;font-size:14.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s}
@media (hover:hover){.track:hover .track__id b{color:var(--accent)}}
.track__id small{display:block;margin-top:2px;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.track__hp{flex:none;display:flex;align-items:center;justify-content:center;width:30px;height:30px;color:var(--muted);transition:color .15s}
.track__hp svg{width:17px;height:17px}
@media (hover:hover){.track:hover .track__hp{color:var(--accent)}}
@media (max-width:900px){.podgrid,.podrow{grid-template-columns:1fr;gap:16px}.podfeat__media{aspect-ratio:16/9}}

/* broker ranking widget */
.brokers{display:flex;flex-direction:column}
.broker{display:flex;align-items:center;gap:16px;padding:17px 16px;border-bottom:1px solid var(--line);transition:background .15s}
.broker:last-child{border-bottom:none}
@media (hover:hover){.broker:hover{background:var(--paper-2)}}
.broker>img{flex:none;width:60px;height:60px;object-fit:cover;border-radius:14px;border:1px solid var(--line);background:#fff}
.broker__id{min-width:0}
.broker__id b{display:block;font-family:var(--f-display);font-weight:600;font-size:15px;letter-spacing:-.01em;color:var(--text);transition:color .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (hover:hover){.broker:hover .broker__id b{color:var(--accent)}}
.broker__stars{display:block;margin-top:4px;font-size:15px;letter-spacing:5px;color:var(--amber)}
.broker__stars em{font-style:normal;color:var(--line-2)}
.broker__id small{display:block;margin-top:4px;font-size:11.5px;line-height:1.4;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.broker__score{margin-left:auto;flex:none;text-align:right}
.broker__score b{display:block;font-family:var(--f-mono);font-weight:700;font-size:16.5px;letter-spacing:-.01em;color:var(--text);font-variant-numeric:tabular-nums}
.broker__score i{display:block;margin-top:1px;font-style:normal;font-family:var(--f-mono);font-size:8.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.brokers__note{padding:11px 16px 13px;border-top:1px solid var(--line);font-family:var(--f-mono);font-size:10px;line-height:1.5;letter-spacing:.03em;color:var(--muted)}
.broker::after{content:"";width:7px;height:7px;margin-left:2px;border-right:1.5px solid var(--line-2);border-top:1.5px solid var(--line-2);transform:rotate(45deg);flex:none;transition:border-color .15s,transform .15s}
@media (hover:hover){.broker:hover::after{border-color:var(--text);transform:rotate(45deg) translate(2px,-2px)}}

/* Trendy — compact promo grid */
.trendgrid{display:grid;grid-template-columns:1fr 1fr;gap:28px 44px;padding:20px 16px 24px}
.trenditem{display:flex;align-items:flex-start;gap:16px;min-width:0}
.trenditem__media{flex:none;width:132px;overflow:hidden}
.trenditem__media img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s}
@media (hover:hover){.trenditem:hover .trenditem__media img{transform:scale(1.05)}}
.trenditem__body{min-width:0}
/* kicker kategorii schowany na wszystkich szerokościach — nad tytułem stoją
   tickery, a gdy ich nie ma, wchodzi fallback .ticks--cats z tymi samymi
   kategoriami w mono. Zostaje w DOM dla czytników i SEO. */
.trenditem__cats{display:none}
/* linia tickerów w Trendy — tylko mobile (desktop ma kicker kategorii);
   .ticks.… bo baza .ticks{display:flex} jest dalej w pliku i by wygrała */
/* tickery à la CNBC: goła mono-linia nad tytułem — na WSZYSTKICH szerokościach
   (wcześniej były tylko na mobile). Specyficzność .ticks.trenditem__ticks bije
   późniejsze .tick:has(.chg) i tinty dark-mode'owe, stąd podwójna klasa. */
.ticks.trenditem__ticks{display:flex;margin:0 0 8px;flex-wrap:nowrap;gap:14px}
.ticks.trenditem__ticks .tick{flex:none;padding:0;border:0;border-radius:0;background:none;gap:7px}
.ticks.trenditem__ticks .tick b{font-size:11.5px}
.ticks.trenditem__ticks .tick .chg{font-size:11.5px;padding:0;border-radius:0;background:none}
.ticks.trenditem__ticks .tick .chg.up,
.ticks.trenditem__ticks .tick .chg.down{background:none}
/* fallback „kategorie zamiast tickerów" na wszystkich szerokościach — kicker
   jest schowany, więc bez tego artykuły bez tickerów nie miałyby nic nad tytułem */
.ticks.trenditem__ticks.ticks--cats{display:flex}
.trenditem__body h4{font-size:16.5px;font-weight:700;line-height:1.3;letter-spacing:-.01em}
.trenditem__body h4 a{color:var(--text)}
@media (hover:hover){.trenditem__body h4 a:hover{text-decoration:underline}}
.trenditem__body time{display:block;margin-top:7px;font-family:var(--f-mono);font-size:11px;color:var(--muted)}
/* data + czas czytania w jednej linii */
.trenditem__when{display:flex;align-items:center;gap:14px;margin-top:7px;font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.trenditem__when time{display:inline;margin-top:0}
/* „Více z Trendy" pod listą — tylko mobile (desktop ma link w nagłówku) */
.trendgrid__more{display:none}
@media (max-width:680px){
  /* hairline między pozycjami — jak w feedach kategorii; bez bazowego
     paddingu siatki (20/24px), który robił dziurę przed kolejną sekcją */
  .trendgrid{grid-template-columns:1fr;gap:0;padding:0}
  /* mobile: 5 pozycji (desktopowa siatka 2×3 pokazuje pełne 6) */
  .trendgrid .trenditem:nth-child(n+6){display:none}
  /* to samo co w feedlist--compact: meta siada na dolnej krawędzi miniatury */
  .trenditem{padding:16px 0;border-bottom:1px solid var(--line);align-items:stretch}
  .trenditem__media{align-self:flex-start}
  .trenditem__body{display:flex;flex-direction:column}
  .trenditem__foot{margin-top:auto;padding-top:7px}
  .trenditem__when{margin-top:0}
  .trenditem:last-child{border-bottom:none}
  .trenditem__media{width:89px}
  .trenditem__media img{aspect-ratio:1/1}
  .trenditem__body h4{font-size:16px}
  .trenditem__when{gap:14px}
  /* jak Zprávy: bez kickera kategorii, tickery à la CNBC nad tytułem;
     specyficzność selektorów 1:1 z blokiem feedlist--compact (m.in. żeby
     przebić późniejsze .tick:has(.chg) i dark-mode'owe tinty) */
  /* mobile: Trendy bez nagłówka i podpisu — sama lista + Více z Trendy na dole */
  .module:has(.trendgrid) .module__title,
  .module:has(.trendgrid) .module__sub{display:none}
  .trendgrid__more{display:flex}
  /* „więcej" jako wyśrodkowany box między subtelnymi kreskami:
     linia — [mono label + strzałka w boxie] — linia */
  .module__more{width:100%;margin:14px 0 0;padding:0;border:0;gap:18px;font-family:var(--f-mono);font-size:10.5px;font-weight:700;letter-spacing:.07em;color:var(--text)}
  .module__more::before,.module__more::after{content:"";flex:1;height:1px;background:var(--line)}
  .module__more-in{display:inline-flex;align-items:center;gap:10px;padding:10px 22px;border:1px solid var(--line-2);border-radius:3px;transition:background .2s ease,color .2s ease,border-color .2s ease}
  .module__more svg{flex:none;width:20px;height:10px}
  @media (hover:hover){.module__more:hover .module__more-in{background:var(--ink);border-color:var(--ink);color:#fff}}
}
/* feedy kategorii na home (Zprávy/Akcie/ETF/…): na mobile wiersze jak Trendy —
   kwadratowa miniatura z lewej, kicker bez bara, tytuł, sama data */
@media (max-width:680px){
  /* stretch + margin-top:auto na byline — meta siada na dolnej krawędzi
     miniatury, więc wiersze mają wspólną linię bazową. Przy długim tytule body
     jest wyższe od zdjęcia, auto nie ma czego pochłonąć i meta ląduje tuż pod
     tytułem — odstęp trzyma wtedy padding-top */
  .feedlist--compact .feeditem{flex-direction:row;align-items:stretch;gap:16px;padding:16px 0}
  .feedlist--compact .feeditem__media{align-self:flex-start}
  /* mobile pokazuje 5 pozycji (desktop tnie do 3 — duże wiersze) */
  .feedlist--compact .feeditem:nth-child(n+4){display:flex}
  .feedlist--compact .feeditem:nth-child(n+6){display:none}
  .feedlist--compact .feeditem__media{width:89px}
  .feedlist--compact .feeditem__media img{aspect-ratio:1/1}
  .feedlist--compact .feeditem__body h3{font-size:16px;line-height:1.3;letter-spacing:-.01em}
  .feedlist--compact .feeditem__body p:not(.kicker):not(.byline),
  .feedlist--compact .feeditem__author,
  .feedlist--compact .byline .dot{display:none}
  /* ikony zamiast separatora — zegar przy dacie, książka przy czasie czytania */
  .feedlist--compact .byline{gap:9px 14px}
  /* bez kickera kategorii */
  .feedlist--compact .feeditem__cats{display:none}
  .feedlist--compact .byline{margin-top:auto;padding-top:9px;display:flex;flex-wrap:wrap;align-items:center;gap:9px 8px;min-width:0;font-family:var(--f-mono);font-size:11px;color:var(--muted)}
  /* tickery à la CNBC: goła mono-linia NAD tytułem (bez pigułek), max 2;
     body jako flex column + order przestawia je przed h3 */
  .feedlist--compact .feeditem__body{display:flex;flex-direction:column}
  .feedlist--compact .feeditem__ticks{order:-1;margin:0 0 8px;flex-wrap:nowrap;gap:14px}
  .feedlist--compact .feeditem__ticks .tick:nth-child(n+3){display:none}
  .feedlist--compact .feeditem__ticks .tick{flex:none;padding:0;border:0;border-radius:0;background:none;gap:7px}
  .feedlist--compact .feeditem__ticks .tick b{font-size:11.5px}
  .feedlist--compact .feeditem__ticks .tick .chg{font-size:11.5px;padding:0;border-radius:0;background:none}
  .feedlist--compact .feeditem__ticks .tick .chg.up,
  .feedlist--compact .feeditem__ticks .tick .chg.down{background:none}
  /* fallback bez tickerów: kategorie w mono-stylu — widoczne tylko tu */
  .feedlist--compact .feeditem__ticks.ticks--cats{display:flex}
}

/* Mobile: sekcje feedu (Trendy + Zprávy/Akcie/ETF) flush do krawędzi wrap jak
   kategoria — bez dodatkowego 16px gutteru modułu; nagłówek i karty wyrównane
   na 16px zamiast 32px. :has() zawęża do modułów feedowych (IPO/ranked/oppo/
   Bullionář zostają bez zmian). */
@media (max-width:680px){
  .module:has(.trendgrid) .module__title,
  .module:has(.trendgrid) .module__sub,
  .module:has(.feedlist) .module__title,
  .module:has(.feedlist) .module__sub,
  .front-breaking .module__title,
  .front-breaking .module__sub{padding-left:0;padding-right:0}
  .trendgrid{padding-left:0;padding-right:0}
  .feeditem{padding-left:0;padding-right:0}
}

/* ranked list (Nejčtenější) */
.ranked{display:flex;flex-direction:column;padding:4px 16px 10px}
.ranked__item{display:flex;align-items:flex-start;gap:15px;padding:14px 0;border-bottom:1px solid var(--line)}
.ranked__item:last-child{border-bottom:none}
.ranked__item>i{flex:none;min-width:40px;font-style:normal;font-family:var(--f-display);font-weight:800;font-size:27px;line-height:1;color:var(--line-2);transition:color .15s}
@media (hover:hover){.ranked__item:hover>i{color:var(--brand)}}
.ranked__item h4{font-size:14.5px;font-weight:700;line-height:1.35;color:var(--text)}
@media (hover:hover){.ranked__item:hover h4{text-decoration:underline}}
.ranked__item time{display:block;margin-top:5px;font-family:var(--f-mono);font-size:11px;color:var(--muted)}
/* --split: ranking w szerokiej kolumnie (nie w railu) — jedna szpalta na ~990px
   byłaby pustą taśmą, więc od 681px pozycje idą w dwóch kolumnach.
   Hairline dzieli je pionowo, ostatni wiersz każdej szpalty zostaje bez linii. */
@media (min-width:681px){
  .ranked--split{display:grid;grid-template-columns:1fr 1fr;column-gap:34px}
  .ranked--split .ranked__item:nth-last-child(-n+2){border-bottom:none}
}

/* authors directory */
.authors{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:38px 0 14px}
.authorcard{display:flex;flex-direction:column;align-items:flex-start;padding:28px 26px 24px;border:1px solid var(--line);background:var(--paper);transition:border-color .15s,box-shadow .15s}
@media (hover:hover){.authorcard:hover{border-color:var(--line-2);box-shadow:0 10px 26px rgb(0 0 0 / 8%)}}
.authorcard__ava{width:88px;height:88px;border-radius:50%;object-fit:cover;border:1px solid var(--line-2);margin-bottom:16px}
.authorcard__focus{font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--accent)}
.authorcard h2{margin-top:7px;font-size:21px;letter-spacing:-.015em}
.authorcard p{margin-top:9px;font-size:13.5px;line-height:1.55;color:var(--text-2)}
.authorcard__meta{margin-top:14px;font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.authorcard__more{display:inline-flex;align-items:center;gap:9px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);align-self:stretch;font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent)}
.authorcard__more svg{width:22px;height:10px;transition:transform .2s}
@media (hover:hover){.authorcard:hover .authorcard__more svg{transform:translateX(4px)}}
@media (max-width:900px){.authors{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.authors{grid-template-columns:1fr}}

/* lead-gen side panel in page header */

/* Právě teď — live wire page */
.livebadge{position:relative;display:inline-block;margin-bottom:12px;padding-left:13px;font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--down)}
.livebadge::before{content:"";position:absolute;left:0;top:1px;bottom:1px;width:4px;background:var(--down)}
.livehead{margin:6px 0 26px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.livehead .crumbs{margin-bottom:18px}
.livehead__row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}

/* Srovnávač brokerů */
.brokpage{padding:0 0 60px}
.brobar{display:flex;align-items:flex-end;gap:22px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.brotabs{display:flex;gap:32px}
.brotab{position:relative;appearance:none;border:0;background:none;cursor:pointer;padding:12px 1px 15px;font-family:var(--f-mono);font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);transition:color .15s}
.brotab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:transparent;transition:background .15s}
@media (hover:hover){.brotab:hover{color:var(--text)}}
.brotab b{margin-left:7px;font-weight:600;color:var(--line-2)}
.brotab.is-active{color:var(--text)}
.brotab.is-active::after{background:var(--brand)}
.brotab.is-active b{color:var(--muted)}
.brotab--warn.is-active{color:var(--down)}
.brotab--warn.is-active::after{background:var(--down)}
.brobar .brosearch{margin-bottom:9px}
.bropanel{margin-top:34px}
.bropanel[hidden]{display:none}
.brolist{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.brorow{display:flex;align-items:center;gap:24px;padding:22px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.brorow[hidden],.warncard[hidden]{display:none}
.brorow__rank{flex:none;font-family:var(--f-mono);font-style:normal;font-size:13px;font-weight:600;color:var(--muted);width:26px}
.brorow__thumb{flex:none;width:126px;aspect-ratio:3/2;overflow:hidden;background:var(--paper-2)}
.brorow__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.brorow__id{min-width:0;flex:1}
.brorow__id b{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:18.5px;font-weight:700;letter-spacing:-.01em}
@media (hover:hover){.brorow:hover .brorow__id b{text-decoration:underline}}
.brorow__stars{display:block;margin-top:5px;font-size:13px;letter-spacing:2px;color:var(--amber)}
.brorow__stars em{font-style:normal;color:var(--line-2)}
.brorow__stars .half,.broker__stars .half,.revmeta__stars .half{background:linear-gradient(90deg,var(--amber) 50%,var(--line-2) 50%);-webkit-background-clip:text;background-clip:text;color:transparent}
.brorow__id small{display:block;margin-top:7px;font-size:13px;line-height:1.5;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.brorow__score{flex:none;margin-left:auto;text-align:right}
.brorow__score b{display:block;font-family:var(--f-mono);font-weight:700;font-size:22px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.brorow__score i{display:block;margin-top:2px;font-style:normal;font-family:var(--f-mono);font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.brorow__chev{flex:none;width:25px;height:25px;background-color:var(--text);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='12' cy='12' r='11' stroke='%23000' stroke-opacity='.32' stroke-width='1.6'/%3E%3Cpath d='M10 7.5l5 4.5-5 4.5' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='12' cy='12' r='11' stroke='%23000' stroke-opacity='.32' stroke-width='1.6'/%3E%3Cpath d='M10 7.5l5 4.5-5 4.5' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .2s}
@media (hover:hover){.brorow:hover .brorow__chev{transform:translateX(4px)}}
.brorow--warn .brorow__score b{color:var(--down)}
.warnintro{margin-bottom:30px}

/* Škola bullionáře — lesson library */
.lessonwrap{padding:0 0 60px}
.lessonlayout{display:grid;grid-template-columns:214px 1fr;gap:52px;align-items:start}

/* sidebar — spis kategorií */
.lessonnav{position:sticky;top:96px;display:flex;flex-direction:column}
.lessonnav__label{font-family:var(--f-mono);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-bottom:11px;margin-bottom:2px;border-bottom:1px solid var(--line)}
.lessonnav__btn{display:flex;justify-content:space-between;align-items:baseline;gap:12px;width:100%;text-align:left;appearance:none;cursor:pointer;background:none;border:0;border-bottom:1px solid var(--line);padding:11px 2px;font-family:inherit;font-size:13.5px;line-height:1.32;font-weight:500;color:var(--text-2);transition:color .15s}
.lessonnav__btn b{flex:none;font-family:var(--f-mono);font-size:11px;font-weight:600;color:var(--muted)}
@media (hover:hover){.lessonnav__btn:hover{color:var(--text)}}
.lessonnav__btn.is-active{color:var(--text);font-weight:700}
.lessonnav__btn.is-active b{color:var(--accent)}
.lessonnav__select{display:none;width:100%;appearance:none;-webkit-appearance:none;cursor:pointer;font-family:inherit;font-size:14px;font-weight:600;color:var(--text);background-color:var(--paper);border:1px solid var(--line-2);padding:13px 42px 13px 15px;background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23999'%20stroke-width='2'%3E%3Cpath%20d='m6%209%206%206%206-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px}

/* karty lekcí — klidnější, knižní */
.lessons{display:grid;grid-template-columns:1fr 1fr;gap:36px 42px}
.lesson{display:flex;flex-direction:column;text-decoration:none;color:inherit;padding-bottom:30px;border-bottom:1px solid var(--line)}
.lesson[hidden]{display:none}
.lesson__thumb{aspect-ratio:16/9;overflow:hidden;background:var(--paper-2)}
.lesson__thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
@media (hover:hover){.lesson:hover .lesson__thumb img{transform:scale(1.04)}}
.lesson__cat{margin-top:16px;font-family:var(--f-mono);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.lesson h3{margin-top:9px;font-size:19px;line-height:1.34;letter-spacing:-.011em;font-weight:600}
@media (hover:hover){.lesson:hover h3{text-decoration:underline}}
.lesson p{margin-top:9px;font-size:13.5px;line-height:1.6;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lessons__more{margin-top:44px}
.lessons__more[hidden]{display:none}

@media (max-width:1080px){.lessonlayout{grid-template-columns:186px 1fr;gap:38px}}
@media (max-width:840px){
  .lessonlayout{grid-template-columns:1fr;gap:0}
  .lessonnav{position:static;display:block;margin:0 0 30px}
  .lessonnav__label{display:none}
  .lessonnav__btn{display:none}
  .lessonnav__select{display:block}
}
@media (max-width:560px){.lessons{grid-template-columns:1fr}}
.brokpage .brokers__note{margin-top:18px}

/* broker review page */
.verdict{display:grid;grid-template-columns:minmax(170px,auto) repeat(4,1fr);margin:6px 0 30px;border:1px solid var(--line)}
.verdict>div{display:flex;flex-direction:column;justify-content:center;padding:16px 22px 17px;border-left:1px solid var(--line)}
.verdict>div:first-child{border-left:0}
.verdict__score b{font-family:var(--f-mono);font-size:30px;font-weight:700;line-height:1;letter-spacing:-.02em}
.verdict__stars{margin-top:7px;font-size:12px;letter-spacing:2px;color:var(--amber)}
.verdict__stars .half{background:linear-gradient(90deg,var(--amber) 50%,var(--line-2) 50%);-webkit-background-clip:text;background-clip:text;color:transparent}
.verdict__score i{margin-top:7px;font-style:normal;font-family:var(--f-mono);font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.verdict__spec i{font-style:normal;font-family:var(--f-mono);font-size:9.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.verdict__spec b{margin-top:7px;font-size:15px;font-weight:700;letter-spacing:-.01em;line-height:1.3}
.proscons{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:36px 0 0;background:var(--line);border:1px solid var(--line)}
.proscons__col{padding:22px 24px;background:var(--paper)}
.proscons__label{font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}
.proscons__col--pro .proscons__label{color:var(--up)}
.proscons__col--con .proscons__label{color:var(--down)}
.proscons ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.proscons li{position:relative;padding-left:24px;font-size:14px;font-weight:600;line-height:1.45}
.proscons li::before{position:absolute;left:0;top:0;font-family:var(--f-mono);font-weight:700}
.proscons__col--pro li::before{content:"✓";color:var(--up)}
.proscons__col--con li::before{content:"✕";color:var(--down)}
.article__main>.brokers__note{margin-top:16px}
@media (max-width:720px){
  .verdict{grid-template-columns:1fr 1fr}
  .verdict__score{grid-column:1/-1;border-bottom:1px solid var(--line)}
  .verdict>div{border-left:0}
  .verdict>div:nth-child(odd):not(:first-child){border-right:1px solid var(--line)}
  .verdict__spec{border-top:1px solid var(--line)}
  .verdict__score+.verdict__spec,.verdict__score+.verdict__spec+.verdict__spec{border-top:0}
  .proscons{grid-template-columns:1fr}
}
.warnintro{padding:18px 22px;background:var(--paper-2);border:1px solid var(--line);border-left:4px solid var(--down)}
.warnintro__label{font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--down);margin-bottom:8px}
.warnintro p:last-child{font-size:13.5px;line-height:1.6;color:var(--text-2)}
.warnintro a{color:var(--accent);text-decoration:underline}
@media (max-width:860px){
  .brorow{flex-wrap:wrap;gap:14px}
  .brorow__rank{display:none}
  .brorow__thumb{width:96px}
  .brorow__id{flex:1 1 60%}
  .warngrid{grid-template-columns:1fr}
}
.livehead__title{font-size:32px;line-height:1.05;letter-spacing:-.02em}
.livehead__sub{margin-top:10px;font-size:17px;line-height:1.5;font-weight:500;color:var(--text-2);max-width:62ch}
.livecol{padding:0 0 50px}
.livefilter{display:flex;margin-bottom:20px}
.livefilter__btn{font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:9px 16px;border:1px solid var(--line-2);background:none;color:var(--muted);transition:color .15s,background .15s,border-color .15s}
.livefilter__btn+.livefilter__btn{margin-left:-1px}
@media (hover:hover){.livefilter__btn:hover{color:var(--text)}}
.livefilter__btn.is-active{background:var(--text);border-color:var(--text);color:var(--paper)}
.livefilter__co{display:flex;align-items:center;gap:9px;margin-left:auto;padding:0 12px;border:1px solid var(--line-2);min-width:250px}
.livefilter__co>svg{flex:none;width:15px;height:15px;color:var(--muted)}
.livefilter__input{flex:1;min-width:0;border:0;background:none;padding:9px 0;font-family:var(--f-body);font-size:13px;color:var(--text)}
.livefilter__input:focus{outline:none}
.livefilter__co:focus-within{border-color:var(--text)}
.livefilter__input::placeholder{color:var(--muted)}
.livefilter__clear{flex:none;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:0;background:none;color:var(--muted)}
@media (hover:hover){.livefilter__clear:hover{color:var(--text)}}
.livefilter__clear svg{width:13px;height:13px}
.livefilter__result{margin:-6px 0 18px;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.03em;color:var(--muted)}
.livefilter__result b{color:var(--text)}
@media (max-width:680px){.livefilter{flex-wrap:wrap;gap:6px}.livefilter__btn+.livefilter__btn{margin-left:0}.livefilter__co{margin-left:0;width:100%}}
.livewire{position:relative}
.livewire::before{content:"";position:absolute;left:74px;top:14px;bottom:10px;width:2px;background:var(--line)}
.livewire__day{position:relative;z-index:1;display:flex;align-items:baseline;gap:11px;margin:34px 0 4px;padding-left:86px;font-family:var(--f-display)}
.livewire__day:first-child{margin-top:0}
.livewire__day b{font-weight:800;font-size:19px;letter-spacing:-.012em;color:var(--text)}
.livewire__day em{font-style:normal;font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.livewire__day::before{content:"";position:absolute;left:68px;top:50%;transform:translateY(-50%);width:13px;height:13px;border-radius:50%;background:var(--text);box-shadow:0 0 0 3px var(--paper)}
.liveitem{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr);gap:34px;padding:13px 0 15px}
.liveitem::before{content:"";position:absolute;left:69px;top:23px;width:11px;height:11px;border:2px solid var(--down);border-radius:50%;background:#fff;box-shadow:0 0 0 3px var(--paper)}
[data-theme="dark"] .liveitem::before{background:#0f1116}
.liveitem>time{font-family:var(--f-mono);font-size:12px;font-weight:600;color:var(--muted);text-align:right;padding-top:5px;font-variant-numeric:tabular-nums}
.liveitem__body{min-width:0}
.liveitem h3{font-size:20px;font-weight:800;line-height:1.3;letter-spacing:-.012em;color:var(--text)}
.liveitem p{margin-top:10px;font-size:16px;font-weight:500;line-height:1.62;color:var(--text-2)}
.liveitem p b{color:var(--text)}
.liveitem{padding:15px 0 18px}
/* „Zdroj" — stopka źródła wstrzykiwana w treść nowych wpisów Právě teď
   (markup przychodzi z WP w content.rendered; tu tylko styl + tooltip).
   Bez tych reguł tooltip renderowałby się jako goły akapit w treści. */
.bs-source{display:flex;align-items:center;gap:0;margin-top:18px;padding-top:13px;border-top:1px solid var(--line);line-height:1}
.bs-source__label{font-family:var(--f-mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
/* fallback (nieznany wariant bloku zostaje w treści z widoczną nazwą) — odstępy per element, bo gap kontenera = 0 */
.bs-source__name{font-size:13.5px;font-weight:700;color:var(--text);margin:0 10px}
.bs-source__info{position:relative;display:inline-flex}
.bs-source__trigger{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin:-4px 0;border:0;background:none;padding:0;cursor:pointer;color:var(--muted);transition:color .15s ease}
@media (hover:hover){.bs-source__trigger:hover{color:var(--brand)}}
.bs-source__trigger svg{width:16px;height:16px}
.bs-source__tip{position:absolute;bottom:calc(100% + 11px);left:-14px;width:min(360px,78vw);background:var(--ink);color:rgba(255,255,255,.82);padding:15px 17px;font-size:12.5px;font-weight:500;line-height:1.6;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(5px);transition:opacity .18s ease,transform .2s ease,visibility 0s linear .2s;z-index:60;box-shadow:0 18px 40px rgb(0 0 0 / 28%)}
.bs-source__tip::after{content:"";position:absolute;top:100%;left:22px;border:6px solid transparent;border-top-color:var(--ink)}
.bs-source__tip strong{display:block;margin-bottom:8px;font-family:var(--f-mono);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff}
.bs-source__tip-body{display:block}
.bs-source__trigger:focus-visible+.bs-source__tip,
.bs-source__info.is-open .bs-source__tip{opacity:1;visibility:visible;transform:none;transition:opacity .18s ease,transform .2s ease}
@media (hover:hover){.bs-source__info:hover .bs-source__tip{opacity:1;visibility:visible;transform:none;transition:opacity .18s ease,transform .2s ease}}
/* wariant w pasku meta artykułu: sam „Zdroj" + ikona (nazwa źródła dopiero
   w tooltipie); tooltip otwiera się w dół — meta bywa tuż pod mastheadem */
.artsource{display:inline-flex;align-items:center;gap:2px;color:inherit}
/* stopka artykulu: zrodlo + prawne Upozorneni w jednym rzedzie na koncu tekstu.
   `position:relative` jest kotwica dla tooltipa zrodla na mobile (patrz blok
   @media 720px nizej) — wczesniej kotwica byl pasek meta, w ktorym zrodlo stalo. */
.artfoot{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:10px 20px;margin-top:26px}
.artfoot .disclaim{margin-top:0}
/* zrodlo dopasowane do sasiada: ten sam mono, rozmiar i wersaliki co .disclaim */
.artfoot .artsource{font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}

.artsource .bs-source__trigger{margin:0;width:22px;height:22px}
.artsource .bs-source__tip{bottom:auto;top:calc(100% + 11px);transform:translateY(-5px)}
.artsource .bs-source__tip::after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--ink)}
/* mobile: tooltip kotwiczony do ikony wyjeżdżał za krawędź viewportu —
   przepinamy go na pełną szerokość wiersza (meta / stopki), bez strzałki */
@media (max-width:720px){
  .bs-source{position:relative}
  .article__meta{position:relative}
  .artfoot{position:relative}
  .bs-source__info{position:static}
  .bs-source__tip{left:0;right:0;width:auto}
  .bs-source__tip::after{display:none}
  .artsource .bs-source__tip{top:calc(100% + 10px)}
}

.tick--in{display:inline-flex;vertical-align:baseline;padding:1px 9px;margin:0 3px;gap:6px;border-radius:999px}
.tick--in b{font-size:12px}
/* inline w treści bez badge'a — pigułka jest mała, box w boxie wyglądałby ciężko */
.tick--in:has(.chg){padding:1px 9px}
.tick--in .chg{font-size:12px;padding:0;border-radius:0;background:none}
[data-theme="dark"] .tick--in .chg,[data-theme="dark"] .tick--in .chg.up,[data-theme="dark"] .tick--in .chg.down{background:none}
.tick--in .chg.up,.tick--in .chg.down{background:none}
.liveitem{padding:17px 0 22px}
.livewire .liveitem:first-of-type::before{background:var(--down);animation:ping 1.8s ease-out infinite}
.livewire .liveitem:first-of-type>time{color:var(--down);font-weight:700}
.livewire .liveitem:first-of-type h3::before{content:"Živě";display:inline-block;vertical-align:middle;margin:-3px 10px 0 0;padding:3px 8px;background:rgba(210,43,39,.1);color:var(--down);font-family:var(--f-mono);font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.livespinner{display:flex;align-items:center;justify-content:center;gap:10px;padding:26px 0 6px;font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.livespinner svg{width:16px;height:16px;animation:loadSpin .8s linear infinite}
@media (max-width:680px){
  .livewire::before{left:8px}
  .liveitem{grid-template-columns:1fr;gap:0;padding-left:30px}
  .liveitem::before{left:3px;top:6px}
  .liveitem>time{text-align:left;padding:0 0 4px}
  .livewire__day{padding-left:30px}
  .livewire__day::before{left:2px}
}

/* e-book library page */
.library{display:grid;grid-template-columns:repeat(3,1fr);gap:44px 40px;padding:40px 0 26px}
.ebook{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.ebook__cover{width:min(230px,78%);margin-bottom:18px}
.ebook h2{font-size:19px;line-height:1.25;letter-spacing:-.014em}
.ebook h2 a{color:inherit}
@media (hover:hover){.ebook h2 a:hover{text-decoration:underline}}
a.ebook__cover{cursor:pointer}
.ebook p{margin-top:9px;font-size:13.5px;line-height:1.55;color:var(--text-2)}
.ebook__meta{margin-top:12px;font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ebook__btn{margin-top:14px;padding:11px 20px;font-size:13.5px}
@media (max-width:900px){.library{grid-template-columns:1fr 1fr;gap:36px 26px}}
@media (max-width:600px){.library{grid-template-columns:1fr}}

/* e-book detail */
.ebookdetail{display:grid;grid-template-columns:340px minmax(0,1fr);gap:64px;align-items:start;padding:38px 24px 60px}
.ebookdetail__side{position:sticky;top:88px}
.ebookdetail__cover{width:100%}
.ebookdetail__meta{display:flex;align-items:center;gap:12px;margin-top:22px;font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ebookdetail__meta i{width:3px;height:3px;border-radius:50%;background:var(--line-2)}
.ebookdetail__main h1{margin-top:12px;font-size:clamp(28px,3.6vw,38px);line-height:1.08;letter-spacing:-.02em}
.ebookdetail__deck{margin-top:14px;font-size:16.5px;line-height:1.6;color:var(--text-2);max-width:64ch}
.ebookdetail__points{list-style:none;margin:22px 0 0;display:flex;flex-direction:column;gap:10px}
.ebookdetail__points li{position:relative;padding-left:26px;font-size:14.5px;font-weight:600;line-height:1.5;color:var(--text-2)}
.ebookdetail__points li::before{content:"✓";position:absolute;left:0;top:0;font-family:var(--f-mono);font-weight:700;color:var(--up)}
.dlpanel{margin-top:30px;padding:26px 28px;border:1px solid var(--line);background:var(--paper-2);max-width:520px}
@media (max-width:900px){
  .ebookdetail{grid-template-columns:1fr;gap:30px}
  .ebookdetail__side{position:static;max-width:250px}
}

/* download flow */
.dlmodal__kicker{font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.dlmodal__step{margin-top:22px}
.dlfield{display:block;margin-bottom:14px}
.dlfield span{display:block;margin-bottom:6px;font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.dlfield input{width:100%;padding:12px 14px;border:1px solid var(--line-2);background:var(--paper);font-family:var(--f-body);font-size:14.5px;color:var(--text)}
.dlfield input:focus{outline:none;border-color:var(--brand)}
.dlmodal__submit,.dlmodal__verify{width:100%;margin-top:6px;padding:13px}
.dlmodal__note{margin-top:12px;font-size:11.5px;line-height:1.5;color:var(--muted)}
.dlmodal__note a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.dlmodal__codetext{font-size:14px;line-height:1.55;color:var(--text-2)}
.dlmodal__codetext b{color:var(--text)}
.dlcode{display:flex;gap:10px;margin:18px 0 6px}
.dlcode input{width:56px;height:62px;text-align:center;border:1px solid var(--line-2);font-family:var(--f-mono);font-size:24px;font-weight:700;color:var(--text);background:var(--paper)}
.dlcode input:focus{outline:none;border-color:var(--brand)}
.dlmodal__step--done{text-align:center;padding:10px 0 4px}
.dlmodal__check{display:flex;align-items:center;justify-content:center;width:58px;height:58px;margin:0 auto 16px;border-radius:50%;background:var(--up);color:#fff}
.dlmodal__check svg{width:26px;height:26px}
.dlmodal__step--done h4{font-size:19px;letter-spacing:-.012em}
.dlmodal__step--done p{margin-top:8px;font-size:13.5px;line-height:1.55;color:var(--text-2)}
.dlmodal__again{margin-top:18px}

/* author page */
.authorhead{background:var(--paper);border-bottom:1px solid var(--line);padding:30px 0 36px}
.authorhead .crumbs{margin-bottom:24px}
.authorhead__row{display:flex;align-items:flex-start;gap:30px}
.authorhead__ava{flex:none;width:118px;height:118px;border-radius:50%;object-fit:cover;border:1px solid var(--line-2)}
.authorhead__id{min-width:0}
.authorhead__id h1{font-size:clamp(28px,3.6vw,38px);line-height:1.05;letter-spacing:-.02em;margin-top:10px}
.authorhead__bio{margin-top:12px;font-size:15.5px;line-height:1.6;color:var(--text-2);max-width:64ch}
.authorhead__meta{display:flex;align-items:center;gap:22px;margin-top:20px}
.authorhead__meta span{display:flex;flex-direction:column}
.authorhead__meta b{font-family:var(--f-display);font-weight:800;font-size:19px;letter-spacing:-.01em;color:var(--text)}
.authorhead__meta em{margin-top:3px;font-style:normal;font-family:var(--f-mono);font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.authorhead__meta i{width:1px;height:32px;background:var(--line)}
.authorhead__social{margin-left:auto;display:flex;gap:8px}
.authorhead__social a{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line-2);color:var(--muted);transition:color .15s,border-color .15s,background .15s}
@media (hover:hover){.authorhead__social a:hover{color:#fff;background:var(--brand);border-color:var(--brand)}}
.authorhead__social svg{width:16px;height:16px}
@media (max-width:680px){
  .authorhead__row{flex-direction:column;gap:18px}
  .authorhead__ava{width:92px;height:92px}
  .authorhead__social{margin-left:0}
  .authorhead__meta{flex-wrap:wrap;gap:14px}
}

/* category template */
.cathead{background:var(--paper);border-bottom:1px solid var(--line);padding:28px 0 30px}
.cathead .crumbs{margin-bottom:18px}
.cathead__row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.cathead__title{font-size:clamp(30px,4vw,40px);line-height:1.05;letter-spacing:-.02em}
.cathead__sub{margin-top:10px;font-size:19px;line-height:1.5;font-weight:500;color:var(--text-2);max-width:62ch}
.cathead__count{flex:none;text-align:right;font-family:var(--f-mono);font-size:12.5px;font-weight:600;color:var(--text)}
.cathead__count em{display:block;margin-top:3px;font-style:normal;font-size:10.5px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}

/* photo header (Právě teď) */
.cathead--photo{position:relative;overflow:hidden;border-bottom:0;padding:52px 0 54px}
.cathead--photo::before{content:"";position:absolute;inset:-24px;background:url(../img/praveted-hero.jpg) center/cover no-repeat;filter:blur(3px)}
.cathead--photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,11,20,.86) 0%,rgba(9,11,20,.62) 55%,rgba(9,11,20,.38) 100%)}
.cathead--photo .wrap{position:relative;z-index:1}
.cathead--photo .crumbs a{color:rgba(255,255,255,.55)}
@media (hover:hover){.cathead--photo .crumbs a:hover{color:#fff}}
.cathead--photo .crumbs span{color:rgba(255,255,255,.85)}
.cathead--photo .crumbs i{border-color:rgba(255,255,255,.5)}
.cathead--photo .cathead__title{color:#fff}
.cathead--photo .cathead__sub{color:rgba(255,255,255,.75)}
.cathead--photo .cathead__count{color:#fff}
.cathead--photo .cathead__count em{color:rgba(255,255,255,.6)}
.cathead--akcie::before{background-image:url(../img/kategorie-akcie-hero.jpg?v=3)}

.cathead__info{margin-top:24px;padding:18px 22px;background:var(--paper-2);border:1px solid var(--line);border-left:4px solid var(--brand)}
.catcol .cathead__info{margin-top:36px}
.cathead__infolabel{font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.cathead__infotext{font-size:13.5px;line-height:1.6;color:var(--text-2)}
.cathead__infolink{display:inline-flex;align-items:center;gap:9px;margin-top:12px;font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.cathead__infolink svg{width:22px;height:10px;transition:transform .2s}
@media (hover:hover){.cathead__infolink:hover svg{transform:translateX(4px)}}
/* ============================================================
   HOME feedy na desktopie (od 681px) — bliżej wzoru z listy rubryki:
   mniejsza miniatura, tytuł 22px, tickery uproszczone i przeniesione
   NAD linię meta (w DOM stoją po niej, stąd order na .byline).
   Mobile ma własny, ustalony układ i tu nie sięga.
   ============================================================ */
@media (min-width:681px){
  .feedlist--compact .feeditem__media{width:230px}
  .feedlist--compact .feeditem__media img{aspect-ratio:4/3}
  .feedlist--compact .feeditem__body{display:flex;flex-direction:column}
  .feedlist--compact .feeditem__body h3{font-size:22px;line-height:1.22}
  /* kolejność: kicker → tytuł → zajawka → tickery → meta */
  .feedlist--compact .byline{order:1;margin-top:14px}
  .feedlist--compact .feeditem__ticks{margin:14px 0 0}
  /* prostszy ticker: jedna szara plakietka bez ramki, procent bez własnego tintu */
  .feedlist--compact .feeditem__ticks .tick{background:var(--paper-2);border:0;border-radius:2px;padding:5px 10px;gap:8px}
  .feedlist--compact .feeditem__ticks .tick .chg{background:none;padding:0;border-radius:0}
  .feedlist--compact .feeditem__ticks .tick .chg.up,
  .feedlist--compact .feeditem__ticks .tick .chg.down{background:none}
}

/* ============================================================
   MOZAIKA feedu (feedlist--mosaic) — tylko pełny desktop (od 1081px),
   czyli tam, gdzie pasmo ma kolumnę towarzysza. Zamiast trzech
   identycznych wierszy: otwarcie ze zdjęciem 4:3 po lewej i szpalta
   dwóch zwartych kart po prawej. Zdjęcia wędrują NAD tekst, więc
   .feeditem przełącza się z wiersza w kolumnę.
   Proporcje dobrane tak, by lead kończył się mniej więcej na wysokości
   drugiej karty — pasmo dalej równa się z Nejčtenější obok.
   Poniżej 1081px nic się nie zmienia: zostaje wiersz z miniaturą.
   ============================================================ */
@media (min-width:1081px){
  .feedlist--compact.feedlist--mosaic{display:grid;grid-template-columns:minmax(0,1.78fr) minmax(0,1fr);column-gap:34px;row-gap:22px;padding:22px 16px 0}
  .feedlist--compact.feedlist--mosaic .feeditem{flex-direction:column;align-items:stretch;gap:16px;padding:0;border-bottom:none}
  .feedlist--compact.feedlist--mosaic .feeditem__media{width:100%}
  /* otwarcie zajmuje obie kolumny wiersza po lewej, karty siadają po prawej */
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(1){grid-column:1;grid-row:1/3}
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(2){grid-column:2;grid-row:1}
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(3){grid-column:2;grid-row:2}

  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(1) .feeditem__media img{aspect-ratio:4/3}
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(1) .feeditem__body h3{font-size:27px;line-height:1.17;letter-spacing:-.021em}
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(1) .feeditem__body p:not(.kicker):not(.byline){-webkit-line-clamp:3;font-size:16.5px}
  /* .ticks scrolluje się poziomo — przy wpisach z długą listą spółek piąta
     plakietka wchodziłaby na krawędź kolumny, więc otwarcie pokazuje cztery */
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(1) .feeditem__ticks{overflow:hidden}
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(1) .feeditem__ticks .tick:nth-child(n+5){display:none}

  /* wąska szpalta: dwie karty na tle — zdjęcie dochodzi do krawędzi, tekst
     siedzi w środku. Tło, promień i cień 1:1 z karuzelą .feedlist--swipe, żeby
     nie wprowadzać drugiego wariantu karty w projekcie. Hairline między
     wpisami znika: rozdziela je teraz sama krawędź kart.
     Treść: rubryka, tytuł, dwuliniowa zajawka i czas — bez autora (powtarzałby
     się z otwarciem) i bez tickerów (plakietki w kolumnie ~290px wchodzą na
     krawędź; notowania zostają przy otwarciu).
     Tytuł 17,5px, żeby przy zajawce karta nie konkurowała z otwarciem. */
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(n+2){gap:0;padding:0;border-bottom:none;overflow:hidden;border-radius:2px;background:var(--paper);box-shadow:0 1px 2px rgb(13 14 19/7%),0 8px 20px rgb(13 14 19/6%)}
  [data-theme="dark"] .feedlist--compact.feedlist--mosaic .feeditem:nth-child(n+2){background:var(--paper-2);box-shadow:0 1px 2px rgb(0 0 0/45%)}
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(n+2) .feeditem__media{align-self:stretch}
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(n+2) .feeditem__media img{aspect-ratio:16/9}
  /* karta rozciąga się do wysokości wiersza siatki, więc meta dosuwamy do dołu —
     obie karty kończą się równo niezależnie od długości tytułu */
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(n+2) .feeditem__body{flex:1;padding:15px 17px 17px}
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(n+2) .feeditem__body h3{font-size:17.5px;line-height:1.3;letter-spacing:-.012em}
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(n+2) .feeditem__body p:not(.kicker):not(.byline){margin-top:9px;font-size:14.5px;line-height:1.5;-webkit-line-clamp:2}
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(n+2) .feeditem__body .kicker--bar{margin-bottom:9px}
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(n+2) .feeditem__author,
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(n+2) .feeditem__author + .dot{display:none}
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(n+2) .feeditem__ticks{display:none}
  .feedlist--compact.feedlist--mosaic .feeditem:nth-child(n+2) .byline{margin-top:auto;padding-top:12px}
}

.feeditem--lead{flex-direction:column;gap:16px}
.feeditem--lead .feeditem__media{width:100%}
.feeditem--lead .feeditem__media img{aspect-ratio:21/10}
.feeditem--lead .feeditem__body h3{font-size:28px;line-height:1.15}
/* load-more: nic w siatce feedu nie może być kotwicą scroll anchoringu —
   browser potrafił zakotwiczyć viewport na sidebarze/przycisku i po dokleeniu
   kart skoczyć o wysokość wstawki; pozycję trzymamy sami (scrollTo w main.js),
   a nowa treść po prostu pojawia się poniżej, w miejscu przycisku */
.home__grid,.homebands,.loadmore,.pager{overflow-anchor:none}
.loadmore{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:34px;padding:15px;background:none;border:1px solid var(--line-2);font-family:var(--f-display);font-size:14.5px;font-weight:700;color:var(--text);transition:background .15s,border-color .15s}
@media (hover:hover){.loadmore:hover{background:var(--paper-2);border-color:var(--text)}}
.loadmore svg{width:17px;height:17px;transition:transform .2s}
@media (hover:hover){.loadmore:hover svg{transform:translateY(3px)}}
.loadmore.is-loading{color:var(--muted);pointer-events:none}
.loadmore.is-loading svg{animation:loadSpin .8s linear infinite}
@keyframes loadSpin{to{transform:rotate(360deg)}}
.pager{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:34px 0 8px;padding-top:22px;border-top:1px solid var(--line)}
.pager__info{font-family:var(--f-mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.pager__pages{display:flex;align-items:center;gap:7px}
.pager__page{display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 8px;border:1px solid var(--line-2);font-family:var(--f-mono);font-size:12.5px;font-weight:600;color:var(--text);transition:border-color .15s,background .15s,color .15s}
@media (hover:hover){.pager__page:hover{border-color:var(--text)}}
.pager__page.is-active{background:var(--text);border-color:var(--text);color:var(--paper)}
.pager__page--next svg{width:20px;height:10px}
.pager__dots{font-family:var(--f-mono);color:var(--muted);padding:0 2px}
@media (max-width:680px){
  .cathead__row{flex-direction:column;align-items:flex-start;gap:10px}
  .cathead__count{text-align:left}
  .feeditem--lead .feeditem__body h3{font-size:20px}
  .pager{flex-direction:column;align-items:flex-start;gap:12px}
}

/* category rich cards */
.catcol{padding-top:0}
.catfeed{display:flex;flex-direction:column;gap:36px}
.catcard{border:1px solid var(--line);background:var(--paper);box-shadow:0 3px 12px rgb(0 0 0 / 5%);padding:26px}
.catcard__media{display:block;overflow:hidden;margin:-26px -26px 22px}
.catcard__media img{display:block;width:100%;aspect-ratio:21/10;object-fit:cover;transition:transform .5s}
@media (hover:hover){.catcard__media:hover img{transform:scale(1.03)}}
.catcard .kicker--bar{margin-bottom:12px}
.catcard__title{font-size:27px;font-weight:700;line-height:1.18;letter-spacing:-.016em;margin-bottom:10px}
@media (hover:hover){.catcard__title a:hover{text-decoration:underline}}
.catcard .ticks{margin:14px 0 0}
.catcard__points{list-style:none;margin:18px 0 20px;display:flex;flex-direction:column;gap:11px}
.catcard__points li{position:relative;padding-left:25px;font-size:15.5px;font-weight:600;line-height:1.5;color:var(--text-2)}
.catcard__points li::before{content:"";position:absolute;left:2px;top:8px;width:9px;height:9px;border-radius:50%;background:var(--amber)}
.catcard__stock{display:flex;align-items:center;gap:12px;margin:2px 0 12px}
.catcard__stocklogo{flex:none;width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:50%;overflow:hidden}
.catcard__stocklogo img{width:22px;height:22px;object-fit:contain}
.catcard__stockid b{display:block;font-family:var(--f-display);font-weight:700;font-size:14.5px;color:var(--text)}
.catcard__stockid small{display:block;margin-top:1px;font-family:var(--f-mono);font-size:11px;letter-spacing:.03em;color:var(--muted)}
.catcard__chart{display:block;width:100%;height:330px;border:0;background:var(--paper)}
.catcard__excerpt{margin-top:18px;font-size:16px;line-height:1.65;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.catcard__foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.catcard__act{padding:9px 15px;font-size:13px;gap:7px}
.catcard__act svg{width:15px;height:15px}
.catcard__more{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent)}
.catcard__more svg{width:24px;height:11px;transition:transform .2s}
@media (hover:hover){.catcard__more:hover svg{transform:translateX(4px)}}
@media (max-width:680px){
  .catcard__title{font-size:21px}
  .catcard__chart{height:260px}
  .catcard__media img{aspect-ratio:16/10}
  .catcard__excerpt{display:block;-webkit-line-clamp:unset;overflow:visible}
}

/* trio: Miliardáři / Business / Alternativní investice */
.trio{display:grid;grid-template-columns:repeat(3,1fr);padding:22px 0 10px}
.trio__col{min-width:0;padding:0 24px}
.trio__col:first-child{padding-left:16px}
.trio__col:last-child{padding-right:16px}
.trio__col+.trio__col{border-left:1px solid var(--line)}
.trio__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:13px;margin-bottom:18px;border-bottom:2px solid var(--text);font-family:var(--f-display);font-weight:800;font-size:19px;letter-spacing:-.012em;color:var(--text)}
.trio__head svg{width:24px;height:11px;flex:none;transition:transform .2s}
@media (hover:hover){.trio__head:hover svg{transform:translateX(4px)}}
.trio__lead{display:block}
.trio__media{display:block;overflow:hidden}
.trio__media img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .5s}
@media (hover:hover){.trio__lead:hover .trio__media img{transform:scale(1.04)}}
.trio__lead h3{margin-top:13px;font-size:16.5px;font-weight:800;line-height:1.3;letter-spacing:-.01em;color:var(--text)}
@media (hover:hover){.trio__lead:hover h3{text-decoration:underline}}
.trio__item{display:block;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.trio__item h4{font-size:14px;font-weight:700;line-height:1.4;color:var(--text)}
@media (hover:hover){.trio__item:hover h4{text-decoration:underline}}
@media (max-width:900px){
  .trio{grid-template-columns:1fr;gap:26px}
  .trio__col{padding:0 16px}
  .trio__col+.trio__col{border-left:none;border-top:1px solid var(--line);padding-top:24px}
}

/* article ticker chips */
.ticks{display:flex;flex-wrap:nowrap;gap:8px;margin:13px 0 2px;overflow-x:auto;scrollbar-width:none}
.ticks::-webkit-scrollbar{display:none}
.tick{flex:none;display:inline-flex;align-items:center;gap:8px;padding:4px 9px;background:#fafafa;border:1px solid #eee;border-radius:3px;white-space:nowrap}
/* % jako tintowany badge dosunięty do prawej krawędzi pigułki */
.tick:has(.chg){padding:3px 3px 3px 9px}
.tick .chg{padding:2px 6px;border-radius:2px;background:rgb(120 124 138/.1)}
.tick .chg.up{background:rgb(19 138 78/.1)}
.tick .chg.down{background:rgb(210 43 39/.09)}
[data-theme="dark"] .tick{background:#1c1f28;border-color:#1c1f28}
[data-theme="dark"] .tick .chg{background:rgb(148 154 172/.14)}
[data-theme="dark"] .tick .chg.up{background:rgb(39 179 101/.15)}
[data-theme="dark"] .tick .chg.down{background:rgb(240 82 77/.14)}
.tick b{font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--text)}
.tick .chg{font-size:11px}
/* pigułka % w treści artykułu — SAM procent, bez pudełka po .tick (symbol stoi
   już w nawiasie tuż obok, w zdaniu). Klasa `tick` jest celowa: bsFillTicks()
   w main.js dociąga procent do każdego .tick[data-tick] bez .chg, więc pigułki
   inline jadą tym samym torem co pigułki na kartach — bez nowego JS.
   Te reguły MUSZĄ stać PO .tick/.tick .chg powyżej — specyficzność jest równa,
   decyduje kolejność w pliku. */
.tick--pct{display:inline-flex;vertical-align:baseline;margin:0 1px;padding:0;background:none;border:0;border-radius:999px;white-space:nowrap}
/* POZORNIE martwa (padding:0 jak w regule wyżej) — NIE usuwać: :has() dziedziczy
   specyficzność swojego argumentu, więc .tick--pct:has(.chg) liczy się jako (0,2,0)
   i wygrywa z samym .tick--pct (0,1,0). Bez niej padding pigułki wraca do 3px 3px 3px 9px. */
.tick--pct:has(.chg){padding:0}
.tick--pct .chg{padding:1.5px 8px;border-radius:999px;font-size:.86em}
/* dopóki notowanie nie dojedzie z /api/quotes.json — zero pustego prostokąta
   w zdaniu; podwójna spacja wokół ukrytej pigułki i tak zwija się do jednej */
.tick--pct:empty{display:none}
[data-theme="dark"] .tick--pct{background:none;border-color:transparent}
/* pasek tickerów artykułu — hairline'y góra/dół, poziomy scroll dziedziczony
   z bazowego .ticks (flex-wrap:nowrap + overflow-x:auto + ukryty scrollbar) */
/* Tickery bez własnych ramek — są częścią bloku nagłówka, nie osobną wyspą
   (podwójne bordery cięły nagłówek na trzy paski). */
.tickbar{margin:14px 0 0;padding:0;border:0}
.tickbar__list{margin:0}
/* fallback linii tickerów: kategorie w mono-stylu — domyślnie ukryte,
   włącza je kompaktowy mobile (feedlist--compact / trenditem__ticks) */
/* JEDNA belka na całą grupę i kropka między rubrykami — dokładnie jak
   .kicker--bar. Wcześniej belkę dostawała każda rubryka osobno (.tickcat::after),
   więc „Ekonomika · Trendy" wyglądało jak dwa niezależne kickery obok siebie.
   Wymiary belki (13px odstępu, 4px szerokości) celowo te same co w .kicker--bar,
   żeby oba warianty tej samej treści wyglądały identycznie. */
.ticks.ticks--cats{display:none;position:relative;padding-left:13px;gap:0}
.ticks.ticks--cats::before{content:"";position:absolute;left:0;top:1px;bottom:1px;width:4px;background:var(--brand)}
.tickcat{font-family:var(--f-mono);font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--brand)}
/* separator na drugiej i kolejnych rubrykach — nie potrzeba osobnego elementu */
.tickcat + .tickcat::before{content:"·";margin:0 6px}
[data-theme="dark"] .tickcat{color:#fff}

/* Bullionář Daily — hero + mini cards */
.bullhero{display:flex;flex-direction:column;gap:20px;padding:18px 16px 22px}
.bullhero__lead{position:relative;display:block;overflow:hidden}
.bullhero__lead>img{display:block;width:100%;aspect-ratio:21/9;object-fit:cover;transition:transform .5s}
@media (hover:hover){.bullhero__lead:hover>img{transform:scale(1.03)}}
.bullhero__lead::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,8,11,0) 22%,rgba(7,8,11,.85) 82%)}
.bullhero__body{position:absolute;left:0;right:0;bottom:0;z-index:1;display:block;padding:24px 26px}
.bullhero__meta,.bullmini__meta{display:flex;align-items:center;gap:9px;font-family:var(--f-mono);font-size:11px;color:rgba(255,255,255,.78)}
.bullhero__meta b,.bullmini__meta b{font-weight:700}
.bullhero__body h3{margin-top:9px;font-size:25px;font-weight:800;line-height:1.18;letter-spacing:-.015em;color:#fff;max-width:26ch}
.bullhero__x{display:block;margin-top:9px;font-size:14px;line-height:1.5;color:rgba(255,255,255,.78);max-width:64ch}
.bullhero__lead .bullfeed__ph{color:rgba(255,255,255,.85)}
.bullhero__row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
/* pobieramy 6 (lead + 5): desktop pokazuje 3 minisy, resztę odsłania
   mobilny slider */
.bullhero__row .bullmini:nth-child(n+4){display:none}
/* faza na leadzie: nad metą, blokiem */
.bullhero__body .bullfeed__ph{display:inline-flex;margin-bottom:9px}
.bullmini{display:flex;flex-direction:column;gap:9px;min-width:0}
.bullmini__media{display:block;overflow:hidden}
.bullmini__media img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .5s}
@media (hover:hover){.bullmini:hover .bullmini__media img{transform:scale(1.04)}}
.bullmini__meta{color:var(--muted)}
.bullmini__meta b{color:var(--text)}
.bullmini h3{font-size:15.5px;font-weight:700;line-height:1.35;color:var(--text);transition:color .15s}
@media (hover:hover){.bullmini:hover h3{color:var(--accent)}}
/* ── Bullionář Daily w wariancie wąskim (.bull--compact) ─────────────────
   Układ edytorski: zdjęcie tylko przy leadzie, dalej same nagłówki. Faza dnia
   to kicker o STAŁEJ szerokości z kreską jako border-right — dzięki temu
   kreska i data stoją w jednej kolumnie we wszystkich wierszach. */
.bull--compact .bullhero{gap:0}
.bull--compact .bullhero__lead{display:block}
.bull--compact .bullhero__lead>img{aspect-ratio:16/9}
.bull--compact .bullhero__lead::after{display:none}
.bull--compact .bullhero__body{position:static;padding:16px 0;border-bottom:1px solid var(--line)}
.bull--compact .bullhero__body h3{margin-top:7px;font-size:18px;line-height:1.24;letter-spacing:-.012em;color:var(--text);max-width:none}
.bull--compact .bullhero__x{display:none}

/* 4 wpisy pod leadem, bez miniatur */
.bull--compact .bullhero__row{display:block;grid-template-columns:1fr;gap:0;overflow-x:visible;margin:0;padding:0;scroll-snap-type:none}
.bull--compact .bullhero__row .bullmini{flex:none;scroll-snap-align:none}
.bull--compact .bullhero__row .bullmini{display:block;padding:16px 0;border-bottom:1px solid var(--line)}
.bull--compact .bullhero__row .bullmini:nth-child(n+5){display:none}
.bull--compact .bullhero__row .bullmini:nth-child(4){border-bottom:none;padding-bottom:0}
.bull--compact .bullhero__row .bullmini__media{display:none}
.bull--compact .bullhero__row .bullmini h3{margin-top:7px;font-size:15.5px;line-height:1.3;letter-spacing:-.008em}

/* meta: nigdzie bold, data w szarości */
.bull--compact .bullhero__meta,.bull--compact .bullmini__meta{gap:0;font-size:10.5px;letter-spacing:.04em;color:var(--muted)}
.bull--compact .bullhero__meta b,.bull--compact .bullmini__meta b{font-weight:500;color:var(--muted)}
.bull--compact .bullfeed__ph{flex:none;width:126px;gap:0;font-size:10px;font-weight:700;letter-spacing:.09em;color:var(--brand);border-right:1px solid var(--line-2);margin-right:12px}
.bull--compact .bullfeed__ph::before,.bull--compact .bullfeed__ph::after{display:none}
/* na leadzie faza i data są rodzeństwem w bloku — inline, żeby stały w linii */
.bull--compact .bullhero__body .bullfeed__ph{display:inline-flex;vertical-align:middle;margin-bottom:0}
.bull--compact .bullhero__body .bullhero__meta{display:inline-flex;vertical-align:middle}

.bullfeed__ph{display:inline-flex;align-items:center;gap:7px;font-style:normal;font-family:var(--f-mono);font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.bullfeed__ph::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--line-2)}
.bullfeed__ph--am::before{background:var(--amber)}
.bullfeed__ph--open::before{background:var(--brand)}
.bullfeed__ph--pm::before{background:#7e8cf8}
.bullfeed__ph--recap::before{background:var(--text)}
/* na ciemnym scrimie leada ciemna kropka Recap ginie */
.bullhero__lead .bullfeed__ph--recap::before{background:#fff}
@media (max-width:820px){
  .bullhero__lead>img{aspect-ratio:16/10}
  .bullhero__body h3{font-size:19px}
  .bullhero__x{display:none}
  .bullhero__row{grid-template-columns:1fr;gap:16px}
}
@media (max-width:820px){
  .bullmini{display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:8px 14px;align-items:start}
  .bullmini__meta{grid-column:1/-1}
  .bullmini h3{grid-row:2;grid-column:1;font-size:15px}
  .bullmini__media{grid-row:2;grid-column:2;width:100%}
  .bullmini__media img{aspect-ratio:1/1}
}
/* mobile: najnowszy na górze (lead bez zmian), reszta w sliderze scroll-snap —
   karty 62% szerokości z podglądem następnej, full-bleed do krawędzi */
@media (max-width:680px){
  .bullhero{padding-left:0;padding-right:0}
  .bullhero__row{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);margin:0 calc(-1 * var(--pad));padding:2px var(--pad) 4px;scrollbar-width:none}
  .bullhero__row::-webkit-scrollbar{display:none}
  .bullhero__row .bullmini:nth-child(n+4){display:flex}
  .bullmini{display:flex;flex-direction:column;flex:0 0 62%;min-width:0;scroll-snap-align:start;gap:8px}
  .bullmini__media{width:100%}
  .bullmini__media img{aspect-ratio:16/10}
  .bullmini__meta{flex-wrap:wrap;gap:7px 9px}
  .bullmini h3{font-size:14.5px}
}

/* mini market widget */
.mini-markets{display:flex;flex-direction:column}
.mm{display:grid;grid-template-columns:1fr auto 64px;gap:10px;align-items:baseline;padding:12px 16px;border-bottom:1px solid var(--line)}
.mm:last-child{border-bottom:none}
@media (hover:hover){.mm:hover{background:var(--paper-2)}}
.mm__sym{font-family:var(--f-display);font-weight:700;font-size:14px;color:var(--text)}
.mm__px{font-family:var(--f-mono);font-size:13px;color:var(--text-2);font-variant-numeric:tabular-nums}
.mm .chg{font-size:12.5px;text-align:right}

/* IPO radar card */
.ipo-card{display:flex;flex-direction:column;background:var(--paper)}
.ipo-card__media{display:block;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.ipo-card__media img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .5s}
@media (hover:hover){.ipo-card__media:hover img{transform:scale(1.04)}}
.ipo-card__badge{position:absolute;top:10px;left:10px;background:var(--ink);color:#fff;font-family:var(--f-mono);font-size:10px;font-weight:600;letter-spacing:.08em;padding:4px 9px}
.ipo-card__body{padding:16px 16px 0}
.ipo-card__name{font-size:19px;font-weight:800;letter-spacing:-.01em;margin-bottom:7px}
.ipo-card__desc{font-size:13px;color:var(--text-2);line-height:1.5;margin-bottom:6px}
/* flat spec-list */
.ipo-specs{margin:0}
.ipo-spec{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.ipo-spec dt{font-family:var(--f-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.ipo-spec dd{font-weight:700;font-size:14px;color:var(--text);text-align:right}
.ipo-spec dd.accent{color:var(--accent)}
.ipo-spec--val{border-top:2px solid var(--text);padding-top:12px;margin-top:2px}
.ipo-spec--val dt{color:var(--text);font-weight:600}
.ipo-spec--val dd{font-family:var(--f-display);font-size:20px;font-weight:800;color:var(--accent);letter-spacing:-.01em}
.ipo-card__more{display:flex;align-items:center;justify-content:center;gap:9px;margin:0;padding:14px 16px;border-top:1px solid var(--line);color:var(--accent);font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
@media (hover:hover){.ipo-card__more:hover{background:var(--paper-2)}}
.ipo-card__more svg{width:22px;height:11px;transition:transform .2s}
@media (hover:hover){.ipo-card__more:hover svg{transform:translateX(4px)}}

/* IPO — karty newsów (używane przez home/IpoRadar.astro) */
.ipo-item{padding:17px 16px;border-bottom:1px solid var(--line)}
.ipo-item:first-child{padding-top:18px}
.ipo-item:last-child{border-bottom:none}
.ipo-item .kicker--bar{display:inline-block;margin-bottom:9px}
.ipo-item h3{font-size:20px;font-weight:800;line-height:1.22;letter-spacing:-.01em;margin-bottom:9px}
@media (hover:hover){.ipo-item h3 a:hover{text-decoration:underline}}
.ipo-item .byline{margin:0}

.ipo-newsrow{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-top:none}
.ipo-newsrow .ipo-item{padding:18px;border-top:none;border-right:1px solid var(--line)}
.ipo-newsrow .ipo-item:last-child{border-right:none}
.ipo-newsrow .ipo-item h3{font-size:16px;line-height:1.25}
@media (max-width:900px){
  .ipo-newsrow{grid-template-columns:1fr 1fr}
  .ipo-newsrow .ipo-item:nth-child(2n){border-right:none}
  .ipo-newsrow .ipo-item:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media (max-width:560px){
  .ipo-newsrow{grid-template-columns:1fr}
  .ipo-newsrow .ipo-item{border-right:none;border-bottom:1px solid var(--line)}
  .ipo-newsrow .ipo-item:last-child{border-bottom:none}
}

/* most-read list */
.readlist{display:flex;flex-direction:column}
.readitem{display:flex;gap:13px;padding:14px 16px;border-bottom:1px solid var(--line)}
.readitem:last-child{border-bottom:none}
.readitem__media{flex:none;width:72px;height:60px;overflow:hidden}
.readitem__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
@media (hover:hover){.readitem:hover .readitem__media img{transform:scale(1.06)}}
.readitem h3{font-size:13.5px;font-weight:700;line-height:1.3;margin-bottom:5px}
@media (hover:hover){.readitem h3 a:hover{color:var(--accent)}}
.readitem time{font-family:var(--f-mono);font-size:11px;color:var(--muted)}

/* ipo card on flat bg + wide variant (main column) */
.ipo-card{border:1px solid var(--line)}
.ipo-card--wide{display:grid;grid-template-columns:340px 1fr}
.ipo-card--wide .ipo-card__media{border-bottom:none;border-right:1px solid var(--line)}
.ipo-card--wide .ipo-card__media img{height:100%;min-height:250px;aspect-ratio:auto}
.ipo-card--wide .ipo-card__body{padding:20px}
.ipo-card--wide .ipo-card__stats{grid-template-columns:repeat(4,1fr)}
.ipo-card--wide .ipo-card__stats>div{border-bottom:none;border-right:1px solid var(--line)}
.ipo-card--wide .ipo-card__stats>div:last-child{border-right:none}
.ipo-card__cta{display:flex;align-items:center;gap:16px}
.ipo-card--wide .ipo-card__val{flex:1;flex-direction:row;align-items:center;justify-content:space-between;text-align:left;margin-bottom:0;padding:12px 16px}
.ipo-card--wide .ipo-card__val strong{font-size:20px}
.ipo-card--wide .ipo-card__btn{width:auto;white-space:nowrap}

/* Co hýbe trhem na mobile — karuzela scroll-snap: karty 4:5 ze zdjęciem
   i scrimem, licznik „N / M", tickery + tytuł + meta na dole; następna karta
   wystaje zza krawędzi. Desktop widzi feed 1:1 ze Zprávami (.chtfeed). */
.chtswipe{display:none}
@media (max-width:680px){
  .module--cht .chtfeed,.module--cht .chtfeed__more{display:none}
  /* full-bleed do krawędzi viewportu; scroll-padding trzyma snap na linii wrapa */
  /* padding tylko tyle, ile trzeba na cień karty; ujemny margines ścina część
     44px gapu .homebands, żeby slider nie odjeżdżał od kolejnej sekcji */
  .chtswipe{display:block;margin:12px calc(-1 * var(--pad)) -22px;padding:4px 0 8px}
  .chtswipe__track{display:flex;align-items:stretch;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);padding:0 var(--pad);scrollbar-width:none}
  .chtswipe__track::-webkit-scrollbar{display:none}
  .chtcard{flex:0 0 80%;min-width:0;scroll-snap-align:start}
  /* karta, nie płaski kafel: własna powierzchnia, hairline i miękki cień —
     ten sam język co karty w Režim čtení */
  .chtcard__link{display:flex;flex-direction:column;height:100%;overflow:hidden;border-radius:2px;background:var(--paper);box-shadow:0 1px 2px rgb(13 14 19/7%),0 8px 20px rgb(13 14 19/6%)}
  [data-theme="dark"] .chtcard__link{background:var(--paper-2);box-shadow:0 1px 2px rgb(0 0 0/45%)}
  /* panoramiczne zdjęcie z licznikiem, tekst pod spodem */
  .chtcard__media{position:relative;display:block;overflow:hidden;background:var(--ink)}
  .chtcard__media img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
  .chtcard__count{position:absolute;top:10px;right:10px;z-index:2;font-family:var(--f-mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;color:#fff;background:rgb(9 11 18/.68);padding:5px 9px;border-radius:3px;font-variant-numeric:tabular-nums}
  .chtcard__body{display:flex;flex-direction:column;flex:1;padding:14px 16px 16px}
  /* tickery jak w feedach: symbol w kolorze tekstu, % w up/down */
  .chtswipe .chtcard__ticks{display:flex;flex-wrap:nowrap;gap:14px;margin-bottom:7px}
  .chtswipe .chtcard__ticks .tick{flex:none;padding:0;border:0;border-radius:0;background:none;gap:7px}
  .chtswipe .chtcard__ticks .tick b{font-size:11.5px;text-transform:uppercase}
  .chtswipe .chtcard__ticks .tick .chg{font-size:11.5px;padding:0;border-radius:0;background:none}
  .chtswipe .chtcard__ticks .tick .chg.up,
  .chtswipe .chtcard__ticks .tick .chg.down{background:none}
  .chtcard__title{display:block;font-family:var(--f-display);font-size:16px;font-weight:700;line-height:1.35;letter-spacing:-.01em;color:var(--text);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  /* ikony zamiast separatora — tak samo jak w wierszach feedów i kategorii */
  /* meta dosunięta do dołu karty — wszystkie karty w rzędzie kończą się równo */
  .chtcard__meta{display:flex;align-items:center;gap:14px;margin-top:auto;padding-top:10px;font-family:var(--f-mono);font-size:11px;color:var(--muted)}

  /* ── feed jako karuzela kart (feedlist--swipe) ─────────────────────────
     Ten sam wygląd co slider Co hýbe trhem, tylko zbudowany na wierszach
     .feeditem: lista staje się torem, wiersz kartą ze zdjęciem na górze. */
  .feedlist--compact.feedlist--swipe{display:flex;flex-direction:row;align-items:stretch;gap:12px;margin:12px calc(-1 * var(--pad)) -12px;padding:4px var(--pad) 8px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);scrollbar-width:none}
  .feedlist--compact.feedlist--swipe::-webkit-scrollbar{display:none}
  .feedlist--compact.feedlist--swipe .feeditem{flex:0 0 80%;min-width:0;scroll-snap-align:start;display:flex;flex-direction:column;gap:0;padding:0;border-bottom:none;overflow:hidden;border-radius:2px;background:var(--paper);box-shadow:0 1px 2px rgb(13 14 19/7%),0 8px 20px rgb(13 14 19/6%)}
  [data-theme="dark"] .feedlist--compact.feedlist--swipe .feeditem{background:var(--paper-2);box-shadow:0 1px 2px rgb(0 0 0/45%)}
  /* w karuzeli mieszczą się wszystkie pobrane pozycje */
  .feedlist--compact.feedlist--swipe .feeditem:nth-child(n+6){display:flex}
  .feedlist--compact.feedlist--swipe .feeditem__media{width:100%;align-self:stretch}
  .feedlist--compact.feedlist--swipe .feeditem__media img{aspect-ratio:16/9}
  .feedlist--compact.feedlist--swipe .feeditem__body{display:flex;flex-direction:column;flex:1;padding:14px 16px 16px}
  .feedlist--compact.feedlist--swipe .feeditem__body p:not(.kicker):not(.byline){display:none}
  .feedlist--compact.feedlist--swipe .feeditem__ticks{margin:0 0 7px}
  .feedlist--compact.feedlist--swipe .byline{margin-top:auto;padding-top:10px}
}

/* obraz wiersza feedu = szerokość jak w kartach kategorii (řádkový widok) */
.feeditem__media{width:320px}

/* duplikat Právě teď między Trendy a Zprávami — tylko mobile (desktop: rail) */
.front-breaking{display:none}
/* duplikat Nejčtenější (karuzela) pod Zprávami — tylko mobile (desktop: ranking w railu) */
.front-most{display:none}
/* duplikat Trendů pod Zprávami (/home2/) — tylko mobile, desktop ma ranking w railu */
.front-trend{display:none}
/* duplikat Bullionář Daily przed Akcjemi — tylko poniżej desktopu */
.front-bull{display:none}

/* home responsive */
@media (max-width:1080px){
  .home__grid{grid-template-columns:1fr;grid-template-areas:"main" "rail";gap:44px}
  /* homepage: towarzysze pasm nie renderują się na mobile;
     Právě teď wraca jako .front-breaking w głównym stosie */
  .band{grid-template-columns:1fr}
  .band__side{display:none}
  .homebands{gap:44px}
  .front-breaking,.front-bull{display:block}
  .col--rail{position:static}
  /* Bullionář Daily w railu jest desktopowy: na mobile rail ląduje pod
     artykułem i moduł tylko wydłużałby stronę */
  .rail-bull{display:none}
  /* rail-owy gutter timeline'u (47px) dusił szerokość tekstu na pełnej
     kolumnie — kropki i linia dosunięte do lewej, tekst szerszy o ~33px */
  .front-breaking .breaking a{padding:2px 0 12px 30px}
  .front-breaking .breaking::before{left:9px}
  .front-breaking .breaking a::before{left:4.5px;top:7px}
  /* 5 wpisów + stopka do całego feedu (pasmo desktopowe: 7, bez stopki) */
  .front-breaking .breaking li:nth-child(n+6){display:none}
  /* na mobile tytuły wpisów jak w feedach — 16px zamiast 15px */
  .front-breaking .breaking h3{font-size:16px}
  .front-breaking .breaking__more{display:flex}
}
/* mobile: Co hýbe trhem (karuzela) tuż pod Trendy — potem Právě teď i reszta
   w kolejności DOM; desktop/tablet zostają przy kolejności z markupu */
@media (max-width:680px){
  /* Co hýbe trhem nie ma już własnej reguły order — siedzi w lewej kolumnie
     pasma Zpráv, więc na mobile wypada zaraz pod nimi */
  /* Na mobile guziki „Více z …" pod każdym modułem zjadały ekran — chowamy je
     wszystkie, łącznie z Trendy. Wyjście do rubryk zostaje w nagłówkach modułów
     i w pasku CatTabs. Reguły scoped do .homebands — kategorie mają swoje. */
  .homebands .module__more,
  .homebands .breaking__more,
  .homebands .trendgrid__more{display:none}

  .homebands--front > :first-child{order:-3}
  .homebands--front > .front-breaking{order:-1}
  /* pod hero Trendy nie mają nagłówka, więc 28px paddingu sekcji + 16px
     paddingu pierwszego wiersza dawało 44px pustki tuż pod sliderem.
     Selektor sąsiada, bo pierwszym <section> w main jest .leadhero — przez to
     .home:first-of-type nie pasuje do żadnego elementu. */
  .leadhero + .home{padding-top:8px}
  /* granica dwóch sekcji .home (ETF → Dividendy) miała 56+28px; sprowadzamy ją
     do rytmu odstępów wewnątrz sekcji */
  .home:has(+ .home){padding-bottom:0}
  .home + .home{padding-top:34px}

  /* Odstępy między sekcjami na mobile: bazowy gap 34px zamiast 44px, plus
     korekty tam, gdzie sekcja kończy się „lekko" (guzik, karuzela). Nagłówki
     i ostatni wiersz feedu mają mniejszy padding — inaczej do gapu dokładało
     się jeszcze ~30px pustki. */
  .homebands{gap:34px}
  .homebands--front > :first-child{margin-bottom:-6px}
  .homebands--front > .front-breaking{margin-bottom:-12px}
  .band{row-gap:24px}
  .homebands .module__title{padding-top:4px}
  .homebands .feedlist--compact .feeditem:nth-child(5),
  .homebands .feedlist--compact .feeditem:last-child{padding-bottom:4px}
  .front-most,.front-trend{display:block}
}
@media (max-width:560px){
  .module__title{font-size:20px}
  .module__sub{display:none}
  .newsgrid{grid-template-columns:1fr}
  .feedlist:not(.feedlist--compact) .feeditem,.feeditem:not(.feedlist *){flex-direction:column;gap:12px}
  .feedlist:not(.feedlist--compact) .feeditem__media,.feeditem:not(.feedlist *) .feeditem__media{width:100%}
  .feedlist:not(.feedlist--compact) .feeditem__body h3,.feeditem:not(.feedlist *) .feeditem__body h3{font-size:18px}
  .ipo-card--wide{grid-template-columns:1fr}
  .ipo-card--wide .ipo-card__media{border-right:none;border-bottom:1px solid var(--line)}
  .ipo-card--wide .ipo-card__media img{min-height:200px}
  .ipo-card__cta{flex-direction:column;align-items:stretch;gap:12px}
  .ipo-card--wide .ipo-card__val{flex-direction:column;text-align:center;justify-content:center;gap:6px}
  .ipo-card--wide .ipo-card__btn{width:100%}
  .podcast{flex-wrap:wrap}
  .podcast__txt{flex-basis:60%}
}

/* ============================================================
   HOME — full-bleed lead slider (dark)
   ============================================================ */
.leadhero{position:relative;background:var(--ink);overflow:hidden}
.leadhero__viewport{overflow:hidden}
.leadhero__track{display:flex;transition:transform .55s cubic-bezier(.4,0,.2,1)}
.leadslide{position:relative;flex:0 0 100%;min-width:0;min-height:540px;display:flex;align-items:center;overflow:hidden}
.leadslide__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%}
.leadslide::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(8,9,14,.92) 0%,rgba(8,9,14,.72) 40%,rgba(8,9,14,.34) 70%,rgba(8,9,14,.12) 100%),linear-gradient(0deg,rgba(8,9,14,.55),rgba(8,9,14,0) 50%)}
.leadslide__inner{position:relative;z-index:2;width:100%}
.leadslide__body{max-width:600px;color:#fff;padding:56px 0}
.leadslide__body .kicker--bar{margin-bottom:18px;color:#fff}
.leadslide__title{font-size:clamp(30px,3.4vw,48px);line-height:1.1;font-weight:800;letter-spacing:-.02em;margin-bottom:20px;color:#fff}
.leadslide__title a{color:#fff}
@media (hover:hover){.leadslide__title a:hover{color:rgba(255,255,255,.85)}}
.leadslide__deck{font-size:18px;line-height:1.55;color:rgba(255,255,255,.72);margin-bottom:26px;max-width:46ch}
.leadslide__by{font-size:13.5px;color:rgba(255,255,255,.55);line-height:1.6}
.leadslide__by b{color:#fff;font-weight:600}
/* arrows */
.leadhero__arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);color:#fff;transition:background .15s,border-color .15s}
@media (hover:hover){.leadhero__arrow:hover{background:var(--brand);border-color:var(--brand)}}
.leadhero__arrow--prev{left:16px}
.leadhero__arrow--next{right:16px}
.leadhero__arrow svg{width:22px;height:22px}
/* dots (sharp bars) */
.leadhero__dots{position:absolute;bottom:18px;left:0;right:0;display:flex;justify-content:center;gap:8px;z-index:3}
.leadhero__dots button{width:24px;height:3px;padding:0;border:none;background:rgba(255,255,255,.35);cursor:pointer;transition:background .2s,width .2s}
.leadhero__dots button.is-active{background:#fff;width:36px}

@media (max-width:860px){
  .leadslide{min-height:460px;align-items:flex-end}
  .leadslide::before{background:linear-gradient(0deg,rgba(8,9,14,.94) 5%,rgba(8,9,14,.6) 48%,rgba(8,9,14,.28) 100%)}
  .leadslide__body{max-width:none;padding:0 0 42px}
  .leadhero__arrow{width:38px;height:38px}
  .leadhero__arrow svg{width:18px;height:18px}
}
@media (max-width:600px){
  /* kompaktowy hero: sporo niższy, ciaśniejsza typografia, autor i data
     w jednej linii (br ukryty, separator z ::before) */
  .leadslide{min-height:310px}
  .leadslide__body{padding:0 0 32px}
  .leadslide__body .kicker--bar{margin-bottom:10px}
  .leadslide__title{font-size:21px;margin-bottom:10px}
  .leadslide__by{font-size:12px}
  .leadslide__by br{display:none}
  .leadslide__by time::before{content:"\00A0· "}
  .leadhero__dots{bottom:12px}
}

/* ============================================================
   Miliardáři — magazine special (Forbes-style)
   ============================================================ */
.mag{background:var(--paper);padding:0 0 24px}

/* nameplate */
.magband{padding:26px 0 34px;border-bottom:2px solid var(--text)}
.magband__eyebrow{display:flex;align-items:center;gap:16px;font-family:var(--f-mono);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:26px}
.magband__eyebrow a{color:var(--brand)}
.magband__eyebrow>span{color:var(--text)}
.magband__eyebrow time{margin-left:auto;color:var(--muted)}
.magband__name{font-size:clamp(32px,6.2vw,83px);line-height:.9;letter-spacing:-.035em;font-weight:800}
.magband__foot{display:flex;align-items:flex-end;justify-content:space-between;gap:44px;margin-top:28px}
.magband__tag{font-size:20px;line-height:1.45;color:var(--text-2);max-width:58ch;font-weight:500}
.magband__count{flex:none;text-align:right;font-family:var(--f-mono);font-size:15px;font-weight:600;color:var(--text)}
.magband__count em{display:block;margin-top:4px;font-style:normal;font-size:10.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}

/* cover story */
.magcover{position:relative;display:block;overflow:hidden;background:var(--ink)}
.magcover__hit{display:block;color:inherit}
.magcover__topbar{position:absolute;top:0;left:0;right:0;z-index:2;padding:18px 0 40px;background:linear-gradient(to bottom,rgba(6,7,11,.55),rgba(6,7,11,0))}
.magcover__crumbs{display:inline-flex;align-items:center;gap:11px;font-family:var(--f-mono);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.magcover__crumbs a{color:rgba(255,255,255,.72)}
@media (hover:hover){.magcover__crumbs a:hover{color:#fff}}
.magcover__crumbs b{font-weight:600;color:#fff}
.magcover__crumbs i{width:5px;height:5px;border-top:1.5px solid rgba(255,255,255,.5);border-right:1.5px solid rgba(255,255,255,.5);transform:rotate(45deg)}
.magcover__img{width:100%;height:78vh;min-height:520px;max-height:840px;object-fit:cover;object-position:center 24%;transition:transform .8s cubic-bezier(.22,.61,.36,1)}
@media (hover:hover){.magcover:hover .magcover__img{transform:scale(1.035)}}
.magcover__scrim{position:absolute;inset:0;display:flex;align-items:flex-end;background:linear-gradient(to top,rgba(6,7,11,.97) 0%,rgba(6,7,11,.9) 14%,rgba(6,7,11,.62) 34%,rgba(6,7,11,.3) 54%,rgba(6,7,11,.12) 74%,rgba(6,7,11,.08) 100%),rgba(6,7,11,.34)}
.magcover__scrim .wrap{width:100%;padding-top:56px;padding-bottom:56px}
.magcover__kicker{display:flex;align-items:center;gap:13px;font-family:var(--f-mono);font-size:11.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}
.magcover__kicker b{background:var(--brand);color:#fff;padding:5px 12px;font-weight:600}
.magcover__kicker span{color:rgba(255,255,255,.78)}
.magcover__title{margin-top:20px;max-width:19ch;color:#fff;font-size:clamp(32px,5vw,64px);line-height:1.02;letter-spacing:-.025em}
.magcover__dek{margin-top:20px;max-width:54ch;font-size:18px;line-height:1.5;color:rgba(255,255,255,.82)}
.magcover__meta{display:flex;align-items:center;gap:13px;margin-top:26px;font-family:var(--f-mono);font-size:11.5px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.66)}
.magcover__meta i{width:4px;height:4px;background:rgba(255,255,255,.4);transform:rotate(45deg)}
.magcover__cta{display:inline-flex;align-items:center;gap:11px;margin-top:30px;font-family:var(--f-mono);font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#fff;border-bottom:2px solid #fff;padding-bottom:5px}
.magcover__cta svg{width:24px;height:11px;transition:transform .2s}
@media (hover:hover){.magcover:hover .magcover__cta svg{transform:translateX(5px)}}

/* more from the section */
.magmore{padding:60px 0 6px}
.magmore__head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding-bottom:22px;margin-bottom:40px;border-bottom:1px solid var(--text)}
.magmore__head h3{font-size:clamp(24px,2.6vw,33px);letter-spacing:-.02em}
.magmore__head span{font-family:var(--f-mono);font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}

.magduo{display:grid;grid-template-columns:1fr 1fr;gap:46px;margin-bottom:54px}
.magfeat__media{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--paper-2)}
.magfeat__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
@media (hover:hover){.magfeat:hover .magfeat__media img{transform:scale(1.04)}}
.magfeat__kick{display:flex;align-items:center;gap:11px;margin-top:18px;font-family:var(--f-mono);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--brand)}
.magfeat__kick em{font-style:normal;color:var(--muted)}
.magfeat__title{margin-top:12px;font-size:26px;line-height:1.18;letter-spacing:-.015em}
@media (hover:hover){.magfeat__title a:hover{text-decoration:underline}}
.magfeat__dek{margin-top:12px;font-size:15px;line-height:1.55;color:var(--text-2);max-width:50ch}
.magfeat__date{display:block;margin-top:16px;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}

.magquad{display:grid;grid-template-columns:repeat(4,1fr);gap:34px;padding-top:48px;border-top:1px solid var(--line)}
.magmini__media{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--paper-2)}
.magmini__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
@media (hover:hover){.magmini:hover .magmini__media img{transform:scale(1.04)}}
.magmini__kick{display:flex;align-items:center;gap:9px;margin-top:15px;font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--brand)}
.magmini__kick em{font-style:normal;color:var(--muted)}
.magmini__title{margin-top:9px;font-size:16.5px;line-height:1.28;letter-spacing:-.01em}
@media (hover:hover){.magmini__title a:hover{text-decoration:underline}}
.magmini__date{display:block;margin-top:11px;font-family:var(--f-mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}

.magmore__all{display:inline-flex;align-items:center;gap:11px;margin-top:54px;font-family:var(--f-mono);font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text);border-bottom:2px solid var(--text);padding-bottom:5px}
.magmore__all svg{width:24px;height:11px;transition:transform .2s}
@media (hover:hover){.magmore__all:hover svg{transform:translateX(5px)}}

@media (max-width:1000px){
  .magcover__img{height:66vh;min-height:440px}
  .magquad{grid-template-columns:1fr 1fr;gap:38px 30px}
}
@media (max-width:720px){
  .magband__foot{flex-direction:column;align-items:flex-start;gap:16px}
  .magcover__img{height:auto;aspect-ratio:4/5;min-height:0;max-height:none}
  .magcover__scrim{background:linear-gradient(to top,rgba(6,7,11,.97) 0%,rgba(6,7,11,.9) 20%,rgba(6,7,11,.58) 44%,rgba(6,7,11,.28) 64%,rgba(6,7,11,.12) 100%),rgba(6,7,11,.34)}
  .magcover__scrim .wrap{padding-top:40px;padding-bottom:40px}
  .magduo{grid-template-columns:1fr;gap:42px}
  .magmore__head{flex-direction:column;align-items:flex-start;gap:8px}
}
@media (max-width:520px){
  .magquad{grid-template-columns:1fr}
}

/* ============================================================
   Miliardáři — single post (Forbes-style long read)
   ============================================================ */
.mpost{background:var(--paper);padding:0 0 10px}
.mpost__col,.mpost__standfirst,.mpost__byline,.mpost__keys,.mpost__body,.mpost__foot{max-width:863px;margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px}

/* cinematic hero */
.mpost-hero{position:relative;overflow:hidden;background:var(--ink)}
.mpost-hero__img{width:100%;height:88vh;min-height:580px;max-height:920px;object-fit:cover;object-position:center 22%}
.mpost-hero__fade{position:absolute;inset:0;background:#06070b;opacity:0;pointer-events:none;will-change:opacity}
.mpost-hero__scrim{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;background:radial-gradient(130% 100% at 50% 52%,rgba(6,7,11,.42) 0%,rgba(6,7,11,.58) 60%,rgba(6,7,11,.76) 100%)}
.mpost-hero__inner{width:100%;padding-top:40px;padding-bottom:40px;will-change:opacity,transform}
.mpost-hero__crumbs{display:flex;align-items:center;justify-content:center;gap:10px;font-family:var(--f-mono);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.mpost-hero__crumbs a{color:rgba(255,255,255,.62)}
@media (hover:hover){.mpost-hero__crumbs a:hover{color:#fff}}
.mpost-hero__crumbs i{font-style:normal;color:rgba(255,255,255,.4)}
.mpost-hero__kicker{display:flex;align-items:center;justify-content:center;gap:13px;margin-top:26px;font-family:var(--f-mono);font-size:11.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}
.mpost-hero__kicker b{background:var(--brand);color:#fff;padding:5px 12px;font-weight:600}
.mpost-hero__kicker span{color:rgba(255,255,255,.8)}
.mpost-hero__title{margin:22px auto 0;max-width:24ch;color:#fff;font-size:clamp(33px,5.4vw,70px);line-height:1.03;letter-spacing:-.025em}
.mpost-hero__scroll{display:inline-flex;flex-direction:column;align-items:center;gap:9px;margin-top:40px;font-family:var(--f-mono);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.mpost-hero__scroll i{width:1px;height:32px;background:linear-gradient(rgba(255,255,255,.75),rgba(255,255,255,0));animation:mpScroll 1.9s ease-in-out infinite}
@keyframes mpScroll{0%,100%{transform:scaleY(.35);transform-origin:top;opacity:.5}50%{transform:scaleY(1);transform-origin:top;opacity:1}}

/* standfirst */
.mpost__standfirst{margin-top:48px;font-size:clamp(20px,2.2vw,25px);line-height:1.42;font-weight:500;color:var(--text);letter-spacing:-.008em}

/* byline + share */
.mpost__byline{margin-top:30px;padding-top:20px;padding-bottom:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px}
.mpost__by{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-family:var(--f-mono);font-size:12px;font-weight:500;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
.mpost__author{color:var(--text);font-weight:600}
.mpost__dot{width:4px;height:4px;background:var(--line-2);transform:rotate(45deg)}
.mpost__share{display:flex;gap:8px;flex:none}
.mpost__share a{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--line-2);color:var(--text);transition:background .15s,border-color .15s,color .15s}
@media (hover:hover){.mpost__share a:hover{background:var(--text);border-color:var(--text);color:var(--paper)}}
.mpost__share svg{width:16px;height:16px}

/* key takeaways */
.mpost__keys{margin-top:40px}
.mpost__keys>h2{font-family:var(--f-mono);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--brand);margin-bottom:16px}
.mpost__keys{background:var(--paper-2);border-left:3px solid var(--brand);padding-top:26px;padding-bottom:26px;max-width:863px}
.mpost__keys ul{list-style:none;display:flex;flex-direction:column;gap:13px}
.mpost__keys li{position:relative;padding-left:24px;font-size:15.5px;line-height:1.55;color:var(--text-2)}
.mpost__keys li::before{content:"";position:absolute;left:2px;top:8px;width:7px;height:7px;background:var(--brand);border-radius:50%}

/* body */
.mpost__body{margin-top:8px}
.mpost__body>p{margin-top:26px;font-size:18.5px;line-height:1.74;color:var(--text-2)}
.mpost__body>p:first-of-type{margin-top:46px}
.mpost__body>p strong{color:var(--text);font-weight:700}
.mpost__lead::first-letter{float:left;font-family:var(--f-display);font-size:82px;line-height:.76;font-weight:800;color:var(--brand);padding:8px 14px 0 0}
.mpost__body h2{margin-top:54px;font-size:clamp(25px,2.6vw,33px);line-height:1.16;letter-spacing:-.02em;color:var(--text)}
.mpost__body h2+p{margin-top:18px}

/* pull quote — breaks wider than the column */
.mpost__pull{max-width:900px;margin:54px auto;padding:0 24px;text-align:center}
.mpost__pull::before{content:"";display:block;width:46px;height:3px;background:var(--brand);margin:0 auto 24px}
.mpost__pull p{font-family:var(--f-display);font-size:clamp(24px,3vw,37px);line-height:1.22;letter-spacing:-.02em;font-weight:800;color:var(--text)}

/* inline figure — wider breakout */
.mpost__figure{max-width:1000px;margin:52px auto;padding:0 24px}
.mpost__figure img{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--paper-2)}
.mpost__figure figcaption{margin-top:12px;font-family:var(--f-mono);font-size:12px;line-height:1.5;color:var(--muted);padding-left:14px;border-left:3px solid var(--line-2)}

/* realne figury WP (wp-block-image) w treści — 20px góra/dół, 0 po bokach */
.mpost__body figure{margin:20px 0}
.mpost__body figure img{display:block;max-width:100%;height:auto}
.mpost__body figure figcaption{margin-top:12px;font-family:var(--f-mono);font-size:12px;line-height:1.5;color:var(--muted);padding-left:14px;border-left:3px solid var(--line-2)}

/* footer: tags + author */
.mpost__foot{margin-top:52px}
.mpost__tags{display:flex;flex-wrap:wrap;gap:9px;padding-bottom:34px;border-bottom:1px solid var(--line)}
.mpost__tags a{font-family:var(--f-mono);font-size:12px;font-weight:600;letter-spacing:.03em;color:var(--text);padding:8px 14px;border:1px solid var(--line-2);transition:background .15s,border-color .15s,color .15s}
@media (hover:hover){.mpost__tags a:hover{background:var(--text);border-color:var(--text);color:var(--paper)}}
.mpost__authorcard{display:flex;align-items:flex-start;gap:18px;margin-top:34px}
.mpost__avatar{flex:none;display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--ink);color:#fff;font-family:var(--f-display);font-size:17px;font-weight:800;letter-spacing:.02em}
.mpost__authorcard b{font-size:16px;letter-spacing:-.01em}
.mpost__authorcard p{margin-top:6px;font-size:14.5px;line-height:1.55;color:var(--text-2);max-width:56ch}

/* related from section */
.mpost__related{margin-top:64px;padding:56px 0 8px;background:var(--paper-2);border-top:1px solid var(--line)}
.mpost__related .magmore__head{margin-bottom:38px}
.mpost__relall{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text)}
.mpost__relall svg{width:22px;height:10px;transition:transform .2s}
@media (hover:hover){.mpost__relall:hover svg{transform:translateX(4px)}}
.mpost__related .magquad{border-top:0;padding-top:0}
.mpost__related .magmini__media{background:var(--paper)}

@media (max-width:720px){
  .mpost-hero__img{height:auto;aspect-ratio:3/4;min-height:0;max-height:none}
  .mpost-hero__scrim{background:radial-gradient(140% 90% at 50% 50%,rgba(6,7,11,.46) 0%,rgba(6,7,11,.62) 62%,rgba(6,7,11,.78) 100%)}
  .mpost-hero__inner{padding-top:34px;padding-bottom:34px}
  .mpost-hero__title{font-size:clamp(27px,7.2vw,42px);max-width:none}
  .mpost__byline{flex-direction:column;align-items:flex-start;gap:16px}
  .mpost__body>p{font-size:17.5px}
  .mpost__lead::first-letter{font-size:66px}
}

/* =========================================================
   NEWSLETTER MODAL — first-visit signup (nlmodal)
   ========================================================= */
.nlmodal{position:fixed;inset:0;z-index:380;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(9,10,15,.66);opacity:0;transition:opacity .26s ease}
.nlmodal[hidden]{display:none} /* display:flex wygrywa z UA [hidden] — bez tego niewidzialny overlay blokuje klikanie w stronę */
.nlmodal.open{opacity:1}
.nlmodal__dialog{position:relative;width:min(520px,100%);max-height:calc(100dvh - 48px);overflow:auto;background:var(--paper);border-top:4px solid var(--brand);box-shadow:0 34px 90px rgb(5 6 10 / 50%);transform:translateY(16px);transition:transform .3s cubic-bezier(.22,.61,.36,1);outline:0}
.nlmodal.open .nlmodal__dialog{transform:none}
.nlmodal__close{position:absolute;top:16px;right:16px;z-index:2;display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:0;border-radius:50%;background:#fff;color:#14161d;transition:background .15s,color .15s}
@media (hover:hover){.nlmodal__close:hover{background:var(--brand);color:#fff}}
.nlmodal__close svg{width:16px;height:16px}
.nlmodal__media{aspect-ratio:16/9;background:var(--ink);overflow:hidden}
.nlmodal__media img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;display:block}
.nlmodal__body{padding:24px 28px 26px}
.nlmodal__body h3{margin-top:10px;font-size:24px;line-height:1.12;letter-spacing:-.018em}
.nlmodal__desc{margin-top:10px;font-size:14px;line-height:1.55;color:var(--text-2)}
.nlmodal__desc strong{color:var(--text)}
.nlmodal__form{margin-top:18px}
.nlmodal__phonerow{display:flex;min-width:0}
.nlmodal__phonerow select{flex:none;padding:12px 26px 12px 12px;border:1px solid var(--line-2);border-right:0;background:var(--paper-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236a7080' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 10px center;font-family:var(--f-mono);font-size:13px;font-weight:600;color:var(--text);appearance:none;cursor:pointer}
.nlmodal__phonerow select:focus{outline:none;border-color:var(--brand)}
.nlmodal__phonerow input{flex:1;min-width:0}
.nlmodal__hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.nlmodal__response{margin:0 0 10px;font-size:13px;line-height:1.5;font-weight:600}
.nlmodal__response.error{color:var(--down)}
.nlmodal__response.success{color:var(--up)}
.nlmodal__submit{width:100%;padding:13px}
.nlmodal__submit[disabled]{opacity:.55;cursor:default}
.nlmodal__done{padding:14px 0 4px;text-align:center}
.nlmodal__done h4{font-size:19px;letter-spacing:-.012em}
.nlmodal__done p{margin-top:8px;font-size:13.5px;line-height:1.55;color:var(--text-2)}
.nlmodal__note{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:11.5px;line-height:1.55;color:var(--muted)}
@media (max-width:480px){
  .nlmodal{padding:12px}
  .nlmodal__dialog{max-height:calc(100dvh - 24px)}
  .nlmodal__media{aspect-ratio:2/1}
  .nlmodal__body{padding:20px 20px 22px}
}
/* desktop: układ dzielony — zdjęcie jako lewa kolumna na pełną wysokość,
   formularz z prawej; modal mieści się bez scrollowania na ~700px+ viewportach */
@media (min-width:880px){
  .nlmodal__dialog{display:grid;grid-template-columns:400px minmax(0,1fr);align-items:stretch;width:min(960px,100%)}
  .nlmodal__media{aspect-ratio:auto;height:100%;min-height:0}
  .nlmodal__media img{object-position:50% 18%}
  .nlmodal__body{align-self:center;width:100%;padding:36px 42px}
  .nlmodal__close{background:var(--paper-2);color:var(--text)}
  @media (hover:hover){.nlmodal__close:hover{background:var(--brand);color:#fff}}
}
@media (prefers-reduced-motion:reduce){
  .nlmodal,.nlmodal__dialog{transition:none}
}

/* ---------- nota prawna pod formularzami newslettera + modal partnerów ---------- */
.nllegal{margin-top:14px;font-size:11px;line-height:1.5;color:var(--muted)}
.nllegal__link{padding:0;border:0;background:none;font:inherit;color:var(--accent);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
@media (hover:hover){.nllegal__link:hover{text-decoration-thickness:2px}}
/* wariant na kobaltowym tle (footer CTA, rail, readpromo) */
.nllegal--brand{color:rgba(255,255,255,.66)}
.nllegal--brand .nllegal__link{color:#fff}

.pmodal{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(9,10,15,.72);opacity:0;transition:opacity .22s ease}
.pmodal[hidden]{display:none} /* jak w .nlmodal — display:flex wygrywa z UA [hidden] */
.pmodal.open{opacity:1}
.pmodal__dialog{position:relative;width:min(460px,100%);max-height:calc(100dvh - 48px);overflow:auto;padding:26px 28px 24px;background:var(--paper);border-top:4px solid var(--brand);box-shadow:0 34px 90px rgb(5 6 10 / 55%);transform:translateY(14px);transition:transform .26s cubic-bezier(.22,.61,.36,1);outline:0}
.pmodal.open .pmodal__dialog{transform:none}
.pmodal__close{position:absolute;top:14px;right:14px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;border-radius:50%;background:var(--paper-2);color:var(--text);cursor:pointer;transition:background .15s,color .15s}
@media (hover:hover){.pmodal__close:hover{background:var(--brand);color:#fff}}
.pmodal__close svg{width:15px;height:15px}
.pmodal__dialog h3{margin-top:9px;font-size:21px;line-height:1.15;letter-spacing:-.016em}
.pmodal__desc{margin-top:9px;font-size:12.5px;line-height:1.55;color:var(--text-2)}
.pmodal__list{list-style:none;margin:16px 0 0;padding:0}
.prow{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.pmodal__list li:last-child .prow{border-bottom:0}
.prow__logo{flex:0 0 auto;width:44px;height:44px;border-radius:11px;object-fit:cover}
.prow__logo--dark{object-fit:contain;background:var(--ink);padding:6px}
.prow__txt{display:flex;flex-direction:column;min-width:0;flex:1}
.prow__name{font-size:14px;font-weight:700;line-height:1.3;color:var(--text)}
.prow__legal{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.02em;line-height:1.4;color:var(--muted)}
.prow__go{flex:0 0 auto;display:flex;color:var(--line-2);transition:color .15s,transform .15s}
.prow__go svg{width:16px;height:16px}
@media (hover:hover){.prow:hover .prow__name{text-decoration:underline}.prow:hover .prow__go{color:var(--brand);transform:translateX(2px)}}
.pmodal__note{margin-top:16px;padding-top:13px;border-top:1px solid var(--line);font-size:11px;line-height:1.5;color:var(--muted)}
@media (max-width:560px){
  .pmodal{padding:12px}
  .pmodal__dialog{padding:22px 18px 20px;max-height:calc(100dvh - 24px)}
}
@media (prefers-reduced-motion:reduce){
  .pmodal,.pmodal__dialog{transition:none}
}

/* rail newsletter — kobaltowy moduł w sidebarze (zamiast adslota) */
.railnl{background:var(--brand);color:#fff;padding:24px 24px 20px}
.railnl h2{color:#fff;font-size:21px;line-height:1.15;letter-spacing:-.015em;margin-top:9px}
.railnl__sub{margin-top:9px;font-size:13.5px;line-height:1.5;color:rgba(255,255,255,.82)}
.railnl__form{margin-top:16px}
.railnl__form input[type="email"]{width:100%;padding:12px 14px;border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.1);font-family:var(--f-body);font-size:14px;color:#fff}
.railnl__form input[type="email"]::placeholder{color:rgba(255,255,255,.6)}
.railnl__form input[type="email"]:focus{outline:none;background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.6)}
/* jméno + telefon — schowane, rozwijają się po wejściu w formularz (.is-open) */
.railnl__more{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .32s cubic-bezier(.22,.61,.36,1),opacity .26s ease,margin-top .32s ease;margin-top:0}
.railnl__morein{min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:10px}
.railnl.is-open .railnl__more{grid-template-rows:1fr;opacity:1;margin-top:10px}
.railnl__form input[type="text"],.cta__morein input[type="text"],.railnl__phonerow input[type="tel"]{width:100%;padding:12px 14px;border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.1);font-family:var(--f-body);font-size:14px;color:#fff}
.railnl__form input[type="text"]::placeholder,.cta__morein input[type="text"]::placeholder,.railnl__phonerow input[type="tel"]::placeholder{color:rgba(255,255,255,.6)}
.railnl__form input[type="text"]:focus,.cta__morein input[type="text"]:focus,.railnl__phonerow input[type="tel"]:focus{outline:none;background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.6)}
.railnl__phonerow{display:flex;min-width:0}
.railnl__phonerow select{flex:none;padding:12px 24px 12px 11px;border:1px solid rgba(255,255,255,.32);border-right:0;background:rgba(255,255,255,.16) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='rgba(255,255,255,.7)' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 9px center;font-family:var(--f-mono);font-size:12.5px;font-weight:600;color:#fff;appearance:none;cursor:pointer}
.railnl__phonerow select:focus{outline:none;border-color:rgba(255,255,255,.6)}
.railnl__phonerow select option{color:var(--text);background:var(--paper)}
.railnl__phonerow input[type="tel"]{flex:1;min-width:0}
@media (prefers-reduced-motion:reduce){.railnl__more{transition:none}}
.railnl__btn{width:100%;margin-top:10px;padding:12px;background:#fff;color:var(--brand);border-color:#fff}
@media (hover:hover){.railnl__btn:hover{background:var(--ink);color:#fff;border-color:var(--ink)}}
.railnl__btn[disabled]{opacity:.55;cursor:default}
.railnl__response{margin:10px 0 0;font-size:12.5px;line-height:1.45;font-weight:600}
.railnl__response.error{color:#ffd2d0}
.railnl__response.success{color:#c9f3dc}
.railnl__done{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:16px}
.railnl__done[hidden]{display:none} /* display:flex wygrywa z UA [hidden] */
.railnl__check{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-bottom:6px;border-radius:50%;background:#fff;color:var(--brand)}
.railnl__check svg{width:20px;height:20px}
.railnl__done b{font-family:var(--f-display);font-size:17px;letter-spacing:-.01em}
.railnl__done span:last-child{font-size:13px;line-height:1.5;color:rgba(255,255,255,.82)}
.railnl__note{margin-top:13px;padding-top:12px;border-top:1px solid rgba(255,255,255,.22);font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.62)}

/* footer CTA — realny zapis (wysyłka wspólna z modalem/railem w main.js) */
.cta__col{min-width:0}
.cta__form[hidden]{display:none} /* display:flex wygrywa z UA [hidden] */
.cta__response{margin:10px 0 0;font-size:13px;line-height:1.45;font-weight:600}
.cta__response.error{color:#ffd2d0}
.cta__response.success{color:#c9f3dc}
.cta__done{display:flex;align-items:center;gap:16px;color:#fff}
.cta__done[hidden]{display:none}
.cta__done b{font-family:var(--f-display);font-size:18px;letter-spacing:-.01em}
.cta__done span:last-child{font-size:14px;line-height:1.5;color:rgba(255,255,255,.85)}
.cta__done .railnl__check{flex:none}

/* ============================================================
   MARKET / TRHY
   ============================================================ */
.trh{padding:34px 0 64px}
.trh__hero{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:28px}
.trh__kicker{margin-top:14px}
.trh__title{margin-top:12px;font-size:clamp(30px,4.4vw,50px);line-height:1.04;letter-spacing:-.025em}
.trh__sub{margin-top:14px;max-width:640px;font-size:17px;line-height:1.55;font-weight:500;color:var(--text-2)}
.trh__hero .msearch{width:min(380px,100%);flex:none;margin-bottom:6px}

/* puls — karty w hairline siatce (gap 1px na tle --line) */
.pulse{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.qcard{display:flex;flex-direction:column;gap:7px;padding:14px 16px 12px;background:var(--paper);transition:background .15s}
@media (hover:hover){.qcard:hover{background:var(--paper-2)}}
.qcard__top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.qcard__sym{font-family:var(--f-display);font-weight:700;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qcard .chg{font-size:12px}
.qcard__px{font-family:var(--f-mono);font-weight:700;font-size:18px;letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap}
.qcard__px em{font-style:normal;font-size:10px;font-weight:600;color:var(--muted);margin-left:3px}
.qcard .mspark{margin-top:2px;height:34px}

/* sparkline */
.mspark{display:block;width:100%;height:26px}
.mspark__line{fill:none;stroke:var(--muted);stroke-width:1.6}
.mspark__area{fill:var(--muted);opacity:.08}
.mspark--up .mspark__line{stroke:var(--up)}
.mspark--up .mspark__area{fill:var(--up);opacity:.09}
.mspark--down .mspark__line{stroke:var(--down)}
.mspark--down .mspark__area{fill:var(--down);opacity:.09}

/* sekcje huba */
.trh-main{min-width:0;container-type:inline-size;container-name:trhmain}
.trh-sec{margin-top:46px;min-width:0}
.trh-sec__head{display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding-bottom:12px;border-bottom:1px solid var(--line-2)}
.trh-sec__title{font-size:21px;letter-spacing:-.015em}
@media (hover:hover){.trh-sec__title a:hover{color:var(--accent)}}
.trh-split{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:44px;align-items:start}
.trh-duo{display:grid;grid-template-columns:1fr 1fr;gap:0 44px;align-items:start}

/* movers */
.mkt-movers__label{font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:14px 0 4px}
.mkt-movers__label--up{color:var(--up)}
.mkt-movers__label--down{color:var(--down)}
.mkt-movers .mm{padding:10px 12px}

/* tabele */
.mkt-scroll{overflow-x:auto}
.mkt-table{width:100%;border-collapse:collapse}
.mkt-table th{padding:10px 12px;border-bottom:1px solid var(--line);font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);text-align:right;white-space:nowrap}
.mkt-table th:first-child{text-align:left;padding-left:0}
.mkt-table td{padding:11px 12px;border-bottom:1px solid var(--line);font-family:var(--f-mono);font-size:13.5px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;color:var(--text-2)}
.mkt-table td:first-child{text-align:left;padding-left:0}
.mkt-table tr[data-href]{cursor:pointer;transition:background .12s}
@media (hover:hover){.mkt-table tr[data-href]:hover{background:var(--paper-2)}}
.mkt-table__id{display:flex;align-items:center;gap:11px;min-width:0}
.mkt-table__names{display:flex;flex-direction:column;min-width:0}
.mkt-table__names b{font-family:var(--f-display);font-size:14.5px;font-weight:700;color:var(--text);line-height:1.25}
.mkt-table__names small{font-family:var(--f-body);font-size:12px;color:var(--muted);max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mkt-table__px{color:var(--text);font-weight:600}
.mkt-table__px em{font-style:normal;font-size:10px;color:var(--muted)}
.mkt-table__spark{width:98px}
.mkt-table .chg{font-size:13px}

/* ikona aktywa */
.aico{flex:none;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--paper);overflow:hidden}
.aico img{width:16px;height:16px;object-fit:contain}
.aico--tx{font-family:var(--f-mono);font-weight:700;font-size:9.5px;letter-spacing:.02em;color:var(--text-2)}
.aico--fx{font-size:15px;line-height:1}

/* wyszukiwarka */
.msearch{position:relative;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid var(--line-2);background:var(--paper)}
.msearch>svg{flex:none;width:15px;height:15px;color:var(--muted);transition:color .15s}
.msearch:focus-within>svg{color:var(--brand)}
.msearch input{width:100%;border:0;outline:0;background:none;padding:13px 0;font-family:var(--f-mono);font-size:13px;font-weight:600;color:var(--text)}
.msearch input::placeholder{color:var(--muted);font-weight:500}
.msearch input::-webkit-search-cancel-button{-webkit-appearance:none}
.msearch::after{content:"";position:absolute;left:-1px;right:-1px;bottom:-1px;height:3px;background:var(--brand);transform:scaleX(0);transform-origin:left;transition:transform .2s ease}
.msearch:focus-within::after{transform:scaleX(1)}
.msearch__drop{position:absolute;top:100%;left:-1px;right:-1px;z-index:80;max-height:388px;overflow:auto;background:var(--paper);border:1px solid var(--line-2);border-top:0;box-shadow:0 22px 40px rgb(13 14 19 / 14%)}
.msearch__opt{display:flex;align-items:baseline;gap:12px;padding:11px 14px;border-top:1px solid var(--line)}
.msearch__opt:first-child{border-top:0}
.msearch__opt.is-active{background:var(--paper-2)}
@media (hover:hover){.msearch__opt:hover{background:var(--paper-2)}}
.msearch__sym{flex:none;min-width:52px;font-family:var(--f-mono);font-size:12.5px;font-weight:700;color:var(--text)}
.msearch__nm{flex:1;min-width:0;font-size:13.5px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msearch__cls{flex:none;font-style:normal;font-family:var(--f-mono);font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);padding:2px 6px}
.msearch__px{flex:none;font-family:var(--f-mono);font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--text)}
.msearch__drop .chg{flex:none;font-size:12px}
.msearch__empty{padding:14px;font-size:13px;color:var(--muted)}
[data-theme="dark"] .msearch__drop{box-shadow:0 24px 44px rgb(0 0 0 / 45%)}

/* notka */
.mkt-note{margin-top:40px;padding-top:14px;border-top:1px solid var(--line);font-size:12px;line-height:1.55;color:var(--muted);max-width:720px}

/* responsywność huba */
@media (max-width:820px){
  .trh__hero{flex-direction:column;align-items:stretch;gap:18px}
  .trh__hero .msearch{width:100%;margin-bottom:0}
}
@media (max-width:680px){
  .mkt-table__names small{max-width:170px}
}
/* reflow huba względem szerokości kolumny .trh-main (rail zabiera ~358px,
   więc viewportowe breakpointy nie pasują — liczy się szerokość kolumny) */
@container trhmain (max-width:860px){
  .pulse{grid-template-columns:repeat(3,minmax(0,1fr))}
  .trh-split{grid-template-columns:1fr}
}
@container trhmain (max-width:760px){
  .trh-duo{grid-template-columns:1fr}
}
@container trhmain (max-width:620px){
  .pulse{display:flex;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}
  .pulse::-webkit-scrollbar{display:none}
  .qcard{flex:0 0 172px;scroll-snap-align:start}
}
.trh-sec--first{margin-top:14px}
.trh-seo{margin-top:38px;max-width:760px;font-size:14.5px;line-height:1.65;color:var(--text-2)}

/* ticker */
.trh--tkr{padding-top:26px}
.tkr-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:48px;margin-top:18px;align-items:start}
.tkr-rail{display:flex;flex-direction:column;gap:34px}
.tkr{padding-bottom:20px;border-bottom:1px solid var(--line-2)}
.tkr__row{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-top:14px}
.tkr__id{display:flex;align-items:center;gap:14px;min-width:0}
.tkr__id .aico{width:40px;height:40px}
.tkr__id .aico img{width:22px;height:22px}
.tkr__id .aico--tx{font-size:11px}
.tkr__id .aico--fx{font-size:20px}
.tkr__name{font-size:clamp(26px,3.6vw,40px);line-height:1.05;letter-spacing:-.02em;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.tkr__chip{font-family:var(--f-mono);font-size:12px;font-weight:700;letter-spacing:.05em;color:var(--text-2);border:1px solid var(--line-2);padding:4px 8px;white-space:nowrap}
.tkr__quote{text-align:right;flex:none}
.tkr__px{font-family:var(--f-mono);font-weight:700;font-size:34px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}
.tkr__px em{font-style:normal;font-size:12px;font-weight:600;color:var(--muted);margin-left:5px}
.tkr__chg{margin-top:6px;font-size:14px}
.tkr__meta{margin-top:8px;font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.tkr-h{margin-top:40px;font-size:19px;letter-spacing:-.015em}

/* wykres */
.chart{margin-top:6px}
.chart__tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.chart__tabs::-webkit-scrollbar{display:none}
.chart__tab{position:relative;appearance:none;border:0;background:none;cursor:pointer;padding:12px 1px;font-family:var(--f-mono);font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);transition:color .15s}
.chart__tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--brand);transform:scaleX(0);transform-origin:left;transition:transform .22s ease}
@media (hover:hover){.chart__tab:hover{color:var(--text)}}
.chart__tab.is-active{color:var(--text)}
.chart__tab.is-active::after{transform:scaleX(1)}
.chart__fig{position:relative;margin:16px 0 0}
.chart__fig[hidden]{display:none}
.chart__svg{display:block;width:100%;height:300px}
.chart__grid{stroke:var(--line);stroke-width:1}
.chart__area{fill:var(--tint)}
.chart__line{fill:none;stroke:var(--brand);stroke-width:1.8}
[data-theme="dark"] .chart__line{stroke:#6d7ffb}
.chart__y{position:absolute;right:0;font-family:var(--f-mono);font-size:10.5px;font-weight:600;color:var(--muted);background:var(--paper);padding-left:6px;font-variant-numeric:tabular-nums}
.chart__y--max{top:-2px}
.chart__y--min{bottom:30px}
.chart__x{display:flex;justify-content:space-between;margin-top:8px;font-family:var(--f-mono);font-size:10.5px;color:var(--muted)}

/* statystyki */
.statgrid{margin-top:14px;display:grid;grid-template-columns:repeat(2,1fr);gap:0 44px}
.statgrid>div{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:11px 0;border-bottom:1px solid var(--line)}
.statgrid dt{font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.statgrid dd{margin:0;font-family:var(--f-mono);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap}

/* o aktywie */
.tkr-about p{margin-top:10px;font-size:15px;line-height:1.65;color:var(--text-2);max-width:70ch}
.tkr-about__facts{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:14px;font-size:13.5px}
.tkr-about__facts b{color:var(--text);font-weight:600}

@media (max-width:1020px){
  .tkr-grid{grid-template-columns:1fr}
}
@media (max-width:680px){
  .tkr__row{flex-direction:column;align-items:flex-start;gap:16px}
  .tkr__quote{text-align:left}
  .chart__svg{height:220px}
  .statgrid{grid-template-columns:1fr}
}

/* ============================================================
   /akcie/ — lista firem (bs-companies). Hairline + mono, karty/tabela,
   toolbar (search/filtry/sort/toggle). Interaktywność klient-side.
   ============================================================ */
.co{padding:34px 0 64px}
.co-hero__kicker{margin-top:14px}
.co-hero__title{margin-top:12px;font-size:clamp(28px,4vw,46px);line-height:1.05;letter-spacing:-.025em;max-width:18ch}
.co-hero__sub{margin-top:14px;max-width:620px;font-size:16.5px;line-height:1.55;font-weight:500;color:var(--text-2)}
.co-empty{margin-top:40px;font-size:15px;color:var(--muted)}

.co-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-top:28px;padding-bottom:12px;border-bottom:1px solid var(--line-2)}
.co-head__label{font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.co-count{font-family:var(--f-mono);font-size:12px;font-weight:600;color:var(--text-2);white-space:nowrap}

/* toolbar */
/* toolbar płaski — search + filtry + sort + view w jednym rzędzie, wrap inline */
.co-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin:18px 0 22px}
.co-group{display:flex;align-items:center;gap:10px}
.co-group__label{font-family:var(--f-mono);font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);white-space:nowrap}

.co-search{position:relative;display:flex;align-items:center;gap:10px;flex:1 1 240px;min-width:200px;padding:0 12px;border:1px solid var(--line-2);background:var(--paper)}
.co-search svg{flex:none;width:15px;height:15px;color:var(--muted)}
.co-search input{width:100%;border:0;outline:0;background:none;padding:11px 0;font-family:var(--f-mono);font-size:13px;font-weight:600;color:var(--text)}
.co-search input::placeholder{color:var(--muted);font-weight:500}
.co-search input::-webkit-search-cancel-button{-webkit-appearance:none}
.co-search:focus-within{border-color:var(--brand)}

/* segmenty i toggle — cicha stylistyka jak ViewToggle w kategoriach:
   kontener --paper-2 + border --line, aktywny = biały „chip" z cieniem (nie cobalt) */
.co-seg{display:inline-flex;gap:3px;padding:3px;border:1px solid var(--line);background:var(--paper-2)}
.co-seg button{font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.04em;padding:6px 12px;background:none;color:var(--muted);border:1px solid transparent;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
@media (hover:hover){.co-seg button:hover{color:var(--text)}}
.co-seg button.is-active{background:var(--paper);color:var(--text);border-color:var(--line-2);box-shadow:0 1px 4px rgb(0 0 0 /8%)}

.co-range{display:flex;align-items:center;gap:8px}
.co-range__dash{color:var(--muted)}
.co-range input{width:74px;border:1px solid var(--line-2);background:var(--paper);padding:7px 9px;font-family:var(--f-mono);font-size:12.5px;color:var(--text)}
.co-range input:focus{outline:0;border-color:var(--brand)}

.co-dropdown{position:relative}
.co-dropdown__toggle{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-2);background:var(--paper);padding:7px 10px;font-family:var(--f-mono);font-size:12px;font-weight:600;color:var(--text);cursor:pointer}
.co-dropdown__toggle svg{width:12px;height:12px;color:var(--muted)}
.co-dropdown__menu{position:absolute;top:calc(100% + 4px);right:0;z-index:60;min-width:170px;margin:0;padding:0;list-style:none;background:var(--paper);border:1px solid var(--line-2);box-shadow:0 18px 34px rgb(13 14 19 /12%);display:none}
.co-dropdown.open .co-dropdown__menu{display:block}
.co-dropdown__menu li{padding:9px 12px;font-family:var(--f-mono);font-size:12.5px;color:var(--text-2);cursor:pointer;border-top:1px solid var(--line)}
.co-dropdown__menu li:first-child{border-top:0}
.co-dropdown__menu li.is-active{background:var(--paper-2);color:var(--text)}
@media (hover:hover){.co-dropdown__menu li:hover{background:var(--paper-2);color:var(--text)}}
[data-theme="dark"] .co-dropdown__menu{box-shadow:0 20px 38px rgb(0 0 0 /45%)}

.co-view{position:relative;display:inline-flex;gap:2px;padding:3px;border:1px solid var(--line);background:var(--paper-2)}
.co-view__thumb{position:absolute;top:3px;left:3px;width:40px;height:32px;background:var(--paper);border:1px solid var(--line-2);box-shadow:0 1px 4px rgb(0 0 0 /8%);transform:translateX(calc(var(--co-vt-i,0) * 42px));transition:transform .3s cubic-bezier(.22,1,.36,1)}
.co-view button{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:40px;height:32px;background:none;border:0;color:var(--muted);cursor:pointer;transition:color .2s ease}
.co-view button.is-active{color:var(--text)}
@media (hover:hover){.co-view button:hover{color:var(--text)}}
.co-view button svg{width:18px;height:18px}


/* rec chip — mono, hairline, kolor kierunku */
/* doporučení — motyw „brand bar" design6: pionowy pasek kierunku + mono etykieta */
.co-rec{position:relative;display:inline-block;padding-left:12px;font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-2);white-space:nowrap}
.co-rec::before{content:"";position:absolute;left:0;top:1px;bottom:1px;width:3px;background:var(--rec-c,var(--brand))}
.co-rec--buy{--rec-c:var(--up)}
.co-rec--hold{--rec-c:#b58a1b}
.co-rec--sell{--rec-c:var(--down)}
[data-theme="dark"] .co-rec--hold{--rec-c:#d8a93a}

/* stany widoku */
.is-hidden{display:none !important}
.co-noresults{display:none;margin-top:28px;font-size:14.5px;color:var(--muted)}
.co.has-noresults .co-noresults{display:block}
.co.has-noresults .co-grid,.co.has-noresults .co-table-wrap{display:none}

/* karty — nagłówek = zdjęcie firmy na tle jej primary_color, tytuł pod spodem */
.co-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(288px,1fr));gap:18px;margin-top:4px}
.co-card{display:flex;flex-direction:column;border:1px solid var(--line);border-top-left-radius:23px;border-top-right-radius:23px;background:var(--paper);text-decoration:none;overflow:hidden;transition:transform .24s ease,box-shadow .24s ease,border-color .15s}
@media (hover:hover){.co-card:hover{border-color:var(--line-2);transform:translateY(-6px);box-shadow:0 16px 34px rgb(13 14 19 /13%)}}
@media (hover:hover){[data-theme="dark"] .co-card:hover{box-shadow:0 16px 34px rgb(0 0 0 /50%)}}
.co-card__banner{position:relative;height:132px;display:flex;align-items:center;justify-content:center;background:var(--co-accent,var(--paper-2));overflow:hidden}
.co-card__banner img{width:100%;height:100%;object-fit:cover;display:block}
.co-card__ph{font-family:var(--f-mono);font-weight:700;font-size:24px;letter-spacing:.04em;color:#fff;opacity:.92}
.co-card__exch{position:absolute;top:12px;left:12px;font-family:var(--f-mono);font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:rgb(0 0 0 /38%);padding:3px 8px}
.co-card__tkr{position:absolute;top:12px;right:12px;font-family:var(--f-mono);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#fff;background:rgb(0 0 0 /38%);padding:3px 7px}
.co-card__body{display:flex;flex-direction:column;gap:12px;padding:16px;flex:1}
.co-card__name{font-family:var(--f-display);font-size:19px;font-weight:700;letter-spacing:-.01em;line-height:1.15;color:var(--text)}
.co-card__meta{display:flex;align-items:center;justify-content:space-between;gap:12px}
.co-card__kap{font-family:var(--f-mono);font-size:12.5px;font-weight:600;color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.co-card__kap i{font-style:normal;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-right:3px}
.co-card__desc{font-size:13px;line-height:1.5;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.co-cell__l{font-family:var(--f-mono);font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.co-card__foot{margin-top:auto;display:flex;flex-direction:column;gap:13px;padding-top:2px}
.co-card__target{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-top:13px;border-top:1px solid var(--line)}
.co-card__target-v{font-family:var(--f-mono);font-size:21px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.co-card__cta{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text);transition:color .2s ease}
.co-card__cta svg{width:24px;height:11px;transition:transform .2s ease}
@media (hover:hover){.co-card__cta:hover{color:var(--accent)}}
@media (hover:hover){.co-card__cta:hover svg{transform:translateX(4px)}}

/* tabela */
.co-table-wrap{display:none;overflow-x:auto;margin-top:18px}
.co.view-table .co-grid{display:none}
.co.view-table .co-table-wrap{display:block}
.co-table{width:100%;border-collapse:collapse}
.co-table th{padding:10px 12px;border-bottom:1px solid var(--line);font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);text-align:left;white-space:nowrap;cursor:pointer;user-select:none}
.co-table th:first-child{padding-left:0}
.co-table th.co-th--plain{cursor:default}
@media (hover:hover){.co-table th[data-sort]:hover{color:var(--text-2)}}
.co-sort-ind{display:inline-block;width:0;height:0;margin-left:6px;vertical-align:middle;border-left:4px solid transparent;border-right:4px solid transparent;opacity:0}
.co-table th.sorted-asc .co-sort-ind{opacity:1;border-bottom:5px solid currentColor}
.co-table th.sorted-desc .co-sort-ind{opacity:1;border-top:5px solid currentColor}
.co-table td{padding:12px;border-bottom:1px solid var(--line);font-size:14px;color:var(--text-2);vertical-align:middle}
.co-table td:first-child{padding-left:0}
@media (hover:hover){.co-row:hover{background:var(--paper-2)}}
.co-row__co{display:flex;align-items:center;gap:11px;min-width:0}
.co-row__logo{flex:none;width:30px;height:30px;object-fit:contain;border:1px solid var(--line);background:var(--paper)}
.co-row__logo--ph{display:flex;align-items:center;justify-content:center;font-family:var(--f-mono);font-size:10px;font-weight:700;color:var(--text-2)}
.co-row__name{font-family:var(--f-display);font-size:14.5px;font-weight:600;color:var(--text)}
.co-row__ticker{font-family:var(--f-mono);font-weight:700;font-size:13px;color:var(--accent)}
.co-row__exch,.co-row__target{font-family:var(--f-mono);font-size:13px;color:var(--text-2);font-variant-numeric:tabular-nums}
.co-mut{color:var(--muted)}
.co-row__link{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);white-space:nowrap}
.co-row__link svg{width:18px;height:8px}

@media (max-width:640px){
  .co-search{flex-basis:100%}
  .co-group{flex-wrap:wrap}
}

/* main column: kółko przy tytule zostaje tylko w sidebarach; duże tytuły sekcji
   dostają jawny link do całej rubryki po prawej (wzorzec .link-arrow jak przy
   E-bookach). Na wąskim mobile link chowamy i wraca kółko. */
.col--main .module__title::after{display:none}
@media (max-width:560px){
  .col--main .module__title .link-arrow{display:none}
  .col--main .module__title::after{display:inline-block}
  .homebands .module__title .link-arrow{display:none}
  .homebands .module__title::after{display:inline-block}
}

/* ============================================================
   WSKAŹNIK ŁADOWANIA (nawigacja ClientRouter)
   ============================================================
   ClientRouter pobiera nową stronę w tle, więc do chwili podmiany treści
   czytelnik stoi na starej stronie i nie ma sygnału, że coś się dzieje.
   Skrypt sterujący: BaseLayout (klasy is-on / is-loading / is-navigating). */
.navload{position:fixed;top:0;left:0;right:0;height:2px;z-index:400;background:var(--brand);
  transform:scaleX(0);transform-origin:0 50%;opacity:0;pointer-events:none;
  transition:transform .2s ease-out,opacity .18s ease}
.navload.is-on{opacity:1}
/* faza czekania: powolne dobieganie do 90%, żeby ruch był widoczny, ale nigdy
   nie sugerował końca, którego jeszcze nie ma */
.navload.is-loading{transition:transform 8s cubic-bezier(0,.6,.3,1),opacity .18s ease}
/* kliknięty odnośnik gaśnie natychmiast — to jedyny sygnał, który zdąży
   w tej samej klatce co klik */
.is-navlink{opacity:.55;transition:opacity .12s ease}
html.is-navigating{cursor:progress}
@media (prefers-reduced-motion:reduce){
  .navload,.navload.is-loading{transition:opacity .18s ease}
  .navload.is-on{transform:scaleX(1)}
}
