/* ═══════════════════════════════════════════════════
   DruidFeST – style.css
   Wszystkie grafiki z katalogu /GFX/
═══════════════════════════════════════════════════ */

:root {
  --blue:        #3a8ef6;
  --blue-dark:   #2370d8;
  --link-blue:   #2e6fcc;
  --section-bg:  #eceef5;
  --green-bg:    #d8e8d5;
  --card-bg:     #ffffff;
  --text-dark:   #2a2a2a;
  --text-muted:  #777;
  --radius-card: 8px;
  --radius-tile: 18px;
  --shadow-sm:   0 2px 12px rgba(0,0,0,0.08);
  --shadow-md:   0 10px 30px rgba(0,0,0,0.13);
}

/* ─── RESET ─── */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Exo 2', sans-serif; background: #fff; color: var(--text-dark); overflow-x: hidden; }
a { text-decoration: none; }
img { display: block; max-width: 100%; }

/* ═══════════════════════════════════════════════
   NAVBAR
═══════════════════════════════════════════════ */
.navbar {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 48px;
  transition: background .35s, box-shadow .35s;
}

.navbar--transparent {
  background: transparent;
}

.navbar--solid {
  background: rgba(15, 10, 35, 0.96);
  box-shadow: 0 2px 16px rgba(0,0,0,0.3);
}

/* Scroll effect: transparent navbar staje się solid po przewinięciu */
.navbar--transparent.scrolled {
  background: rgba(15, 10, 35, 0.96);
  box-shadow: 0 2px 16px rgba(0,0,0,0.3);
}

.navbar__logo-img {
  height: 80px;
  width: auto;
  object-fit: contain;
}

.navbar__links {
  display: flex;
  align-items: center;
  gap: 30px;
  list-style: none;
}

.navbar__links a {
  color: #fff;
  font-size: 15px;
  font-weight: 400;
  transition: opacity .2s;
}
.navbar__links a:hover { opacity: .7; }

.btn-nav {
  background: var(--blue);
  color: #fff !important;
  padding: 9px 24px;
  border-radius: 25px;
  font-weight: 600 !important;
  font-size: 14px !important;
  transition: background .2s !important;
}
.btn-nav:hover { background: var(--blue-dark) !important; opacity: 1 !important; }

.btn-nav--outline {
  background: transparent !important;
  border: 2px solid rgba(255,255,255,0.5);
  padding: 7px 20px !important;
}
.btn-nav--outline:hover { border-color: #fff !important; }

/* ═══════════════════════════════════════════════
   HERO
═══════════════════════════════════════════════ */
.hero {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 620px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* PLIK: GFX/hero_bg.jpg */
.hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  z-index: 0;
}

.hero__overlay {
  position: absolute;
  inset: 0;
  background: rgba(8, 4, 22, 0.50);
  z-index: 1;
}

/* PLIK: GFX/hero_figure.png – postać po lewej */
.hero__figure {
  position: absolute;
  left: 16%;
  bottom: 0;
  height: 90%;
  object-fit: contain;
  z-index: 2;
  pointer-events: none;
}

/* PLIK: GFX/hero_monitor.png – monitor Atari po prawej */
.hero__monitor {
  position: absolute;
  right: 5%;
  bottom: 0;
  width: 340px;
  object-fit: contain;
  z-index: 2;
  pointer-events: none;
  animation: float 4s ease-in-out infinite;
}

@keyframes float {
  0%,100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}

.hero__content {
  position: relative;
  z-index: 10;
  text-align: center;
  padding: 0 20px;
}

.hero__tagline {
  font-size: 14px;
  letter-spacing: 0.15em;
  color: rgba(255,255,255,0.70);
  text-transform: uppercase;
  margin-bottom: 20px;
}

.hero__line1 {
  font-size: clamp(44px, 6.5vw, 82px);
  font-weight: 300;
  color: #fff;
  text-shadow: 0 2px 28px rgba(0,0,0,0.8);
  line-height: 1.1;
}
.hero__line1 strong { font-weight: 800; }

.hero__line2 {
  font-size: clamp(36px, 5.2vw, 64px);
  font-weight: 300;
  color: rgba(255,255,255,0.88);
  text-shadow: 0 2px 18px rgba(0,0,0,0.65);
  margin-top: 4px;
}

.hero__line3 {
  font-size: clamp(28px, 4vw, 54px);
  font-weight: 300;
  color: rgba(255,255,255,0.85);
  text-shadow: 0 2px 18px rgba(0,0,0,0.65);
  margin-top: 4px;
}
.hero__line3 strong { font-weight: 800; }

.hero__arrow {
  position: absolute;
  bottom: 36px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  width: 42px; height: 42px;
  border: 2px solid rgba(255,255,255,0.5);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #fff;
  animation: bounce 2.2s ease-in-out infinite;
}
@keyframes bounce {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50%      { transform: translateX(-50%) translateY(7px); }
}

/* ═══════════════════════════════════════════════
   SEKCJA KART (tło szaro-niebieskie)
═══════════════════════════════════════════════ */
.section--cards  { background: var(--section-bg); padding: 60px 40px 50px; }
.section--green  { background: var(--green-bg);   padding: 52px 40px 50px; }

.cards-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  max-width: 1320px;
  margin: 0 auto 52px;
}

