/* ============ TOKENS ============ */
:root,
[data-theme="light"] {
  --color-bg: #f4f6fa;
  --color-surface: #ffffff;
  --color-surface-2: #eaeef5;
  --color-surface-offset: #dde3ee;
  --color-divider: #d1d7e2;
  --color-border: #bac2d1;
  --color-text: #0a1220;
  --color-text-muted: #5a6478;
  --color-text-faint: #9aa3b5;
  --color-text-inverse: #f4f6fa;
  --color-primary: #1f6feb;
  --color-primary-hover: #155bc4;
  --color-accent: #00b8ff;
  --color-accent-2: #6d4cff;
  --shadow-md: 0 8px 24px rgba(10, 18, 32, 0.08);
  --shadow-lg: 0 20px 60px rgba(10, 18, 32, 0.14);
  --glow: 0 0 0 1px rgba(31, 111, 235, 0.2), 0 8px 40px rgba(31, 111, 235, 0.2);
}

[data-theme="dark"] {
  --color-bg: #030509;
  --color-surface: #070a11;
  --color-surface-2: #0c1018;
  --color-surface-offset: #121723;
  --color-divider: #161b27;
  --color-border: #242a3a;
  --color-text: #eef1f8;
  --color-text-muted: #7c8499;
  --color-text-faint: #3d4459;
  --color-text-inverse: #030509;
  --color-primary: #4d94ff;
  --color-primary-hover: #7ab0ff;
  --color-accent: #3ee0ff;
  --color-accent-2: #9d7bff;
  --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.5);
  --shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.6);
  --glow: 0 0 0 1px rgba(77, 148, 255, 0.3), 0 8px 48px rgba(77, 148, 255, 0.25);
}

:root {
  --text-xs: clamp(0.6875rem, 0.65rem + 0.2vw, 0.75rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.3vw, 0.9375rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.0625rem);
  --text-lg: clamp(1.125rem, 1rem + 0.6vw, 1.375rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --text-2xl: clamp(2rem, 1.2rem + 2.5vw, 3.75rem);
  --text-mega: clamp(3rem, 1rem + 8vw, 8.5rem);

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-32: 8rem;

  --radius-sm: 0.25rem;
  --radius-md: 0.5rem;
  --radius-lg: 1rem;
  --transition: 280ms cubic-bezier(0.16, 1, 0.3, 1);
  --transition-slow: 500ms cubic-bezier(0.16, 1, 0.3, 1);

  --font-body: "Montserrat", -apple-system, "Segoe UI", sans-serif;
  --font-display: "Montserrat", sans-serif;
  --font-condensed: "Montserrat", sans-serif;
  --font-ui: "Montserrat", -apple-system, "Segoe UI", sans-serif;
  --font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;

  --content-wide: 1360px;
}

/* ============ BASE ============ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
  scroll-padding-top: 90px;
}

body {
  min-height: 100dvh;
  line-height: 1.6;
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: 400;
  color: var(--color-text);
  background: var(--color-bg);
  transition: background var(--transition), color var(--transition);
  overflow-x: hidden;
}

img, svg { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; background: none; border: none; color: inherit; font: inherit; }

h1, h2, h3 {
  text-wrap: balance;
  line-height: 1;
  font-family: var(--font-display);
  font-weight: 800;
  letter-spacing: -0.035em;
}
em {
  font-style: normal;
  font-weight: 300;
  background: linear-gradient(135deg, var(--color-primary), var(--color-accent));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
p { text-wrap: pretty; max-width: 62ch; }

:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; border-radius: var(--radius-sm); }
::selection { background: var(--color-primary); color: #fff; }

.container {
  width: 100%;
  max-width: var(--content-wide);
  margin-inline: auto;
  padding-inline: clamp(var(--space-4), 4vw, var(--space-12));
}

.mono { font-family: var(--font-mono); }

.eyebrow {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--color-text-muted);
  font-weight: 500;
  margin-bottom: var(--space-6);
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
}
.eyebrow::before {
  content: "";
  width: 24px;
  height: 1px;
  background: var(--color-primary);
}

.section-title {
  font-size: var(--text-2xl);
  font-weight: 800;
  letter-spacing: -0.04em;
  max-width: 18ch;
  text-transform: uppercase;
  line-height: 0.95;
}

.section-title-display {
  font-size: var(--text-mega);
  font-weight: 900;
  line-height: 0.9;
  letter-spacing: -0.055em;
  text-transform: uppercase;
}
.section-title-display .block { display: block; }
.section-title-display .num {
  font-weight: 200;
  background: linear-gradient(135deg, var(--color-primary), var(--color-accent));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  letter-spacing: -0.02em;
}

.tag {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-weight: 500;
  color: var(--color-accent);
  padding: 5px 10px;
  border: 1px solid rgba(62, 224, 255, 0.25);
  border-radius: var(--radius-sm);
  background: color-mix(in oklab, var(--color-accent) 6%, transparent);
}

.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-primary);
  transition: var(--transition);
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.link-arrow::after {
  content: "→";
  transition: transform var(--transition);
}
.link-arrow:hover { color: var(--color-accent); }
.link-arrow:hover::after { transform: translateX(6px); }

.btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-8);
  border-radius: var(--radius-sm);
  font-size: var(--text-sm);
  font-weight: 700;
  font-family: var(--font-body);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: var(--transition);
  border: 1px solid transparent;
  position: relative;
  overflow: hidden;
}
.btn-primary {
  background: linear-gradient(135deg, var(--color-primary), var(--color-accent-2));
  color: #fff;
  box-shadow: var(--glow);
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px rgba(77,148,255,0.5), 0 16px 60px rgba(77,148,255,0.4); }
.btn-primary .btn-arrow { display: inline-block; transition: transform var(--transition); }
.btn-primary:hover .btn-arrow { transform: translateX(6px); }
.btn-ghost {
  color: var(--color-text);
  border-color: var(--color-border);
  background: color-mix(in oklab, var(--color-surface) 40%, transparent);
  backdrop-filter: blur(12px);
}
.btn-ghost:hover { border-color: var(--color-accent); color: var(--color-accent); }

/* ============ HEADER ============ */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  background: color-mix(in oklab, var(--color-bg) 70%, transparent);
  backdrop-filter: saturate(160%) blur(20px);
  -webkit-backdrop-filter: saturate(160%) blur(20px);
  border-bottom: 1px solid transparent;
  transition: border-color var(--transition), background var(--transition);
}
.site-header.scrolled {
  border-bottom-color: var(--color-divider);
  background: color-mix(in oklab, var(--color-bg) 90%, transparent);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-block: var(--space-4);
  gap: var(--space-6);
}

.brand { display: inline-flex; align-items: center; gap: var(--space-4); color: var(--color-text); text-decoration: none; }
.brand-logo { display: block; height: 34px; width: auto; }
.brand-logo--light { display: none; }
[data-theme="light"] .brand-logo--dark { display: none; }
[data-theme="light"] .brand-logo--light { display: block; }
.brand-name {
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--color-text);
  text-transform: uppercase;
  line-height: 1;
  padding-left: var(--space-3);
  border-left: 1px solid var(--color-border);
  white-space: nowrap;
}
.brand-name__accent {
  background: linear-gradient(135deg, #1f6feb 0%, #3ee0ff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  font-weight: 900;
}
.brand-sub {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--color-text-muted);
  text-transform: uppercase;
  padding-left: var(--space-3);
  border-left: 1px solid var(--color-border);
  white-space: nowrap;
}
@media (max-width: 720px) {
  .brand-name { font-size: 15px; padding-left: var(--space-2); }
  .brand-sub { display: none; }
}

.nav {
  display: flex;
  gap: var(--space-6);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
}
.nav a {
  color: var(--color-text-muted);
  transition: color var(--transition);
  position: relative;
  padding-block: var(--space-1);
}
.nav a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--color-accent);
  transition: width var(--transition);
}
.nav a:hover { color: var(--color-text); }
.nav a:hover::after { width: 100%; }

.header-actions { display: flex; align-items: center; gap: var(--space-3); }

.lang-switch {
  display: inline-flex;
  align-items: center;
  padding: 3px;
  border-radius: var(--radius-sm);
  background: var(--color-surface-2);
  border: 1px solid var(--color-divider);
}
.lang-btn {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  padding: 5px 10px;
  color: var(--color-text-muted);
  border-radius: 3px;
  transition: var(--transition);
}
.lang-btn.is-active {
  background: linear-gradient(135deg, var(--color-primary), var(--color-accent-2));
  color: #fff;
}

.theme-toggle {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-divider);
  background: var(--color-surface-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-muted);
  transition: var(--transition);
}
.theme-toggle:hover { color: var(--color-accent); border-color: var(--color-primary); }

.menu-toggle { display: none; width: 36px; height: 36px; flex-direction: column; justify-content: center; align-items: center; gap: 4px; border: 1px solid var(--color-divider); border-radius: var(--radius-sm); }
.menu-toggle span { width: 18px; height: 1.5px; background: var(--color-text); transition: var(--transition); }

/* ============ HERO ============ */
.hero {
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  padding-block: var(--space-32) var(--space-16);
}

.hero-visual { position: absolute; inset: 0; z-index: 0; pointer-events: none; }

.hero-image {
  position: absolute;
  inset: 0;
  background-image: url("../img/hero-bg.jpg");
  background-size: cover;
  background-position: center center;
  filter: saturate(0.9) contrast(1.05);
}
.hero-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, color-mix(in oklab, var(--color-bg) 85%, transparent) 0%, color-mix(in oklab, var(--color-bg) 60%, transparent) 40%, transparent 80%),
    linear-gradient(180deg, transparent 60%, color-mix(in oklab, var(--color-bg) 85%, transparent) 100%);
}

[data-theme="light"] .hero-image {
  filter: saturate(0.6) contrast(0.95) brightness(1.2);
}
[data-theme="light"] .hero-image::after {
  background:
    linear-gradient(90deg, var(--color-bg) 0%, color-mix(in oklab, var(--color-bg) 85%, transparent) 45%, color-mix(in oklab, var(--color-bg) 30%, transparent) 100%),
    linear-gradient(180deg, transparent 50%, var(--color-bg) 100%);
}

.hero-grid-overlay {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(color-mix(in oklab, var(--color-primary) 20%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in oklab, var(--color-primary) 20%, transparent) 1px, transparent 1px);
  background-size: 96px 96px;
  opacity: 0.18;
  mask-image: radial-gradient(ellipse 70% 60% at 50% 50%, black 30%, transparent 90%);
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 50%, black 30%, transparent 90%);
}

.hero-vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, transparent 30%, color-mix(in oklab, var(--color-bg) 85%, transparent) 100%);
}

.hero-inner { position: relative; z-index: 1; width: 100%; }

.hero-title {
  font-family: var(--font-display);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.05em;
  margin-bottom: var(--space-12);
  text-transform: uppercase;
  font-size: var(--text-mega);
}
.hero-title span { display: block; line-height: 1; }
.hero-title span + span { margin-top: 0.06em; }

.hero-line-1 { color: var(--color-text); }
.hero-line-2 {
  font-weight: 200;
  font-style: italic;
  padding-left: clamp(var(--space-8), 6vw, var(--space-24));
  color: var(--color-text-muted);
}
.hero-line-3 {
  background: linear-gradient(135deg, var(--color-primary), var(--color-accent));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  padding-left: clamp(var(--space-16), 12vw, var(--space-32));
}

.hero-subtitle {
  font-size: var(--text-xl);
  color: var(--color-text);
  max-width: 60ch;
  margin-top: var(--space-6);
  margin-bottom: var(--space-4);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

.hero-lead {
  font-size: var(--text-lg);
  color: var(--color-text-muted);
  max-width: 50ch;
  margin-bottom: var(--space-12);
  font-weight: 400;
  line-height: 1.5;
}

.hero-ctas { display: flex; flex-wrap: wrap; gap: var(--space-3); }

.hero-scroll {
  position: absolute;
  bottom: var(--space-10);
  right: clamp(var(--space-4), 4vw, var(--space-12));
  display: flex;
  align-items: center;
  gap: var(--space-4);
  font-size: 10px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--color-text-faint);
}
.scroll-line { width: 60px; height: 1px; background: var(--color-border); position: relative; overflow: hidden; }
.scroll-line::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--color-accent);
  animation: scroll-pulse 2.5s var(--transition) infinite;
}
@keyframes scroll-pulse {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

/* ============ SECTIONS ============ */
.section {
  padding-block: clamp(var(--space-10), 5vw, var(--space-16));
  position: relative;
}

.section-head { margin-bottom: var(--space-10); max-width: 640px; }
.section-head.flex-head { display: flex; align-items: end; justify-content: space-between; gap: var(--space-6); max-width: 100%; }

.grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(var(--space-8), 6vw, var(--space-24));
  align-items: start;
}

.about-body p { margin-bottom: var(--space-4); color: var(--color-text-muted); font-size: var(--text-lg); line-height: 1.55; }
.about-body p:first-child { color: var(--color-text); }
.about-body .link-arrow { margin-top: var(--space-6); }

/* ============ MANIFESTO ============ */
.section-manifesto {
  border-top: 1px solid var(--color-divider);
  border-bottom: 1px solid var(--color-divider);
  background: var(--color-surface);
  padding-block: clamp(var(--space-16), 8vw, var(--space-24));
}
.manifesto-grid {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(var(--space-8), 8vw, var(--space-24));
  align-items: start;
}
.manifesto-label .eyebrow { margin-bottom: 0; }
.manifesto-text {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 1rem + 2.5vw, 3.25rem);
  font-weight: 300;
  line-height: 1.15;
  letter-spacing: -0.025em;
  max-width: 22ch;
  text-transform: none;
  color: var(--color-text);
}

/* ============ PILLARS ============ */
.section-pillars { padding-block: clamp(var(--space-12), 6vw, var(--space-20)); }

.pillars-list {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--color-divider);
}

.pillar {
  display: grid;
  grid-template-columns: 80px 1.2fr 2fr;
  gap: clamp(var(--space-6), 5vw, var(--space-16));
  padding-block: clamp(var(--space-10), 6vw, var(--space-20));
  border-bottom: 1px solid var(--color-divider);
  align-items: center;
  position: relative;
  transition: background var(--transition);
}
.pillar::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
  transition: width var(--transition-slow);
}
.pillar:hover::before { width: 100%; }
.pillar:hover { background: color-mix(in oklab, var(--color-primary) 2%, transparent); }

.pillar-index {
  font-size: 14px;
  font-weight: 500;
  color: var(--color-text-faint);
  letter-spacing: 0.15em;
  align-self: start;
  padding-top: var(--space-2);
}

