/* montserrat-latin-ext-700-normal */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/montserrat-latin-ext-700-normal.woff2?v=a59fcc94) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* montserrat-latin-700-normal */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/montserrat-latin-700-normal.woff2?v=f9d9e65b) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* montserrat-latin-ext-800-normal */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url(../fonts/montserrat-latin-ext-800-normal.woff2?v=59f6ebeb) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* montserrat-latin-800-normal */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url(../fonts/montserrat-latin-800-normal.woff2?v=ba826fb8) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* atkinson-hyperlegible-next-latin-ext-400-normal */
@font-face {
  font-family: 'Atkinson Hyperlegible Next';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/atkinson-hyperlegible-next-latin-ext-400-normal.woff2?v=0f9e4421) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* atkinson-hyperlegible-next-latin-400-normal */
@font-face {
  font-family: 'Atkinson Hyperlegible Next';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/atkinson-hyperlegible-next-latin-400-normal.woff2?v=5cb240a4) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* atkinson-hyperlegible-next-latin-ext-700-normal */
@font-face {
  font-family: 'Atkinson Hyperlegible Next';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/atkinson-hyperlegible-next-latin-ext-700-normal.woff2?v=acd5d077) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* atkinson-hyperlegible-next-latin-700-normal */
@font-face {
  font-family: 'Atkinson Hyperlegible Next';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(../fonts/atkinson-hyperlegible-next-latin-700-normal.woff2?v=0dbe07ed) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* atkinson-hyperlegible-mono-latin-ext-400-normal */
@font-face {
  font-family: 'Atkinson Hyperlegible Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/atkinson-hyperlegible-mono-latin-ext-400-normal.woff2?v=1960608f) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* atkinson-hyperlegible-mono-latin-400-normal */
@font-face {
  font-family: 'Atkinson Hyperlegible Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(../fonts/atkinson-hyperlegible-mono-latin-400-normal.woff2?v=87b5b94c) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* atkinson-hyperlegible-mono-latin-ext-500-normal */
@font-face {
  font-family: 'Atkinson Hyperlegible Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(../fonts/atkinson-hyperlegible-mono-latin-ext-500-normal.woff2?v=6142d575) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* atkinson-hyperlegible-mono-latin-500-normal */
@font-face {
  font-family: 'Atkinson Hyperlegible Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(../fonts/atkinson-hyperlegible-mono-latin-500-normal.woff2?v=49efe852) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* VI Międzynarodowa Konferencja Meet The Space 2026: tokeny motywu konferencji.
   Z paczki Claude Design „Strona główna design review” (tokens.css, 11.10.2026); kolory topic-* wybrano w projekcie
   (do porównania z plakatem). --header-offset ustawia assets/js/site.js według wysokości przyklejonego nagłówka. */
:root {
  --surface: #ffffff;          /* tło strony */
  --surface-raised: #f6f5fa;   /* karty, pasek faktów, wyróżniony termin */
  --ink: #262242;              /* tekst, nagłówki, przycisk główny */
  --ink-muted: #55516f;        /* tekst drugorzędny (7,6:1 na bieli) */
  --accent: #f7941d;           /* tylko wypełnienie: ukośny pas, znaczniki; nigdy tekst na bieli (2,28:1) */
  --accent-text: #a74805;      /* pomarańcz jako tekst */
  --signal: #354ca7;           /* hover przycisku głównego, fokus */
  --link: #354ca7;
  --band: #262242;             /* granatowy pas kontaktu i stopki */
  --rule: #dcdae6;             /* linie podziału na bieli */
  --band-rule: #4a4670;        /* linia podziału na granacie */
  --band-muted: #d9d7e6;       /* tekst drugorzędny na granacie */

  /* Krążki sesji: tylko tło krążka, ikona biała. */
  --topic-flight: oklch(0.52 0.11 235);
  --topic-rock: oklch(0.53 0.14 40);
  --topic-space: oklch(0.45 0.13 275);
  --topic-astro-o: oklch(0.50 0.09 195);
  --topic-msf: oklch(0.48 0.13 330);
  --topic-astro-b: oklch(0.50 0.12 140);

  --font-display: Montserrat, system-ui, sans-serif;                    /* 800 h1 i logotyp, 700 h2, h3, przyciski */
  --font-text: "Atkinson Hyperlegible Next", system-ui, sans-serif;     /* 18 px / 1,6 */
  --font-mono: "Atkinson Hyperlegible Mono", ui-monospace, monospace;   /* daty, kody sesji */

  --radius: 8px;
  --header-h: 64px;
  --header-offset: 16px;
  --container: 1280px;
  --gutter: clamp(20px, 5vw, 48px);
  --section-gap: clamp(64px, 9vw, 120px);
}


/* VI Międzynarodowa Konferencja Meet The Space 2026 – style strony (v6, etap 3b).
   Według paczki Claude Design „Strona główna design review” (11.10.2026): biel i granat, jeden pomarańczowy skos
   na ekran, układ „nagłówek po lewej, treść po prawej”, granatowy pas kontaktu przechodzący w stopkę.
   Podstrony nie mają jeszcze projektu; korzystają z tych samych wzorców. Kolory tylko z tokens.css.
   Odstępstwa od paczki wymagane przez wytyczne PRz (scripts/prz-checks.mjs): interlinia h1 1,15 zamiast 1,08,
   tekst poniżej 24 px min. 1,5 (logotyp, fakty, nazwy sesji, terminy, przyciski, menu mobilne).
   Bez wersalików z CSS: słowo „SPACE” jest wpisane wersalikami w HTML jako część logotypu. Mobile-first. */

/* ---------- Podstawy ---------- */

*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: var(--header-offset); }
body { margin: 0; background: var(--surface); color: var(--ink); font-family: var(--font-text); font-size: 18px; line-height: 1.6; hyphens: none; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; }
body:has(.news-dialog[open]) { overflow: hidden; }
h1, h2, h3, h4, p, ul, ol, dl, dd, address { margin: 0; }
address { font-style: normal; }
img, svg { max-width: 100%; }
picture { display: contents; }
a { color: var(--link); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em; }
a:hover { color: var(--ink); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--signal); outline-offset: 3px; }
[data-tone="band"] :focus-visible { outline-color: var(--surface); }
::selection { background: var(--accent); color: var(--ink); }
main[tabindex="-1"]:focus { outline: none; }
main { padding-bottom: var(--section-gap); }
main:has(> .band:last-child) { padding-bottom: 0; }
abbr[title] { text-decoration: underline dotted; text-underline-offset: .2em; cursor: help; }

.mts-container { max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.mts-visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.mts-todo { padding: 0 4px; background: var(--surface-raised); color: var(--ink); outline: 1px dashed var(--accent-text); }

/* Znacznik z plakatu: mały pomarańczowy równoległobok przed etykietą („najbliższy termin”, data wpisu, „wkrótce”). */
.mark { flex: none; width: 10px; height: 14px; background: var(--accent); transform: skewX(-24deg); }

/* ---------- Linki pomijania ---------- */

.mts-skip a { position: absolute; left: 12px; top: -120px; z-index: 100; display: flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: var(--radius); background: var(--ink); color: var(--surface); font-size: 16px; line-height: 1.5; }
.mts-skip a:focus { top: 10px; }
.mts-skip a:hover { color: var(--surface); }

/* ---------- Nagłówek: 64 px, przyklejony od 768 px; pełne menu od 1152 px (polskie menu ze „Stroną główną” ma ok. 800 px), niżej przycisk „Menu” ---------- */

.mts-header { position: relative; z-index: 30; background: var(--surface); border-bottom: 1px solid var(--rule); }
@media (min-width: 768px) { .mts-header { position: sticky; top: 0; } }
/* Bez JS menu jest zawsze rozwinięte, więc wysoki nagłówek nie może się przyklejać; na niskich ekranach też nie. */
@media (max-width: 1151px) { .mts-header:not(.has-js) { position: relative; } }
@media (max-height: 599px) { .mts-header { position: relative; } }
/* Telefon: logotyp i przycisk w jednym wierszu (logotyp się zawija), menu pod spodem na całą szerokość. */
.mts-header__bar { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 16px; min-height: var(--header-h); }
/* Znak MTS2026 (wymagania z 20.10.2026) przed nazwą; tekst nazwy i podpisu w kolumnie obok. */
.mts-brand { justify-self: start; display: flex; align-items: center; gap: 12px; min-height: 44px; padding-block: 6px; color: var(--ink); text-decoration: none; line-height: 1.5; }
.mts-brand img { flex: none; display: block; width: 44px; height: 44px; }
.mts-brand__text { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.mts-brand:hover { color: var(--ink); }
.mts-brand__name { font-family: var(--font-display); font-weight: 800; font-size: 19px; letter-spacing: -.01em; }
.mts-brand__sub { font-family: var(--font-mono); font-size: 14px; color: var(--ink-muted); }

.mts-menu-btn { display: none; align-items: center; gap: 8px; min-height: 44px; min-width: 44px; padding: 0 14px; border: 1px solid var(--ink); border-radius: var(--radius); background: var(--surface); color: var(--ink); font-family: var(--font-text); font-size: 16px; line-height: 1.5; cursor: pointer; }
.mts-menu-btn:hover { background: var(--surface-raised); }
.mts-menu-btn svg { width: 20px; height: 20px; }
.mts-menu-btn__close, .is-open .mts-menu-btn__open { display: none; }
.is-open .mts-menu-btn__close { display: block; }

.mts-nav ul { list-style: none; margin: 0; padding: 0; }
.mts-nav ul a { color: var(--ink); text-decoration: none; }
.mts-nav ul a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 2px; }
.mts-nav__lang svg { width: 20px; height: 20px; }

@media (max-width: 1151px) {
  .mts-header.has-js .mts-menu-btn { display: inline-flex; }
  .mts-header.has-js .mts-nav { display: none; }
  .mts-header.has-js.is-open .mts-nav { display: block; }
  /* Menu mobilne na całą szerokość pod paskiem nagłówka. */
  .mts-nav { grid-column: 1 / -1; margin-inline: calc(-1 * var(--gutter)); padding: 4px var(--gutter) 32px; border-top: 1px solid var(--rule); }
  .mts-nav li { border-bottom: 1px solid var(--rule); }
  .mts-nav ul a { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 56px; font-family: var(--font-display); font-weight: 700; font-size: 20px; line-height: 1.5; }
  .mts-nav__arrow { flex: none; width: 20px; height: 20px; color: var(--ink-muted); }
  .mts-nav li.mts-nav__lang { border-bottom: 0; }
  .mts-nav .mts-nav__lang a { justify-content: flex-start; gap: 10px; font-family: var(--font-text); font-weight: 400; font-size: 18px; }
  .mts-nav .mts-nav__cta { display: flex; width: 100%; margin-top: 20px; }
}
@media (min-width: 1152px) {
  .mts-header__bar { display: flex; gap: 16px; }
  .mts-brand { margin-right: auto; }
  .mts-nav ul { display: flex; align-items: center; gap: 2px; }
  .mts-nav ul a { display: flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 10px; border-radius: var(--radius); font-size: 16px; line-height: 1.5; }
  .mts-nav ul a:hover { background: var(--surface-raised); text-decoration: underline; }
  .mts-nav__arrow, .mts-nav .mts-nav__cta { display: none; }
  .mts-nav__lang { display: flex; align-items: center; gap: 10px; margin-left: 8px; }
  .mts-nav__lang::before { content: ""; width: 1px; height: 24px; background: var(--rule); }
  .mts-nav__lang svg { width: 18px; height: 18px; }
}

/* ---------- Przyciski i linki ze strzałką ---------- */

.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.mts-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 12px 22px; border: 1.5px solid var(--ink); border-radius: var(--radius); font-family: var(--font-display); font-weight: 700; font-size: 17px; line-height: 1.5; text-decoration: none; cursor: pointer; }
.mts-btn svg { width: 22px; height: 22px; }
.mts-btn--primary { background: var(--ink); color: var(--surface); }
.mts-btn--primary:hover { background: var(--signal); border-color: var(--signal); color: var(--surface); }
.mts-btn--secondary { background: var(--surface); color: var(--ink); }
.mts-btn--secondary:hover { background: var(--surface-raised); color: var(--ink); }
.mts-btn--secondary svg { width: 20px; height: 20px; }
.more-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 700; }
.more-link svg { width: 18px; height: 18px; }
.icon-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 700; }
.icon-link svg { width: 20px; height: 20px; }

/* ---------- Układ sekcji: nagłówek po lewej (ok. 4/12), treść po prawej (ok. 8/12); na telefonie jedno pod drugim ---------- */

.section { padding-top: var(--section-gap); }
.section--first { padding-top: clamp(40px, 6vw, 72px); }
.split { display: flex; flex-wrap: wrap; gap: 20px 48px; }
.split > :first-child { flex: 1 1 260px; }
.split > :last-child { flex: 2.2 1 520px; min-width: 0; max-width: 760px; }
.split--baseline { align-items: baseline; gap: 16px 48px; }
.split__aside { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.stack { display: flex; flex-direction: column; align-items: flex-start; gap: 2em; }
.section-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 32px; }
.mts-h2 { font-family: var(--font-display); font-weight: 700; font-size: clamp(28px, 3.4vw, 40px); line-height: 1.25; letter-spacing: -.015em; text-wrap: balance; }
.mts-h3 { font-family: var(--font-display); font-weight: 700; font-size: 20px; line-height: 1.35; }
.muted { color: var(--ink-muted); }
.lines { display: flex; flex-direction: column; }
.lead-text { font-size: clamp(19px, 1.8vw, 22px); line-height: 1.6; text-wrap: pretty; }
.note { max-width: 46em; font-size: 16px; line-height: 1.6; color: var(--ink-muted); }
.mts-status { display: flex; align-items: center; gap: 10px; font-family: var(--font-mono); font-size: 15px; line-height: 1.5; color: var(--accent-text); }

/* Tekst ciągły (dokumenty prawne, wpisy, opisy). */
.prose { max-width: 46em; }
.prose p { margin: 0 0 2em; text-wrap: pretty; }
.prose h2 { margin: 56px 0 16px; font-family: var(--font-display); font-weight: 700; font-size: clamp(24px, 2.6vw, 30px); line-height: 1.25; letter-spacing: -.01em; }
.prose h3 { margin: 40px 0 12px; font-family: var(--font-display); font-weight: 700; font-size: 21px; line-height: 1.35; }
.prose h4 { margin: 32px 0 12px; font-family: var(--font-display); font-weight: 700; font-size: 18px; line-height: 1.5; }
.prose h2:first-child { margin-top: 0; }
.prose ul { margin: 0 0 2em; padding-left: 1.4em; }
.prose li + li { margin-top: .6em; }
.prose > :last-child { margin-bottom: 0; }
.sitemap ul ul { margin: .6em 0 0; }
.sitemap a { display: inline-flex; align-items: center; min-height: 44px; }

/* ---------- Nagłówek podstrony: ścieżka, h1, wprowadzenie; krótki pomarańczowy skos w prawym górnym rogu ---------- */

.page-head { position: relative; border-bottom: 1px solid var(--rule); }
/* Pas akcentu jako pseudoelement: dekoracja bez znaczenia. axe nie widzi go jako tła tekstu (clip-path pomija),
   dlatego w nagłówku podstrony tekst go opływa (niżej), a hero na telefonie ma dość górnego odstępu (96px). */
.page-head::before, .hero::before { content: ""; position: absolute; inset: 0; background: var(--accent); clip-path: polygon(calc(100% - 120px) 0, calc(100% - 64px) 0, 100% 64px, 100% 120px); pointer-events: none; }
.page-head__inner { --page-head-top: clamp(24px, 4vw, 40px); position: relative; padding-block: var(--page-head-top) clamp(40px, 6vw, 72px); }
/* Tekst opływa pas: zewnętrzna krawędź pasa to linia „odległość od prawej + od góry = 120px”. Trójkątny float w rogu
   treści (shape-outside) zajmuje tę część z zapasem ok. 8px, więc ścieżka i h1 nigdy nie leżą na pomarańczu
   (ciemnoszary tekst ma na nim 3,3:1, a w trybie wysokiego kontrastu pas ma kolor tekstu). Na szerokim ekranie,
   gdzie tekst nie sięga rogu, rozmiar spada do 0. */
.page-head__inner::before { --stripe-room: max(0px, calc(132px - var(--page-head-top) - var(--gutter) - max(0px, (100vw - var(--container)) / 2))); content: ""; float: right; width: var(--stripe-room); height: var(--stripe-room); shape-outside: polygon(0 0, 100% 0, 100% 100%); }
.page-head__title { max-width: 16em; margin-top: 12px; font-family: var(--font-display); font-weight: 800; font-size: clamp(36px, 6.5vw, 72px); line-height: 1.15; letter-spacing: -.025em; text-wrap: balance; }
.page-head__lead { max-width: 34em; margin-top: 20px; font-size: clamp(18px, 1.7vw, 21px); line-height: 1.6; color: var(--ink-muted); text-wrap: pretty; }
.page-head__lead + .page-head__lead { margin-top: 2em; }
.page-head .mts-status { margin-top: 20px; }

.breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0 10px; font-size: 16px; line-height: 1.5; color: var(--ink-muted); }
.breadcrumbs li + li::before { content: "/"; content: "/" / ""; margin-right: 10px; }
.breadcrumbs a { display: inline-flex; align-items: center; min-height: 44px; }