/* Karta artykułu */
.card {
  background: var(--card-bg);
  border-radius: var(--radius-card);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform .25s, box-shadow .25s;
}
.card:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }

/* PLIK: GFX/card_*.jpg */
.card__cover {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}

.card__body   { padding: 18px 20px 22px; }
.card__title  { font-size: 16px; font-weight: 700; color: var(--link-blue); margin-bottom: 10px; }
.card__text   { font-size: 13.5px; color: #555; line-height: 1.65; margin-bottom: 14px; }
.card__link   { color: var(--link-blue); font-size: 13.5px; font-weight: 500; }
.card__link:hover { text-decoration: underline; }

/* ─── Kafelki kanałów ─── */
.channels-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  max-width: 1320px;
  margin: 0 auto;
}

.channel-tile {
  background: var(--card-bg);
  border-radius: var(--radius-tile);
  padding: 28px 22px 26px;
  text-align: center;
  box-shadow: var(--shadow-sm);
  transition: transform .25s, box-shadow .25s;
}
.channel-tile:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }

.tile__header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 8px;
}

/* PLIK: GFX/icon_*.png */
.tile__icon   { width: 26px; height: 26px; object-fit: contain; opacity: .6; }
.tile__name   { font-size: 17px; font-weight: 700; color: var(--text-dark); }
.tile__desc   { font-size: 13px; color: var(--text-muted); font-style: italic; margin-bottom: 18px; }

/* PLIK: GFX/avatar_*.jpg */
.tile__avatar {
  width: 80px; height: 80px;
  border-radius: 50%;
  object-fit: cover;
  margin: 0 auto 10px;
  background: #ddd;
}

.tile__user      { font-size: 14px; color: var(--link-blue); font-weight: 600; }
.tile__user-note { font-size: 12px; color: #aaa; font-style: italic; }

/* ─── Strefy ─── */
.strefy-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  max-width: 1320px;
  margin: 40px auto 0;
}

.strefa-card {
  background: var(--card-bg);
  border-radius: 16px;
  padding: 34px 20px 26px;
  text-align: center;
  box-shadow: var(--shadow-sm);
  transition: transform .25s, box-shadow .25s;
  cursor: pointer;
}
.strefa-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }

.strefa__badge {
  display: inline-block;
  border: 2px solid var(--blue);
  color: var(--blue);
  border-radius: 20px;
  padding: 3px 16px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  margin-bottom: 14px;
}
.strefa__title { font-size: 17px; font-weight: 700; color: var(--text-dark); margin-bottom: 6px; }
.strefa__sub   { font-size: 13px; color: var(--text-muted); }

/* ═══════════════════════════════════════════════
   PANEL UŻYTKOWNIKA
═══════════════════════════════════════════════ */
.panel-wrap {
  min-height: 100vh;
  background: #f4f5f9;
  padding-top: 80px;
  display: flex;
}