.pillar-visual {
  aspect-ratio: 4/3;
  border-radius: var(--radius-md);
  overflow: hidden;
  position: relative;
  border: 1px solid var(--color-divider);
}
.pillar-visual-inner {
  position: absolute;
  inset: 0;
  transition: transform var(--transition-slow);
}
.pillar:hover .pillar-visual-inner { transform: scale(1.06); }

.pillar-visual-film .pillar-visual-inner {
  background-image: url("../img/pillar-film.jpg");
  background-size: cover;
  background-position: center;
}
.pillar-visual-film::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, transparent 60%, rgba(3,5,9,0.35));
  pointer-events: none;
}

.pillar-visual-omp .pillar-visual-inner {
  background-image: url("../img/pillar-omp.jpg");
  background-size: cover;
  background-position: center;
}
.pillar-visual-omp::after {
  content: "01";
  position: absolute;
  top: 12px;
  right: 14px;
  font-family: var(--font-mono);
  font-size: 11px;
  color: rgba(62,224,255,0.6);
  letter-spacing: 0.15em;
}

.pillar-visual-academy .pillar-visual-inner {
  background-image: url("../img/logo-academy-onbg.jpg");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #ee5a18;
}
.pillar-visual-academy::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.08) 100%);
  pointer-events: none;
}

.pillar-content { display: flex; flex-direction: column; gap: var(--space-3); }
.pillar-content h3 {
  font-size: var(--text-xl);
  font-weight: 800;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  margin: var(--space-1) 0 var(--space-2);
}
.pillar-content p {
  color: var(--color-text-muted);
  font-size: var(--text-base);
  line-height: 1.6;
  max-width: 56ch;
}
.pillar-content .link-arrow { margin-top: var(--space-3); align-self: start; }

/* ============ OMP ============ */
.section-omp {
  background-color: #020306;
  background-image:
    linear-gradient(135deg, rgba(2,3,6,0.88) 0%, rgba(4,6,17,0.82) 50%, rgba(2,3,6,0.92) 100%),
    url("../img/omp-bg.jpg");
  background-size: cover;
  background-position: center;
  color: #eef1f8;
  position: relative;
  overflow: hidden;
}
.section-omp::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(77,148,255,0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(77,148,255,0.07) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse at 50% 50%, black, transparent 85%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, black, transparent 85%);
  pointer-events: none;
}
.section-omp > .container { position: relative; z-index: 1; }

.section-omp .eyebrow { color: var(--color-accent); }
.section-omp .eyebrow::before { background: var(--color-accent); }
.section-omp .tag { color: var(--color-accent); border-color: rgba(62, 224, 255, 0.3); }

.omp-head { margin-bottom: var(--space-16); }
.omp-head .section-title-display { color: #eef1f8; }

.omp-content {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: clamp(var(--space-10), 8vw, var(--space-24));
  align-items: end;
  margin-bottom: var(--space-20);
  padding-bottom: var(--space-16);
  border-bottom: 1px solid rgba(77,148,255,0.15);
}
.omp-lead {
  font-size: var(--text-lg);
  color: rgba(238, 241, 248, 0.75);
  max-width: 54ch;
  margin-bottom: var(--space-10);
  line-height: 1.55;
}

.omp-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: rgba(77,148,255,0.15);
  border: 1px solid rgba(77,148,255,0.15);
}
.omp-stat {
  padding: var(--space-6);
  background: #040611;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.omp-stat-label {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.22em;
  color: rgba(238, 241, 248, 0.5);
}
.omp-stat-value {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 800;
  color: var(--color-accent);
  letter-spacing: -0.02em;
}

/* Jury */
.omp-jury-section { padding-top: var(--space-8); }
.omp-jury-section .eyebrow { margin-bottom: var(--space-8); }
.jury-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(77,148,255,0.15);
  border: 1px solid rgba(77,148,255,0.15);
}
.jury-card {
  padding: var(--space-6);
  background: #040611;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  transition: background var(--transition);
}
.jury-card:hover { background: color-mix(in oklab, var(--color-primary) 10%, #040611); }
.jury-name {
  font-family: var(--font-display);
  font-size: var(--text-base);
  font-weight: 700;
  color: #eef1f8;
  letter-spacing: -0.01em;
}
.jury-role {
  font-size: 11px;
  letter-spacing: 0.12em;
  color: rgba(62,224,255,0.7);
  text-transform: uppercase;
}

.section-omp .btn-ghost { color: #eef1f8; border-color: rgba(77,148,255,0.3); background: rgba(255,255,255,0.02); }
.section-omp .btn-ghost:hover { border-color: var(--color-accent); color: var(--color-accent); }

/* ============ ACADEMY ============ */
.section-academy { background: var(--color-surface); border-block: 1px solid var(--color-divider); }

.courses-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--color-divider);
  border: 1px solid var(--color-divider);
}

.course-card {
  padding: var(--space-8);
  background: var(--color-surface);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  transition: var(--transition);
  min-height: 320px;
  position: relative;
}
.course-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
  transition: width var(--transition);
}
.course-card:hover::before { width: 100%; }
.course-card:hover { background: color-mix(in oklab, var(--color-primary) 3%, var(--color-surface)); }

.course-header { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); margin-bottom: var(--space-3); }
.course-num {
  font-size: 13px;
  color: var(--color-text-faint);
  letter-spacing: 0.12em;
  font-weight: 500;
}

.course-card h3 {
  font-size: var(--text-lg);
  font-weight: 800;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  line-height: 1.05;
}
.course-card p {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  line-height: 1.6;
  flex: 1;
}

.course-meta {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-top: auto;
  padding-top: var(--space-6);
  border-top: 1px solid var(--color-divider);
}
.course-meta li { font-size: 11px; letter-spacing: 0.1em; color: var(--color-text-muted); text-transform: uppercase; }
.course-meta li span { color: var(--color-text-faint); }

/* ============ INDUSTRY ============ */
.section-industry { padding-block: clamp(var(--space-20), 8vw, var(--space-24)); }

/* ============ NEWS ============ */
.section-news { padding-bottom: clamp(var(--space-10), 4vw, var(--space-14)); }

.news-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-10);
}

.news-card {
  display: flex;
  flex-direction: column;
  transition: var(--transition);
  position: relative;
}
.news-card:hover .news-visual-inner,
.news-card:hover .news-visual::before { transform: scale(1.04); }
.news-card:hover h3 { color: var(--color-accent); }

.news-visual {
  aspect-ratio: 16/10;
  border-radius: var(--radius-md);
  overflow: hidden;
  margin-bottom: var(--space-6);
  position: relative;
  border: 1px solid var(--color-divider);
}
.news-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  transition: transform var(--transition-slow);
}
.news-visual-1::before {
  background:
    linear-gradient(rgba(0,0,0,0.18), rgba(0,0,0,0.18)),
    url('../img/from-user/obrady-jury-omp.jpg') center/cover no-repeat,
    linear-gradient(135deg, #0a1020, #020306);
}
.news-visual-2::before {
  background:
    linear-gradient(135deg, color-mix(in oklab, var(--color-accent-2) 30%, #050a12), #020306);
}
.news-visual-2::after {
  content: "AI";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: clamp(60px, 14vw, 140px);
  font-weight: 200;
  color: rgba(62, 224, 255, 0.2);
  letter-spacing: -0.05em;
  pointer-events: none;
}
.news-visual-3::before {
  background:
    linear-gradient(rgba(0,0,0,0.18), rgba(0,0,0,0.18)),
    url('../img/from-user/ai-filmmaking-studio.jpg') center/cover no-repeat,
    linear-gradient(135deg, #081020, #020306);
}

.news-body { display: flex; flex-direction: column; gap: var(--space-3); }
.news-meta {
  font-family: var(--font-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--color-text-muted);
  display: flex;
  gap: var(--space-2);
  align-items: center;
  margin-bottom: var(--space-1);
}
.news-meta span:first-child { color: var(--color-accent); font-weight: 500; }
.news-card h3 {
  font-size: var(--text-lg);
  font-weight: 800;
  letter-spacing: -0.02em;
  transition: color var(--transition);
  text-transform: none;
  line-height: 1.2;
}
.news-body p:not(.news-meta) { color: var(--color-text-muted); font-size: var(--text-sm); line-height: 1.55; max-width: 40ch; }
.news-body .link-arrow { margin-top: var(--space-3); }

/* ============ CONTACT ============ */
.section-contact {
  background: var(--color-surface);
  border-top: 1px solid var(--color-divider);
  position: relative;
  overflow: hidden;
}
.section-contact::before {
  content: "";
  position: absolute;
  top: -20%;
  right: -10%;
  width: 60%;
  height: 100%;
  background: radial-gradient(circle, color-mix(in oklab, var(--color-primary) 15%, transparent), transparent 60%);
  pointer-events: none;
}

.contact-inner {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: clamp(var(--space-10), 8vw, var(--space-24));
  position: relative;
  z-index: 1;
  align-items: start;
}

.contact-text .section-title-display {
  font-size: clamp(2.5rem, 1rem + 6vw, 6rem);
  margin-bottom: var(--space-8);
}

.contact-lead {
  font-size: var(--text-lg);
  color: var(--color-text-muted);
  line-height: 1.55;
  max-width: 48ch;
}

.contact-info {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  padding: var(--space-10);
  background: var(--color-bg);
  border: 1px solid var(--color-divider);
  border-radius: var(--radius-md);
  position: relative;
}
.contact-info::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 24px;
  width: 48px;
  height: 1px;
  background: var(--color-primary);
}

.contact-row { display: flex; flex-direction: column; gap: var(--space-2); }
.contact-label {
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--color-accent);
  text-transform: uppercase;
}
.contact-row p {
  font-size: var(--text-base);
  color: var(--color-text);
  margin: 0;
  line-height: 1.5;
}
.contact-row a {
  color: var(--color-primary);
  border-bottom: 1px solid transparent;
  transition: var(--transition);
}
.contact-row a:hover { border-bottom-color: currentColor; color: var(--color-accent); }

/* ============ FOOTER ============ */
.site-footer {
  background: var(--color-bg);
  border-top: 1px solid var(--color-divider);
  padding-block: var(--space-16) var(--space-8);
  position: relative;
}
.site-footer::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 50%;
  transform: translateX(-50%);
  width: 140px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--color-primary), transparent);
}

.footer-inner { display: flex; flex-direction: column; gap: var(--space-12); }
.footer-top { display: grid; grid-template-columns: 1.4fr 3fr; gap: var(--space-10); align-items: start; }
.footer-brand .footer-logo { display: block; height: 38px; width: auto; margin-bottom: var(--space-3); }
.footer-brand .brand-name {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}
.footer-brand p {
  margin-top: var(--space-3);
  color: var(--color-text-muted);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.footer-nav { display: grid; grid-template-columns: 0.9fr 1.3fr 0.7fr 1.1fr; gap: var(--space-6); align-items: start; }
.footer-col { display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; }
.footer-col .footer-links { display: flex; flex-direction: column; gap: var(--space-3); }
.footer-sublink { padding-left: var(--space-3); font-size: 13px; opacity: 0.85; }
.footer-col a { color: var(--color-text-muted); font-size: var(--text-sm); transition: color var(--transition); text-decoration: none; }
.footer-col a:hover { color: var(--color-text); }
.footer-small { color: var(--color-text-faint); font-size: 11px; letter-spacing: 0.06em; line-height: 1.5; }
.footer-heading {
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--color-accent);
  text-transform: uppercase;
  margin-bottom: var(--space-1);
}
.footer-col a { color: var(--color-text-muted); font-size: var(--text-sm); transition: color var(--transition); }
.footer-col a:hover { color: var(--color-text); }

.footer-copy {
  padding-top: var(--space-8);
  border-top: 1px solid var(--color-divider);
  font-size: 11px;
  color: var(--color-text-faint);
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

/* ============ RESPONSIVE ============ */
@media (max-width: 1024px) {
  .omp-content { grid-template-columns: 1fr; }
  .jury-grid { grid-template-columns: repeat(2, 1fr); }
  .pillar { grid-template-columns: 60px 1fr 1.5fr; }
  .courses-grid { grid-template-columns: 1fr 1fr; }
}

/* Header desktop fix — tagline + nav nie mieszczą się razem na lapku */
@media (max-width: 1279px) {
  .brand-sub { display: none; }
  .nav { gap: var(--space-5); font-size: 12.5px; }
}
@media (max-width: 1100px) {
  .nav { gap: var(--space-4); font-size: 12px; }
  .nav a { white-space: nowrap; }
}

@media (max-width: 820px) {
  .nav { display: none; }
  .menu-toggle { display: inline-flex; }
  .grid-2 { grid-template-columns: 1fr; }
  .manifesto-grid { grid-template-columns: 1fr; gap: var(--space-6); }
  .pillar { grid-template-columns: 1fr; gap: var(--space-6); }
  .pillar-index { padding-top: 0; }
  .pillar-visual { max-width: 400px; }
  .news-grid { grid-template-columns: 1fr; }
  .courses-grid { grid-template-columns: 1fr; }
  .contact-inner { grid-template-columns: 1fr; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-nav { grid-template-columns: 1fr 1fr; gap: var(--space-6) var(--space-8); }
  .section-head.flex-head { flex-direction: column; align-items: flex-start; }
  .hero-line-2 { padding-left: var(--space-6); }
  .hero-line-3 { padding-left: var(--space-12); }
  .hero-scroll { display: none; }
}

@media (max-width: 560px) {
  .hero { min-height: 92vh; }
  .jury-grid { grid-template-columns: 1fr; }
  .omp-stats { grid-template-columns: 1fr; }
  .brand-sub { display: none; }
}

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

/* ============================================================
   SUBPAGES — components used by one-movie-project.html, academy.html
   ============================================================ */

/* Active nav link */
.nav a.is-active,
.nav a[aria-current="page"] { color: var(--color-text); }
.nav a.is-active::after,
.nav a[aria-current="page"]::after {
  content: ""; display: block; height: 2px; margin-top: 6px;
  background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
}

/* Page hero */
.page-hero {
  position: relative;
  padding-top: calc(var(--space-24) + 80px);
  padding-bottom: var(--space-24);
  overflow: hidden;
  isolation: isolate;
}
.page-hero-bg {
  position: absolute; inset: 0; z-index: -2;
  background-size: cover; background-position: center;
  opacity: 0.55;
}
.page-hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(180deg, rgba(2,3,6,0.85) 0%, rgba(2,3,6,0.55) 50%, var(--color-bg) 100%),
    linear-gradient(90deg, rgba(2,3,6,0.9) 0%, rgba(2,3,6,0.4) 60%, transparent 100%);
}
[data-theme="light"] .page-hero::after {
  background:
    linear-gradient(180deg, rgba(245,247,252,0.7) 0%, rgba(245,247,252,0.4) 60%, var(--color-bg) 100%),
    linear-gradient(90deg, rgba(245,247,252,0.9) 0%, rgba(245,247,252,0.3) 70%, transparent 100%);
}
.page-hero-inner { position: relative; z-index: 1; max-width: 820px; }

.breadcrumbs {
  display: inline-flex; gap: var(--space-2);
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--color-text-muted);
  margin-bottom: var(--space-6);
}
.breadcrumbs a { color: var(--color-text-muted); }
.breadcrumbs a:hover { color: var(--color-primary); }