/* ---------- Strona główna: hero A (typograficzny) ---------- */

.hero { position: relative; }
.hero__inner { position: relative; padding-block: 96px clamp(56px, 7vw, 88px); }
.hero__copy { max-width: 800px; display: flex; flex-direction: column; align-items: flex-start; }
.hero__kicker { font-family: var(--font-display); font-weight: 700; font-size: clamp(16px, 1.8vw, 20px); line-height: 1.5; color: var(--accent-text); }
.hero__title { margin-top: 12px; font-family: var(--font-display); font-weight: 800; font-size: clamp(36px, 11vw, 104px); line-height: 1.15; letter-spacing: -.025em; }
.hero__title span { display: block; }
.hero__meta { margin-top: 28px; display: flex; flex-wrap: wrap; column-gap: 12px; font-size: clamp(18px, 1.9vw, 22px); line-height: 1.5; }
.hero__meta time { font-family: var(--font-mono); font-weight: 500; }
.hero__lead { max-width: 34em; margin-top: 20px; font-size: clamp(18px, 1.7vw, 21px); line-height: 1.6; color: var(--ink-muted); text-wrap: pretty; }
@media (min-width: 900px) {
  /* Długi ukośny pas od linii nagłówka do paska faktów, zawsze na prawo od tekstu. */
  .hero::before { clip-path: polygon(calc(50% + 420px) 0, calc(50% + 560px) 0, calc(50% + 300px) 100%, calc(50% + 160px) 100%); }
  .hero__inner { padding-top: 80px; }
}

