/*
Theme Name: Salezjanie Gdańsk 2026
Theme URI: https://gdansk.salezjanie.pl/
Author: Parafia św. Jana Bosko w Gdańsku
Description: Lekki, responsywny motyw parafialny zachowujący charakter dotychczasowej witryny i porządkujący aktualności, kancelarię oraz odnośniki salezjańskie.
Version: 1.8.4
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: salezjanie-gdansk
*/

:root {
  --sdb-red: #b52b36;
  --sdb-red-dark: #8f2029;
  --sdb-red-soft: #f8eef0;
  --sdb-navy: #15385f;
  --sdb-gold: #f3c75b;
  --sdb-ink: #20242b;
  --sdb-muted: #667085;
  --sdb-line: #e4e7ec;
  --sdb-surface: #ffffff;
  --sdb-bg: #f4f3f1;
  --sdb-radius: 18px;
  --sdb-radius-sm: 12px;
  --sdb-shadow: 0 14px 38px rgba(25, 35, 50, .08);
  --sdb-width: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 118px; }
body {
  margin: 0;
  color: var(--sdb-ink);
  background: var(--sdb-bg);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.68;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--sdb-red-dark); text-decoration-thickness: .08em; text-underline-offset: .15em; }
a:hover { color: var(--sdb-red); }
img { max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; }
:focus-visible { outline: 3px solid #3266a8; outline-offset: 4px; }

.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.screen-reader-text:focus {
  top: 10px; left: 10px; z-index: 9999;
  width: auto; height: auto; padding: 12px 16px; margin: 0;
  overflow: visible; clip: auto; background: #fff; color: #111;
}

.site-shell { min-height: 100vh; }
.site-header { position: sticky; top: 0; z-index: 100; color: #fff; background: var(--sdb-red); box-shadow: 0 2px 12px rgba(25,35,50,.07); }
.admin-bar .site-header { top: 32px; }
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 76px; padding-block: 10px; }
.site-brand { display: flex; align-items: center; gap: 12px; min-width: 0; color: #fff; text-decoration: none; }
.site-brand:hover { color: #fff; }
/* Supplied RGB logo has a grey matte. Screen blending removes it without
   changing the source artwork; the white house remains white. */
.salesian-white-logo { display: block; flex: 0 0 48px; width: 48px; height: 48px; object-fit: contain; filter: grayscale(1) contrast(10); mix-blend-mode: screen; }
.brand-copy { display: grid; gap: 3px; line-height: 1.2; }
.brand-copy strong { font-size: 17px; font-weight: 650; }
.brand-copy span { color: rgba(255,255,255,.86); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.header-controls { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.header-toggle { display: flex; align-items: center; justify-content: center; gap: 9px; min-width: 44px; min-height: 44px; padding: 8px 11px; border-radius: 6px; list-style: none; cursor: pointer; font-size: 14px; font-weight: 600; }
.header-toggle::-webkit-details-marker { display: none; }
.header-toggle::marker { content: ''; }
.header-toggle:hover, .header-disclosure[open] > .header-toggle { background: rgba(0,0,0,.1); }
.site-header .site-brand:focus-visible, .header-toggle:focus-visible { outline-color: #fff; }
.close-symbol { display: none; }
.menu-disclosure[open] .close-symbol { display: block; }
.menu-disclosure[open] .menu-symbol { display: none; }
.header-panel { position: absolute; inset: 100% 0 auto; padding: 28px 0; color: var(--sdb-ink); background: #fff; border-bottom: 1px solid var(--sdb-line); box-shadow: 0 15px 26px rgba(25,35,50,.1); max-height: calc(100vh - 125px); max-height: calc(100svh - 125px); overflow-y: auto; overscroll-behavior: contain; }
.header-disclosure:not([open]) > .header-panel { display: none; }
.search-panel .search-form { max-width: 680px; margin-inline: auto; }
.sdb-tour-player { margin: 24px 0; padding: 28px; border: 1px solid #e4e7eb; border-radius: 12px; background: #fff; }
.sdb-tour-player:has(iframe) { padding: 0; overflow: hidden; }
.sdb-tour-player iframe { display: block; width: 100%; height: clamp(320px, 55vw, 560px); border: 0; }
.search-form { position: relative; display: flex; }
.search-field {
  width: 100%; min-height: 52px; padding: 10px 56px 10px 14px;
  border: 1px solid var(--sdb-line); border-radius: 12px; background: #f8f9fb; color: var(--sdb-ink);
}
.search-submit {
  position: absolute; top: 4px; right: 4px; width: 44px; height: 44px;
  border: 0; border-radius: 9px; color: #fff; background: var(--sdb-red); cursor: pointer;
}

.primary-nav ul { list-style: none; padding: 0; margin: 0; }
.primary-menu { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px 28px; align-items: start; }
.primary-nav li { margin: 2px 0; }
.primary-nav a {
  display: flex; align-items: center; min-height: 44px; padding: 9px 12px;
  border-radius: 6px; color: #3d4652; text-decoration: none; font-size: 15px; font-weight: 690;
}
.primary-nav a:hover, .primary-nav .current-menu-item > a, .primary-nav .current-menu-ancestor > a {
  color: var(--sdb-red-dark); background: var(--sdb-red-soft);
}
.primary-nav .sub-menu, .primary-nav .children { margin: 2px 0 7px 13px; padding-left: 11px; border-left: 1px solid #e1c9cb; }
.primary-nav .sub-menu a, .primary-nav .children a { min-height: 44px; padding: 7px 9px; font-size: 14px; font-weight: 500; }
.site-content-wrap { min-height: 100vh; margin-left: 0; }
.site-main { min-height: 60vh; }
.content-width { width: min(var(--sdb-width), calc(100% - 56px)); margin-inline: auto; }

.hero { position: relative; isolation: isolate; overflow: hidden; padding: 62px 0 38px; background: #faf9f7; }
.hero::before, .page-hero::before { content: ''; position: absolute; width: min(540px,48vw); aspect-ratio: 1; right: 2vw; top: -36px; background: url('assets/images/logo-salezjanskie-biale.png') center / contain no-repeat; filter: grayscale(1) contrast(10) invert(1); mix-blend-mode: multiply; opacity: .045; pointer-events: none; z-index: -1; }
.hero-grid { position: relative; }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; color: var(--sdb-red-dark); font-size: 13px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 28px; height: 3px; border-radius: 4px; background: var(--sdb-red); }
.hero h1 { max-width: 1100px; margin: 0 0 20px; font-size: clamp(38px, 4.7vw, 58px); font-weight: 720; line-height: 1.08; letter-spacing: -.035em; }
.hero-lead { max-width: 700px; margin: 0; color: #4d5968; font-size: clamp(17px, 1.7vw, 20px); line-height: 1.55; }
.hero-actions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 27px; }
.hero-actions .button { min-height: 44px; padding: 11px 16px; border-radius: 8px; font-size: 14px; font-weight: 650; }
.button, .wp-block-button__link {
  display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: 11px 19px;
  border: 1px solid var(--sdb-red); border-radius: 12px; color: #fff !important; background: var(--sdb-red);
  text-decoration: none; font-weight: 730; line-height: 1.2; box-shadow: 0 8px 20px rgba(143,32,41,.12);
}
.button:hover, .wp-block-button__link:hover { color: #fff; background: var(--sdb-red-dark); border-color: var(--sdb-red-dark); }
.button.secondary { color: var(--sdb-red-dark) !important; background: #fff; box-shadow: none; }
.button.secondary:hover { color: #fff !important; background: var(--sdb-red-dark); }
.hero-actions .button.secondary { color: #493d27 !important; background: #f3e8cc; border-color: #d7c398; box-shadow: 0 2px 5px rgba(84,66,32,.04); text-align: center; min-width: 0; overflow-wrap: anywhere; }
.hero-actions .button.secondary:hover { color: #332a1a !important; background: #ecdbb6; border-color: #b89e69; }
.quick-links { position: relative; margin-top: 42px; }
.quick-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.quick-card, .tile-card {
  display: block; padding: 21px; border: 1px solid var(--sdb-line); border-radius: var(--sdb-radius-sm);
  color: var(--sdb-ink); background: var(--sdb-surface); text-decoration: none; box-shadow: 0 10px 28px rgba(25,35,50,.055);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.quick-card:hover, .tile-card:hover { transform: translateY(-3px); color: var(--sdb-ink); border-color: #efb1b7; box-shadow: var(--sdb-shadow); }
.quick-card { padding: 19px 18px; border-radius: 10px; box-shadow: 0 4px 14px rgba(25,35,50,.03); }
.quick-icon { display: block; width: 27px; height: 27px; margin-bottom: 13px; fill: none; stroke: var(--sdb-red-dark); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.quick-card strong { display: block; font-size: 16px; }
.quick-card span { display: block; margin-top: 5px; color: var(--sdb-muted); font-size: 13px; line-height: 1.45; }

.home-section { padding: 58px 0; background: rgba(244,243,241,.94); }
.home-section.alt { background: rgba(255,255,255,.96); }
.section-heading { display: flex; justify-content: space-between; gap: 24px; align-items: end; margin-bottom: 25px; }
.section-heading h2 { margin: 0; font-size: clamp(27px, 2.7vw, 36px); font-weight: 710; line-height: 1.14; letter-spacing: -.02em; }
.section-heading p { max-width: 620px; margin: 8px 0 0; color: var(--sdb-muted); }
.section-link { flex: 0 0 auto; font-weight: 750; }

.announcement-card {
  display: grid; grid-template-columns: 210px minmax(0,1fr); overflow: hidden;
  border: 1px solid #eadfaf; border-radius: var(--sdb-radius); background: linear-gradient(120deg, #fffdf5, #fff9dc); box-shadow: var(--sdb-shadow);
}
.announcement-date { display: grid; place-items: center; align-content: center; padding: 28px; color: var(--sdb-navy); background: var(--sdb-gold); text-align: center; }
.announcement-date span { font-size: 13px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.announcement-date strong { font-size: 52px; line-height: 1; }
.announcement-body { padding: 30px 34px; }
.announcement-body h3 { margin: 0 0 10px; font-size: clamp(24px, 3vw, 34px); line-height: 1.15; }
.announcement-body p { margin: 0; color: #596271; }
.announcement-body .button { margin-top: 18px; }
.intentions-section { scroll-margin-top: 120px; }
.intentions-weeks { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.intentions-weeks a { display: inline-flex; flex-direction: column; justify-content: center; min-height: 48px; padding: 10px 17px; border: 1px solid #cdd3d8; border-radius: 8px; color: #37434d; background: #fff; text-decoration: none; font-size: 16px; font-weight: 650; }
.intentions-weeks a small { font-size: 14px; font-weight: 400; }
.intentions-weeks a[aria-current="page"] { background: #f4e6b6; border-color: #b69b51; color: #343b43; }
.intentions-weeks a:hover { border-color: #737f88; }
.intentions-date small { display: block; margin-top: 10px; font-size: 14px; letter-spacing: 0; }

.posts-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.post-card { overflow: hidden; border: 1px solid var(--sdb-line); border-radius: var(--sdb-radius); background: #fff; box-shadow: 0 12px 34px rgba(25,35,50,.07); }
.post-card-image { display: block; aspect-ratio: 16 / 9; overflow: hidden; text-decoration: none; background: linear-gradient(135deg, #f5d7da 0%, #fff4df 50%, #dfe9f4 100%); }
.post-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.post-card:hover .post-card-image img { transform: scale(1.025); }
.post-card-placeholder { width: 100%; height: 100%; display: grid; place-items: center; padding: 24px; color: #66513e; font-size: clamp(19px,2.2vw,27px); line-height: 1.3; font-weight: 600; text-align: center; text-wrap: balance; }
.post-card-body { padding: 22px; }
.post-meta { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-bottom: 9px; color: var(--sdb-muted); font-size: 13px; }
.post-card h3 { margin: 0 0 9px; font-size: 21px; line-height: 1.25; }
.post-card h3 a { color: var(--sdb-ink); text-decoration: none; }
.post-card h3 a:hover { color: var(--sdb-red-dark); }
.post-card p { margin: 0; color: var(--sdb-muted); font-size: 15px; }

.tiles-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.tile-card h3 { margin: 0 0 7px; font-size: 20px; }
.tile-card p { margin: 0; color: var(--sdb-muted); font-size: 15px; }
.oratory-section { background: #fafaf7; padding-block: 40px; }
.oratory-intro { padding: clamp(24px,3.5vw,42px); border: 1px solid #d4dfd3; border-left: 5px solid #71876d; border-radius: 12px; background: #edf2e9; }
.oratory-intro .section-heading { margin-bottom: 0; align-items: center; gap: 28px; }
.oratory-intro .eyebrow { color: #4c6748; }
.oratory-intro .eyebrow::before { background: #71876d; }
.oratory-intro h2 { color: #30472e; }
.oratory-intro .section-heading p { color: #566451; }
.oratory-intro .button { flex: 0 0 auto; color: #fff !important; background: #4d6748; border-color: #4d6748; box-shadow: none; white-space: normal; text-align: center; }
.oratory-intro .button:hover { background: #3c5438; border-color: #3c5438; }
.oratory-pillars { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 22px 0 0; list-style: none; }
.oratory-pillars li { padding: 4px 12px; border: 1px solid #d1ddce; border-radius: 6px; color: #41583d; background: #f9fbf6; font-size: 13px; font-weight: 600; }

.family-section { background: #f2f3f3; }
.family-section .section-heading { align-items: center; gap: 24px; }
.family-section .section-heading .button { flex-shrink: 0; }
.family-section .button.secondary, .facebook-section .button.secondary { background: #e9e5dc; color: #454039 !important; border-color: #cec7b9; box-shadow: none; font-size: 14px; border-radius: 8px; text-align: center; }
.family-section .button.secondary:hover, .facebook-section .button.secondary:hover { background: #ddd7ca; border-color: #afa590; }
.family-news-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.family-news-card {
  display: flex; flex-direction: column; min-height: 245px; padding: 22px;
  border: 1px solid var(--sdb-line); border-radius: var(--sdb-radius-sm); background: rgba(255,255,255,.96);
  box-shadow: 0 10px 28px rgba(25,35,50,.05);
}
.family-news-card time { color: var(--sdb-red-dark); font-size: 12px; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.family-news-card h3 { margin: 10px 0 9px; font-size: 19px; font-weight: 700; line-height: 1.28; }
.family-news-card h3 a { color: var(--sdb-ink); text-decoration: none; }
.family-news-card h3 a:hover { color: var(--sdb-red-dark); }
.family-news-card p { margin: 0; color: var(--sdb-muted); font-size: 14px; line-height: 1.55; }
.family-read-more { margin-top: auto; padding-top: 16px; font-size: 13px; font-weight: 750; text-decoration: none; }
.salesian-links { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-top: 24px; }
.salesian-links a { display: flex; flex-direction: column; gap: 5px; padding: 18px; border: 1px solid #d9dde2; border-radius: 10px; color: var(--sdb-ink); background: rgba(255,255,255,.85); text-decoration: none; min-width: 0; overflow-wrap: anywhere; }
.salesian-links a:hover { border-color: #c7a0a4; background: #fff; }
.salesian-links strong { font-size: 14px; }
.salesian-links span { color: #606b79; font-size: 13px; line-height: 1.5; }

.facebook-section { background: rgba(255,255,255,.96); }
.facebook-grid { display: grid; grid-template-columns: minmax(0,.85fr) minmax(320px,1.15fr); gap: 42px; align-items: center; }
.facebook-grid.facebook-link-only { grid-template-columns: 1fr; }
.facebook-grid h2 { margin: 9px 0 12px; font-size: clamp(27px,2.7vw,36px); font-weight: 710; }
.facebook-grid p { max-width: 580px; color: var(--sdb-muted); }
.facebook-embed { width: 100%; max-width: 500px; min-height: 520px; overflow: hidden; border: 1px solid var(--sdb-line); border-radius: var(--sdb-radius-sm); background: #fff; box-shadow: var(--sdb-shadow); }
.facebook-embed iframe { display: block; width: 100%; max-width: 500px; border: 0; }
.heritage-section { padding-top: 18px; }
.heritage-section h2 { font-size: clamp(22px,2.5vw,28px); margin: 0 0 18px; }
.heritage-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.heritage-links a { display: grid; gap: 6px; border: 1px solid #d9d5cb; border-radius: 10px; padding: 20px 24px; background: #fffdfa; color: var(--sdb-ink); text-decoration: none; }
.heritage-links a:hover { background: #f5eeda; border-color: #bfa976; }
.heritage-links strong { display: flex; gap: 12px; justify-content: space-between; font-size: 17px; }
.heritage-links a > span { color: #616772; font-size: 14px; }

.page-hero { position: relative; isolation: isolate; overflow: hidden; padding: 46px 0 26px; background: #faf9f7; }
.page-hero h1 { margin: 10px 0 0; font-size: clamp(34px, 4.2vw, 48px); font-weight: 720; line-height: 1.08; letter-spacing: -.03em; }
.breadcrumbs { color: var(--sdb-muted); font-size: 13px; }
.breadcrumbs a { color: var(--sdb-muted); }
.page-content { padding: 38px 0 72px; }
.content-card { padding: clamp(24px, 4vw, 52px); border: 1px solid var(--sdb-line); border-radius: var(--sdb-radius); background: #fff; box-shadow: var(--sdb-shadow); }
.entry-content { max-width: 900px; }
.entry-content > :first-child { margin-top: 0; }
.entry-content h2 { margin: 1.7em 0 .55em; font-size: clamp(27px, 3vw, 38px); line-height: 1.16; letter-spacing: -.025em; }
.entry-content h3 { margin: 1.5em 0 .45em; font-size: 22px; line-height: 1.25; }
.entry-content p { margin: 0 0 1.05em; }
.entry-content ul, .entry-content ol { padding-left: 1.35em; }
.entry-content li { margin: .42em 0; padding-left: .22em; }
.entry-content .notice, .notice {
  margin: 28px 0; padding: 20px 22px; border-left: 5px solid var(--sdb-red); border-radius: 0 14px 14px 0; background: var(--sdb-red-soft);
}
.entry-content .info-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin: 26px 0; }
.entry-content .info-box { padding: 20px; border: 1px solid var(--sdb-line); border-radius: 14px; background: #f8f9fb; }
.entry-content .info-box h3 { margin-top: 0; }
.entry-content .sdb-office-contact { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--sdb-line); }
.entry-content .sdb-office-contact a { overflow-wrap: anywhere; }
.entry-content .sdb-document-collection { scroll-margin-top: 150px; margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--sdb-line); }
.entry-content .sdb-collection-callout { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin: 32px 0; padding: 22px; background: #f3f5ef; border: 1px solid #dce2d5; border-radius: 10px; }
.entry-content .sdb-collection-callout > div { flex: 1 1 260px; }
.entry-content .sdb-collection-callout h2 { margin: 0 0 8px; font-size: 1.25rem; }
.entry-content .sdb-collection-callout p { margin: 0; }
.entry-content .sdb-collection-callout .button { white-space: normal; max-width: 100%; }

.archive-header { padding: 52px 0 24px; }
.archive-header h1 { margin: 0; font-size: clamp(34px,4.2vw,48px); font-weight: 720; letter-spacing: -.03em; }
.archive-grid { padding-bottom: 72px; }
.pagination { margin-top: 32px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.page-numbers { display: grid; place-items: center; min-width: 42px; height: 42px; padding: 0 10px; border: 1px solid var(--sdb-line); border-radius: 10px; background: #fff; text-decoration: none; }
.page-numbers.current { color: #fff; border-color: var(--sdb-red); background: var(--sdb-red); }

.site-footer { padding: 50px 0 24px; color: rgba(255,255,255,.82); background: #17202c; }
.footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 34px; }
.site-footer h2, .site-footer h3 { margin: 0 0 13px; color: #fff; font-size: 17px; }
.site-footer p { margin: 0 0 10px; font-size: 14px; }
.site-footer a { color: rgba(255,255,255,.83); text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.footer-links { list-style: none; padding: 0; margin: 0; }
.footer-links li { margin: 8px 0; font-size: 14px; }
.footer-brand { display: flex; gap: 13px; align-items: center; margin-bottom: 17px; }
.footer-brand h2 { margin-bottom: 0; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 36px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.13); font-size: 12px; }

@media (max-width: 1080px) {
  .primary-menu { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .posts-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .family-news-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .salesian-links { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 780px) {
  body { font-size: 16px; }
  .topbar { min-height: 72px; gap: 12px; }
  .site-brand { gap: 8px; }
  .site-brand .salesian-white-logo { flex-basis: 38px; width: 38px; height: 38px; }
  .brand-copy strong { font-size: 14px; }
  .brand-copy span { font-size: 10px; }
  .header-controls { gap: 2px; }
  .header-toggle { padding-inline: 8px; }
  .toggle-label { display: none; }
  .primary-menu { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }
  .content-width { width: min(100% - 32px, var(--sdb-width)); }
  .hero { padding-top: 46px; }
  .hero::before { width: 360px; right: -90px; top: -10px; opacity: .03; }
  .hero h1 { font-size: clamp(35px, 11vw, 46px); }
  .quick-grid { grid-template-columns: 1fr; gap: 12px; }
  .hero-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .hero-actions .button { text-align: center; font-size: 14px; padding-inline: 10px; }
  .posts-grid, .tiles-grid, .family-news-grid, .facebook-grid, .footer-grid, .entry-content .info-grid, .heritage-links { grid-template-columns: 1fr; }
  .section-heading { display: block; }
  .section-link { display: inline-block; margin-top: 12px; }
  .oratory-intro .button { margin-top: 20px; }
  .family-section .section-heading .button { margin-top: 16px; }
  .facebook-grid { gap: 24px; }
  .facebook-embed { margin-inline: auto; }
  .home-section { padding-block: 38px; }
  .heritage-section { padding-top: 12px; }
  .announcement-card { grid-template-columns: 1fr; }
  .announcement-date { display: flex; justify-content: flex-start; gap: 10px; padding: 16px 22px; text-align: left; }
  .announcement-date strong { font-size: 25px; }
  .intentions-date { flex-wrap: wrap; }
  .intentions-date small { margin: 0; }
  .announcement-body { padding: 24px 22px; }
  .footer-bottom { display: block; }
  .footer-bottom span { display: block; margin-top: 7px; }
}

@media (min-width: 781px) and (max-width: 900px) {
  .quick-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
}
@media (max-width: 600px) {
  .admin-bar .site-header { top: 0; }
}
@media (max-width: 420px) {
  .salesian-links { grid-template-columns: 1fr; }
  .primary-menu { grid-template-columns: 1fr; }
  .brand-copy strong { font-size: 13px; }
  .site-brand .salesian-white-logo { flex-basis: 30px; width: 30px; height: 34px; }
  .topbar { gap: 6px; }
  .quick-card { padding: 16px 13px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

.entry-content .sdb-service-choices { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sdb-service-choices a { display: block; text-decoration: none; color: inherit; }
.sdb-service-choices a:hover, .sdb-service-choices a:focus-visible { border-color: currentColor; }
.sdb-bank-details { margin-top: 2rem; }
.sdb-bank-number { font-weight: 600; overflow-wrap: anywhere; }
@media (max-width: 780px) { .entry-content .sdb-service-choices { grid-template-columns: 1fr; } }

.sdb-heritage-image { max-width: 640px; margin: 2rem auto; }
.sdb-heritage-image img { display: block; width: 100%; height: auto; border-radius: 8px; }
.sdb-heritage-image figcaption { font-size: .875rem; color: #62666c; margin-top: .65rem; }
.sdb-heritage-portrait { max-width: 300px; }
.sdb-oratory-groups .info-box { display: flex; flex-direction: column; }
.sdb-oratory-groups .button { margin-top: auto; align-self: flex-start; }
.sdb-oratory-content .button.secondary { max-width: 100%; text-align: center; font-size: 15px; border-radius: 8px; color: #37434d !important; background: #eeefef; border-color: #d7dcdf; }
.sdb-oratory-content .button.secondary:hover { background: #e0e5e8; border-color: #a7b3bc; }

.sdb-territory-check { margin: 0 0 26px; }
.sdb-territory-check .button.secondary { max-width: 100%; padding: 12px 18px; font-size: 15px; line-height: 1.5; text-align: center; border-radius: 8px; color: #493d27 !important; background: #f3e8cc; border-color: #d7c398; box-shadow: none; white-space: normal; }
.sdb-territory-check .button.secondary:hover { background: #ecdbb6; border-color: #b89e69; }
.entry-content .sdb-territory-table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 16px; margin: 20px 0; }
.sdb-territory-table caption { text-align: left; margin-bottom: 10px; color: #596271; font-size: 14px; }
.entry-content .sdb-territory-table th, .entry-content .sdb-territory-table td { text-align: left; vertical-align: top; padding: 11px 14px; border: 1px solid #dcdedc; overflow-wrap: anywhere; }
.entry-content .sdb-territory-table thead th { background: #e8e8df; color: #374139; font-weight: 650; }
.entry-content .sdb-territory-table tbody th { background: #f7f8f4; color: #29352c; font-weight: 600; }
.entry-content .sdb-territory-table tbody td { background: #fff; }
.sdb-territory-table tr[hidden] { display: none !important; }
.sdb-territory-search { margin: 24px 0 14px; }
.sdb-territory-search label { display: block; font-size: 15px; font-weight: 600; margin-bottom: 7px; }
.sdb-territory-search input { display: block; width: 100%; max-width: 480px; min-height: 46px; padding: 10px 13px; border: 1px solid #929b91; border-radius: 8px; background: #fff; color: #253229; font: inherit; font-size: 16px; }
.sdb-territory-search p { margin: 8px 0 0; font-size: 14px; color: #596271; }
.sdb-territory-sources { margin-top: 28px; color: #62666c; }
@media (max-width: 480px) {
  .entry-content .sdb-territory-table th, .entry-content .sdb-territory-table td { padding: 10px 8px; }
  .entry-content .sdb-territory-table th:first-child { width: 48%; }
}

/* Spotkania NA i materiały z prostego formularza. */
.na-section { background: #edf3f6; padding: 38px 0; }
.na-banner { display: flex; gap: 28px; align-items: center; justify-content: space-between; }
.na-banner > div { max-width: 760px; }
.na-banner h2 { font-size: clamp(23px,2.4vw,30px); margin: 0 0 10px; }
.na-banner p { margin: 0; color: #4b606c; }
.na-banner .button { flex-shrink: 0; background: #fff; border-color: #6b8594; color: #294b5e; box-shadow: none; }
.sdb-na-times { padding: 20px 20px 20px 40px; background: #edf3f6; border-radius: 8px; }
.sdb-na-contact { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.sdb-post-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0; }
.sdb-post-actions .button { max-width: 100%; overflow-wrap: anywhere; white-space: normal; }
.sdb-post-actions small { font-weight: 400; }
.sdb-news-gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin: 30px 0; }
.entry-content .sdb-news-photo { margin: 0; min-width: 0; }
.sdb-news-photo a { display: block; }
.sdb-news-photo img { display: block; width: 100%; height: auto; border-radius: 8px; }
.sdb-news-photo figcaption { font-size: 14px; margin-top: 8px; color: #596271; }
.single .entry-content h3 { font-size: clamp(21px,2vw,25px); line-height: 1.35; }
.single .entry-content h4 { font-size: clamp(18px,1.8vw,21px); line-height: 1.4; }
@media(max-width: 800px) { .na-banner { flex-direction: column; align-items: flex-start; } .sdb-news-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width: 480px) { .sdb-news-gallery { grid-template-columns: 1fr; } .na-banner .button { width: 100%; text-align: center; white-space: normal; } }

/* 1.8 — informacje praktyczne i komunikaty wygasające. */
[hidden]{display:none!important}
.sdb-temporary-notice{background:#fff3f2;border-left:4px solid #a72f38;border-radius:6px;padding:18px 22px;margin:22px 0;color:#372c2d;overflow-wrap:anywhere}
.sdb-temporary-notice>strong{color:#8d252e}.sdb-temporary-notice p{margin:8px 0}.sdb-temporary-notice .sdb-notice-dates{font-size:.9em;font-weight:600}
.sdb-temporary-notice .sdb-notice-normal{padding-top:10px;border-top:1px solid #e8d7d7;font-size:.9em;color:#5d4d50}
.sdb-notices:empty{display:none}.sdb-notice-period{background:#f5f2eb;padding:12px;border-radius:5px}
.sdb-practical-home{padding-top:18px}.sdb-practical-home .button{font-size:.9rem;padding:9px 13px;background:transparent;border-color:#d4d8d8;box-shadow:none}
.sdb-post-actions{display:flex;flex-wrap:wrap;gap:12px}.sdb-search-help{margin-bottom:30px}
.quick-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.salesian-links{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.sdb-service-choices{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.sdb-bank-details button{font:inherit}.sdb-bank-number{overflow-wrap:anywhere}
.sdb-office-entrance{margin-top:26px}.sdb-print-page{min-height:44px}
@media print{.site-header,.site-footer,#wpadminbar,.sdb-print-page,.sdb-post-actions,.header-actions,.sdb-bank-details button{display:none!important}body,.content-card,.page-hero{background:#fff!important;color:#000!important;box-shadow:none!important}.site-main,.page-content,.content-width{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}.page-hero::before{display:none}.page-hero{padding:0 0 14px!important}.info-box{break-inside:avoid;border:1px solid #bbb;box-shadow:none}h2,h3{break-after:avoid}}