.page-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(3rem, 8vw, 6.5rem);
  line-height: 0.95;
  letter-spacing: -0.04em;
  text-transform: uppercase;
  margin: var(--space-4) 0 var(--space-6);
}
/* Default-template H1 (np. CFK) — umiarkowany rozmiar, niezależny od viewportu */
.page-title--default {
  font-size: clamp(1.6rem, 2.5vw, 2.4rem);
  line-height: 1.15;
  letter-spacing: -0.015em;
  text-transform: none;
  font-weight: 800;
  margin: var(--space-3) 0 var(--space-4);
  max-width: 28ch;
}
.accent-gradient {
  background: linear-gradient(135deg, var(--color-primary), var(--color-accent));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
/* Wyjątek brandowy: AMA Film Academy = pomarańczowy #f96908 */
.accent-gradient--academy {
  background: linear-gradient(135deg, #ff8a3d, #f96908);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.brand-orange { color: #f96908 !important; }
.page-lead {
  font-size: var(--text-lg);
  color: var(--color-text-muted);
  max-width: 58ch;
  line-height: 1.55;
}
.page-cta { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-8); }

/* Compact section */
.section-compact { padding-block: var(--space-12); }

/* Stats grid */
.stats-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--space-4);
}
.stat-card {
  display: flex; flex-direction: column; gap: var(--space-2);
  padding: var(--space-6);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
}
.stat-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.5rem;
  letter-spacing: -0.02em;
  color: var(--color-text);
}
.stat-label { font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-text-muted); }

/* Dark variant for sections */
.section-dark { background: var(--color-surface); }
.section-accent {
  background: linear-gradient(180deg, transparent 0%, rgba(31,111,235,0.06) 50%, transparent 100%);
}

/* Section eyebrow + lead */
.section-eyebrow {
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--color-primary); margin-bottom: var(--space-4);
}
.section-title-display {
  font-family: var(--font-display);
  font-weight: 900; text-transform: uppercase;
  font-size: clamp(2rem, 5vw, 4rem);
  line-height: 1;
  letter-spacing: -0.03em;
  margin-bottom: var(--space-12);
}
.section-title-display .text-muted { color: var(--color-text-muted); }
.section-lead { max-width: 62ch; margin-bottom: var(--space-12); color: var(--color-text-muted); font-size: var(--text-lg); }

/* Timeline */
.timeline {
  list-style: none; padding: 0; margin: 0;
  display: grid; gap: var(--space-6);
  position: relative;
}
.timeline-item {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: var(--space-8);
  padding: var(--space-6) 0;
  border-top: 1px solid var(--color-border);
}
.timeline-item:last-child { border-bottom: 1px solid var(--color-border); }
.timeline-date {
  font-size: 12px; letter-spacing: 0.14em;
  color: var(--color-primary); padding-top: 4px;
}
.timeline-title {
  font-family: var(--font-display);
  font-size: 1.25rem; font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0 0 var(--space-2);
}
.timeline-item p { color: var(--color-text-muted); line-height: 1.6; max-width: 62ch; margin: 0; }

/* Jury grid */
.jury-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--space-6);
}
.jury-card {
  padding: var(--space-6);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg);
}
.jury-photo {
  aspect-ratio: 1; width: 100%;
  border-radius: var(--radius-md);
  margin-bottom: var(--space-4);
}
.jury-name { font-family: var(--font-display); font-size: 1.125rem; font-weight: 700; margin: 0 0 4px; }
.jury-role { font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-accent); margin: 0 0 var(--space-3); }
.jury-bio { color: var(--color-text-muted); font-size: 14px; line-height: 1.6; margin: 0; }

/* Rules grid */
.rules-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--space-4);
}
#regulamin .rules-grid { grid-template-columns: repeat(4, 1fr); }
.rule-visual {
  margin: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--color-surface);
  min-height: 180px;
}
.rule-visual img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (min-width: 1024px) {
  #regulamin .rules-grid > .rule-visual { grid-column: span 3; }
}
@media (max-width: 1023px) {
  #regulamin .rules-grid { grid-template-columns: repeat(2, 1fr); }
  #regulamin .rules-grid > .rule-visual { grid-column: span 2; aspect-ratio: 16/7; min-height: 0; }
}
@media (max-width: 560px) {
  #regulamin .rules-grid { grid-template-columns: 1fr; }
  #regulamin .rules-grid > .rule-visual { grid-column: span 1; }
}
.rule-card {
  padding: var(--space-8);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  transition: border-color 0.2s ease;
}
.rule-card:hover { border-color: var(--color-primary); }
.rule-num {
  font-size: 12px; letter-spacing: 0.2em;
  color: var(--color-primary); display: block; margin-bottom: var(--space-4);
}
.rule-title { font-family: var(--font-display); font-size: 1.125rem; font-weight: 700; margin: 0 0 var(--space-3); }
.rule-card p { color: var(--color-text-muted); line-height: 1.6; margin: 0; font-size: 14px; }

.download-row {
  display: flex; flex-wrap: wrap; gap: var(--space-3);
  margin-top: var(--space-8);
}

/* Forms */
.form-wrap {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: var(--space-12);
  align-items: start;
}
.form-intro .lead { color: var(--color-text-muted); line-height: 1.6; font-size: var(--text-base); margin-bottom: var(--space-6); }
.form-intro a { color: var(--color-primary); }
.checklist { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-2); }
.checklist li { display: flex; gap: var(--space-3); align-items: center; color: var(--color-text-muted); font-size: 14px; }
.check {
  width: 20px; height: 20px; border-radius: 50%;
  background: linear-gradient(135deg, var(--color-primary), var(--color-accent));
  color: white; display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; flex-shrink: 0;
}

.apply-form {
  padding: var(--space-8);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  display: grid; gap: var(--space-4);
}
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.field { display: flex; flex-direction: column; gap: var(--space-2); }
.field-label {
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--color-text-muted);
}
.field input, .field select, .field textarea {
  font-family: inherit;
  font-size: 14px;
  padding: var(--space-3) var(--space-4);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-text);
  transition: border-color 0.2s ease;
}
.field input:focus, .field select:focus, .field textarea:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(31,111,235,0.15);
}
.field-check { display: flex; gap: var(--space-3); align-items: flex-start; font-size: 13px; color: var(--color-text-muted); line-height: 1.5; }
.field-check input { margin-top: 2px; }
.field-check a { color: var(--color-primary); }
.field-radio { display: inline-flex; gap: var(--space-3); align-items: center; font-size: 14px; color: var(--color-text); }

.btn-lg { padding: var(--space-4) var(--space-6); font-size: 14px; }

/* FAQ */
.faq-list { display: grid; gap: var(--space-3); max-width: 900px; }
.faq-item {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-5) var(--space-6);
  background: var(--color-surface);
  transition: border-color 0.2s ease;
}
.faq-item[open] { border-color: var(--color-primary); }
.faq-item summary {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  list-style: none;
  display: flex; justify-content: space-between; align-items: center;
  gap: var(--space-4);
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: "+";
  font-size: 1.5rem; line-height: 1; color: var(--color-primary);
  transition: transform 0.2s ease;
}
.faq-item[open] summary::after { content: "−"; }
.faq-item p {
  margin: var(--space-4) 0 0;
  color: var(--color-text-muted);
  line-height: 1.6;
  font-size: 14px;
}

/* CTA final */
.section-cta { padding-block: var(--space-8) var(--space-12); }
.cta-card {
  padding: var(--space-8) var(--space-10);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background:
    radial-gradient(1200px 400px at 20% 0%, rgba(31,111,235,0.12), transparent 60%),
    radial-gradient(800px 300px at 80% 100%, rgba(62,224,255,0.08), transparent 60%),
    var(--color-surface);
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--space-8);
  text-align: left;
}
.cta-card .section-title-display { font-size: clamp(2rem, 1rem + 3vw, 3.25rem); margin: 0; line-height: 0.95; }
.cta-card .lead { color: var(--color-text-muted); margin-bottom: 0; font-size: var(--text-sm); max-width: 38ch; }
.cta-card .btn { white-space: nowrap; }
@media (max-width: 820px) {
  .cta-card { grid-template-columns: 1fr; gap: var(--space-5); text-align: left; }
}

/* Courses grid */
.courses-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: var(--space-6);
}
.course-card {
  padding: var(--space-8);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  display: flex; flex-direction: column; gap: var(--space-6);
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.course-card:hover { border-color: var(--color-primary); transform: translateY(-2px); }
.course-card.is-featured {
  border-color: var(--color-primary);
  background:
    linear-gradient(180deg, rgba(31,111,235,0.08) 0%, transparent 40%),
    var(--color-surface);
}
.course-tag {
  font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--color-text-muted); display: inline-block; margin-bottom: var(--space-3);
}
.course-tag.is-hot { color: var(--color-accent); }
.course-title {
  font-family: var(--font-display);
  font-size: 1.5rem; font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0 0 var(--space-2);
}
.course-sub { color: var(--color-text-muted); font-size: 13px; margin: 0; }

.course-meta { display: grid; gap: var(--space-2); padding: var(--space-5) 0; border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); }
.meta-row { display: flex; justify-content: space-between; font-size: 13px; }
.meta-row span { color: var(--color-text-muted); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; }
.meta-row strong { color: var(--color-text); font-weight: 600; }
.meta-row .price { color: var(--color-accent); font-size: 15px; }

.course-syllabus .syllabus-head { font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-primary); margin: 0 0 var(--space-3); }
.syllabus-list { padding-left: var(--space-5); margin: 0; display: grid; gap: var(--space-2); color: var(--color-text-muted); font-size: 13px; line-height: 1.5; }
.syllabus-list li::marker { color: var(--color-primary); font-family: var(--font-mono); font-size: 11px; }

.course-foot { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); flex-wrap: wrap; margin-top: auto; }
.course-link { font-size: 12px; color: var(--color-text-muted); letter-spacing: 0.06em; }
.course-link:hover { color: var(--color-primary); }

/* Tutors */
.tutors-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--space-6);
}
.tutor-card { text-align: left; }
.tutor-photo {
  aspect-ratio: 1; width: 100%;
  border-radius: var(--radius-md);
  margin-bottom: var(--space-4);
}
.tutor-name { font-family: var(--font-display); font-size: 1rem; font-weight: 700; margin: 0 0 4px; }
.tutor-role { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-text-muted); margin: 0; }

/* Steps */
.steps-grid {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-4);
}
.step-card {
  padding: var(--space-6);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
}
.step-num {
  font-size: 14px; letter-spacing: 0.2em;
  color: var(--color-primary); display: block; margin-bottom: var(--space-3);
}
.step-title { font-family: var(--font-display); font-size: 1.125rem; font-weight: 700; margin: 0 0 var(--space-2); }
.step-card p { color: var(--color-text-muted); font-size: 14px; line-height: 1.6; margin: 0; }
.step-card a { color: var(--color-primary); }

/* Responsive subpage */
@media (max-width: 860px) {
  .form-wrap { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
  .timeline-item { grid-template-columns: 1fr; gap: var(--space-2); }
  .page-hero { padding-top: calc(var(--space-20) + 70px); }
}

/* ============ PORTFOLIO (film.html) ============ */
.portfolio-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: var(--space-6);
}
.portfolio-card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg);
  overflow: hidden;
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.portfolio-card:hover { border-color: var(--color-primary); transform: translateY(-2px); }
.portfolio-visual {
  aspect-ratio: 16/10;
  background-size: cover; background-position: center;
}
.portfolio-body { padding: var(--space-6); }
.portfolio-meta {
  font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--color-primary); margin: 0 0 var(--space-3);
}
.portfolio-title { font-family: var(--font-display); font-size: 1.25rem; font-weight: 800; margin: 0 0 var(--space-3); letter-spacing: -0.01em; }
.portfolio-desc { color: var(--color-text-muted); font-size: 14px; line-height: 1.6; margin: 0; }

/* ============ NEWS LIST (aktualnosci.html) ============ */
.news-filters {
  display: flex; gap: var(--space-2); flex-wrap: wrap;
  margin-bottom: var(--space-8);
}
.news-filter {
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: 999px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  background: transparent;
  cursor: pointer;
  transition: all 0.2s ease;
}
.news-filter:hover { border-color: var(--color-primary); color: var(--color-text); }
.news-filter.is-active {
  background: var(--color-primary); border-color: var(--color-primary); color: white;
}

.news-list-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: var(--space-6);
}
.news-list-card {
  display: flex; flex-direction: column;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  overflow: hidden;
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.news-list-card:hover { border-color: var(--color-primary); transform: translateY(-2px); }
.news-list-visual {
  aspect-ratio: 16/9;
  background-size: cover; background-position: center;
}
.news-list-body { padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-3); flex: 1; }
.news-list-meta { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-text-muted); margin: 0; }
.news-list-meta strong { color: var(--color-primary); }
.news-list-title { font-family: var(--font-display); font-size: 1.125rem; font-weight: 700; margin: 0; letter-spacing: -0.01em; line-height: 1.3; }
.news-list-excerpt { color: var(--color-text-muted); font-size: 14px; line-height: 1.6; margin: 0; }
.news-list-read { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-primary); margin-top: auto; }