/* Pasek najważniejszych faktów: pionowe kreski jak na plakacie. */
.facts { background: var(--surface-raised); }
.facts__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 132px), 1fr)); gap: 24px 0; padding-block: 32px; }
.facts__list > div { padding: 2px 20px; border-left: 1px solid var(--ink); }
.facts__list dt { font-size: 16px; line-height: 1.5; color: var(--ink-muted); }
.facts__list dd { margin-top: 4px; font-family: var(--font-display); font-weight: 700; font-size: clamp(18px, 2vw, 22px); line-height: 1.5; }
.facts__list .is-mono { font-family: var(--font-mono); font-weight: 500; }

/* ---------- Aktualności: karty (lista i strona główna), okno wpisu ---------- */

.news-list { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 24px; }
.news-list > li { display: flex; }
.news-card { flex: 1; display: flex; flex-direction: column; gap: 12px; padding: 28px; border-radius: var(--radius); background: var(--surface-raised); }
.news-card.is-clickable { cursor: pointer; }
.news-card.is-clickable:hover { box-shadow: inset 0 0 0 1.5px var(--ink); }
.news-card__date { font-family: var(--font-mono); font-size: 16px; line-height: 1.5; color: var(--ink-muted); }
.news-card__title { font-family: var(--font-display); font-weight: 700; font-size: 21px; line-height: 1.35; text-wrap: pretty; }
.news-card__title a { color: var(--ink); }
.news-card__excerpt { flex: 1; font-size: 17px; line-height: 1.6; color: var(--ink-muted); text-wrap: pretty; }
.news-card__more { display: inline-flex; align-items: center; gap: 8px; margin-top: 4px; font-size: 17px; font-weight: 700; line-height: 1.5; color: var(--link); }
.news-card__more svg { width: 18px; height: 18px; }

