/* Czytelna typografia portalu — aktualizacja 1.2.1. */
:root {
  --text-body: 16px;
  --text-small: 13px;
  --text-label: 12px;
  --text-action: 15px;
  --muted: #655e57;
}
body { font-size: var(--text-body); line-height: 1.7; }
.topnote { font-size: var(--text-label); letter-spacing: 1px; gap: 20px; }
.topnote a { font-size: var(--text-small); }
.site-header { height: auto; min-height: 111px; padding-block: 20px; gap: 24px; }
.site-header > * { min-width: 0; }
.brand { flex-shrink: 0; }
.brand-sub { font-size: 10px; letter-spacing: 1px; line-height: 1.6; }
.desktop-nav { gap: 22px; font-size: 14px; line-height: 1.5; }
.desktop-nav a { padding-block: 14px; }
.header-tools { flex-shrink: 0; }
.icon-button { width: 44px; height: 44px; }
#saved-count { font-size: 11px; min-width: 18px; height: 18px; line-height: 18px; }
.eyebrow, .hero-copy .eyebrow, .section-heading .eyebrow,
.kindness .eyebrow, .ritual-copy .eyebrow, .manifesto .eyebrow,
.experience-card .eyebrow, .dialog-header .eyebrow, .book-reviews .eyebrow {
  font-size: var(--text-label); letter-spacing: 1.3px; line-height: 1.8;
}
.hero-intro { font-size: var(--text-body); line-height: 1.85; }
.button, .hero-copy .button, .kindness-actions .button,
.module-actions .button { font-size: var(--text-action); line-height: 1.5; min-height: 48px; }
.hero-bottom { font-size: var(--text-small); line-height: 1.7; }
.photo-label, .ritual-caption { font-size: 11px; letter-spacing: 1px; line-height: 1.6; }
.photo-label { max-width: calc(100% - 56px); }
.chapter-strip { font-size: var(--text-label); letter-spacing: 1px; gap: 20px; flex-wrap: wrap; }
.section-heading > p, .leisure-heading-side > p,
.card-description, .module-intro, .kindness .module-intro,
.experience-card > p:not(.eyebrow), .community > div > p:not(.eyebrow),
.ritual-copy > p:not(.eyebrow):not(.ritual-prompt), .manifesto > p:not(.eyebrow),
.leisure-card-intro, .book-poll > div > p:not(.eyebrow),
.delights-empty p, .roadmap-grid p, .form-dialog .module-intro {
  font-size: var(--text-body); line-height: 1.85;
}
.category-tabs button, .leisure-filters button, .mood-tabs button,
.ritual-choice button { font-size: 14px; line-height: 1.6; min-height: 48px; }
.category-tabs, .leisure-filters { flex-wrap: wrap; gap: 0 26px; overflow: visible; }
.category-tabs button, .leisure-filters button { white-space: normal; text-align: left; }
.card-number { font-size: var(--text-label); letter-spacing: .5px; }
.card-meta, .card-meta span:last-child, .leisure-card-meta {
  font-size: var(--text-label); letter-spacing: .7px; line-height: 1.8;
}
.card-meta { flex-wrap: wrap; }
.article-card h3, .leisure-card h3 { font-size: 30px; line-height: 1.25; }
.card-read, .text-link, .experience-card .text-link, .leisure-card > .text-link,
.leisure-detail-actions .text-link, .submission-receipt .text-link {
  font-size: var(--text-action); line-height: 1.6; overflow-wrap: anywhere;
}
.text-link { gap: 14px; }
#article-total, #leisure-shelf-count, .leisure-tools,
.leisure-tools label, .kindness-foot, .ritual-prompt, .community small,
.roadmap-foot, .module-note, .leisure-note, .image-note,
.book-poll-option small, .delight-card small, .leisure-facts dt,
.recipe-box > p, .book-review footer, .footer-bottom {
  font-size: var(--text-small); line-height: 1.8;
}
.quick-doors span { font-size: var(--text-label); }
.quick-doors strong { font-size: 23px; line-height: 1.3; }
.quick-doors a { min-width: 0; }
.quick-doors i { flex-shrink: 0; }
.compliment { font-size: 28px; line-height: 1.6; }
.mood-tabs, .ritual-choice { flex-wrap: wrap; }
.roadmap-grid span { font-size: var(--text-label); letter-spacing: .8px; }
.roadmap-grid h3 { font-size: 28px; }
.footer-main { flex-wrap: wrap; }
.footer-main > p, .footer-links { font-size: 14px; line-height: 1.8; }
.footer-links { max-width: 100%; }
.footer-bottom { flex-wrap: wrap; }
.search-field input, .card-builder input, .card-builder select,
.card-builder textarea, .form-dialog input:not([type=checkbox]),
.form-dialog textarea, .form-dialog select, .leisure-tools select,
.recipe-box input[type=number] { font-size: 16px; line-height: 1.6; }
.search-result small { font-size: var(--text-label); white-space: normal; }
.reader .reader-meta { font-size: var(--text-label); letter-spacing: .8px; }
.reader-body, .leisure-dialog .reader-body, #privacy-dialog .reader-body {
  font-size: 18px; line-height: 1.85;
}
.reader-body h3 { font-size: 29px; line-height: 1.35; }
.toast { font-size: 15px; line-height: 1.6; }
.quiz-columns legend { font-size: var(--text-small); letter-spacing: .8px; }
.quiz-option { font-size: 16px; line-height: 1.65; }
.quiz-option input { flex-shrink: 0; width: 18px; height: 18px; }
.quiz-result span { font-size: 15px; line-height: 1.7; }
.card-builder label, .form-dialog label:not(.form-check),
.form-check, .form-status { font-size: 14px; line-height: 1.8; }
.form-check input { width: 18px; height: 18px; }
.leisure-tools { flex-wrap: wrap; }
.leisure-tools label { flex-wrap: wrap; }
.leisure-tools select { max-width: 100%; }
.leisure-feature-label { font-size: 27px; line-height: 1.35; }
.leisure-card-intro { display: block; overflow: visible; }
.book-poll-option { flex-wrap: wrap; }
.book-poll-option button { font-size: 15px; padding: 10px 0; min-height: 44px; }
.leisure-facts dd, .leisure-materials ul, .recipe-box li,
.recipe-box > div > label { font-size: 16px; line-height: 1.8; }
.leisure-facts dd { overflow-wrap: anywhere; }
.leisure-facts dt { letter-spacing: .7px; }
.recipe-box input[type=number] { width: 75px; }
.recipe-box > div { flex-wrap: wrap; }
.book-rating { font-size: 16px; }
.submission-receipt label { font-size: 14px !important; }
.submission-receipt input { font-size: 16px !important; }