/* ============ ARTICLE (news single) ============ */
.article-hero {
  padding-top: calc(var(--space-24) + 80px);
  padding-bottom: var(--space-12);
  border-bottom: 1px solid var(--color-border);
}
.article-hero-inner { max-width: 760px; }
.article-meta {
  display: flex; gap: var(--space-3); align-items: center;
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-text-muted);
  margin-bottom: var(--space-4);
}
.article-meta strong { color: var(--color-primary); }
.article-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0 0 var(--space-6);
}
.article-lead {
  font-size: var(--text-lg);
  color: var(--color-text-muted);
  line-height: 1.55;
  max-width: 62ch;
}
.article-body { max-width: 760px; margin: 0 auto; padding-block: var(--space-16); }
.article-body h2 { font-family: var(--font-display); font-size: 1.75rem; font-weight: 800; margin: var(--space-12) 0 var(--space-4); letter-spacing: -0.02em; }
.article-body h3 { font-family: var(--font-display); font-size: 1.25rem; font-weight: 700; margin: var(--space-8) 0 var(--space-3); }
.article-body p { color: var(--color-text); line-height: 1.75; font-size: 17px; margin: 0 0 var(--space-4); }
.article-body ul, .article-body ol { color: var(--color-text); line-height: 1.75; font-size: 17px; padding-left: var(--space-6); }
.article-body li { margin-bottom: var(--space-2); }
.article-body blockquote {
  border-left: 3px solid var(--color-primary);
  padding: var(--space-4) var(--space-6);
  margin: var(--space-8) 0;
  font-style: italic;
  color: var(--color-text-muted);
  background: var(--color-surface);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.article-body a { color: var(--color-primary); }
.article-body img { max-width: 100%; border-radius: var(--radius-md); margin: var(--space-8) 0; }

/* Film gallery — breakout poza wwęską kolumnę article-body */
.article-body .film-gallery,
.film-gallery {
  width: min(1280px, 92vw);
  max-width: none !important;
  margin-left: 50% !important;
  transform: translateX(-50%);
  margin-top: var(--space-10) !important;
}
/* Galeria — postery (3/4) i kadry (16/9) rozdzielone */
.gallery-posters {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-4);
  margin-bottom: var(--space-5);
}
.gallery-posters .poster {
  margin: 0;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border-radius: 8px;
  background: var(--color-surface-2, #0c1118);
}
.gallery-posters .poster img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.gallery-stills {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-3);
}
.gallery-stills.cols-4 {
  grid-template-columns: repeat(4, 1fr);
}
.gallery-stills .still {
  margin: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 8px;
  background: var(--color-surface-2, #0c1118);
}
.gallery-stills .still img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 900px) {
  .gallery-posters { grid-template-columns: repeat(2, 1fr); gap: var(--space-3); }
  .gallery-stills,
  .gallery-stills.cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .gallery-posters { grid-template-columns: 1fr; }
  .gallery-stills,
  .gallery-stills.cols-4 { grid-template-columns: 1fr; }
}
/* Wsteczna zgodność: stara klasa .gallery-grid (jeśli gdzieś została) */
.film-gallery .gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-3);
}
@media (max-width: 900px) {
  .film-gallery .gallery-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .film-gallery .gallery-grid { grid-template-columns: 1fr; }
}

/* ============ BRANZA (resources) ============ */
.resources-grid {
  display: grid; grid-template-columns: repeat(6, 1fr);
  gap: var(--space-3);
}
.resource-card {
  padding: var(--space-4) var(--space-4) var(--space-5);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  display: flex; flex-direction: column; gap: var(--space-2);
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.resource-card:hover { border-color: var(--color-primary); transform: translateY(-2px); }
.resource-icon {
  width: 32px; height: 32px;
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, var(--color-primary), var(--color-accent));
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-weight: 800; color: white; font-size: 12px;
  letter-spacing: 0.04em;
  margin-bottom: var(--space-1);
}
.resource-title { font-family: var(--font-display); font-size: 0.9375rem; font-weight: 700; margin: 0; letter-spacing: -0.01em; line-height: 1.25; }
.resource-desc { color: var(--color-text-muted); font-size: 12px; line-height: 1.5; margin: 0; }
.resource-link { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-primary); margin-top: auto; }
@media (max-width: 1280px) { .resources-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 720px)  { .resources-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .resources-grid { grid-template-columns: 1fr; } }

/* ============ CONTACT PAGE ============ */
.contact-layout {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: var(--space-12);
  align-items: start;
}
.contact-info-card {
  padding: var(--space-8);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  display: grid; gap: var(--space-6);
}
.contact-info-row { display: grid; gap: var(--space-2); }
.contact-info-row .label { font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-primary); font-family: var(--font-mono); }
.contact-info-row .val { color: var(--color-text); font-size: 15px; line-height: 1.6; }
.contact-info-row .val a { color: var(--color-text); }
.contact-info-row .val a:hover { color: var(--color-primary); }
.map-placeholder {
  aspect-ratio: 16/9;
  background:
    radial-gradient(circle at 30% 40%, rgba(31,111,235,0.2), transparent 50%),
    radial-gradient(circle at 70% 60%, rgba(62,224,255,0.15), transparent 50%),
    var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--color-text-muted);
  margin-top: var(--space-4);
  position: relative;
}
.map-placeholder::before {
  content: "◉"; font-size: 24px; color: var(--color-primary);
  position: absolute; left: 30%; top: 40%;
}

@media (max-width: 860px) {
  .contact-layout { grid-template-columns: 1fr; }
}

/* ============ LEGAL (prose) ============ */
.prose-wrap { max-width: 760px; margin: 0 auto; padding-block: var(--space-12); }
.prose-wrap h1 { font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3rem); font-weight: 900; margin: 0 0 var(--space-6); letter-spacing: -0.03em; text-transform: uppercase; }
.prose-wrap h2 { font-family: var(--font-display); font-size: 1.5rem; font-weight: 800; margin: var(--space-10) 0 var(--space-3); letter-spacing: -0.01em; }
.prose-wrap p, .prose-wrap li { color: var(--color-text); line-height: 1.75; font-size: 16px; }
.prose-wrap p { margin: 0 0 var(--space-4); }
.prose-wrap ul, .prose-wrap ol { padding-left: var(--space-6); margin: 0 0 var(--space-4); }
.prose-wrap li { margin-bottom: var(--space-2); }
.prose-wrap .updated { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; color: var(--color-text-muted); margin-bottom: var(--space-8); }

/* ============ EXPLORE GRID (landing) ============ */
.section-explore { padding-block: var(--space-16); }
.explore-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
  margin-top: var(--space-8);
}
.explore-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-8);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  color: var(--color-text);
  text-decoration: none;
  transition: transform 240ms ease, border-color 240ms ease, background 240ms ease;
  min-height: 220px;
}
.explore-card:hover {
  transform: translateY(-4px);
  border-color: var(--color-primary);
  background: var(--color-surface-raised, var(--color-surface));
}
.explore-num {
  font-size: 12px;
  letter-spacing: 0.18em;
  color: var(--color-primary);
}
.explore-card h3 {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  margin: 0;
}
.explore-card p {
  color: var(--color-text-muted);
  line-height: 1.55;
  margin: 0;
  flex: 1;
}
.explore-cta {
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--color-primary);
  text-transform: uppercase;
}
@media (max-width: 900px) {
  .explore-grid { grid-template-columns: 1fr; }
}

/* ============ BRANŻA — podstrony bazy ============ */
.branza-subpages {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
  margin-top: var(--space-8);
}
.branza-subpage {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-8);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  color: var(--color-text);
  text-decoration: none;
  transition: transform 240ms ease, border-color 240ms ease, background 240ms ease;
  min-height: 240px;
}
.branza-subpage:hover { transform: translateY(-4px); border-color: var(--color-primary); }
.branza-sub-num { font-size: 12px; letter-spacing: 0.18em; color: var(--color-primary); }
.branza-subpage h3 { font-family: var(--font-display); font-size: 1.4rem; font-weight: 800; letter-spacing: -0.01em; margin: 0; }
.branza-subpage p { color: var(--color-text-muted); line-height: 1.55; margin: 0; flex: 1; font-size: 14px; }
.branza-sub-cta { font-size: 11px; letter-spacing: 0.14em; color: var(--color-primary); text-transform: uppercase; }
@media (max-width: 900px) { .branza-subpages { grid-template-columns: 1fr; } }

/* ============ ZAWODY FILMOWE ============ */
.zawody-wrap { max-width: 1000px; margin: 0 auto; }
.zawody-group { margin-bottom: var(--space-16); }
.zawody-h2 {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  font-weight: 900;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  margin: 0 0 var(--space-8);
  padding-bottom: var(--space-3);
  border-bottom: 2px solid var(--color-primary);
  color: var(--color-text);
}
.zawody-block {
  padding: var(--space-6) 0;
  border-bottom: 1px solid var(--color-border);
}
.zawody-block:last-child { border-bottom: none; }
.zawody-block h3 {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-primary);
  margin: 0 0 var(--space-3);
}
.zawody-main {
  font-size: 1.05rem;
  font-weight: 600;
  margin: var(--space-4) 0 var(--space-2);
  color: var(--color-text);
}
.zawody-main .mono { font-size: 12px; color: var(--color-text-muted); margin-left: var(--space-2); font-weight: 400; }
.zawody-block ul {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-4);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-1) var(--space-6);
}
.zawody-block ul li {
  padding: 4px 0 4px var(--space-4);
  color: var(--color-text-muted);
  font-size: 14px;
  line-height: 1.5;
  position: relative;
}
.zawody-block ul li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--color-primary);
  opacity: 0.6;
}
@media (max-width: 680px) { .zawody-block ul { grid-template-columns: 1fr; } }

.source-note {
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--color-text-muted);
  padding-top: var(--space-8);
  border-top: 1px solid var(--color-border);
  margin-top: var(--space-8);
}
.source-note a { color: var(--color-primary); text-decoration: none; }
.source-note a:hover { text-decoration: underline; }

/* ============ SZKOŁY FILMOWE ============ */
.schools-list { display: grid; gap: var(--space-4); margin-top: var(--space-8); }
.school-card {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: var(--space-6);
  padding: var(--space-8);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  transition: border-color 240ms ease;
}
.school-card:hover { border-color: var(--color-primary); }
.school-card--featured {
  border-color: var(--color-primary);
  background: linear-gradient(135deg, rgba(31,111,235,0.08) 0%, transparent 100%);
}
.school-num {
  font-size: 2.5rem;
  font-weight: 300;
  color: var(--color-primary);
  letter-spacing: -0.02em;
  line-height: 1;
}
.school-body h3 {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  margin: 0 0 var(--space-2);
  color: var(--color-text);
}
.school-tag {
  display: inline-block;
  padding: 2px 8px;
  background: var(--color-primary);
  color: #fff;
  font-size: 10px;
  letter-spacing: 0.14em;
  border-radius: 4px;
  vertical-align: middle;
  margin-left: var(--space-2);
}
.school-sub {
  color: var(--color-text-muted);
  font-size: 14px;
  font-style: italic;
  margin: 0 0 var(--space-3);
}
.school-body > p { color: var(--color-text); line-height: 1.6; font-size: 15px; margin: 0 0 var(--space-5); }
.school-meta {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-2) var(--space-5);
  padding: var(--space-4);
  background: var(--color-bg);
  border-radius: var(--radius-sm);
  margin-bottom: var(--space-4);
}
.school-meta > div { font-size: 13px; line-height: 1.5; }
.school-label {
  font-size: 10px;
  letter-spacing: 0.16em;
  color: var(--color-primary);
  display: block;
  margin-bottom: 2px;
}
.school-meta a { color: var(--color-text); text-decoration: none; }
.school-meta a:hover { color: var(--color-primary); }
.school-details summary {
  cursor: pointer;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-primary);
  font-family: var(--font-mono);
  padding: var(--space-2) 0;
}
.school-details[open] summary { margin-bottom: var(--space-3); }
.school-details ul { padding-left: var(--space-5); }
.school-details li { color: var(--color-text-muted); line-height: 1.6; margin-bottom: 4px; font-size: 14px; }
.school-details p { color: var(--color-text-muted); line-height: 1.6; font-size: 14px; margin: var(--space-2) 0; }

.schools-abroad {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--space-4);
  margin-top: var(--space-8);
}
.school-abroad-card {
  padding: var(--space-6);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  transition: border-color 240ms ease;
}
.school-abroad-card:hover { border-color: var(--color-primary); }
.school-abroad-card h3 {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 700;
  margin: 0 0 var(--space-2);
}
.school-loc {
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--color-primary);
  margin: 0 0 var(--space-3);
}
.school-abroad-card p { color: var(--color-text-muted); font-size: 14px; line-height: 1.55; margin: 0 0 var(--space-4); }

@media (max-width: 680px) {
  .school-card { grid-template-columns: 1fr; padding: var(--space-6); }
  .school-num { font-size: 1.8rem; }
  .school-meta { grid-template-columns: 1fr; }
}

/* CTA card variant (jeśli nie było) */
.cta-card {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-6);
  padding: var(--space-8);
  border: 1px solid var(--color-primary);
  background: linear-gradient(135deg, rgba(31,111,235,0.12) 0%, rgba(31,111,235,0.02) 100%);
  border-radius: var(--radius-lg);
}
.cta-card h3 {
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 800;
  margin: var(--space-1) 0 0;
  letter-spacing: -0.01em;
}

/* page-lead helper */
.page-lead {
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  line-height: 1.55;
  color: var(--color-text);
  max-width: 720px;
  margin: var(--space-4) 0;
}

/* ============================================================
   NAV DROPDOWN (Branża filmowa — podmenu)
   ============================================================ */