.news-dialog { width: min(680px, 100% - 2 * clamp(12px, 4vw, 40px)); max-width: none; max-height: calc(100dvh - 24px); overflow: auto; padding: 0; border: 0; border-radius: var(--radius); background: var(--surface); color: var(--ink); }
.news-dialog::backdrop { background: color-mix(in srgb, var(--ink) 62%, transparent); }
.news-dialog__panel { position: relative; padding: clamp(24px, 4vw, 44px); }
.news-dialog__close { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--rule); border-radius: var(--radius); background: var(--surface); color: var(--ink); cursor: pointer; }
.news-dialog__close:hover { background: var(--surface-raised); }
.news-dialog__close svg { width: 20px; height: 20px; }
.post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0 10px; font-family: var(--font-mono); font-size: 16px; line-height: 1.5; color: var(--ink-muted); }
.news-dialog .post-meta { padding-right: 52px; }
.news-dialog__title { margin-top: 12px; padding-right: 40px; font-family: var(--font-display); font-weight: 700; font-size: clamp(24px, 3vw, 32px); line-height: 1.25; letter-spacing: -.015em; text-wrap: pretty; }
.post-body { margin-top: 24px; display: flex; flex-direction: column; gap: 2em; max-width: 46em; }
.post-body p { text-wrap: pretty; }