/* Sidebar */
.panel-sidebar {
  width: 240px;
  flex-shrink: 0;
  background: rgba(15, 10, 35, 0.96);
  min-height: calc(100vh - 80px);
  padding: 32px 0;
  position: sticky;
  top: 80px;
  align-self: flex-start;
}

.panel-sidebar__logo {
  padding: 0 24px 28px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  margin-bottom: 16px;
}
.panel-sidebar__logo img { height: 48px; }

.panel-sidebar__menu { list-style: none; }

.panel-sidebar__menu a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 24px;
  color: rgba(255,255,255,0.72);
  font-size: 14px;
  font-weight: 500;
  transition: background .2s, color .2s;
}
.panel-sidebar__menu a:hover,
.panel-sidebar__menu a.active {
  background: rgba(58,142,246,0.18);
  color: #fff;
}
.panel-sidebar__menu .menu-icon { font-size: 16px; width: 20px; text-align: center; }

/* Panel main content */
.panel-main {
  flex: 1;
  padding: 36px 40px;
}

.panel-header {
  margin-bottom: 30px;
}
.panel-header h1 { font-size: 24px; font-weight: 700; color: var(--text-dark); }
.panel-header p  { font-size: 14px; color: var(--text-muted); margin-top: 4px; }

/* Stats grid */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-bottom: 32px;
}

.stat-card {
  background: var(--card-bg);
  border-radius: 12px;
  padding: 22px 24px;
  box-shadow: var(--shadow-sm);
  border-left: 4px solid var(--blue);
}
.stat-card__value { font-size: 28px; font-weight: 800; color: var(--text-dark); }
.stat-card__label { font-size: 13px; color: var(--text-muted); margin-top: 4px; }

/* Panel sekcje */
.panel-section {
  background: var(--card-bg);
  border-radius: 12px;
  padding: 24px 28px;
  box-shadow: var(--shadow-sm);
  margin-bottom: 24px;
}
.panel-section h2 {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 18px;
  color: var(--text-dark);
  padding-bottom: 12px;
  border-bottom: 1px solid #eee;
}