.nav-item--has-sub {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.nav-item--has-sub .nav-link-main {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--color-text-muted);
  padding-block: var(--space-1);
  position: relative;
  transition: color var(--transition);
}
.nav-item--has-sub .nav-link-main::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--color-accent);
  transition: width var(--transition);
}
.nav-item--has-sub:hover .nav-link-main,
.nav-item--has-sub:focus-within .nav-link-main,
.nav-item--has-sub.is-active .nav-link-main {
  color: var(--color-text);
}
.nav-item--has-sub.is-active .nav-link-main::after,
.nav-item--has-sub:hover .nav-link-main::after {
  width: 100%;
}
.nav-caret {
  font-size: 10px;
  opacity: .6;
  transition: transform var(--transition);
}
.nav-item--has-sub:hover .nav-caret,
.nav-item--has-sub:focus-within .nav-caret {
  transform: rotate(180deg);
  opacity: 1;
}
.nav-submenu {
  position: absolute;
  top: 100%;
  left: 50%;
  margin-top: 6px;
  transform: translateX(-50%) translateY(-6px);
  min-width: 230px;
  background: var(--color-surface-1, #0d1117);
  border: 1px solid var(--color-border, rgba(255,255,255,.08));
  border-radius: 10px;
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition: opacity .18s ease, transform .18s ease, visibility 0s .18s;
  box-shadow: 0 18px 50px -12px rgba(0,0,0,.55), 0 0 0 1px rgba(31,111,235,.12);
  z-index: 200;
}
/* Niewidzialny mostek — łączy link z submenu, eliminuje hover-gap */
.nav-submenu::before {
  content: "";
  position: absolute;
  top: -12px;
  left: -10px;
  right: -10px;
  height: 16px;
  background: transparent;
}
/* Padding na nav-item rozszerza obszar hover (uzupełnienie do reguły wyżej) */
.nav-item.nav-item--has-sub {
  padding-bottom: 8px;
  margin-bottom: -8px;
}
.nav-item--has-sub:hover .nav-submenu,
.nav-item--has-sub:focus-within .nav-submenu {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  transition: opacity .18s ease, transform .18s ease, visibility 0s;
}
.nav-submenu a {
  display: block;
  padding: 9px 14px;
  border-radius: 6px;
  color: var(--color-text-muted);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .01em;
  line-height: 1.3;
  white-space: nowrap;
  transition: background var(--transition), color var(--transition), padding var(--transition);
  position: relative;
}
.nav-submenu a::after { display: none; }
.nav-submenu a:hover,
.nav-submenu a:focus-visible {
  color: var(--color-text);
  background: rgba(31,111,235,.12);
  padding-left: 18px;
}
/* Wszystkie linki w submenu jednolite — bez wyróżnionego pierwszego elementu */

/* Mobile/tablet: rozwija się pod linkiem głównym (zgodne z breakpointem hamburgera 1024px) */
@media (max-width: 1024px) {
  .nav-item--has-sub { display: block !important; width: 100%; }
  .nav-item--has-sub .nav-link-main { display: flex !important; justify-content: space-between; width: 100%; }
  .nav-submenu {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    visibility: visible !important;
    box-shadow: none !important;
    background: transparent !important;
    border: none !important;
    border-left: 2px solid var(--color-accent, #3ee0ff) !important;
    border-radius: 0 !important;
    margin: 6px 0 10px 8px !important;
    padding: 4px 0 4px 10px !important;
    min-width: 0 !important;
    width: 100% !important;
    max-height: 0;
    overflow: hidden;
    transition: max-height .25s ease;
  }
  .nav-submenu::before { display: none !important; }
  .nav-item--has-sub.open > .nav-submenu,
  .nav-item--has-sub:focus-within > .nav-submenu {
    max-height: 1200px;
  }
  .nav-submenu a {
    padding: 10px 12px !important;
    white-space: normal !important;
    min-height: 40px !important;
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
  }
  /* Zagnieżdżone podmenu — również statyczne, wcięte */
  .nav-submenu .nav-subitem { display: block !important; width: 100% !important; }
  .nav-submenu .nav-subitem--has-sub > .nav-sublink-main {
    width: 100% !important;
    padding: 10px 12px !important;
    min-height: 40px !important;
    display: flex !important;
    justify-content: space-between !important;
    white-space: normal !important;
  }
  .nav-subsubmenu {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    visibility: visible !important;
    box-shadow: none !important;
    background: transparent !important;
    border: none !important;
    border-left: 2px solid rgba(62, 224, 255, .35) !important;
    border-radius: 0 !important;
    margin: 4px 0 6px 16px !important;
    padding: 2px 0 2px 10px !important;
    min-width: 0 !important;
    width: auto !important;
    max-height: 0;
    overflow: hidden;
    transition: max-height .25s ease;
  }
  .nav-subsubmenu::before { display: none !important; }
  .nav-subitem--has-sub.open > .nav-subsubmenu,
  .nav-subitem--has-sub:focus-within > .nav-subsubmenu {
    max-height: 800px;
  }
  .nav-subsubmenu a {
    padding: 9px 12px !important;
    min-height: 36px !important;
    white-space: normal !important;
    width: 100% !important;
  }
  /* Wyłącz hover-otwieranie w mobile — używamy click toggle */
  .nav-item--has-sub:hover > .nav-submenu,
  .nav-subitem--has-sub:hover > .nav-subsubmenu {
    max-height: 0;
  }
  .nav-item--has-sub.open:hover > .nav-submenu,
  .nav-item--has-sub.open > .nav-submenu,
  .nav-subitem--has-sub.open:hover > .nav-subsubmenu,
  .nav-subitem--has-sub.open > .nav-subsubmenu {
    max-height: 1200px;
  }
}

/* ============================================================
   EDUKACJA FILMOWA — klasy dodane dla /branza-edukacja.html
   ============================================================ */

/* Grid siatek edukacyjnych */
.edukacja-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-8);
}

/* Karta edukacyjna */
.edukacja-card {
  padding: var(--space-7);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  transition: border-color 240ms ease, box-shadow 240ms ease;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.edukacja-card:hover {
  border-color: var(--color-primary);
  box-shadow: var(--shadow-md);
}
.edukacja-card--featured {
  border-color: var(--color-primary);
  background: linear-gradient(135deg, rgba(31,111,235,0.07) 0%, transparent 100%);
}
.edukacja-card h3 {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  margin: 0;
  color: var(--color-text);
  line-height: 1.25;
}

/* Typ / miasto / termin */
.edukacja-type {
  font-size: 11px;
  letter-spacing: 0.13em;
  color: var(--color-primary);
  margin: 0;
  line-height: 1.4;
}

/* Opis */
.edukacja-desc {
  color: var(--color-text-muted);
  font-size: 14px;
  line-height: 1.65;
  margin: 0;
  flex: 1;
}

/* Lista "dla kogo" */
.edukacja-target {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}
.edukacja-target li {
  font-size: 11px;
  letter-spacing: 0.1em;
  padding: 3px 9px;
  border: 1px solid var(--color-border);
  border-radius: 100px;
  color: var(--color-text-muted);
  white-space: nowrap;
}

/* Link */
.edukacja-link {
  margin: 0;
  padding-top: var(--space-2);
  border-top: 1px solid var(--color-divider);
}
.edukacja-link a {
  font-size: 12px;
  letter-spacing: 0.12em;
  color: var(--color-primary);
  text-decoration: none;
  font-family: var(--font-mono);
  transition: opacity 200ms;
}
.edukacja-link a:hover {
  opacity: 0.75;
  text-decoration: underline;
}

/* Sekcja literatura */
.literatura-list {
  list-style: none;
  padding: 0;
  margin: var(--space-8) 0 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--space-4);
}
.literatura-item {
  padding: var(--space-5) var(--space-6);
  border-left: 3px solid var(--color-primary);
  background: var(--color-surface);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}
.literatura-item strong {
  display: block;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: var(--space-1);
  line-height: 1.3;
}
.literatura-item em {
  display: block;
  font-size: 13px;
  color: var(--color-text-muted);
  font-style: normal;
  margin-bottom: var(--space-1);
}
.literatura-item small {
  font-size: 12px;
  color: var(--color-text-faint);
  font-family: var(--font-mono);
  letter-spacing: 0.08em;
}

/* Pomocnicze */
.edukacja-section-lead {
  max-width: 720px;
  color: var(--color-text-muted);
  font-size: 15px;
  line-height: 1.7;
  margin: var(--space-4) 0 0;
}

/* Responsywność */
@media (max-width: 600px) {
  .edukacja-grid { grid-template-columns: 1fr; }
  .literatura-list { grid-template-columns: 1fr; }
}

/* ============================================================
   ZAWODY — Szczegółowe opisy
   ============================================================ */
/* ============================================================
   css-zawody.css — style dla bloków opisów zawodów filmowych
   Dołącz do style.css lub importuj przed zamknięciem </head>
   ============================================================ */

/* --- Kontener opisu zawodu --- */
.zawod-detail {
  margin-top: var(--space-6);
  padding: var(--space-6);
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-left: 3px solid var(--color-accent);
  border-radius: var(--radius-md);
}

/* --- Opis roli (1–2 zdania) --- */
.zawod-desc {
  font-family: var(--font-body);
  font-size: var(--text-lg);
  font-weight: 500;
  color: var(--color-text);
  line-height: 1.6;
  margin: 0 0 var(--space-6) 0;
}

/* --- Dwukolumnowy grid metadanych --- */
.zawod-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-6);
}

@media (max-width: 680px) {
  .zawod-meta {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }
}

/* --- Kolumna metadanych --- */
.zawod-meta-col {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.zawod-meta-col > .mono {
  font-size: 11px;
  letter-spacing: .14em;
  color: var(--color-accent);
  margin: 0 0 var(--space-1) 0;
}

/* --- Lista zadań z markerami ▸ --- */
.zawod-tasks {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.zawod-tasks li {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  line-height: 1.55;
  padding-left: 1.25em;
  position: relative;
}

.zawod-tasks li::before {
  content: "▸";
  position: absolute;
  left: 0;
  color: var(--color-primary);
  font-size: 0.75em;
  top: 0.2em;
}

/* --- Linie wymagań / współpracy --- */
.zawod-req {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  line-height: 1.55;
  margin: 0;
}

.zawod-req strong {
  color: var(--color-text);
  font-weight: 600;
}

/* --- Subtelne hover na całym bloku --- */
.zawody-block:hover .zawod-detail {
  border-left-color: var(--color-primary);
  transition: border-left-color var(--transition);
}

/* ============================================================
   SZKOŁY — Opisy i kierunki
   ============================================================ */
/* =========================================================
   css-szkoly.css — styles for .school-intro, .school-programs,
   .school-programs-list, .school-format, .school-highlight
   Dark theme · accent: #1f6feb (blue) / #3ee0ff (cyan)
   Font: Montserrat (fallback: system sans-serif)
   ========================================================= */

/* ---- School intro paragraph ---- */
.school-intro {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 0.9375rem;        /* 15px */
  line-height: 1.7;
  color: #c9d1d9;
  margin: 0.75rem 0 1.25rem;
  max-width: 68ch;
}

/* Featured (AMA) variant — slightly larger */
.school-intro--featured {
  font-size: 1rem;
  color: #e6edf3;
  border-left: 3px solid #3ee0ff;
  padding-left: 1rem;
  margin-left: 0;
}

/* ---- Programs block ---- */
.school-programs {
  margin: 1rem 0 1.25rem;
  padding: 1rem 1.25rem;
  background: rgba(31, 111, 235, 0.06);
  border: 1px solid rgba(31, 111, 235, 0.18);
  border-radius: 6px;
}

/* Featured (AMA) variant */
.school-programs--featured {
  background: rgba(62, 224, 255, 0.05);
  border-color: rgba(62, 224, 255, 0.22);
}

/* Abroad variant — lighter, compact */
.school-programs--abroad {
  background: rgba(31, 111, 235, 0.04);
  border-color: rgba(31, 111, 235, 0.12);
  padding: 0.6rem 1rem;
  margin: 0.5rem 0 0.75rem;
}

.school-programs > .mono {
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #1f6feb;
  margin: 0 0 0.6rem;
}

.school-programs--featured > .mono {
  color: #3ee0ff;
}

/* ---- Programs list ---- */
.school-programs-list {
  list-style: none;
  padding: 0;
  margin: 0 0 0.75rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 0;
}

.school-programs-list li {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 0.8125rem;         /* 13px */
  color: #b1bac4;
  position: relative;
  padding-left: 1rem;
  width: 100%;
  line-height: 1.5;
}

/* Two-column layout on wider cards */
@media (min-width: 600px) {
  .school-programs-list {
    columns: 2;
    display: block;
  }
  .school-programs-list li {
    break-inside: avoid;
  }
}

.school-programs-list li::before {
  content: '→';
  position: absolute;
  left: 0;
  color: #1f6feb;
  font-size: 0.7rem;
  top: 0.15em;
}

.school-programs--featured .school-programs-list li::before {
  color: #3ee0ff;
}

.school-programs-list li a {
  color: #3ee0ff;
  text-decoration: none;
}
.school-programs-list li a:hover {
  text-decoration: underline;
}

/* ---- Format line ---- */
.school-format {
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  color: #8b949e;
  margin: 0.5rem 0 0;
  line-height: 1.4;
}

/* ---- Highlight ---- */
.school-highlight {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 0.875rem;          /* 14px */
  line-height: 1.6;
  color: #c9d1d9;
  margin: 1rem 0 0.75rem;
  padding: 0.75rem 1rem;
  border-left: 3px solid #1f6feb;
  background: rgba(31, 111, 235, 0.05);
  border-radius: 0 4px 4px 0;
}

/* Featured (AMA) highlight — more prominent */
.school-highlight--featured {
  border-left-color: #3ee0ff;
  background: rgba(62, 224, 255, 0.07);
  color: #e6edf3;
  font-size: 0.9375rem;
}

.school-highlight .mono,
.school-highlight--featured .mono {
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #1f6feb;
  margin-right: 0.5em;
  display: inline-block;
  vertical-align: middle;
}

.school-highlight--featured .mono {
  color: #3ee0ff;
}

/* ============================================================
   PRODUCENCI — Karty firm
   ============================================================ */
/* ============================================================
   Sekcja: Czołowi producenci filmowi w Polsce
   Plik: css-producenci.css
   ============================================================ */

.producenci-section {
  padding-block: var(--space-16, 4rem);
}

.producenci-section .section-head {
  margin-bottom: var(--space-12, 3rem);
}

/* Grid: 3 kolumny desktop / 2 tablet / 1 mobile */
.producenci-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6, 1.5rem);
}

@media (max-width: 1024px) {
  .producenci-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .producenci-grid {
    grid-template-columns: 1fr;
  }
}