/* ---------- Sesje tematyczne: krążek w kolorze sesji, kod i nazwa ---------- */

.sessions { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); column-gap: 48px; }
.session { display: flex; align-items: center; gap: 20px; padding: 24px 0; border-top: 1px solid var(--rule); }
.session__disc { flex: none; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--topic); color: var(--surface); }
.session__disc svg { width: 30px; height: 30px; }
.session__disc .is-filled { width: 28px; height: 28px; }
.session__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.session__code { font-family: var(--font-mono); font-size: 15px; line-height: 1.5; color: var(--ink-muted); }
.session__name { font-family: var(--font-display); font-weight: 700; font-size: 19px; line-height: 1.5; }

/* ---------- Ważne terminy: najbliższy wyróżniony, minione wyszarzone ---------- */

.key-dates { list-style: none; margin: 0; padding: 0; }
.key-date { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 24px; padding: 20px; border-top: 1px solid var(--rule); }
.key-date time { flex: 0 0 8.5em; font-family: var(--font-mono); font-weight: 500; font-size: 18px; line-height: 1.5; }
.key-date__text { flex: 1 1 14em; font-family: var(--font-display); font-weight: 700; font-size: clamp(18px, 1.7vw, 20px); line-height: 1.5; }
.key-date.is-next { border-top-color: transparent; border-radius: var(--radius); background: var(--surface-raised); }
.key-date.is-next .key-date__text { font-size: clamp(20px, 2vw, 24px); }
.key-date.is-past { color: var(--ink-muted); }
.key-date__next { flex: 1 0 100%; display: flex; align-items: center; gap: 10px; font-family: var(--font-mono); font-size: 15px; line-height: 1.5; color: var(--accent-text); }