@media (max-width: 1200px) {
  .desktop-nav { display: none; }
  .mobile-toggle { display: grid; }
  .hero { grid-template-columns: 1fr; }
  .hero-copy { padding: 20px 0 32px; }
  .hero-intro { max-width: 620px; }
  .hero-photo { height: 520px; }
  .hero-bottom { position: static; max-width: none; margin-top: 24px; }
  .hero-last { white-space: normal; }
  .article-grid, .leisure-featured, .leisure-grid, .delights-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .experience-grid { grid-template-columns: 1fr; }
  .experience-card { padding: 30px; }
  .experience-card h3 { font-size: 32px; }
  .quick-doors { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .community { grid-template-columns: 1fr; }
  .community blockquote { max-width: 650px; margin: auto; }
  .section-heading { flex-wrap: wrap; align-items: flex-start; }
}
@media (max-width: 700px) {
  .topnote { font-size: 11px; letter-spacing: .6px; text-align: center; }
  .brand { font-size: 28px; }
  .brand-heart { font-size: 28px; }
  .brand-sub { font-size: 10px; letter-spacing: .5px; }
  .site-header { min-height: 100px; padding-inline: 5%; gap: 12px; flex-wrap: wrap; }
  .header-tools { margin-left: auto; gap: 0; }
  .hero { display: grid; grid-template-columns: minmax(0, 1fr); }
  .hero-photo { height: 380px; }
  .hero-copy .eyebrow { gap: 8px; letter-spacing: .7px; }
  .hero h1 { font-size: clamp(43px, 10vw, 60px); line-height: 1.1; }
  .hero-intro br, .leisure-heading-side > p br { display: none; }
  .hero-bottom { font-size: var(--text-small); }
  .chapter-strip { justify-content: flex-start; gap: 12px; white-space: normal; }
  .chapter-strip span:nth-child(even) { display: none; }
  .chapter-strip span:last-child { display: inline; }
  .article-grid, .leisure-featured, .leisure-grid, .delights-grid,
  .book-poll, .roadmap-grid, .quiz-columns { grid-template-columns: minmax(0, 1fr); }
  .quick-doors { gap: 0 18px; }
  .quick-doors strong { font-size: 21px; }
  .quick-doors i { display: none; }
  .quick-doors a { align-items: flex-start; }
  .article-card h3, .leisure-card h3 { font-size: 30px; }
  .more-row, .community-actions { flex-wrap: wrap; }
  .leisure-tools label { width: 100%; }
  .book-poll-option { display: block; }
  .book-poll-option button { margin-top: 8px; }
  .delights-empty { align-items: flex-start; gap: 18px; }
  .reader-body, .leisure-dialog .reader-body, #privacy-dialog .reader-body { font-size: 17px; }
  .leisure-facts { grid-template-columns: minmax(0, 1fr); }
  .card-meta { gap: 5px 12px; }
  .photo-label { max-width: calc(100% - 36px); }
  .form-dialog, .experience-dialog, .leisure-dialog { padding: 23px; }
}
@media (max-width: 380px) {
  .site-header { justify-content: center; }
  .header-tools { margin-left: 0; }
  .brand-sub { font-size: 10px; }
  .hero h1 { font-size: 43px; }
  .quick-doors { grid-template-columns: minmax(0, 1fr); }
  .leisure-tools label { align-items: flex-start; }
}