/* Tabela postów w panelu */
.panel-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.panel-table th {
  text-align: left;
  padding: 10px 12px;
  background: #f8f9fb;
  color: var(--text-muted);
  font-weight: 600;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-bottom: 1px solid #eee;
}
.panel-table td {
  padding: 12px 12px;
  border-bottom: 1px solid #f0f0f0;
  color: var(--text-dark);
}
.panel-table tr:last-child td { border-bottom: none; }
.panel-table tr:hover td { background: #fafbfd; }

.badge {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 700;
}
.badge--green  { background: #d4f0da; color: #1a7a30; }
.badge--gray   { background: #ebebeb; color: #666; }
.badge--blue   { background: #ddeeff; color: #1a5aaa; }

/* Formularz profilu */
.profile-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-group label { font-size: 13px; font-weight: 600; color: var(--text-dark); }
.form-group input,
.form-group textarea,
.form-group select {
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 14px;
  font-family: 'Exo 2', sans-serif;
  color: var(--text-dark);
  transition: border-color .2s;
}
.form-group input:focus,
.form-group textarea:focus { outline: none; border-color: var(--blue); }
.form-group--full { grid-column: 1 / -1; }

.btn {
  display: inline-block;
  padding: 10px 24px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  border: none;
  cursor: pointer;
  font-family: 'Exo 2', sans-serif;
  transition: background .2s, transform .15s;
}
.btn:hover { transform: translateY(-1px); }
.btn--primary { background: var(--blue); color: #fff; }
.btn--primary:hover { background: var(--blue-dark); }
.btn--danger  { background: #e74c3c; color: #fff; }
.btn--outline { background: transparent; border: 2px solid var(--blue); color: var(--blue); }

/* Avatar upload w profilu */
.avatar-upload {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 24px;
}
.avatar-upload__img {
  width: 80px; height: 80px;
  border-radius: 50%;
  object-fit: cover;
  background: #ddd;
  border: 3px solid #eee;
}

/* ─── LOGOWANIE ─── */
.login-wrap {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #0d0820 0%, #1a1040 100%);
  padding: 40px 20px;
}

.login-box {
  background: #fff;
  border-radius: 16px;
  padding: 40px 44px;
  width: 100%;
  max-width: 420px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}

.login-box__logo {
  text-align: center;
  margin-bottom: 28px;
}
.login-box__logo img { height: 70px; margin: 0 auto 12px; }
.login-box__logo h1 { font-size: 20px; font-weight: 700; color: var(--text-dark); }
.login-box__logo p  { font-size: 13px; color: var(--text-muted); margin-top: 4px; }

.login-box .form-group { margin-bottom: 16px; }
.login-box .btn--primary { width: 100%; padding: 12px; font-size: 15px; margin-top: 8px; }

.alert {
  padding: 12px 16px;
  border-radius: 8px;
  font-size: 13px;
  margin-bottom: 16px;
}
.alert--error { background: #fde8e8; color: #c0392b; border: 1px solid #f5c6c6; }
.alert--ok    { background: #d4f0da; color: #1a7a30; border: 1px solid #a8d8b0; }

/* ─── FOOTER ─── */
.site-footer {
  background: rgba(15, 10, 35, 0.96);
  padding: 32px 48px;
}
.footer__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1320px;
  margin: 0 auto;
  flex-wrap: wrap;
  gap: 16px;
}
.footer__copy { font-size: 13px; color: rgba(255,255,255,0.55); }
.footer__links { display: flex; gap: 24px; }
.footer__links a { color: rgba(255,255,255,0.55); font-size: 13px; }
.footer__links a:hover { color: #fff; }

/* ─── RESPONSIVE (podstawy) ─── */
@media (max-width: 1024px) {
  .cards-grid       { grid-template-columns: repeat(2, 1fr); }
  .channels-row     { grid-template-columns: repeat(2, 1fr); }
  .strefy-row       { grid-template-columns: repeat(2, 1fr); }
  .stats-grid       { grid-template-columns: repeat(2, 1fr); }
  .panel-sidebar    { width: 200px; }
}

@media (max-width: 768px) {
  .navbar { padding: 14px 20px; }
  .hero__figure,
  .hero__monitor { display: none; }
  .cards-grid       { grid-template-columns: 1fr; }
  .channels-row     { grid-template-columns: 1fr; }
  .strefy-row       { grid-template-columns: repeat(2, 1fr); }
  .panel-wrap       { flex-direction: column; }
  .panel-sidebar    { width: 100%; min-height: auto; position: static; }
  .panel-main       { padding: 24px 20px; }
  .profile-grid     { grid-template-columns: 1fr; }
  .section--cards,
  .section--green   { padding: 40px 20px; }
}

   TERMIN ZLOTU
═══════════════════════════════════════════════ */
.hero__zlot {
  margin-top: 24px;
  line-height: 1.3;
  border-top: 2px solid rgba(255,255,255,0.35);
  padding-top: 22px;
}
.hero__zlot-label {
  display: block;
  font-size: 26px;
  font-weight: 700;
  color: #ffffff;
  text-shadow: 0 2px 14px rgba(0,0,0,0.9);
  letter-spacing: 0.08em;
  margin-bottom: 6px;
}
.hero__zlot strong {
  display: block;
  font-weight: 800;
  color: #ffea40;
  font-size: clamp(18px, 2.5vw, 32px);
  letter-spacing: 0.03em;
  text-shadow: 0 0 30px rgba(255,220,0,0.5), 0 2px 16px rgba(0,0,0,0.9);
}

/* ═══════════════════════════════════════════════
   EFEKT CRT – HERO
═══════════════════════════════════════════════ */
.crt {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  overflow: hidden;
}

/* ── SCANLINES – mocne, wyraźne ── */
.crt__scanlines {
  position: absolute;
  inset: -100%;
  background: repeating-linear-gradient(
    to bottom,
    transparent          0px,
    transparent          2px,
    rgba(0, 0, 0, 0.45)  2px,
    rgba(0, 0, 0, 0.45)  4px
  );
  animation: scanlines-scroll 6s linear infinite;
}
@keyframes scanlines-scroll {
  from { transform: translateY(0); }
  to   { transform: translateY(200px); }
}

/* ── FLICKER – agresywne miganie ── */
.crt__flicker {
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0);
  animation: crt-flicker 0.1s infinite;
}
@keyframes crt-flicker {
   0% { opacity: 1;    background: rgba(255,255,255,0.00); }
   3% { opacity: 0.82; background: rgba(255,255,255,0.03); }
   6% { opacity: 1;    background: rgba(255,255,255,0.00); }
  29% { opacity: 1;    background: rgba(255,255,255,0.00); }
  30% { opacity: 0.88; background: rgba(255,255,255,0.04); }
  31% { opacity: 1;    background: rgba(255,255,255,0.00); }
  50% { opacity: 1;    background: rgba(255,255,255,0.00); }
  51% { opacity: 0.75; background: rgba(255,255,255,0.06); }
  52% { opacity: 0.95; background: rgba(255,255,255,0.02); }
  53% { opacity: 1;    background: rgba(255,255,255,0.00); }
  78% { opacity: 1;    background: rgba(255,255,255,0.00); }
  79% { opacity: 0.85; background: rgba(255,255,255,0.03); }
  80% { opacity: 1;    background: rgba(255,255,255,0.00); }
 100% { opacity: 1;    background: rgba(255,255,255,0.00); }
}

/* ── WINIETA ── */
.crt__vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(
    ellipse 110% 100% at 50% 50%,
    transparent 40%,
    rgba(0,0,0,0.75) 100%
  );
  box-shadow:
    inset 0    80px 100px -30px rgba(0,0,0,0.7),
    inset 0   -80px 100px -30px rgba(0,0,0,0.7),
    inset 100px  0  100px -50px rgba(0,0,0,0.6),
    inset -100px 0  100px -50px rgba(0,0,0,0.6);
}

/* ── RGB ABERRACJA ── */
.crt__rgb {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(255,0,0,0.04)   0%,
    transparent          15%,
    transparent          85%,
    rgba(0,80,255,0.04) 100%
  );
  animation: rgb-drift 8s ease-in-out infinite;
}
@keyframes rgb-drift {
  0%,100% { transform: translateX(0);   }
  33%     { transform: translateX(2px); }
  66%     { transform: translateX(-2px);}
}

/* ── GLITCH PASEK (JS) ── */
.crt__glitch {
  position: absolute;
  left: 0; right: 0;
  height: 4px;
  opacity: 0;
  mix-blend-mode: screen;
  filter: blur(0.5px);
  transition: opacity 0.05s;
}

/* ── BLINK – błyskający element ── */
.crt__blink {
  position: absolute;
  inset: 0;
  background: transparent;
  animation: crt-blink 4s ease-in-out infinite;
}
@keyframes crt-blink {
   0%   { background: transparent; }
  94%   { background: transparent; }
  95%   { background: rgba(100,255,160,0.06); }
  95.5% { background: rgba(100,255,160,0.12); }
  96%   { background: rgba(100,255,160,0.04); }
  96.5% { background: rgba(100,255,160,0.10); }
  97%   { background: transparent; }
 100%   { background: transparent; }
}

/* ── HORIZONTAL TEAR – co jakiś czas poziome rozdarcie ── */
.crt__tear {
  position: absolute;
  left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(120,255,180,0.5) 20%,
    rgba(255,255,255,0.8) 50%,
    rgba(0,200,255,0.5) 80%,
    transparent 100%
  );
  opacity: 0;
  animation: tear-scan 7s ease-in-out infinite;
  filter: blur(1px);
}
@keyframes tear-scan {
   0%   { top: -10px; opacity: 0; }
  10%   { top: -10px; opacity: 0; }
  10.1% { top: 0%;    opacity: 0.9; }
  30%   { top: 100%;  opacity: 0.7; }
  30.5% { top: 100%;  opacity: 0; }
  100%  { top: 100%;  opacity: 0; }
}

/* fosfor pod tekstem */
.hero__content {
  position: relative;
  z-index: 10;
  text-align: center;
  padding: 0 20px;
  filter: drop-shadow(0 0 18px rgba(80,255,120,0.12));
}

/* ═══════════════════════════════════════════════
   ARTYKUŁ
═══════════════════════════════════════════════ */
.article-wrap { padding-top: 80px; }

.article-hero { position: relative; height: 380px; overflow: hidden; }
.article-hero__img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.article-hero__overlay { position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.25) 0%,rgba(0,0,0,.72) 100%); }

.article-hero__crt {
  position:absolute; inset:0; z-index:2; pointer-events:none;
  background: repeating-linear-gradient(to bottom, transparent 0px, transparent 2px, rgba(0,0,0,.35) 2px, rgba(0,0,0,.35) 4px);
  box-shadow: inset 0 0 80px rgba(0,0,0,.5);
}
.article-hero__crt::after {
  content:''; position:absolute; inset:0;
  background: linear-gradient(160deg, rgba(80,255,120,.04) 0%, transparent 40%, rgba(0,80,255,.04) 100%);
  animation: crt-flicker 6s ease-in-out infinite;
}

.article-hero__title { position:absolute; bottom:36px; left:50%; transform:translateX(-50%); width:100%; max-width:860px; padding:0 24px; text-align:center; color:#fff; z-index:3; }
.article-hero__title h1 { font-size:clamp(28px,4vw,52px); font-weight:800; text-shadow:0 2px 20px rgba(0,0,0,.8); line-height:1.2; }
.article-meta { display:flex; gap:24px; justify-content:center; margin-top:10px; font-size:14px; color:rgba(255,255,255,.75); }

.article-body { max-width:860px; margin:0 auto; padding:52px 24px 80px; }
.article-content { font-size:16.5px; line-height:1.85; color:#2a2a2a; text-align:justify; hyphens:auto; -webkit-hyphens:auto; }
.article-content p      { margin-bottom:22px; }
.article-content ul     { margin:0 0 22px 24px; }
.article-content ul li  { margin-bottom:12px; line-height:1.7; }
.article-content ul ul  { margin-top:8px; margin-bottom:0; }
.article-content strong { color:#1a1a1a; }
.article-content em     { font-style:italic; color:#444; }
.article-content img    { max-width:100%; height:auto; border-radius:8px; margin:24px 0; display:block; }

.article-video { position:relative; padding-bottom:56.25%; height:0; overflow:hidden; margin:32px 0; border-radius:10px; background:#000; }
.article-video iframe { position:absolute; top:0; left:0; width:100%; height:100%; border-radius:10px; }

.article-nav { margin-top:48px; padding-top:24px; border-top:1px solid #eee; display:flex; gap:12px; flex-wrap:wrap; }

/* ── GALERIA ── */
.article-gallery { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin:28px 0; }
.article-gallery--3 { grid-template-columns:repeat(3,1fr); }

.gallery-item { display:block; overflow:hidden; border-radius:8px; position:relative; background:#111; cursor:zoom-in; }
.gallery-item img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; transition:transform .35s ease,filter .35s ease; filter:brightness(.95); }
.gallery-item:hover img { transform:scale(1.05); filter:brightness(1.1); }
.gallery-item::after { content:''; position:absolute; inset:0; background:repeating-linear-gradient(to bottom,transparent 0px,transparent 3px,rgba(0,0,0,.07) 3px,rgba(0,0,0,.07) 4px); pointer-events:none; opacity:0; transition:opacity .3s; }
.gallery-item:hover::after { opacity:1; }
.gallery-item::before { content:'⤢'; position:absolute; bottom:10px; right:12px; font-size:20px; color:#fff; text-shadow:0 1px 4px rgba(0,0,0,.8); z-index:2; opacity:0; transform:translateY(4px); transition:opacity .25s,transform .25s; }
.gallery-item:hover::before { opacity:1; transform:translateY(0); }

/* ── LIGHTBOX ── */
.lb-overlay { display:none; position:fixed; inset:0; z-index:1000; background:rgba(0,0,0,.93); align-items:center; justify-content:center; }
.lb-overlay.active { display:flex; animation:lb-fade .2s ease; }
@keyframes lb-fade { from{opacity:0} to{opacity:1} }
.lb-stage { position:relative; max-width:90vw; max-height:88vh; display:flex; flex-direction:column; align-items:center; }
#lb-img { max-width:90vw; max-height:82vh; object-fit:contain; border-radius:4px; box-shadow:0 8px 60px rgba(0,0,0,.8); display:block; animation:lb-zoom .25s ease; }
@keyframes lb-zoom { from{transform:scale(.92);opacity:0} to{transform:scale(1);opacity:1} }
.lb-counter { margin-top:12px; color:rgba(255,255,255,.55); font-size:13px; font-family:'Exo 2',sans-serif; letter-spacing:.05em; }
.lb-close { position:fixed; top:20px; right:24px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); color:#fff; width:44px; height:44px; border-radius:50%; font-size:18px; cursor:pointer; z-index:1001; transition:background .2s; display:flex; align-items:center; justify-content:center; }
.lb-close:hover { background:rgba(255,255,255,.25); }
.lb-arrow { position:fixed; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); color:#fff; width:52px; height:52px; border-radius:50%; font-size:32px; cursor:pointer; z-index:1001; transition:background .2s,opacity .2s; display:flex; align-items:center; justify-content:center; }
.lb-arrow:hover { background:rgba(255,255,255,.25); }
.lb-prev { left:20px; }
.lb-next { right:20px; }
.lb-arrow.hidden { opacity:0; pointer-events:none; }

/* card cover cursor */
.card__cover { cursor: pointer; }
.card a { display:block; overflow:hidden; }

@media (max-width:768px) {
  .article-hero { height:260px; }
  .article-body { padding:32px 16px 60px; }
  .article-content { font-size:15px; }
  .article-gallery { grid-template-columns:repeat(2,1fr); gap:8px; }
  .article-gallery--3 { grid-template-columns:repeat(2,1fr); }
  .lb-arrow { width:40px; height:40px; font-size:24px; }
  .lb-prev { left:8px; }
  .lb-next { right:8px; }
}


/* ═══════════════════════════════════════════════
   NEWSY – nagłówek
═══════════════════════════════════════════════ */
.news-header {
  padding-top: 80px;
  background: linear-gradient(135deg, #0d0820 0%, #1a1040 100%);
  padding-bottom: 48px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.news-header::after {
  content: '';
  position: absolute; inset: 0;
  background: repeating-linear-gradient(
    to bottom, transparent 0px, transparent 3px,
    rgba(0,0,0,0.12) 3px, rgba(0,0,0,0.12) 4px
  );
  pointer-events: none;
}
.news-header__inner { position: relative; z-index: 1; padding-top: 52px; }
.news-header__title {
  font-size: clamp(36px, 5vw, 62px);
  font-weight: 800;
  color: #fff;
  text-shadow: 0 0 30px rgba(80,255,120,0.2), 0 2px 20px rgba(0,0,0,0.8);
  letter-spacing: 0.04em;
}
.news-header__sub {
  margin-top: 12px;
  font-size: 15px;
  color: rgba(255,255,255,0.55);
  letter-spacing: 0.08em;
}

/* ═══════════════════════════════════════════════
   NEWSY – siatka 4 kolumn
═══════════════════════════════════════════════ */
.news-section {
  background: var(--section-bg);
  padding: 56px 40px 80px;
}
.news-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 26px;
  max-width: 1320px;
  margin: 0 auto;
}
.news-card {
  background: var(--card-bg);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 14px rgba(0,0,0,0.09);
  display: flex;
  flex-direction: column;
  transition: transform .25s, box-shadow .25s;
}
.news-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 32px rgba(0,0,0,0.15);
}
.news-card__img-wrap {
  display: block;
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/10;
}
.news-card__img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform .4s ease;
}
.news-card:hover .news-card__img { transform: scale(1.06); }
.news-card__img-wrap::after {
  content: '';
  position: absolute; inset: 0;
  background: repeating-linear-gradient(
    to bottom, transparent 0px, transparent 3px,
    rgba(0,0,0,0.08) 3px, rgba(0,0,0,0.08) 4px
  );
  opacity: 0; transition: opacity .3s; pointer-events: none;
}
.news-card:hover .news-card__img-wrap::after { opacity: 1; }
.news-card__tag {
  position: absolute; top: 12px; left: 12px;
  background: var(--blue); color: #fff;
  font-size: 10px; font-weight: 700;
  letter-spacing: .12em;
  padding: 3px 10px; border-radius: 12px; z-index: 2;
}
.news-card__body {
  padding: 18px 20px 22px;
  display: flex; flex-direction: column; flex: 1;
}
.news-card__meta {
  display: flex; gap: 12px;
  font-size: 12px; color: var(--text-muted);
  margin-bottom: 10px; flex-wrap: wrap;
}
.news-card__title { font-size: 15px; font-weight: 700; line-height: 1.4; margin-bottom: 10px; }
.news-card__title a { color: var(--link-blue); text-decoration: none; }
.news-card__title a:hover { text-decoration: underline; }
.news-card__text { font-size: 13px; color: #666; line-height: 1.65; flex: 1; margin-bottom: 16px; }
.news-card__more {
  color: var(--link-blue); font-size: 13px; font-weight: 600;
  text-decoration: none; display: inline-flex; align-items: center;
  gap: 4px; margin-top: auto; transition: gap .2s;
}
.news-card__more:hover { gap: 8px; }

@media (max-width: 1100px) { .news-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .news-grid { grid-template-columns: 1fr; gap: 18px; } .news-section { padding: 36px 16px 60px; } }

/* ═══════════════════════════════════════════════
   DOWNLOAD PAGE
═══════════════════════════════════════════════ */
.download-page {
  max-width: 1320px;
  margin: 0 auto;
  padding: 40px 60px 80px;
  background: var(--section-bg);
}

.download-section {
  background: #fff;
  border-radius: 14px;
  padding: 36px 40px;
  margin-bottom: 32px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  border: 1px solid #e8eaf0;
}

.download-section--featured {
  background: linear-gradient(135deg, rgba(58,142,246,0.07) 0%, #fff 60%);
  border-radius: 14px;
  padding: 36px 40px;
  margin-bottom: 32px;
  box-shadow: 0 2px 16px rgba(58,142,246,0.12);
  border: 1px solid rgba(58,142,246,0.2);
}

.download-section__inner { }

.download-section__header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 2px solid #eee;
}

.download-section--featured .download-section__header {
  border-bottom-color: rgba(58,142,246,0.2);
}

.download-section__icon { font-size: 36px; }
.download-section__title {
  font-size: 22px;
  font-weight: 800;
  color: var(--text-dark);
  margin: 0;
}
.download-section--featured .download-section__title { color: var(--blue); }
.download-section__desc {
  font-size: 13px;
  color: var(--text-muted);
  margin: 4px 0 0;
}

/* Grid kart */
.download-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}

.download-card {
  background: var(--card-bg);
  border-radius: 12px;
  padding: 22px 24px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: transform .25s, box-shadow .25s;
  border: 1px solid #eee;
}
.download-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 28px rgba(0,0,0,0.13);
}

.download-section--featured .download-card {
  border-color: rgba(58,142,246,0.15);
}

.download-card__top {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}

.download-card__icon { font-size: 32px; flex-shrink: 0; margin-top: 2px; }

.download-card__name {
  font-size: 16px;
  font-weight: 700;
  color: var(--text-dark);
  margin: 0 0 4px;
  line-height: 1.3;
}

.download-card__meta {
  font-size: 12px;
  color: var(--text-muted);
}

.download-card__desc {
  font-size: 13.5px;
  color: #555;
  line-height: 1.65;
  flex: 1;
  margin: 0;
}

.download-card__footer {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 4px;
}

.download-btn {
  padding: 9px 20px;
  font-size: 14px;
  font-weight: 600;
}

.download-card__date {
  font-size: 12px;
  color: var(--text-muted);
}

@media (max-width: 768px) {
  .download-page { padding: 0 16px 60px; }
  .download-section--featured { padding: 20px 16px; }
  .download-grid { grid-template-columns: 1fr; }
}