/* ---------- Organizatorzy: logo 200 × 80 i nazwa ---------- */

.organisers { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 32px 48px; }
.organisers li { display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; }
.organisers img { display: block; width: auto; max-width: 200px; height: 80px; object-fit: contain; object-position: center; }
.organisers p { max-width: 22em; font-family: var(--font-display); font-weight: 700; font-size: 17px; line-height: 1.5; text-wrap: balance; }
/* Patronat honorowy (uwagi z 13.10.2026): po trzy pozycje w rzędzie od ok. 1000 px; od 4.11.2026 sześć pozycji, dwa rzędy. */
.patrons { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }

/* ---------- Granatowy pas kontaktu (strona główna), przechodzi w stopkę ---------- */

.band { margin-top: var(--section-gap); background: var(--band); color: var(--surface); }
.band__inner { padding-block: clamp(56px, 8vw, 104px) clamp(48px, 6vw, 72px); }
.band .split { gap: 40px 48px; }
.band__intro { display: flex; flex-direction: column; gap: 20px; }
.band__quote { font-family: var(--font-display); font-weight: 800; font-size: clamp(26px, 3vw, 36px); line-height: 1.25; letter-spacing: -.02em; color: var(--band-muted); }
.band__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 40px 48px; }
.band__block { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.band__lines { display: flex; flex-direction: column; color: var(--band-muted); }
.band__lines--small { font-size: 16px; line-height: 1.55; }
.band__strong { color: var(--surface); }
.band a, .band a:hover { color: var(--surface); }

/* ---------- Stopka ---------- */

.site-footer { background: var(--band); color: var(--surface); }
.site-footer__inner { display: flex; flex-direction: column; gap: 20px; padding: 28px 0 36px; border-top: 1px solid var(--band-rule); }
/* Na podstronach (bez granatowego pasa nad stopką) stopka zaczyna się bez linii. */
main:not(:has(> .band:last-child)) + .site-footer .site-footer__inner { padding-top: 48px; border-top: 0; }
.site-footer__row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px 48px; }
.site-footer__brand { display: flex; flex-direction: column; }
.site-footer__name { font-family: var(--font-display); font-weight: 800; font-size: 19px; line-height: 1.5; }
.site-footer__sub { font-size: 16px; line-height: 1.5; color: var(--band-muted); }
.site-footer__links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 24px; }
.site-footer__links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; line-height: 1.5; color: var(--surface); }
.site-footer__links a:hover { color: var(--surface); }
.site-footer__copy { font-size: 15px; line-height: 1.5; color: var(--band-muted); }

