/*
 * ZJ / Zlobek Gminny w Jaczowie — typografia v1.5
 * Rozmiary fontow podane w rem. Warstwa nie zmienia kolorow ani ukladu.
 *
 * WCAG 2.2 AA nie okresla minimalnej wielkosci fontu w px/rem.
 * Ta konfiguracja zachowuje czytelne minima i uzywa jednostek wzglednych.
 */

@import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600&family=Lato:wght@400&family=Montserrat:wght@600&family=Nunito+Sans:wght@600;700&display=swap");

:root {
    --font-heading: "Fraunces", Georgia, serif;
    --font-interface: "Nunito Sans", Arial, sans-serif;
    --font-body: "Lato", Arial, sans-serif;
    --font-label: "Montserrat", Arial, sans-serif;

    --zj-font-hero-min: 2.375rem;   /* 38px przy 1rem = 16px */
    --zj-font-hero-max: 2.75rem;    /* 44px */
    --zj-font-section-min: 1.625rem;/* 26px */
    --zj-font-section-max: 2rem;    /* 32px */
    --zj-font-menu-min: 1rem;       /* 16px — celowo nie schodzimy do 15px */
    --zj-font-menu-max: 1.0625rem;  /* 17px */
    --zj-font-card-min: 1.0625rem;  /* 17px */
    --zj-font-card-max: 1.1875rem;  /* 19px */
    --zj-font-body-min: 1rem;       /* 16px */
    --zj-font-body-max: 1.125rem;   /* 18px */
    --zj-font-compact: 1rem;        /* 16px — opisy kafelkow i przyciski */
    --zj-font-label: 0.875rem;      /* 14px — daty i etykiety */
}

/* Tekst podstawowy */
body.zm2-site {
    font-family: var(--font-body);
    font-size: var(--zj-font-body-min);
    font-weight: 400;
    line-height: 1.65;
}

body.zm2-site :is(p, li, dd, dt, address, input, textarea, select, option) {
    font-family: var(--font-body);
}

body.zm2-site :is(p, li, dd, dt, address) {
    font-size: clamp(var(--zj-font-body-min), 1.15vw, var(--zj-font-body-max));
}

/* Naglowki reprezentacyjne i sekcyjne */
body.zm2-site :is(.zm2-hero h1, .zm2-content-hero h1) {
    font-family: var(--font-heading);
    font-size: clamp(var(--zj-font-hero-min), 3.4vw, var(--zj-font-hero-max));
    font-weight: 600;
    line-height: 1.12;
    letter-spacing: -0.018em;
}

body.zm2-site :is(
    .zm2-section-heading h2,
    .zm2-content-main > h2,
    .zm2-menu-main > h2,
    .zm2-article-content h2,
    .zm2-sidebar-section-title
) {
    font-family: var(--font-heading);
    font-size: clamp(var(--zj-font-section-min), 2.4vw, var(--zj-font-section-max));
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -0.012em;
}

/* H1/H2 redakcyjne — Fraunces, bez zmniejszania ponizej czytelnych wartosci */
body.zm2-site .zm2-article-content h1 {
    font-family: var(--font-heading);
    font-size: clamp(2rem, 3vw, 2.75rem);
    font-weight: 600;
    line-height: 1.15;
}

body.zm2-site .zm2-article-content :is(h2, h3) {
    font-family: var(--font-heading);
    font-weight: 600;
}

/* Menu i interfejs */
body.zm2-site :is(
    .zm2-nav .sp11-nav__link,
    .zm2-nav .sp11-nav__button,
    .zm2-nav .sp11-nav__submenu a
) {
    font-family: var(--font-interface);
    font-size: clamp(var(--zj-font-menu-min), 1.05vw, var(--zj-font-menu-max));
    font-weight: 700;
    line-height: 1.35;
}

body.zm2-site :is(
    .zm2-button,
    .zm2-recruitment-button,
    .zm2-print-button,
    .zm2-search-panel button,
    .zm2-article-toolbar button,
    button,
    input[type="button"],
    input[type="submit"]
) {
    font-family: var(--font-interface);
    font-size: var(--zj-font-compact);
    font-weight: 700;
    line-height: 1.35;
}

/* Tytuly kafelkow / kart / specjalistow */
body.zm2-site :is(
    .zm2-quick-card strong,
    .zm2-news-card h3,
    .zm2-page-card h3,
    .zm2-important-card h3,
    .zm2-hours-card h3,
    .zm2-contact-card h3,
    .zm2-recruitment-card h3,
    .zm2-sidebar-card h2,
    .zm2-institution-card strong,
    .zm2-hero-card--main h2,
    .zm2-program-card h3,
    .zm2-specialist-card h3,
    .zm2-specialist-card strong
) {
    font-family: var(--font-interface);
    font-size: clamp(var(--zj-font-card-min), 1.4vw, var(--zj-font-card-max));
    font-weight: 700;
    line-height: 1.3;
}

/* Opisy kafelkow — celowo 1rem zamiast pierwotnych 13–15px */
body.zm2-site :is(
    .zm2-quick-card small,
    .zm2-news-card p,
    .zm2-page-card p,
    .zm2-important-card p,
    .zm2-hours-card p,
    .zm2-contact-card p,
    .zm2-recruitment-card p,
    .zm2-institution-card small,
    .zm2-program-card p,
    .zm2-specialist-card p
) {
    font-family: var(--font-body);
    font-size: var(--zj-font-compact);
    font-weight: 400;
    line-height: 1.55;
}

/* Daty, etykiety, breadcrumb, gorny pasek dostepnosci */
body.zm2-site :is(
    .zm2-eyebrow,
    .zm2-content-eyebrow,
    .zm2-hours-help__eyebrow,
    .zm2-recruitment-card__label,
    .zm2-important-card__badge,
    .zm2-important-card__meta,
    .zm2-news-card__date,
    .zm2-news-card__media--date,
    .zm2-menu-updated,
    .zm2-utility-bar__label,
    .zm2-utility-link,
    .zm2-utility-button,
    .zm2-breadcrumbs,
    label
) {
    font-family: var(--font-label);
    font-size: var(--zj-font-label);
    font-weight: 600;
    line-height: 1.45;
}

/* Fakty w hero nie moga wracac do 0.82rem. */
body.zm2-site .zm2-hero__facts strong {
    font-family: var(--font-label);
    font-size: var(--zj-font-label);
    font-weight: 600;
    line-height: 1.45;
}

body.zm2-site .zm2-hero__facts span {
    font-family: var(--font-interface);
    font-size: 1.125rem;
    font-weight: 700;
}

/* Mini-karty w hero i inne techniczne dopiski */
body.zm2-site :is(.zm2-hero-card--mini, small) {
    font-size: max(0.875rem, 0.875em);
}

/* Nie blokujemy powiekszania tekstu i pozwalamy elementom zawijac sie przy zoomie. */
body.zm2-site :is(
    .zm2-button,
    .zm2-recruitment-button,
    .zm2-print-button,
    .zm2-quick-card,
    .zm2-nav .sp11-nav__link,
    .zm2-nav .sp11-nav__button
) {
    white-space: normal;
    overflow-wrap: anywhere;
}

@media (max-width: 48rem) {
    body.zm2-site :is(.zm2-hero h1, .zm2-content-hero h1) {
        font-size: clamp(2.375rem, 10vw, 2.75rem);
    }

    body.zm2-site .zm2-section-heading h2 {
        font-size: clamp(1.625rem, 7vw, 2rem);
    }
}

@media print {
    body.zm2-site {
        font-family: Arial, sans-serif;
    }
}
