@font-face {
  font-family: "Poppins";
  src: url("fonts/Poppins/Poppins-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Poppins";
  src: url("fonts/Poppins/Poppins-Italic.ttf") format("truetype");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Poppins";
  src: url("fonts/Poppins/Poppins-Medium.ttf") format("truetype");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "Poppins";
  src: url("fonts/Poppins/Poppins-SemiBold.ttf") format("truetype");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "Poppins";
  src: url("fonts/Poppins/Poppins-Bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "Poppins";
  src: url("fonts/Poppins/Poppins-ExtraBold.ttf") format("truetype");
  font-style: normal;
  font-weight: 800;
  font-display: swap;
}

@font-face {
  font-family: "Poppins";
  src: url("fonts/Poppins/Poppins-Black.ttf") format("truetype");
  font-style: normal;
  font-weight: 900;
  font-display: swap;
}

:where(body, .editor-styles-wrapper) {
  font-family: var(--uwm-font-family, "Poppins", Arial, sans-serif);
}

/* ===========================
   GLOBAL LAYOUT - UWM
   =========================== */

/* Tekst tylko dla czytnikow ekranu. WordPress definiuje ta klase w arkuszu
   wp-block-library, ale bloki wtyczki (header-nav, post-search) opieraja na
   niej etykiety przyciskow - gdyby motyw wyrzucil tamten arkusz, napisy
   wyskoczylyby na wierzch. Powtarzamy wiec definicje u siebie. */
.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  border: 0;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Model pudelka - jeden dla calej wtyczki.
   Szerokosc --uwm-content-width (1550px) jest liczona jako border-box, wiec
   ZAWIERA boczny gutter. Bez tej reguly bloki spoza listy typograficznej
   ponizej wychodzily na 1550px + 2*15px = 1580px i nie trzymaly wspolnej
   krawedzi z reszta strony. */
:where([class*="uwm-"]) {
  box-sizing: border-box;
}

:where([class*="uwm-"]) *,
:where([class*="uwm-"]) *::before,
:where([class*="uwm-"]) *::after {
  box-sizing: inherit;
}

/* Globalny padding (has-global-padding) oparty o zmienne z PHP:
   --uwm-global-padding-y / --uwm-global-padding-x
*/
.uwm-container {
  width: 100%;
  max-width: var(--uwm-content-width);
  margin-inline: auto;
  padding-inline: var(--uwm-inner-padding-x, 15px);
  box-sizing: border-box;
}

:where(
  .wp-block-uwm-hero-half,
  .wp-block-uwm-info-banner,
  .wp-block-uwm-info-modules,
  .wp-block-uwm-faq,
  .wp-block-uwm-quick-links,
  .wp-block-uwm-footer,
  .uwm-header-nav,
  .uwm-top-bar,
  .uwm-breadcrumbs,
  .uwm-hero
) {
  color: var(--uwm-color-text, #1f2933);
  font-family: var(--uwm-font-family, "Poppins", Arial, sans-serif);
  font-size: var(--uwm-font-size-base, 1rem);
  line-height: var(--uwm-line-height-base, 1.6);
  box-sizing: border-box;
}

:where(
    .wp-block-uwm-hero-half,
    .wp-block-uwm-info-banner,
    .wp-block-uwm-info-modules,
    .wp-block-uwm-faq,
    .wp-block-uwm-quick-links,
    .wp-block-uwm-footer,
    .uwm-header-nav,
    .uwm-top-bar,
    .uwm-breadcrumbs,
    .uwm-hero
  )
  *,
:where(
    .wp-block-uwm-hero-half,
    .wp-block-uwm-info-banner,
    .wp-block-uwm-info-modules,
    .wp-block-uwm-faq,
    .wp-block-uwm-quick-links,
    .wp-block-uwm-footer,
    .uwm-header-nav,
    .uwm-top-bar,
    .uwm-breadcrumbs,
    .uwm-hero
  )
  *::before,
:where(
    .wp-block-uwm-hero-half,
    .wp-block-uwm-info-banner,
    .wp-block-uwm-info-modules,
    .wp-block-uwm-faq,
    .wp-block-uwm-footer,
    .uwm-header-nav,
    .uwm-top-bar,
    .uwm-breadcrumbs,
    .uwm-hero
  )
  *::after {
  box-sizing: inherit;
}

/* ===========================
   UNIFIED TYPOGRAPHY LAYER
   ===========================
   Single source of truth for headings, eyebrows and descriptive text
   across every UWM block.

   Naglowek sekcji i nadtytul celowo NIE stoja w :where(): motyw ma wlasna
   regule na selektor elementu (h2), a ta bije zerowa specyficznosc :where()
   i podmienia rozmiar, grubosc oraz interlinie. Te dwie reguly uzywaja wiec
   zwyklych selektorow klasowych (0-1-0). Blok, ktory naprawde potrzebuje
   innego wygladu (ciemne tlo, wlasny odstep do tresci ponizej), nadpisuje je
   selektorem z klasa opakowania - .wp-block-uwm-<blok> - zeby wynik nie
   zalezal od kolejnosci wczytywania arkuszy.

   Pozostale reguly zostaja w :where(): tam kolizji z motywem nie ma.
*/

/* Page-level H1 (breadcrumb title).
   uwm/hero-half wypadl z tej warstwy: jego tytul moze byc h1, h2 albo h3
   (atrybut headingLevel), stoi na ciemnym tle i ma wlasna typografie w
   blocks/hero-half/src/style.css. */
:where(.uwm-breadcrumbs__title) {
  color: var(--uwm-dark, #003366);
  font-size: var(--uwm-font-size-2xl, clamp(2.25rem, 2.5vw + 1rem, 3rem));
  font-weight: var(--uwm-font-weight-bold, 700);
  line-height: var(--uwm-line-height-tight, 1.15);
  margin: 0 0 var(--uwm-spacing-m, 1.5rem);
}

/* Section-level H2 - the main "title" of every content block.
   Wzorzec: .uwm-news-section__heading (blok uwm/news-section), czyli naglowek
   .gsc-heading.style-1 z uwm.edu.pl. Jedna skala dla wszystkich blokow:
   2rem / 2.375rem, SemiBold, granat. margin: 0 jest celowe - odstep do tresci
   pod naglowkiem ustawia juz konkretny blok, bo kazdy ma inna kompozycje.

   uwm/hero-half nie nalezy do tej warstwy: jego tytul moze byc h1, h2 albo h3
   (atrybut headingLevel), stoi na ciemnym tle i ma wlasna typografie. */
.uwm-news-section__heading,
.uwm-image-text__heading,
.uwm-campus-map__heading,
.uwm-info-banner__heading,
.faq-section__heading,
.uwm-post-search__heading,
.uwm-research-cards__header h2,
.uwm-quick-links__header h2,
.uwm-fields-of-study__title,
.uwm-stats__title,
.uwm-timeline__title,
.uwm-testimonials__title {
  /* fit-content, zeby zolta kreska ponizej konczyla sie na prawym koncu
     tekstu, a nie na krawedzi kolumny. Bez max-width: 100% - fit-content
     jest juz ograniczone dostepna szerokoscia, a wlasny limit (np.
     max-width: 760px w quick-links) ma zostac po stronie bloku. */
  width: fit-content;
  margin: 0;
  color: var(--uwm-color-navy, #0f1a4c);
  font-size: var(--uwm-section-title-size, 2rem);
  font-weight: var(--uwm-font-weight-semibold, 600);
  line-height: var(--uwm-section-title-leading, 2.375rem);
}

/* Zolta kreska pod prawym koncem tytulu - wzorzec .gsc-heading.style-1.
   W news-section rysowal ja dodatkowy <span> w srodku h2; tutaj stoi na samym
   naglowku, wiec dziala w kazdym bloku bez zmian w markupie. Naglowek wyrownany
   do srodka dostaje margin-inline: auto po stronie bloku - shrink-wrap nie
   centruje sie przez text-align rodzica. */
.uwm-news-section__heading::after,
.uwm-image-text__heading::after,
.uwm-campus-map__heading::after,
.uwm-info-banner__heading::after,
.faq-section__heading::after,
.uwm-post-search__heading::after,
.uwm-research-cards__header h2::after,
.uwm-quick-links__header h2::after,
.uwm-fields-of-study__title::after,
.uwm-stats__title::after,
.uwm-timeline__title::after,
.uwm-testimonials__title::after {
  content: "";
  display: block;
  width: 100%;
  max-width: var(--uwm-section-title-rule-width, 4.25rem);
  margin-left: auto;
  border-bottom: var(--uwm-section-title-rule-height, 0.3125rem) solid
    var(--uwm-color-secondary, #fbce14);
}

/* Nadtytul nad naglowkiem sekcji (kicker / eyebrow).
   Wzorzec: .uwm-news-section__kicker - male, wersalikowe, w kolorze primary.
   Wiekszosc blokow renderuje go jako <span>, news-section jako <p>, dlatego
   display: block wyrownuje oba warianty. Reset padding/background/letter-spacing
   kasuje starsze warianty tej etykiety (zolty badge w image-text i campus-map
   oraz zolta kreska ::before w quick-links, fields-of-study, stats, timeline
   i testimonials). */
.uwm-news-section__kicker,
.uwm-image-text__eyebrow,
.uwm-campus-map__eyebrow,
.uwm-quick-links__eyebrow,
.uwm-fields-of-study__eyebrow,
.uwm-stats__eyebrow,
.uwm-timeline__eyebrow,
.uwm-testimonials__eyebrow {
  display: block;
  margin: 0 0 var(--uwm-section-kicker-gap, 5px);
  padding: 0;
  background: none;
  color: var(--uwm-color-primary, #2f78c6);
  font-size: var(--uwm-font-size-s, 0.875rem);
  font-weight: var(--uwm-font-weight-medium, 500);
  line-height: var(--uwm-line-height-base, 1.6);
  letter-spacing: normal;
  text-transform: uppercase;
}

/* Card-level H3 (news card, research card, fields-of-study card) */
:where(
  .uwm-news-card__title,
  .uwm-research-card__content h3,
  .uwm-fields-of-study__card-title
) {
  color: var(--uwm-dark, #003366);
  font-size: var(--uwm-font-size-m, 1.125rem);
  font-weight: var(--uwm-font-weight-bold, 700);
  line-height: var(--uwm-line-height-snug, 1.3);
  margin: 0 0 var(--uwm-spacing-xs, 0.5rem);
}

/* Section descriptions / leads */
:where(.uwm-image-text__description, .uwm-campus-map__description) {
  color: var(--uwm-color-muted, #4b5563);
  font-size: var(--uwm-font-size-m, 1.125rem);
  line-height: var(--uwm-line-height-base, 1.6);
  margin: 0 0 var(--uwm-spacing-m, 1.5rem);
}

:where(.uwm-research-cards__lead) {
  max-width: 720px;
  margin: 0 auto var(--uwm-spacing-xl, 3rem);
  color: var(--uwm-color-muted, #4b5563);
  font-size: var(--uwm-font-size-base, 1rem);
  line-height: var(--uwm-line-height-base, 1.6);
}