/* ---------- Podstrony: karta, listy, komitety, informacje, mapa ---------- */

.card { display: flex; flex-direction: column; gap: 12px; padding: 28px; border-radius: var(--radius); background: var(--surface-raised); }
.card .mts-h3 + * { margin-top: -4px; }
.card * + .mts-h3 { margin-top: 16px; }
.card__text { font-size: 16px; line-height: 1.6; color: var(--ink-muted); }
.check-list { margin: 0; padding-left: 1.3em; display: flex; flex-direction: column; gap: 4px; font-size: 17px; line-height: 1.6; }
.check-list li::marker { color: var(--accent-text); }

.committees { display: flex; flex-wrap: wrap; gap: 56px 48px; }
.committees > section { flex: 1 1 420px; min-width: 0; }
.members { list-style: none; margin: 24px 0 0; padding: 0; }
.member { display: flex; flex-direction: column; gap: 2px; padding: 16px 0; border-top: 1px solid var(--rule); }
.member__name { font-family: var(--font-display); font-weight: 700; font-size: 18px; line-height: 1.5; }
.member__aff { font-size: 16px; line-height: 1.5; color: var(--ink-muted); }
.member__role { font-family: var(--font-mono); font-size: 15px; line-height: 1.5; color: var(--accent-text); }
.abbr-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 12px 48px; }
.abbr-list div { display: grid; grid-template-columns: 5em minmax(0, 1fr); gap: 12px; padding-top: 12px; border-top: 1px solid var(--rule); }
.abbr-list dt { font-family: var(--font-mono); font-weight: 500; font-size: 16px; line-height: 1.5; }
.abbr-list dd { font-size: 16px; line-height: 1.5; color: var(--ink-muted); }

.info-dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 32px 48px; }
.info-dl > div { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.info-dl dt { display: flex; align-items: center; gap: 12px; font-size: 16px; line-height: 1.5; color: var(--ink-muted); }
.info-dl__chip { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--surface-raised); color: var(--ink); }
.info-dl__chip svg { width: 22px; height: 22px; }
.info-dl dd { font-size: 16px; line-height: 1.5; }
.info-dl__main { display: block; font-family: var(--font-display); font-weight: 700; font-size: 19px; line-height: 1.5; }
.info-dl__sub { display: block; color: var(--ink-muted); }
.info-dl__mail { font-family: var(--font-display); font-weight: 700; font-size: 19px; line-height: 1.5; overflow-wrap: anywhere; }
.note + .note { margin-top: 2em; }

@media (forced-colors: active) {
  .news-card, .card, .session__disc, .key-date.is-next, .news-dialog { border: 1px solid CanvasText; }
  .hero::before, .page-head::before, .mark { background: CanvasText; }
}
