/* Jedyna skala rozmiarów Ciepłej Fary. Przy domyślnej czcionce przeglądarki
   16px: 1rem = 10px. Procentowy root zachowuje preferencje użytkownika.
   Inspiracja: GOV.UK Type scale; kontrola powiększenia: WCAG 1.4.4. */
html { font-size:62.5%; }
:root {
 --text-label:1.2rem;
 --text-small:1.4rem;
 --text-body:1.6rem;
 --text-reading:1.8rem;
 --heading-card:2rem;
 --heading-section:2.8rem;
 --heading-page:3.6rem;
 --heading-hero:4.8rem;
}
body { font-size:var(--text-body); }
input, select, textarea, button { font-size:inherit; }
small { font-size:var(--text-small); }
sup, sub { font-size:var(--text-label); }
h1 { font-size:var(--heading-page); }
h2 { font-size:var(--heading-section); }
h3 { font-size:var(--heading-card); }
h4, h5, h6 { font-size:var(--text-reading); }

/* Etykiety są jedynym tekstem o rozmiarze 12px. */
.brand small, .footer-brand small, .brand>span>span, .footer-brand>span>span,
.eyebrow, .eyebrow.light, .dropdown-heading, .slider-caption, .small-label,
.image-label, .tag, .notice-date>small, .post-row .notice-date small,
.notice-strip>span:nth-child(2)>small, .post-nav small, .bottom-nav a {
 font-size:var(--text-label);
}
.brand small, .footer-brand small { letter-spacing:.1rem; }

/* Metadane i drugorzędne opisy — stały rozmiar na wszystkich ekranach. */
.address-link, .address-link small, .camera-button, .masthead .camera-button,
.slide-counter, .mass-line>span, .weekdays>span, .intentions summary small,
.date, .breadcrumbs, .page-meta, .prose figcaption, .lightbox figcaption,
.lb-count, .office>small, .office-address, .office-button>span,
.notice-strip>span:nth-child(2)>span, .community-links small,
.footer-grid p, .footer-about>p, .footer-grid>div>a:not(.brand), .footer-grid small,
.footer-bottom, .attachments small, .subpage-copy small, .gallery-title small,
.photo-tile-copy small, .cat-list small, .camera-strip small,
.theme-switcher, html[data-contrast] .contrast-toggle,
.consent p, .consent-option small, .consent-button, .consent-link {
 font-size:var(--text-small);
}

/* Treść, linki i formularze. Menu mobilne pozostaje przy 16px. */
.navigation>a, .nav-trigger, .dropdown a, .nav-search input,
.search-mini input, .search-form input, .button:not(.camera-button),
.hero-button, .brown-button, .office-button, .text-link, .card-link,
.slide-content p, .quick-card>p, .quick-card .quick-emphasis,
.mass-line>strong, .mass-details summary, .mass-details p,
.intentions summary>span:first-child, .intentions-content>p, .intentions-content>div,
.news-copy>p, .office>p, .useful>a, .about p, .about-image>a,
.community-links strong, .camera-strip strong, .footer-grid h3,
.attachments a, .post-nav a, .post-row>span:nth-child(2)>span,
.cat-list a, .empty, .pager a, .pager span, .subpage-copy strong,
.photo-tile-copy strong, .consent-option strong, .prose table,
.notice-strip>span:nth-child(2)>strong { font-size:var(--text-body); }
.prose, .intentions-content>.prose { font-size:var(--text-reading); }

/* Nagłówki komponentów i treści. */
.brand strong { font-size:2.4rem; }
.footer-brand strong { font-size:var(--heading-card); }
.slide h1, .slide h2 { font-size:var(--heading-hero); }
.section-heading h2, .about h2, .community h2,
.related .section-heading h2, .page-main .section-heading h2,
.prose h2 { font-size:var(--heading-section); }
.page-head h1 { font-size:var(--heading-page); }
.quick-card h2, .news-card h3, .office h2, .prose h3,
.gallery-title, .attachments h2, .intentions-title { font-size:var(--heading-card); }
.prose h4, .prose h5, .prose h6, .post-row>span:nth-child(2)>strong,
.office-times, .consent h2 { font-size:var(--text-reading); }
.notice-date strong, .post-row .notice-date strong { font-size:var(--heading-section); }
.expand, .mass-details summary>span { font-size:var(--heading-card); }
.slider-controls .pause-button { font-size:var(--text-body); }
.lightbox button { font-size:var(--heading-section); }

@media(max-width:900px) {
 :root { --heading-page:3.2rem; --heading-hero:4rem; }
 .brand strong { font-size:var(--heading-card); }
}
@media(max-width:600px) {
 :root { --text-body:1.4rem; --text-reading:1.6rem; --heading-card:1.8rem; --heading-section:2.2rem; --heading-page:2.4rem; --heading-hero:2.8rem; }
 .masthead .brand strong { font-size:1.6rem; }
 .navigation>a, .nav-trigger, .dropdown a, input, select, textarea, .nav-search input, .search-form input { font-size:1.6rem; }
 .footer-brand strong { font-size:var(--heading-card); }
}
@media(max-width:380px) {
 .masthead .camera-button, html[data-contrast] .contrast-toggle { font-size:var(--text-label); }
}

@media(max-width:600px){.brand small{letter-spacing:.04rem}.brand>span>span{letter-spacing:.1rem}}

.footer-grid .footer-brand small{font-size:var(--text-label)}

@media(max-width:900px){.masthead .camera-button{font-size:var(--text-label)}}

/* Rozkładaj długie tytuły równomiernie; nie rozrywaj roku i skrótu r. */
.page-head h1, .news-card h3, .photo-tile-copy strong { text-wrap:balance; overflow-wrap:normal; }