/* Karta producenta */
.producent-card {
  background: var(--surface-1, #fff);
  border: 1px solid var(--border, rgba(0, 0, 0, 0.1));
  border-radius: var(--radius-md, 8px);
  padding: var(--space-6, 1.5rem);
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 0.75rem);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.producent-card:hover {
  border-color: var(--accent, #0066cc);
  box-shadow: 0 4px 16px rgba(0, 102, 204, 0.12);
  transform: translateY(-2px);
}

.producent-card h3 {
  font-size: var(--text-lg, 1.125rem);
  font-weight: 600;
  color: var(--text-primary, #111);
  margin: 0;
  line-height: 1.3;
}

.producent-city {
  font-size: var(--text-xs, 0.75rem);
  color: var(--text-muted, #666);
  margin: 0;
  letter-spacing: 0.04em;
}

.producent-desc {
  font-size: var(--text-sm, 0.875rem);
  color: var(--text-secondary, #444);
  line-height: 1.6;
  margin: 0;
  flex: 1;
}

.producent-web {
  margin: 0;
  margin-top: auto;
}

.producent-web a {
  font-size: var(--text-sm, 0.875rem);
  color: var(--accent, #0066cc);
  text-decoration: none;
  font-weight: 500;
  transition: opacity 0.15s ease;
}

.producent-web a:hover {
  opacity: 0.75;
  text-decoration: underline;
}

/* Dark mode */
@media (prefers-color-scheme: dark) {
  .producent-card {
    background: var(--surface-1, #1a1a1a);
    border-color: var(--border, rgba(255, 255, 255, 0.1));
  }

  .producent-card:hover {
    border-color: var(--accent, #4d9fff);
    box-shadow: 0 4px 16px rgba(77, 159, 255, 0.15);
  }

  .producent-card h3 {
    color: var(--text-primary, #f0f0f0);
  }

  .producent-city {
    color: var(--text-muted, #888);
  }

  .producent-desc {
    color: var(--text-secondary, #bbb);
  }

  .producent-web a {
    color: var(--accent, #4d9fff);
  }
}

/* ============================================================
   INSTYTUCJE — Karty instytucji
   ============================================================ */
/* ============================================================
   INSTYTUCJE FILMOWE — dedykowany CSS
   Styl spójny z .school-card i .producent-card
   ============================================================ */

/* Grid dwukolumnowy, jeden na mobile */
.instytucje-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-5);
  margin-top: var(--space-8);
}

@media (max-width: 720px) {
  .instytucje-grid {
    grid-template-columns: 1fr;
  }
}

/* Karta instytucji */
.instytucja-card {
  display: flex;
  flex-direction: column;
  padding: var(--space-7);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  transition: border-color 240ms ease, box-shadow 240ms ease;
}

.instytucja-card:hover {
  border-color: var(--color-primary);
  box-shadow: 0 4px 24px rgba(31, 111, 235, 0.08);
}

.instytucja-card h3 {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  margin: 0 0 var(--space-2);
  color: var(--color-text);
  line-height: 1.25;
}

/* // SKRÓT · ROK */
.instytucja-acronym {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--color-accent);
  margin: 0 0 var(--space-4);
  font-weight: 500;
}

/* Opis 2–3 zdania */
.instytucja-desc {
  font-size: 14px;
  line-height: 1.6;
  color: var(--color-text-muted);
  margin: 0 0 var(--space-4);
  flex-grow: 1;
}

/* Lista zadań */
.instytucja-tasks {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-5);
}

.instytucja-tasks li {
  position: relative;
  padding-left: var(--space-4);
  font-size: 13px;
  line-height: 1.55;
  color: var(--color-text-muted);
  margin-bottom: var(--space-1);
}

.instytucja-tasks li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--color-primary);
  font-size: 12px;
}

/* Link do strony */
.instytucja-link {
  margin: 0;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-divider);
}

.instytucja-link a {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--color-primary);
  text-decoration: none;
  font-weight: 500;
  transition: color 180ms;
}

.instytucja-link a:hover {
  color: var(--color-accent);
}

/* Wrapper sekcji instytucji */
.instytucje-wrap {
  max-width: 1040px;
  margin: 0 auto;
}

.instytucje-group {
  margin-bottom: var(--space-16);
}

/* Nagłówki sekcji — identyczne z .zawody-h2 */
.instytucje-h2 {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-primary);
  margin: 0 0 var(--space-6);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--color-divider);
}

/* ============================================================
   CARD LOGOS — logotypy w kartach szkół, producentów, instytucji, edukacji
   ============================================================ */
.school-card,
.school-abroad-card,
.producent-card,
.instytucja-card,
.edukacja-card {
  position: relative;
}

.card-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: rgba(255, 255, 255, 0.97);
  border-radius: 8px;
  padding: 6px;
  margin-bottom: 14px;
  object-fit: contain;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
  flex-shrink: 0;
  transition: transform var(--transition), box-shadow var(--transition);
}

/* School cards mają grid layout — logo absolutne w prawym górnym rogu */
.school-card > .card-logo,
.school-abroad-card > .card-logo {
  position: absolute !important;
  top: var(--space-5) !important;
  right: var(--space-5) !important;
  left: auto !important;
  bottom: auto !important;
  margin-bottom: 0;
  z-index: 2;
}

/* Zapewnij przestrzeń na logo (padding-right) + żeby h3 nie podchodził pod logo */
.school-card .school-body h3,
.school-abroad-card h3 {
  padding-right: 64px;
}

/* URL może być długi — łam wewnątrz wyrazu, mniejszy font, bez uppercase */
.school-abroad-card .link-arrow,
.school-card .link-arrow {
  font-size: 12px;
  letter-spacing: 0.01em;
  text-transform: none;
  word-break: break-all;
  overflow-wrap: anywhere;
  max-width: 100%;
}

.card-logo--text {
  background: linear-gradient(135deg, #1f6feb 0%, #3ee0ff 100%);
  color: #0d1117;
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 0.02em;
  padding: 0;
}

/* Light theme — delikatne tło */
[data-theme="light"] .card-logo {
  background: #ffffff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(0, 0, 0, 0.04);
}

/* Hover effect on parent card */
.school-card:hover .card-logo,
.school-abroad-card:hover .card-logo,
.producent-card:hover .card-logo,
.instytucja-card:hover .card-logo,
.edukacja-card:hover .card-logo {
  transform: scale(1.06);
  box-shadow: 0 4px 14px rgba(31, 111, 235, 0.3);
}

/* Mniejsze w przypadku wąskiej karty (mobile) */
@media (max-width: 480px) {
  .card-logo { width: 36px; height: 36px; padding: 5px; margin-bottom: 10px; }
  .card-logo--text { font-size: 11px; }
}

/* ============================================================
   ZAWODY SEARCH — wyszukiwarka + filtry
   ============================================================ */
.section--search {
  padding-top: var(--space-5);
  padding-bottom: 0;
  margin-top: calc(-1 * var(--space-6));
}

.zawody-search {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--space-5);
  background: linear-gradient(135deg, rgba(31, 111, 235, 0.06) 0%, rgba(62, 224, 255, 0.04) 100%);
  border: 1px solid var(--color-border, rgba(255, 255, 255, 0.08));
  border-radius: 14px;
  position: relative;
  overflow: hidden;
}

.zawody-search::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, #1f6feb, #3ee0ff, transparent);
  opacity: 0.6;
}

.zawody-search-box {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--color-border, rgba(255, 255, 255, 0.08));
  border-radius: 10px;
  padding: 4px 4px 4px 18px;
  transition: border-color var(--transition), box-shadow var(--transition);
}

.zawody-search-box:focus-within {
  border-color: var(--color-primary, #1f6feb);
  box-shadow: 0 0 0 3px rgba(31, 111, 235, 0.16);
}

.zawody-search-icon {
  color: var(--color-accent, #3ee0ff);
  font-size: 13px;
  letter-spacing: 0.1em;
  opacity: 0.7;
}

.zawody-search-input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: var(--color-text);
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  font-weight: 500;
  padding: 14px 0;
  letter-spacing: 0.01em;
}

.zawody-search-input::placeholder {
  color: var(--color-text-muted);
  opacity: 0.55;
}

.zawody-search-input::-webkit-search-cancel-button {
  -webkit-appearance: none;
  display: none;
}

.zawody-search-clear {
  background: rgba(255, 255, 255, 0.06);
  border: none;
  color: var(--color-text-muted);
  width: 38px;
  height: 38px;
  border-radius: 7px;
  cursor: pointer;
  font-size: 14px;
  transition: background var(--transition), color var(--transition);
  flex-shrink: 0;
}

.zawody-search-clear:hover {
  background: rgba(31, 111, 235, 0.18);
  color: var(--color-text);
}

.zawody-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.zawody-chip {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--color-border, rgba(255, 255, 255, 0.1));
  color: var(--color-text-muted);
  padding: 8px 14px;
  border-radius: 999px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: all var(--transition);
  white-space: nowrap;
}

.zawody-chip:hover {
  background: rgba(31, 111, 235, 0.1);
  color: var(--color-text);
  border-color: rgba(31, 111, 235, 0.3);
}

.zawody-chip.is-active {
  background: linear-gradient(135deg, #1f6feb 0%, #3ee0ff 100%);
  color: #0d1117;
  border-color: transparent;
  font-weight: 700;
  box-shadow: 0 4px 12px rgba(31, 111, 235, 0.3);
}

.zawody-search-status {
  color: var(--color-accent, #3ee0ff);
  font-size: 11px;
  letter-spacing: 0.1em;
  margin: 0;
  min-height: 16px;
}

.zawody-search-status.is-empty {
  color: #ff8a8a;
}

/* Highlight matching blocks */
.zawody-block.is-highlighted {
  background: linear-gradient(180deg, rgba(31, 111, 235, 0.05) 0%, transparent 100%);
  border-left: 2px solid var(--color-accent, #3ee0ff);
  padding-left: 12px;
  margin-left: -14px;
  transition: background var(--transition), padding var(--transition);
}

.zawody-group[hidden] { display: none !important; }
.zawody-block[hidden] { display: none !important; }

@media (max-width: 640px) {
  .zawody-search { padding: var(--space-4); }
  .zawody-search-input { font-size: 14px; }
  .zawody-chip { font-size: 10px; padding: 7px 11px; }
}

/* Light theme adjustments */
[data-theme="light"] .zawody-search {
  background: linear-gradient(135deg, rgba(31, 111, 235, 0.04) 0%, rgba(62, 224, 255, 0.03) 100%);
}
[data-theme="light"] .zawody-search-box {
  background: #ffffff;
  border-color: rgba(0, 0, 0, 0.08);
}
[data-theme="light"] .zawody-chip {
  background: rgba(0, 0, 0, 0.03);
  border-color: rgba(0, 0, 0, 0.1);
}

/* ==================== OPISY ZAWODÓW ==================== */
.opis-toc {
  border: 1px solid rgba(31, 111, 235, 0.28);
  background: linear-gradient(135deg, rgba(31, 111, 235, 0.05), rgba(62, 224, 255, 0.03));
  border-radius: 4px;
  padding: 24px 28px;
}
.opis-toc-label {
  color: var(--color-accent-cyan, #3ee0ff);
  font-size: 11px;
  letter-spacing: 0.18em;
  margin: 0 0 16px;
}
.opis-toc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 8px 20px;
}
.opis-toc-link {
  display: block;
  padding: 10px 12px;
  color: var(--color-text, #e6e9ef);
  text-decoration: none;
  border-left: 2px solid rgba(31, 111, 235, 0.35);
  font-size: 14px;
  transition: border-color .2s, background .2s, color .2s, transform .2s;
}
.opis-toc-link:hover {
  border-left-color: #3ee0ff;
  background: rgba(31, 111, 235, 0.08);
  color: #fff;
  transform: translateX(2px);
}

.section--opis { padding: 72px 0; }
.section--opis.section--alt { background: rgba(31, 111, 235, 0.03); }

.opis-wrap {
  max-width: 920px;
}
.opis-header {
  display: flex;
  align-items: baseline;
  gap: 20px;
  margin-bottom: 32px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(31, 111, 235, 0.22);
}
.opis-num {
  color: #3ee0ff;
  font-size: 13px;
  letter-spacing: 0.2em;
  font-weight: 500;
}
.opis-h2 {
  margin: 0;
  font-size: clamp(28px, 3.4vw, 42px);
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.1;
}
.opis-content p {
  font-size: 16px;
  line-height: 1.75;
  color: var(--color-text, #e6e9ef);
  margin: 0 0 18px;
}
.opis-content p strong {
  color: #fff;
  font-weight: 600;
}
.opis-cta {
  margin-top: 32px;
  padding: 24px;
  border: 1px solid rgba(31, 111, 235, 0.28);
  border-radius: 4px;
  background: rgba(31, 111, 235, 0.04);
}
.opis-cta-label {
  color: #3ee0ff;
  font-size: 11px;
  letter-spacing: 0.18em;
  margin: 0 0 16px;
}
.opis-cta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
}
.opis-cta-link {
  display: block;
  padding: 16px 20px;
  border: 1px solid rgba(31, 111, 235, 0.35);
  border-radius: 4px;
  background: rgba(10, 14, 22, 0.4);
  color: inherit;
  text-decoration: none;
  transition: border-color .2s, background .2s, transform .2s;
}
.opis-cta-link:hover {
  border-color: #3ee0ff;
  background: rgba(31, 111, 235, 0.12);
  transform: translateY(-2px);
}
.opis-cta-title {
  display: block;
  font-weight: 600;
  font-size: 15px;
  color: #fff;
  margin-bottom: 4px;
}
.opis-cta-meta {
  display: block;
  font-size: 13px;
  color: var(--color-text-muted, #8b93a7);
  line-height: 1.5;
}

.section--cta-final {
  padding: 80px 0 96px;
  background: linear-gradient(180deg, transparent, rgba(31, 111, 235, 0.06));
  border-top: 1px solid rgba(31, 111, 235, 0.2);
}
.opis-final {
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
}
.opis-final-label {
  color: #3ee0ff;
  font-size: 11px;
  letter-spacing: 0.18em;
  margin: 0 0 16px;
}
.opis-final-h2 {
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 700;
  margin: 0 0 18px;
  line-height: 1.2;
}
.opis-final-lead {
  font-size: 16px;
  line-height: 1.7;
  color: var(--color-text-muted, #8b93a7);
  margin: 0 0 28px;
}
.opis-final-lead a {
  color: #3ee0ff;
  text-decoration: none;
  border-bottom: 1px solid rgba(62, 224, 255, 0.4);
}
.opis-final-lead a:hover { color: #fff; border-bottom-color: #fff; }
.opis-final-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}

@media (max-width: 640px) {
  .opis-header { flex-direction: column; gap: 6px; }
  .opis-cta { padding: 18px; }
  .section--opis { padding: 48px 0; }
}

/* ==================== TABELA ZAWODÓW PL/EN ==================== */
.zawody-table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0 0;
  font-size: 14px;
  background: rgba(10, 14, 22, 0.3);
  border: 1px solid rgba(31, 111, 235, 0.22);
  border-radius: 4px;
  overflow: hidden;
}
.zawody-table thead th {
  background: rgba(31, 111, 235, 0.12);
  color: #3ee0ff;
  text-align: left;
  padding: 12px 16px;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 500;
  border-bottom: 1px solid rgba(31, 111, 235, 0.35);
}
.zawody-table tbody td {
  padding: 11px 16px;
  border-bottom: 1px solid rgba(31, 111, 235, 0.1);
  vertical-align: top;
  line-height: 1.45;
}
.zawody-table tbody tr:last-child td { border-bottom: none; }
.zawody-table tbody tr:hover { background: rgba(31, 111, 235, 0.05); }
.zawody-table tbody tr.is-head td {
  background: rgba(31, 111, 235, 0.08);
  font-weight: 600;
  color: #fff;
  border-top: 1px solid rgba(62, 224, 255, 0.2);
}
.zawody-table td:first-child { color: var(--color-text, #e6e9ef); font-weight: 500; }
.zawody-table td:nth-child(2) {
  color: #3ee0ff;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 13px;
}
.zawody-table td.col-note,
.zawody-table td:nth-child(3) {
  color: var(--color-text-muted, #8b93a7);
  font-size: 13px;
  font-style: italic;
}
.zawody-table th.col-note { color: #3ee0ff; }
.zawody-subhead {
  margin: 28px 0 4px;
  color: #3ee0ff;
  font-size: 11px;
  letter-spacing: 0.18em;
}
.opis-content-intro {
  font-size: 15px;
  line-height: 1.7;
  color: var(--color-text-muted, #8b93a7);
  margin: 0 0 18px;
}
.opis-content-intro a {
  color: #3ee0ff;
  text-decoration: none;
  border-bottom: 1px solid rgba(62, 224, 255, 0.4);
}
.opis-content-intro a:hover { color: #fff; }
.section--us {
  background: linear-gradient(135deg, rgba(157, 123, 255, 0.05), rgba(31, 111, 235, 0.03));
  border-top: 1px solid rgba(157, 123, 255, 0.25);
  border-bottom: 1px solid rgba(157, 123, 255, 0.25);
}
.section--us .opis-num { color: #9d7bff; }
.section--us .opis-h2 { color: #fff; }

@media (max-width: 768px) {
  .zawody-table { font-size: 13px; }
  .zawody-table thead th,
  .zawody-table tbody td { padding: 9px 10px; }
  .zawody-table td.col-note,
  .zawody-table td:nth-child(3) { display: none; }
  .zawody-table th.col-note { display: none; }
}

/* === EN-ALL list (pełna angielska lista zawodów) === */
.en-list {
  list-style: none;
  padding: 0;
  margin: 24px 0 0 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 8px 20px;
}
.en-list li {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 13px;
  line-height: 1.5;
  color: var(--color-text);
  padding: 10px 12px;
  border-left: 2px solid rgba(62, 224, 255, 0.28);
  background: rgba(31, 111, 235, 0.04);
  border-radius: 0 6px 6px 0;
  transition: background 0.18s ease, border-color 0.18s ease;
}
.en-list li:hover {
  background: rgba(31, 111, 235, 0.10);
  border-left-color: #3ee0ff;
}
@media (max-width: 640px) {
  .en-list { grid-template-columns: 1fr; gap: 6px; }
  .en-list li { font-size: 12px; padding: 8px 10px; }
}

/* === Inline link do kierunków AMA pod blokiem opis zawodu === */
.zawod-ama-links {
  margin-top: 14px;
  padding: 10px 14px;
  background: rgba(31, 111, 235, 0.08);
  border-left: 2px solid #3ee0ff;
  border-radius: 0 6px 6px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  align-items: center;
  font-size: 13px;
}
.zawod-ama-links span.mono {
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--color-text-muted);
}
.zawod-ama-links a {
  color: #3ee0ff;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.15s ease;
}
.zawod-ama-links a:hover {
  color: #7fe9ff;
  text-decoration: underline;
}
.zawod-ama-links a:not(:last-child)::after {
  content: " ·";
  color: var(--color-text-muted);
  margin-left: 6px;
  text-decoration: none;
}

/* === Nomenklatura PL/EN tabs === */
.nomen-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  padding-bottom: 0;
}
.nomen-tab {
  flex: 1 1 320px;
  padding: 16px 20px;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.08);
  border-bottom: none;
  border-radius: 8px 8px 0 0;
  color: var(--color-text-muted);
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 15px;
  font-weight: 500;
  text-align: left;
  cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.nomen-tab .mono {
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--color-text-muted);
  margin-right: 6px;
}
.nomen-tab .nomen-tab-sub {
  display: block;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px;
  color: var(--color-text-muted);
  margin-top: 4px;
  font-weight: 400;
}
.nomen-tab:hover {
  background: rgba(31, 111, 235, 0.06);
  color: var(--color-text);
}
.nomen-tab.is-active {
  background: rgba(31, 111, 235, 0.12);
  color: #3ee0ff;
  border-color: rgba(62, 224, 255, 0.35);
  border-bottom: 2px solid #3ee0ff;
  margin-bottom: -1px;
}
.nomen-tab.is-active .mono { color: #3ee0ff; }
.nomen-panel[hidden] { display: none; }
@media (max-width: 640px) {
  .nomen-tab { flex: 1 1 100%; padding: 12px 14px; font-size: 14px; }
}

/* ============================================================
   NAV DROPDOWN — zagnieżdżone podmenu (Zawody → Nomenklatura / Napisy)
   ============================================================ */
.nav-subitem {
  position: relative;
}
.nav-subitem--has-sub > .nav-sublink-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.nav-caret--sub {
  font-size: 11px;
  opacity: .55;
  transition: transform var(--transition), opacity var(--transition);
}
.nav-subitem--has-sub:hover > .nav-sublink-main .nav-caret--sub,
.nav-subitem--has-sub:focus-within > .nav-sublink-main .nav-caret--sub {
  transform: translateX(2px);
  opacity: 1;
}
.nav-subsubmenu {
  position: absolute;
  top: -8px;
  left: calc(100% + 6px);
  min-width: 220px;
  background: var(--color-surface-1, #0d1117);
  border: 1px solid rgba(31, 111, 235, .18);
  border-radius: 10px;
  padding: 8px;
  opacity: 0;
  transform: translateX(-6px);
  pointer-events: none;
  visibility: hidden;
  transition: opacity .18s ease, transform .18s ease, visibility 0s .18s;
  box-shadow: 0 18px 50px -12px rgba(0, 0, 0, .55), 0 0 0 1px rgba(62, 224, 255, .1);
  z-index: 220;
}
.nav-subsubmenu::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -8px;
  width: 10px;
}
.nav-subitem--has-sub:hover > .nav-subsubmenu,
.nav-subitem--has-sub:focus-within > .nav-subsubmenu {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
  transform: translateX(0);
  transition: opacity .18s ease, transform .18s ease, visibility 0s;
}
/* Kasuj "pierwszy link = nagłówek" wewnątrz zagnieżdżonego podmenu */
.nav-subsubmenu a {
  display: block;
  padding: 9px 14px;
  border-radius: 6px;
  color: var(--color-text-muted);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .01em;
  line-height: 1.3;
  white-space: nowrap;
  transition: background var(--transition), color var(--transition), padding var(--transition);
  position: relative;
}
.nav-subsubmenu a::after { display: none; }
.nav-subsubmenu a:hover,
.nav-subsubmenu a:focus-visible {
  color: var(--color-text);
  background: rgba(62, 224, 255, .1);
  padding-left: 18px;
}
/* Nadpisz styl "first-child = nagłówek" w zagnieżdżonym menu */
.nav-subsubmenu a:first-child {
  font-weight: 500;
  color: var(--color-text-muted);
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 9px;
}
.nav-subsubmenu a:first-child::before {
  content: none;
}
/* Wyglad linku "Zawody filmowe" w dropdown branża (ma teraz podmenu) */
.nav-submenu .nav-subitem--has-sub > .nav-sublink-main {
  display: flex;
  padding: 9px 14px;
  border-radius: 6px;
  color: var(--color-text-muted);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .01em;
  line-height: 1.3;
  white-space: nowrap;
  transition: background var(--transition), color var(--transition), padding var(--transition);
}
.nav-submenu .nav-subitem--has-sub > .nav-sublink-main::after { display: none; }
.nav-submenu .nav-subitem--has-sub:hover > .nav-sublink-main,
.nav-submenu .nav-subitem--has-sub:focus-within > .nav-sublink-main {
  color: var(--color-text);
  background: rgba(31, 111, 235, .12);
}

/* Footer sublink — wcięty pod rodzicem */
.footer-sublink {
  padding-left: 12px !important;
  font-size: 12px !important;
  opacity: .75;
}

/* ============================================
   ONE MOVIE PROJECT — dodatkowe sekcje
   ============================================ */

/* Historia / Geneza ---------------------------- */
.omp-origin {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: var(--space-10);
  align-items: stretch;
  margin-top: var(--space-8);
}
.omp-origin-text p + p { margin-top: var(--space-4); }
.omp-origin-visual {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--color-border);
  min-height: 100%;
  background: #0a0d12;
  display: flex;
  align-items: center;
  justify-content: center;
}
.omp-origin-visual img {
  width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  display: block;
}
.omp-origin-badge {
  position: absolute;
  top: var(--space-4);
  left: var(--space-4);
  padding: 8px 12px;
  background: rgba(13, 17, 23, .85);
  backdrop-filter: blur(8px);
  border: 1px solid var(--color-border);
  border-radius: 999px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--color-text);
}
@media (max-width: 900px) {
  .omp-origin { grid-template-columns: 1fr; gap: var(--space-6); }
}

/* Karty filmów (archiwum 2018/2019) ------------ */
.omp-films-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-6);
  margin-top: var(--space-8);
}
.omp-film-card {
  display: flex;
  flex-direction: column;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 14px;
  overflow: hidden;
  transition: transform var(--transition), border-color var(--transition);
}
.omp-film-card:hover {
  transform: translateY(-4px);
  border-color: rgba(62, 224, 255, .4);
}
.omp-film-poster {
  position: relative;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: linear-gradient(135deg, #0d1117 0%, #1f2937 100%);
}
.omp-film-poster img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.omp-film-poster::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(13, 17, 23, .85) 100%);
  pointer-events: none;
}
.omp-film-award {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
  padding: 6px 10px;
  background: linear-gradient(135deg, #1f6feb, #3ee0ff);
  color: #fff;
  border-radius: 6px;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  z-index: 2;
}
.omp-film-body {
  padding: var(--space-6);
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.omp-film-meta {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}
.omp-film-title {
  font-size: 22px;
  font-weight: 800;
  line-height: 1.2;
  margin: 0;
}
.omp-film-director {
  font-size: 13px;
  color: var(--color-text-muted);
}
.omp-film-desc {
  font-size: 14px;
  line-height: 1.6;
  color: var(--color-text-muted);
}
.omp-film-awards-list {
  list-style: none;
  padding: 0;
  margin: var(--space-3) 0 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.omp-film-awards-list li {
  padding-left: 18px;
  position: relative;
  font-size: 13px;
  color: var(--color-text);
}
.omp-film-awards-list li::before {
  content: "★";
  position: absolute;
  left: 0;
  color: #3ee0ff;
  font-size: 13px;
}
@media (max-width: 820px) {
  .omp-films-grid { grid-template-columns: 1fr; }
}

/* OMP Films — player + info rows (actual full films) --- */
.omp-films-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-10);
  margin-top: var(--space-8);
}
.omp-film-row {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: var(--space-8);
  align-items: center;
}
.omp-film-row--reverse .omp-film-player { order: 2; }
.omp-film-row--reverse .omp-film-info   { order: 1; }
.omp-film-player {
  position: relative;
  aspect-ratio: 16 / 9;
  width: 100%;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(62, 224, 255, 0.18);
  background: #000;
  box-shadow: 0 20px 60px -20px rgba(31, 111, 235, 0.35);
}
.omp-film-player iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
.omp-film-info {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-2) 0;
}
.omp-film-info .omp-film-title {
  margin: 0;
}
.omp-film-info .omp-film-desc {
  margin: 0;
}
.omp-film-en {
  display: inline-block;
  margin-left: 8px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.03em;
  color: rgba(230, 238, 250, 0.55);
  text-transform: none;
}
@media (max-width: 860px) {
  .omp-film-row,
  .omp-film-row--reverse {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }
  .omp-film-row--reverse .omp-film-player { order: 1; }
  .omp-film-row--reverse .omp-film-info   { order: 2; }
}

/* YouTube embed -------------------------------- */
.omp-video-wrap {
  margin-top: var(--space-8);
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--color-border);
  aspect-ratio: 16/9;
  background: #000;
}
.omp-video-wrap iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* AI era ---------------------------------------- */
.omp-ai-block {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: var(--space-10);
  align-items: start;
  margin-top: var(--space-8);
}
.omp-ai-visual {
  aspect-ratio: 4/5;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--color-border);
  position: sticky;
  top: 100px;
}
.omp-ai-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.omp-ai-features {
  list-style: none;
  padding: 0;
  margin: var(--space-6) 0 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4);
}
.omp-ai-features li {
  padding: var(--space-4);
  background: rgba(31, 111, 235, .08);
  border: 1px solid rgba(31, 111, 235, .25);
  border-radius: 10px;
  font-size: 14px;
  line-height: 1.5;
}
.omp-ai-features li strong {
  display: block;
  color: #3ee0ff;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 4px;
}
@media (max-width: 900px) {
  .omp-ai-block { grid-template-columns: 1fr; }
  .omp-ai-features { grid-template-columns: 1fr; }
}

/* Partnerzy ------------------------------------ */
.omp-partners-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--space-4);
  margin-top: var(--space-8);
}
.omp-partner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  padding: var(--space-6) var(--space-4);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  text-align: center;
  min-height: 140px;
  transition: border-color var(--transition), transform var(--transition);
}
.omp-partner:hover {
  border-color: rgba(62, 224, 255, .4);
  transform: translateY(-2px);
}
.omp-partner img {
  max-width: 72px;
  max-height: 72px;
  object-fit: contain;
}
.omp-partner {
  text-decoration: none;
  color: inherit;
}
.omp-partner-logo-bg {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 96px;
  height: 96px;
  background: #ffffff;
  border-radius: 12px;
  padding: 12px;
}
.omp-partner-logo-bg img {
  width: 100%;
  height: 100%;
  max-width: 72px;
  max-height: 72px;
  object-fit: contain;
}
.omp-partner-logo-bg--orange { background: #ee7521; }
.omp-partner-logo-bg--black { background: #0d1117; border: 1px solid rgba(255,255,255,.08); }
.omp-partner-name {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

/* Galeria --------------------------------------- */
.omp-gallery {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 220px 220px;
  gap: var(--space-3);
  margin-top: var(--space-8);
}
.omp-gallery-item {
  overflow: hidden;
  border-radius: 12px;
  border: 1px solid var(--color-border);
  background: #0d1117;
}
.omp-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.omp-gallery-item:hover img { transform: scale(1.04); }
.omp-gallery-item--big { grid-row: 1 / 3; grid-column: 1; }
@media (max-width: 820px) {
  .omp-gallery {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 180px 180px 180px;
  }
  .omp-gallery-item--big { grid-row: 1; grid-column: 1 / 3; }
}

/* Jury archiwalne – lista zwykła --------------- */
.omp-legacy-jury {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-6);
  padding: var(--space-5);
  background: rgba(31, 111, 235, .05);
  border: 1px solid var(--color-border);
  border-radius: 12px;
}
.omp-legacy-jury li {
  list-style: none;
  padding: 6px 14px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 999px;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--color-text);
}

/* Partner mark (tekst zamiast logo) */
.omp-partner-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 72px;
  padding: 10px 14px;
  background: linear-gradient(135deg, rgba(31, 111, 235, .18), rgba(62, 224, 255, .12));
  border: 1px solid rgba(62, 224, 255, .3);
  border-radius: 10px;
  font-family: var(--font-mono);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .08em;
  color: #3ee0ff;
}

/* ==========================================================
   AI FILMING — lista raportów
   ========================================================== */
.ai-reports-list {
  list-style: none;
  padding: 0;
  margin: var(--space-8) 0 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.ai-report-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--space-6);
  padding: var(--space-6) var(--space-7);
  background: linear-gradient(135deg, rgba(31, 111, 235, .08), rgba(157, 123, 255, .05));
  border: 1px solid var(--color-border);
  border-radius: 14px;
  transition: border-color .25s ease, transform .25s ease, background .25s ease;
}

.ai-report-card:hover {
  border-color: rgba(62, 224, 255, .35);
  transform: translateY(-2px);
  background: linear-gradient(135deg, rgba(31, 111, 235, .12), rgba(157, 123, 255, .08));
}

.ai-report-card--placeholder {
  background: linear-gradient(135deg, rgba(255, 255, 255, .02), rgba(31, 111, 235, .04));
  opacity: .72;
}

.ai-report-card--placeholder:hover {
  transform: none;
  border-color: var(--color-border);
}

.ai-report-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  min-width: 88px;
}

.ai-report-num {
  font-size: 32px;
  font-weight: 700;
  color: #3ee0ff;
  line-height: 1;
  letter-spacing: .04em;
}

.ai-report-card--placeholder .ai-report-num {
  color: rgba(216, 227, 245, .35);
}

.ai-report-meta time {
  font-size: 11px;
  color: var(--color-text-muted);
  letter-spacing: .12em;
}

.ai-report-body h3 {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 6px;
  color: var(--color-text);
}

.ai-report-body p {
  font-size: 15px;
  line-height: 1.55;
  color: var(--color-text-muted);
  margin: 0;
  max-width: 64ch;
}

.ai-report-action {
  display: flex;
  align-items: center;
}

.ai-report-action .btn {
  white-space: nowrap;
}

.btn.btn-ghost.is-disabled {
  background: transparent;
  border: 1px dashed rgba(216, 227, 245, .25);
  color: var(--color-text-muted);
  cursor: not-allowed;
  pointer-events: none;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 12px 20px;
  border-radius: 10px;
}

@media (max-width: 720px) {
  .ai-report-card {
    grid-template-columns: 1fr;
    gap: var(--space-4);
    padding: var(--space-5);
  }
  .ai-report-meta {
    flex-direction: row;
    align-items: baseline;
    gap: var(--space-3);
  }
  .ai-report-num {
    font-size: 24px;
  }
}

/* === AI Festivals grid === */
.ai-fest-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-6);
}
.ai-fest-card {
  position: relative;
  padding: var(--space-5);
  background: linear-gradient(135deg, rgba(31,111,235,0.06), rgba(157,123,255,0.04));
  border: 1px solid var(--color-border);
  border-radius: 12px;
  transition: border-color 0.2s, transform 0.2s;
  display: flex;
  flex-direction: column;
}
.ai-fest-card:hover {
  border-color: rgba(62,224,255,0.5);
  transform: translateY(-2px);
}
.ai-fest-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-3);
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--color-border);
}
.ai-fest-code {
  display: inline-block;
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 700;
  color: #3ee0ff;
  background: rgba(62,224,255,0.10);
  border: 1px solid rgba(62,224,255,0.30);
  border-radius: 4px;
  letter-spacing: 0.05em;
}
.ai-fest-num {
  font-size: 13px;
  color: var(--color-text-muted);
  opacity: 0.6;
}
.ai-fest-title {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
  margin: 0 0 var(--space-2) 0;
  color: var(--color-text);
}
.ai-fest-loc {
  font-size: 12px;
  color: var(--color-text-muted);
  margin: 0 0 var(--space-3) 0;
}
.ai-fest-cat {
  font-size: 13px;
  color: var(--color-text-muted);
  margin: 0 0 var(--space-2) 0;
  line-height: 1.5;
}
.ai-fest-cat em {
  font-style: italic;
  color: var(--color-text);
}
.ai-fest-deadline,
.ai-fest-when {
  font-size: 12px;
  color: var(--color-text-muted);
  margin: 0 0 var(--space-1) 0;
}
.ai-fest-type {
  color: #9d7bff;
  font-weight: 600;
}
.ai-fest-note {
  font-size: 13px;
  color: var(--color-text);
  opacity: 0.8;
  margin: var(--space-3) 0;
  line-height: 1.5;
  flex-grow: 1;
}
.ai-fest-link {
  display: inline-block;
  margin-top: auto;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 500;
  color: #3ee0ff;
  background: rgba(62,224,255,0.08);
  border: 1px solid rgba(62,224,255,0.30);
  border-radius: 6px;
  text-decoration: none;
  transition: background 0.2s;
  align-self: flex-start;
}
.ai-fest-link:hover {
  background: rgba(62,224,255,0.18);
}

/* === News archive === */
.news-archive-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--space-4);
  margin-top: var(--space-6);
}
.news-archive-card {
  display: block;
  padding: var(--space-4);
  background: var(--color-bg-elevated);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  text-decoration: none;
  color: var(--color-text);
  transition: border-color 0.2s, transform 0.2s;
}
.news-archive-card:hover {
  border-color: rgba(62,224,255,0.5);
  transform: translateY(-2px);
}
.news-archive-meta {
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--color-text-muted);
  margin: 0 0 var(--space-2) 0;
}
.news-archive-title {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.35;
  margin: 0 0 var(--space-2) 0;
  color: var(--color-text);
}
.news-archive-excerpt {
  font-size: 13px;
  line-height: 1.5;
  color: var(--color-text-muted);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ========================================================
   PAGINATION (archive.php / index.php)
   Fix: paginacja przyklejała się do ostatniego artykułu
   ======================================================== */
.pagination,
.navigation.pagination {
  margin-top: 80px;
  padding-top: 40px;
  padding-bottom: 40px;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.pagination .navigation.pagination {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.navigation.pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-size: 14px;
}
.navigation.pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 6px;
  color: var(--color-text-muted);
  text-decoration: none;
  transition: all 160ms ease;
}
.navigation.pagination a.page-numbers:hover {
  border-color: var(--color-accent);
  color: var(--color-accent);
  background: rgba(31,111,235,0.08);
}
.navigation.pagination .page-numbers.current {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: #fff;
  font-weight: 600;
}
.navigation.pagination .page-numbers.dots {
  border: none;
  background: transparent;
}
.navigation.pagination .page-numbers.prev,
.navigation.pagination .page-numbers.next {
  padding: 0 16px;
}

/* ============ TYPOGRAFIA — SPÓJNE ODSTĘPY (FIX 2026-04-29) ============ */
/* Problem: niektóre sekcje (zostac-block, branża) miały paragrafy/listy stykające się z h3 bez marginesów. */
/* Rozwiązanie: dodajemy marginesy do bloków tekstowych w kluczowych templatach. */

.zostac-block h3 {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-primary);
  margin: var(--space-8) 0 var(--space-3);
  line-height: 1.3;
}
.zostac-block p {
  margin: 0 0 var(--space-3);
  line-height: 1.7;
}
.zostac-block ol,
.zostac-block ul {
  margin: 0 0 var(--space-5);
  padding-left: var(--space-5);
}
.zostac-block ol li,
.zostac-block ul li {
  margin-bottom: var(--space-2);
  line-height: 1.65;
}

/* /zawody-filmowe-opis/ — odstępy między akapitami */
.opis-content > * + * { margin-top: var(--space-3); }
.opis-content h3 {
  margin: var(--space-7) 0 var(--space-3);
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-primary);
  line-height: 1.3;
}
.opis-content ol,
.opis-content ul {
  margin: 0 0 var(--space-4);
  padding-left: var(--space-5);
}
.opis-content ol li,
.opis-content ul li {
  margin-bottom: var(--space-2);
  line-height: 1.7;
  color: var(--color-text);
}

/* Linki w nazwach zawodów — widoczne na pierwszy rzut oka */
.zawody-main strong a,
.zawody-block ul li strong a {
  color: var(--color-primary);
  text-decoration: none;
  border-bottom: 2px solid var(--color-primary);
  padding-bottom: 1px;
  transition: all 160ms ease;
}
.zawody-main strong a:hover,
.zawody-block ul li strong a:hover {
  color: #3ee0ff;
  border-bottom-color: #3ee0ff;
}

/* Linki w h2 zawodów-opisów — niebieska linia pod tekstem */
.opis-h2 a {
  color: inherit;
  text-decoration: none;
  border-bottom: 3px solid var(--color-primary);
  padding-bottom: 4px;
  transition: all 160ms ease;
}
.opis-h2 a:hover {
  color: var(--color-primary);
  border-bottom-color: #3ee0ff;
}

/* /zawody-filmowe/ — fix odstępy między h3 a kolejnym blokiem */
.zawody-block + .zawody-block { margin-top: var(--space-4); }

/* Linki w h3 zawody-block (Postprodukcja, VFX, Aktorzy) */
.zawody-block h3 a.zawody-h3-link {
  color: var(--color-primary);
  text-decoration: none;
  border-bottom: 2px solid var(--color-primary);
  padding-bottom: 1px;
  transition: all 160ms ease;
}
.zawody-block h3 a.zawody-h3-link:hover {
  color: #3ee0ff;
  border-bottom-color: #3ee0ff;
}

/* Linki w fioletowych h3 końcowych (Produkcja, Scenariusz, Reżyseria, Zdjęcia, etc.) */
a.zawody-h3-violet-link {
  color: #9d7bff !important;
  text-decoration: none;
  border-bottom: 2px solid #9d7bff;
  padding-bottom: 2px;
  transition: all 160ms ease;
}
a.zawody-h3-violet-link:hover {
  color: #c4adff !important;
  border-bottom-color: #c4adff;
}

/* Banner kierunków na końcu /zawody-filmowe/ — responsive */
@media (max-width: 720px) {
  .zawody-final-banner {
    grid-template-columns: 1fr !important;
  }
}

/* ============================================================
   GUTENBERG / EDITABLE CONTENT — bloki edytowalne w PHP templates
   ============================================================ */
.editable-content > * + * { margin-top: var(--space-4); }
.editable-content h2 {
  font-size: clamp(1.5rem, 2.8vw, 2rem);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  color: var(--color-text);
  margin-top: var(--space-7);
  margin-bottom: var(--space-3);
  line-height: 1.2;
}
.editable-content h3 {
  font-size: clamp(1.2rem, 2.2vw, 1.5rem);
  font-weight: 700;
  color: var(--color-text);
  margin-top: var(--space-6);
  margin-bottom: var(--space-3);
  line-height: 1.3;
}
.editable-content h4 {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-text);
  margin-top: var(--space-5);
  margin-bottom: var(--space-2);
}
.editable-content p { line-height: 1.8; }
.editable-content a { color: #3ee0ff; text-decoration: underline; text-underline-offset: 3px; }
.editable-content a:hover { color: #1f6feb; }
.editable-content strong { color: var(--color-text); font-weight: 700; }
.editable-content ul, .editable-content ol { padding-left: 1.5em; line-height: 1.8; }
.editable-content ul li, .editable-content ol li { margin-bottom: var(--space-2); }
.editable-content blockquote {
  border-left: 3px solid #9d7bff;
  padding: var(--space-3) var(--space-5);
  margin: var(--space-5) 0;
  font-style: italic;
  color: var(--color-text);
  background: rgba(157, 123, 255, 0.05);
  border-radius: 0 8px 8px 0;
}
.editable-content blockquote cite { font-style: normal; font-size: 0.9em; color: var(--color-text-muted); display: block; margin-top: var(--space-2); }
.editable-content figure { margin: var(--space-5) 0; }
.editable-content img { max-width: 100%; height: auto; border-radius: 8px; }
.editable-content figcaption { font-size: 0.85em; color: var(--color-text-muted); margin-top: var(--space-2); text-align: center; }
.editable-content hr { border: 0; border-top: 1px solid var(--color-divider); margin: var(--space-6) 0; }
.editable-content table { width: 100%; border-collapse: collapse; margin: var(--space-4) 0; }
.editable-content table th, .editable-content table td { border: 1px solid var(--color-divider); padding: var(--space-3); text-align: left; }
.editable-content table th { background: rgba(31, 111, 235, 0.08); color: var(--color-text); font-weight: 700; }

/* WP Gutenberg native blocks */
.editable-content .wp-block-columns { display: grid; gap: var(--space-5); grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.editable-content .wp-block-quote { border-left: 3px solid #1f6feb; padding-left: var(--space-4); margin: var(--space-5) 0; }
.editable-content .wp-block-button__link { display: inline-block; padding: 12px 24px; background: linear-gradient(135deg, #1f6feb, #3ee0ff); color: #fff; border-radius: 8px; font-weight: 700; text-decoration: none; transition: transform .2s; }
.editable-content .wp-block-button__link:hover { transform: translateY(-2px); }

/* === YouTube video grid (3-column responsive) === */
.yt-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
  margin-top: var(--space-5);
}
@media (max-width: 900px) {
  .yt-grid { grid-template-columns: 1fr; }
}
.yt-card {
  background: rgba(31, 111, 235, 0.04);
  border: 1px solid rgba(62, 224, 255, 0.18);
  border-radius: 12px;
  overflow: hidden;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.yt-card:hover {
  transform: translateY(-2px);
  border-color: rgba(62, 224, 255, 0.4);
  box-shadow: 0 8px 24px rgba(31, 111, 235, 0.15);
}
.yt-frame {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 */
  background: #000;
}
.yt-frame iframe {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  border: 0;
}
.yt-meta {
  padding: 14px 16px 16px;
}
.yt-title {
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.35;
  margin: 0 0 6px;
  color: var(--color-text);
}
.yt-sub {
  font-size: 0.8rem;
  color: var(--color-text-muted);
  margin: 0;
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
}

/* === News card BEM (archive aktualności + post lists) — równe wysokości === */
.news-list,
.posts-list,
.archive-news-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-8);
  align-items: stretch;
}
@media (max-width: 900px) {
  .news-list,
  .posts-list,
  .archive-news-grid { grid-template-columns: 1fr; }
}

.news-card { height: 100%; }

.news-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

.news-card__media {
  aspect-ratio: 16 / 9;
  border-radius: var(--radius-md, 12px);
  overflow: hidden;
  margin-bottom: var(--space-4);
  border: 1px solid var(--color-divider, rgba(255,255,255,.08));
  background: rgba(31,111,235,.04);
}
.news-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.news-card:hover .news-card__media img { transform: scale(1.03); }

.news-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  flex: 1 1 auto;
}

.news-card__date {
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--color-accent-2, #3ee0ff);
  margin: 0 0 4px;
}

.news-card__title {
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.01em;
  margin: 0;
  color: var(--color-text);
  /* Stała wysokość — 2 linie */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: calc(1.15rem * 1.3 * 2);
}
.news-card:hover .news-card__title { color: var(--color-accent-2, #3ee0ff); }

.news-card__excerpt {
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--color-text-muted, rgba(245,245,247,.7));
  margin: 0;
  /* Stała wysokość — 4 linie */
  display: -webkit-box;
  -webkit-line-clamp: 4;
  line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-card__excerpt p { margin: 0; }

.news-card__cta,
.news-card .link-arrow {
  margin-top: auto;
  padding-top: var(--space-3);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-accent-2, #3ee0ff);
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  letter-spacing: .08em;
}
