/* RESET & BASE */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-y:scroll; }
body { font-family:'Lato',sans-serif; background:#F4F0EA; color:#1E1A14; line-height:1.65; min-height:100vh; display:flex; flex-direction:column; }
main { flex:1; }
a { text-decoration:none; color:inherit; }
img { display:block; max-width:100%; }

:root {
  --navy:      #0E1F3B;
  --navy-mid:  #162D54;
  --gold:      #C49A2A;
  --gold-pale: #FBF5E6;
  --gold-dark: #9B7820;
  --paper:     #FFFFFF;
  --border:    #DDD5C8;
  --mid:       #6B6358;
  --light:     #EDE8DF;
}

/* TOP BAR */
.topbar { background:var(--navy); color:rgba(255,255,255,.5); font-size:0.7812rem; }
.topbar-inner { max-width:1200px; margin:0 auto; padding:7px 1.5rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.topbar-inner a { color:rgba(255,255,255,.65); transition:color .15s; }
.topbar-inner a:hover { color:#fff; }

/* NAV */
.nav { background:var(--navy-mid); position:sticky; top:0; z-index:500; border-bottom:3px solid var(--gold); box-shadow:0 2px 16px rgba(0,0,0,.3); }
.nav-inner { max-width:1200px; margin:0 auto; padding:0 1.5rem; display:flex; align-items:center; justify-content:space-between; min-height:62px; }
.nav-logo { display:flex; align-items:center; gap:14px; color:#F5F0E8; flex-shrink:0; text-decoration:none; }
.nav-cross { font-size:1.5rem; color:var(--gold); line-height:1; }
.nav-brand-text { display:flex; flex-direction:column; line-height:1.25; }
.nav-brand-text strong { font-size:0.9062rem; font-weight:700; color:#F5F0E8; }
.nav-brand-text em { font-size:0.6875rem; font-style:normal; color:rgba(245,240,232,.5); letter-spacing:.08em; text-transform:uppercase; }
.nav-links { list-style:none; display:flex; gap:0; }
.nav-links > li { position:relative; }
.nav-links > li > a { display:block; padding:0 14px; height:62px; line-height:62px; font-size:0.7812rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:rgba(245,240,232,.75); transition:color .15s,background .15s; white-space:nowrap; }
.nav-links > li > a:hover, .nav-links > li.active > a { color:#F5F0E8; background:rgba(255,255,255,.07); }
.nav-links > li.active > a { border-bottom:3px solid var(--gold); }
.dropdown { display:none; position:absolute; top:100%; left:0; background:var(--navy); min-width:240px; list-style:none; border-top:2px solid var(--gold); box-shadow:0 8px 24px rgba(0,0,0,.35); z-index:400; }
.has-drop:hover .dropdown { display:block; }
.dropdown li a { display:block; padding:11px 18px; font-size:0.8125rem; color:rgba(245,240,232,.75); border-bottom:1px solid rgba(255,255,255,.07); transition:background .12s,color .12s; }
.dropdown li a:hover { background:rgba(255,255,255,.09); color:#F5F0E8; padding-left:24px; }
.burger { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:10px; }
.burger span { display:block; width:24px; height:2px; background:#F5F0E8; border-radius:1px; transition:.3s; }
.burger.open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.burger.open span:nth-child(2) { opacity:0; }
.burger.open span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }
.mob-nav { display:none; background:var(--navy); border-top:1px solid rgba(255,255,255,.1); position:sticky; top:62px; z-index:299; max-height:80vh; overflow-y:auto; }
.mob-nav.open { display:block; }
.mob-nav a { display:block; padding:13px 1.5rem; font-size:0.875rem; color:rgba(245,240,232,.85); border-bottom:1px solid rgba(255,255,255,.07); font-weight:600; }
.mob-nav a.sub { padding-left:2.5rem; font-weight:400; font-size:0.8438rem; color:rgba(245,240,232,.6); }
.mob-nav a:hover { background:rgba(255,255,255,.06); }

/* ═══════════════════════════
   HERO — styl złotowski
═══════════════════════════ */
.hero { background:var(--navy); }
.hero-inner { max-width:1200px; margin:0 auto; padding:3.5rem 1.5rem; display:grid; grid-template-columns:1fr 460px; gap:3rem; align-items:center; min-height:560px; }

/* Lewa kolumna */
.hero-date-line { display:flex; align-items:center; gap:12px; font-size:0.6875rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(245,240,232,.45); margin-bottom:1.5rem; }
.hero-date-line span { flex:1; height:1px; background:rgba(255,255,255,.15); }

.hero-title { font-family:'Merriweather',serif; font-size:clamp(3rem,6vw,5.5rem); font-weight:700; color:#F5F0E8; line-height:1.05; letter-spacing:-.01em; margin-bottom:.4rem; }
.hero-subtitle { font-family:'Merriweather',serif; font-size:clamp(1rem,2.2vw,1.6rem); font-weight:400; font-style:italic; color:var(--gold); line-height:1.3; margin-bottom:1rem; }
.hero-sub { font-size:0.9375rem; color:rgba(245,240,232,.5); margin-bottom:2.5rem; font-style:italic; line-height:1.65; }

.hero-btns { display:flex; gap:10px; flex-wrap:wrap; }
.btn-hero-prim { background:var(--gold); color:#0E1F3B; padding:13px 22px; font-size:0.7812rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; border:none; cursor:pointer; border-radius:2px; transition:background .2s; display:inline-flex; align-items:center; gap:8px; }
.btn-hero-prim:hover { background:#D4A830; }
.btn-hero-sec { background:transparent; color:#F5F0E8; padding:13px 22px; font-size:0.7812rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; border:1px solid rgba(245,240,232,.25); cursor:pointer; border-radius:2px; transition:border-color .2s,background .2s; display:inline-flex; align-items:center; gap:8px; }
.btn-hero-sec:hover { border-color:rgba(245,240,232,.6); background:rgba(255,255,255,.06); }
.btn-icon { font-size:0.875rem; }

/* Prawa kolumna — zdjęcie */
.hero-right { position:relative; }
.hero-photo { width:100%; height:480px; object-fit:cover; object-position:center; display:block; border:3px solid rgba(196,154,42,.3); }

/* MSZE STRIP — jak złotowska */
.msze-strip { background:var(--navy); border-top:1px solid rgba(255,255,255,.08); border-bottom:3px solid var(--gold); }
.msze-strip-inner { max-width:1200px; margin:0 auto; padding:1.25rem 1.5rem; display:flex; align-items:center; gap:0; }
.msze-box-label-left { font-size:0.6875rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700; color:rgba(245,240,232,.6); display:flex; align-items:center; gap:8px; padding-right:2rem; border-right:1px solid rgba(255,255,255,.12); flex-shrink:0; }
.msze-dot { width:8px; height:8px; border-radius:50%; background:var(--gold); flex-shrink:0; }
.msze-strip-col { padding:0 2rem; border-right:1px solid rgba(255,255,255,.1); flex:1; }
.msze-strip-col:last-child { border-right:none; }
.msze-strip-sub { font-size:0.5938rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(245,240,232,.45); margin-bottom:5px; font-weight:700; }
.msze-strip-time { font-size:0.9375rem; font-weight:700; color:#F5F0E8; font-family:'Merriweather',serif; }

/* LAYOUT */
.wrap { max-width:1200px; margin:0 auto; padding:2.5rem 1.5rem; }
.main-grid { display:grid; grid-template-columns:1fr 320px; gap:2.5rem; align-items:start; }
.two-col   { display:grid; grid-template-columns:1fr 320px; gap:2.5rem; align-items:start; }

/* PAGE HEADER */
.page-header { background:var(--navy-mid); border-bottom:3px solid var(--gold); padding:0; }
.page-header-inner { max-width:1200px; margin:0 auto; padding:2.5rem 1.5rem; }
.breadcrumb { font-size:0.7188rem; color:rgba(245,240,232,.45); margin-bottom:10px; letter-spacing:.04em; }
.breadcrumb a { color:rgba(196,154,42,.8); }
.breadcrumb a:hover { color:var(--gold); }
.page-header h1 { font-family:'Merriweather',serif; font-size:clamp(1.6rem,3.5vw,2.4rem); font-weight:700; color:#F5F0E8; line-height:1.2; }
.page-header p { font-size:0.875rem; color:rgba(245,240,232,.5); margin-top:6px; }

/* SECTION LABELS */
.section-label { display:flex; align-items:center; gap:12px; margin-bottom:1.5rem; }
.section-label-text { font-size:0.625rem; letter-spacing:.2em; text-transform:uppercase; font-weight:700; color:var(--gold-dark); white-space:nowrap; }
.section-label-line { flex:1; height:1px; background:var(--border); }
.section-label-more { font-size:0.7812rem; font-weight:700; color:var(--gold-dark); white-space:nowrap; }
.section-label-more:hover { text-decoration:underline; }

/* CARDS */
.card { background:var(--paper); border:1px solid var(--border); border-radius:2px; box-shadow:0 1px 6px rgba(0,0,0,.05); }
.card-pad { padding:1.5rem; }
.empty-state { padding:1.5rem; color:var(--mid); font-size:0.875rem; }
.empty-state a { color:var(--gold-dark); font-weight:600; }

/* NEWS CARDS */
.news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.news-card { background:var(--paper); border:1px solid var(--border); border-radius:2px; overflow:hidden; transition:box-shadow .2s,transform .2s; display:flex; flex-direction:column; box-shadow:0 1px 6px rgba(0,0,0,.06); }
.news-card:hover { box-shadow:0 10px 32px rgba(0,0,0,.13); transform:translateY(-3px); }
.news-card-img { width:100%; height:185px; object-fit:cover; }
.news-card-img-placeholder { width:100%; height:185px; background:var(--navy); display:flex; align-items:center; justify-content:center; font-size:2.75rem; color:rgba(255,255,255,.1); }
.news-card-body { padding:1.25rem; flex:1; display:flex; flex-direction:column; }
.news-card-date { font-size:0.6875rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-dark); font-weight:700; margin-bottom:7px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.news-card-title { font-family:'Merriweather',serif; font-size:.97rem; font-weight:700; line-height:1.4; color:var(--navy); margin-bottom:8px; }
.news-card:hover .news-card-title { color:var(--gold-dark); }
.news-card-excerpt { font-size:0.8125rem; color:var(--mid); line-height:1.6; flex:1; }
.news-card-more { display:inline-block; margin-top:12px; font-size:0.75rem; font-weight:700; color:var(--gold-dark); letter-spacing:.04em; }
.tag { display:inline-block; font-size:0.625rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:2px 7px; border-radius:2px; }
.tag-Relacja { background:var(--gold-pale); color:var(--gold-dark); }
.tag-Wydarzenie { background:#E8F5E9; color:#2E7D32; }

/* TABS */
.tabs { border-bottom:2px solid var(--border); display:flex; padding:0 1.5rem; }
.tab-btn { padding:14px 20px; font-size:0.7812rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; border:none; background:none; cursor:pointer; color:var(--mid); border-bottom:3px solid transparent; margin-bottom:-2px; transition:color .15s,border-color .15s; }
.tab-btn.active { color:var(--navy); border-bottom-color:var(--gold); }
.tab-pane { display:none; }
.tab-pane.active { display:block; }
.tab-body { padding:0 1.5rem 1.5rem; }
.ogl-item { padding:1.1rem 0; border-bottom:1px solid var(--border); }
.ogl-item:last-child { border-bottom:none; }
.ogl-meta { font-size:0.6875rem; color:var(--gold-dark); font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:6px; }
.ogl-text { font-size:0.875rem; color:#1E1A14; line-height:1.75; white-space:pre-line; }
.ogl-footer-note { margin-top:14px; font-size:0.7812rem; color:var(--mid); font-style:italic; }
.empty-note { color:var(--mid); font-size:0.875rem; padding:10px 0; }
.int-date-header { font-size:0.6562rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; color:var(--gold-dark); padding:12px 0 4px; border-top:1px solid var(--border); margin-top:4px; }
.int-date-header:first-child { border-top:none; margin-top:0; }
.int-row { display:grid; grid-template-columns:60px 1fr; gap:12px; padding:8px 0; border-bottom:1px solid var(--border); align-items:baseline; }
.int-row:last-child { border-bottom:none; }
.int-godz { font-family:'Merriweather',serif; font-weight:700; color:var(--gold-dark); font-size:1rem; }
.int-text { font-size:0.8438rem; color:#1E1A14; line-height:1.55; }
.link-more { font-size:0.8125rem; font-weight:700; color:var(--gold-dark); }
.link-more:hover { text-decoration:underline; }

/* MSZE */
.msze-group-title { font-size:0.625rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700; color:var(--mid); padding:14px 0 6px; border-top:1px solid var(--border); margin-top:6px; display:block; }
.msze-group-title:first-child { border-top:none; margin-top:0; padding-top:0; }
.msze-row { display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid var(--border); }
.msze-row:last-child { border-bottom:none; }
.msze-who { font-size:0.875rem; color:#1E1A14; font-weight:600; }
.msze-loc { font-size:0.75rem; color:var(--mid); margin-top:2px; }
.msze-time { font-family:'Merriweather',serif; font-size:1.2rem; font-weight:700; color:var(--gold-dark); flex-shrink:0; margin-left:16px; }

/* SIDEBAR */
.side-widget { background:var(--paper); border:1px solid var(--border); border-radius:2px; overflow:hidden; box-shadow:0 1px 6px rgba(0,0,0,.05); }
.side-widget + .side-widget { margin-top:1.25rem; }
.side-widget-head { background:var(--navy); color:#F5F0E8; padding:12px 16px; font-size:0.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; border-bottom:2px solid var(--gold); }
.side-widget-body { padding:1rem 16px; }
.side-row { display:flex; gap:10px; font-size:0.8438rem; padding:8px 0; border-bottom:1px solid var(--border); }
.side-row:last-child { border-bottom:none; }
.side-row .lbl { color:var(--mid); min-width:66px; flex-shrink:0; font-size:0.75rem; }
.side-row .val { color:#1E1A14; font-size:0.8438rem; }
.side-row .val a { color:var(--gold-dark); }
.side-row .val a:hover { text-decoration:underline; }
.konto-nr { font-family:'Courier New',monospace; font-size:0.6875rem; background:var(--gold-pale); color:#5C3D00; padding:7px 10px; display:block; margin:8px 0; border-radius:2px; letter-spacing:.03em; cursor:pointer; }
.konto-nr:hover { background:#F5EAC8; }
.sakr-list { list-style:none; }
.sakr-item { padding:8px 0; border-bottom:1px solid var(--border); font-size:0.8438rem; display:flex; align-items:center; gap:10px; }
.sakr-item:last-child { border-bottom:none; }
.sakr-item a { color:#1E1A14; transition:color .15s; width:100%; }
.sakr-item a:hover { color:var(--gold-dark); }
.sakr-dot { width:6px; height:6px; border-radius:50%; background:var(--gold); flex-shrink:0; }
.nekr-item { padding:9px 0; border-bottom:1px solid var(--border); }
.nekr-item:last-child { border-bottom:none; }
.nekr-name { font-weight:700; color:var(--navy); font-size:0.8438rem; }
.nekr-meta { font-size:0.75rem; color:var(--mid); margin-top:2px; }

/* GALERIA */
.gal-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:10px; }
.gal-item { overflow:hidden; border-radius:2px; border:1px solid var(--border); cursor:pointer; position:relative; aspect-ratio:4/3; }
.gal-item img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.gal-item:hover img { transform:scale(1.05); }
.gal-caption { position:absolute; bottom:0; left:0; right:0; background:rgba(14,31,59,.82); color:#F5F0E8; font-size:0.75rem; padding:7px 12px; transform:translateY(100%); transition:transform .25s; }
.gal-item:hover .gal-caption { transform:translateY(0); }
.lightbox { display:none; position:fixed; inset:0; background:rgba(0,0,0,.92); z-index:999; align-items:center; justify-content:center; flex-direction:column; gap:12px; }
.lightbox.open { display:flex; }
.lightbox img { max-width:90vw; max-height:82vh; }
.lightbox-cap { color:rgba(255,255,255,.65); font-size:0.8125rem; }
.lightbox-close { position:fixed; top:16px; right:20px; font-size:2rem; color:#fff; background:none; border:none; cursor:pointer; }

/* POZOSTAŁE STRONY */
.zapow-item { padding:1rem 0; border-bottom:1px solid var(--border); display:flex; align-items:baseline; gap:16px; }
.zapow-item:last-child { border-bottom:none; }
.zapow-nr { background:var(--navy); color:var(--gold); font-size:0.6875rem; font-weight:700; letter-spacing:.06em; padding:3px 10px; border-radius:12px; white-space:nowrap; flex-shrink:0; }
.zapow-names { font-size:0.9375rem; font-weight:700; color:var(--navy); font-family:'Merriweather',serif; }
.zapow-date { font-size:0.7812rem; color:var(--mid); margin-top:3px; }
.nekr-full { padding:1.25rem 0; border-bottom:1px solid var(--border); }
.nekr-full:last-child { border-bottom:none; }
.nekr-full .name { font-family:'Merriweather',serif; font-size:1.15rem; font-weight:700; color:var(--navy); }
.nekr-full .age { font-size:0.8125rem; color:var(--mid); margin-bottom:6px; }
.nekr-full .pogrzeb { background:var(--light); border-left:3px solid var(--gold); padding:9px 14px; font-size:0.8438rem; margin:8px 0; }
.nekr-full .tresc { font-size:0.875rem; color:var(--mid); line-height:1.75; font-style:italic; }
.historia-section { padding:1.75rem 0; border-bottom:1px solid var(--border); }
.historia-section:last-child { border-bottom:none; }
.historia-section h2 { font-family:'Merriweather',serif; font-size:1.15rem; font-weight:700; color:var(--navy); margin-bottom:.75rem; }
.historia-section p { font-size:0.9062rem; color:#2A2520; line-height:1.8; white-space:pre-line; }
.sakr-section { padding:2rem 0; border-bottom:1px solid var(--border); }
.sakr-section:last-child { border-bottom:none; }
.sakr-section h2 { font-family:'Merriweather',serif; font-size:1.2rem; font-weight:700; color:var(--navy); margin-bottom:.75rem; display:flex; align-items:center; gap:10px; }
.sakr-section h2::before { content:''; display:block; width:4px; height:1.2rem; background:var(--gold); border-radius:1px; flex-shrink:0; }
.sakr-section p { font-size:0.9062rem; color:#2A2520; line-height:1.8; }
.alert { padding:12px 16px; border-radius:2px; margin-bottom:1rem; font-size:0.875rem; }
.alert-ok  { background:#E8F5E9; border-left:3px solid #388E3C; color:#1B5E20; }
.alert-err { background:#FFEBEE; border-left:3px solid #C62828; color:#B71C1C; }

/* FOOTER */
.footer { background:var(--navy); color:rgba(245,240,232,.5); margin-top:3rem; }
.footer-inner { max-width:1200px; margin:0 auto; padding:3rem 1.5rem 2rem; display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:3rem; }
.footer-logo { font-size:0.9375rem; font-weight:700; color:#F5F0E8; margin-bottom:.75rem; }
.footer-col p { font-size:0.8125rem; line-height:1.75; margin-bottom:5px; }
.footer-col a { display:block; font-size:0.8125rem; color:rgba(245,240,232,.5); margin-bottom:6px; transition:color .15s; }
.footer-col a:hover { color:var(--gold); }
.footer-heading { font-size:0.625rem; letter-spacing:.18em; text-transform:uppercase; font-weight:700; color:var(--gold); margin-bottom:.85rem; }
.footer-links-inline a { display:inline; }
.footer-konto { font-family:'Courier New',monospace; font-size:0.7188rem; background:rgba(196,154,42,.1); color:rgba(245,240,232,.75); padding:7px 10px; display:block; margin-top:5px; border-radius:2px; letter-spacing:.03em; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.07); text-align:center; padding:1.1rem 1.5rem; font-size:0.75rem; color:rgba(245,240,232,.28); }

/* RESPONSIVE */
@media (max-width:1000px) {
  .hero-inner { grid-template-columns:1fr; min-height:auto; gap:1.5rem; }
  .hero-right { display:block; }
  .hero-photo { height:280px; }
  .news-grid { grid-template-columns:1fr 1fr; }
  .msze-strip-inner { flex-wrap:wrap; gap:0; }
  .msze-box-label-left { width:100%; border-right:none; border-bottom:1px solid rgba(255,255,255,.1); padding:10px 0; margin-bottom:0; }
  .msze-strip-col { padding:12px 1.5rem; border-right:none; border-bottom:1px solid rgba(255,255,255,.08); flex:none; width:50%; }
}
@media (max-width:700px) {
  .hero-btns { flex-direction:column; }
  .btn-hero-prim, .btn-hero-sec { width:100%; justify-content:center; }
  .hero-photo { height:220px; }
}
@media (max-width:900px) {
  .nav-links { display:none; }
  .burger    { display:flex; }
  .main-grid,.two-col { grid-template-columns:1fr; }
  .col-side  { order:-1; }
  .footer-inner { grid-template-columns:1fr 1fr; gap:2rem; }
}
@media (max-width:600px) {
  .footer-inner { grid-template-columns:1fr; gap:1.75rem; }
  .news-grid { grid-template-columns:1fr; }
  .hero-inner { padding:2.5rem 1.25rem; }
  .hero-title { font-size:3rem; }
  .msze-strip-col { width:100%; }
  .tabs { padding:0 1rem; }
  .tab-body { padding:0 1rem 1.25rem; }
  .topbar-inner { flex-direction:column; gap:3px; font-size:0.7188rem; }
}

/* UKŁAD A — pełna szerokość */
.news-grid-full { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-bottom:2.5rem; }

.bottom-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:start; }

@media (max-width:900px) {
  .news-grid-full { grid-template-columns:1fr 1fr; }
  .bottom-grid    { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  .news-grid-full { grid-template-columns:1fr; }
}

/* SEKCJA KONTAKTOWA Z MAPĄ */
.kontakt-section { background: var(--light, #EDE8DF); padding: 2.5rem 0; margin-top: 0; border-top: 1px solid var(--border, #DDD5C8); }

/* Przełącznik kościołów */
.church-tabs { display: flex; gap: 0; margin-bottom: 1.5rem; border: 1px solid var(--border, #DDD5C8); border-radius: 2px; overflow: hidden; background: var(--paper, #fff); }
.church-tab { flex: 1; background: transparent; border: none; border-right: 1px solid var(--border, #DDD5C8); padding: 14px 16px; cursor: pointer; text-align: left; transition: background .15s; display: flex; flex-direction: column; gap: 2px; }
.church-tab:last-child { border-right: none; }
.church-tab:hover { background: #F4F0EA; }
.church-tab.active { background: var(--navy, #0E1F3B); }
.church-tab-name { font-size: 14px; font-weight: 700; color: var(--navy, #0E1F3B); line-height: 1.2; transition: color .15s; }
.church-tab-sub { font-size: 11.5px; color: var(--mid, #6B6358); transition: color .15s; }
.church-tab.active .church-tab-name { color: #F5F0E8; }
.church-tab.active .church-tab-sub { color: rgba(245,240,232,.6); }

/* Panele kościołów */
.church-panel { display: none; }
.church-panel.active { display: block; }
.church-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; background: var(--paper, #fff); border: 1px solid var(--border, #DDD5C8); border-radius: 2px; overflow: hidden; }

/* Info kościoła */
.church-info { padding: 1.75rem; }
.church-title { font-family: 'Merriweather', serif; font-size: 1.1rem; font-weight: 700; color: var(--navy, #0E1F3B); margin-bottom: .75rem; }
.church-address { font-size: 13.5px; color: var(--mid, #6B6358); margin-bottom: 1rem; display: flex; align-items: flex-start; gap: 6px; }
.church-icon { flex-shrink: 0; }
.church-details { margin-bottom: 1.25rem; }
.church-detail-row { display: flex; gap: 10px; font-size: 13.5px; padding: 7px 0; border-bottom: 1px solid var(--border, #DDD5C8); }
.church-detail-row:last-child { border-bottom: none; }
.church-detail-label { color: var(--mid, #6B6358); min-width: 68px; flex-shrink: 0; font-size: 12.5px; }

/* Godziny mszy w info */
.church-hours { background: #F4F0EA; border-radius: 2px; padding: 1rem; margin-bottom: 1rem; }
.church-hours-title { font-size: 10px; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; color: var(--gold-dark, #9B7820); margin-bottom: .6rem; }
.church-hour-row { display: flex; justify-content: space-between; align-items: baseline; padding: 5px 0; border-bottom: 1px solid var(--border, #DDD5C8); font-size: 13px; }
.church-hour-row:last-child { border-bottom: none; }
.church-hour-time { font-family: 'Merriweather', serif; font-weight: 700; color: var(--gold-dark, #9B7820); font-size: 1rem; }
.church-note { font-size: 12.5px; color: var(--mid, #6B6358); font-style: italic; line-height: 1.6; padding: .6rem .75rem; border-left: 3px solid var(--gold, #C49A2A); background: var(--gold-pale, #FBF5E6); }

/* Mapa */
.church-map { display: flex; flex-direction: column; }
.church-map iframe { flex: 1; min-height: 280px; }
.map-btn { display: block; background: var(--navy, #0E1F3B); color: #F5F0E8; text-align: center; padding: 12px; font-size: 13px; font-weight: 700; transition: background .2s; }
.map-btn:hover { background: var(--navy-mid, #162D54); color: var(--gold, #C49A2A); }

@media (max-width: 800px) {
  .church-tabs { flex-direction: column; }
  .church-tab { border-right: none; border-bottom: 1px solid var(--border, #DDD5C8); }
  .church-tab:last-child { border-bottom: none; }
  .church-grid { grid-template-columns: 1fr; }
  .church-map iframe { min-height: 250px; }
}

/* ═══════════════════════════
   STRONA MODLITW
═══════════════════════════ */

/* Nawigacja kategorii */
.modl-nav { display:flex; gap:0; margin-bottom:2rem; border:1px solid var(--border,#DDD5C8); border-radius:2px; overflow:hidden; background:var(--paper,#fff); flex-wrap:wrap; }
.modl-nav-btn { flex:1; min-width:140px; background:transparent; border:none; border-right:1px solid var(--border,#DDD5C8); padding:14px 12px; cursor:pointer; text-align:center; font-size:0.8125rem; font-weight:600; color:var(--mid,#6B6358); transition:background .15s,color .15s; display:flex; flex-direction:column; align-items:center; gap:6px; letter-spacing:.02em; }
.modl-nav-btn:last-child { border-right:none; }
.modl-nav-btn:hover { background:#F4F0EA; color:var(--navy,#0E1F3B); }
.modl-nav-btn.active { background:var(--navy,#0E1F3B); color:#F5F0E8; }
.modl-nav-btn.active .modl-nav-icon { color:var(--gold,#C49A2A); }
.modl-nav-icon { font-size:1.25rem; line-height:1; }

/* Panel kategorii */
.modl-panel { display:none; }
.modl-panel.active { display:block; }

/* Layout 2-kolumnowy */
.modl-layout { display:grid; grid-template-columns:260px 1fr; gap:1.5rem; align-items:start; }

/* Lista modlitw (sidebar) */
.modl-list { background:var(--paper,#fff); border:1px solid var(--border,#DDD5C8); border-radius:2px; overflow:hidden; position:sticky; top:80px; }
.modl-list-item { display:block; width:100%; background:transparent; border:none; border-bottom:1px solid var(--border,#DDD5C8); padding:12px 16px; cursor:pointer; text-align:left; font-size:0.8438rem; color:var(--navy,#0E1F3B); transition:background .15s,color .15s; line-height:1.4; font-family:inherit; }
.modl-list-item:last-child { border-bottom:none; }
.modl-list-item:hover { background:#F4F0EA; }
.modl-list-item.active { background:var(--gold-pale,#FBF5E6); color:var(--gold-dark,#9B7820); font-weight:700; border-left:3px solid var(--gold,#C49A2A); }

/* Treść modlitwy */
.modl-text { display:none; }
.modl-text.active { display:block; }
.modl-title { font-family:'Merriweather',serif; font-size:1.25rem; font-weight:700; color:var(--navy,#0E1F3B); margin-bottom:1.5rem; padding-bottom:1rem; border-bottom:2px solid var(--gold,#C49A2A); line-height:1.3; }
.modl-body { font-size:0.9688rem; line-height:2; color:#1E1A14; font-family:'Merriweather',serif; white-space:pre-line; background:var(--paper,#fff); border:1px solid var(--border,#DDD5C8); border-radius:2px; padding:2rem; border-left:4px solid var(--gold,#C49A2A); }
.modl-info { margin-top:1.25rem; font-size:0.7812rem; color:var(--mid,#6B6358); font-style:italic; background:#F4F0EA; padding:.75rem 1rem; border-radius:2px; line-height:1.6; }

/* Źródło */
.modl-source { margin-top:2.5rem; padding:1.25rem 1.5rem; background:var(--paper,#fff); border:1px solid var(--border,#DDD5C8); border-radius:2px; border-left:3px solid var(--gold,#C49A2A); }
.modl-source p { font-size:0.8125rem; color:var(--mid,#6B6358); line-height:1.7; margin-bottom:.5rem; }

@media (max-width:800px) {
  .modl-layout { grid-template-columns:1fr; }
  .modl-list { position:static; margin-bottom:1rem; }
  .modl-nav-btn { min-width:100px; font-size:0.75rem; padding:12px 8px; }
}
@media (max-width:500px) {
  .modl-nav { flex-direction:column; }
  .modl-nav-btn { border-right:none; border-bottom:1px solid var(--border,#DDD5C8); flex-direction:row; justify-content:flex-start; gap:10px; }
  .modl-nav-btn:last-child { border-bottom:none; }
}

/* ── PRZYCISK STATUSU PUSH w stopce ── */
.push-status-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: transparent; border: 1px solid rgba(245,240,232,.2);
  color: rgba(245,240,232,.55); padding: 6px 14px; font-size: 12.5px;
  border-radius: 20px; cursor: pointer; transition: all .2s; margin-top: 10px;
  font-family: inherit;
}
.push-status-btn:hover { border-color: rgba(245,240,232,.5); color: #F5F0E8; }
.push-status-btn.active { border-color: #C49A2A; color: #C49A2A; }
.push-status-btn:disabled { opacity: .4; cursor: default; }


/* ── ZAKŁADKI MSZY (3 kościoły) ── */
.msze-tabs-wrap { background:var(--navy); border-bottom:3px solid var(--gold); }
.msze-tabs-wrap .wrap { padding:0 1.5rem; }
.msze-church-tabs { display:flex; gap:0; border-bottom:none; }
.msze-church-tab { flex:1; background:transparent; border:none; border-bottom:3px solid transparent; padding:14px 12px; cursor:pointer; text-align:center; transition:all .15s; font-family:inherit; margin-bottom:-3px; }
.msze-church-tab:hover { background:rgba(255,255,255,.05); }
.msze-church-tab.active { border-bottom-color:var(--gold); background:rgba(196,154,42,.08); }
.msze-church-tab-name { display:block; font-size:0.8438rem; font-weight:700; color:#F5F0E8; margin-bottom:2px; }
.msze-church-tab-sub { display:block; font-size:0.6562rem; color:rgba(245,240,232,.45); letter-spacing:.04em; }
.msze-church-panel { display:none; padding:1.25rem 0; }
.msze-church-panel.active { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:0; }
.msze-church-box { padding:16px 20px; border-right:1px solid rgba(255,255,255,.08); }
.msze-church-box:last-child { border-right:none; }
.msze-church-box-label { font-size:0.5938rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700; color:rgba(245,240,232,.45); margin-bottom:7px; }
.msze-church-box-time { font-size:1rem; font-weight:700; color:#F5F0E8; font-family:'Merriweather',serif; }
.msze-church-box-note { font-size:0.6875rem; color:rgba(245,240,232,.4); margin-top:3px; }

/* ── NEKROLOGI i ZAPOWIEDZI na stronie głównej ── */
.home-widgets { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:2.5rem; }
.home-widget { background:var(--paper); border:1px solid var(--border); border-radius:2px; border-top:3px solid var(--gold); overflow:hidden; }
.home-widget-head { padding:14px 18px; border-bottom:1px solid var(--border); display:flex; justify-content:space-between; align-items:center; }
.home-widget-head h3 { font-family:'Merriweather',serif; font-size:.95rem; font-weight:700; color:var(--navy); }
.home-widget-head a { font-size:0.75rem; font-weight:700; color:var(--gold-dark); }
.home-widget-body { padding:0 18px; }
.nekr-widget-item { padding:10px 0; border-bottom:1px solid var(--border); }
.nekr-widget-item:last-child { border-bottom:none; }
.nekr-widget-name { font-size:0.875rem; font-weight:700; color:var(--navy); margin-bottom:2px; }
.nekr-widget-meta { font-size:0.75rem; color:var(--mid); }
.zapow-widget-item { padding:10px 0; border-bottom:1px solid var(--border); display:flex; align-items:baseline; gap:10px; }
.zapow-widget-item:last-child { border-bottom:none; }
.zapow-widget-nr { background:var(--navy); color:var(--gold); font-size:0.625rem; font-weight:700; padding:2px 7px; border-radius:10px; flex-shrink:0; }
.zapow-widget-names { font-size:0.8438rem; color:var(--navy); font-weight:600; }
.zapow-widget-date { font-size:0.7188rem; color:var(--mid); display:block; margin-top:2px; }
.widget-empty { padding:14px 0; font-size:0.8438rem; color:var(--mid); font-style:italic; }

@media(max-width:700px) {
  .msze-church-tabs { flex-direction:column; }
  .msze-church-tab { border-bottom:1px solid rgba(255,255,255,.08); border-left:3px solid transparent; text-align:left; display:flex; align-items:center; gap:12px; }
  .msze-church-tab.active { border-left-color:var(--gold); border-bottom-color:rgba(255,255,255,.08); }
  .home-widgets { grid-template-columns:1fr; }
}

/* ── PRZYCISK INSTALACJI PWA ── */
.pwa-install-btn {
  display:inline-flex; align-items:center; gap:6px;
  background:var(--gold); color:#0E1F3B;
  border:none; padding:8px 18px; font-size:0.8125rem; font-weight:700;
  border-radius:2px; cursor:pointer; margin-top:10px;
  transition:background .2s; font-family:inherit; letter-spacing:.03em;
}
.pwa-install-btn:hover { background:#D4A830; }

/* ── MODAL INSTALACJI PWA ── */
.pwa-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:9998; display:flex; align-items:center; justify-content:center; padding:1.5rem; }
.pwa-modal-box { background:#fff; border-radius:4px; padding:2rem; max-width:360px; width:100%; position:relative; text-align:center; box-shadow:0 20px 60px rgba(0,0,0,.3); }
.pwa-modal-close { position:absolute; top:12px; right:14px; background:none; border:none; font-size:1.25rem; cursor:pointer; color:#6B6358; line-height:1; }
.pwa-modal-icon { font-size:2.5rem; margin-bottom:.75rem; }
.pwa-modal-title { font-family:'Merriweather',serif; font-size:1.1rem; font-weight:700; color:#0E1F3B; margin-bottom:.75rem; }
.pwa-modal-text { font-size:0.8438rem; color:#6B6358; margin-bottom:.5rem; text-align:left; }
.pwa-modal-steps { list-style:decimal; padding-left:1.25rem; margin-bottom:1rem; text-align:left; }
.pwa-modal-steps li { font-size:0.8438rem; color:#1E1A14; padding:4px 0; line-height:1.5; }
.pwa-modal-note { font-size:0.75rem; color:#9B7820; margin-bottom:1.25rem; font-style:italic; }
.pwa-modal-btn { background:#C49A2A; color:#0E1F3B; border:none; padding:11px 28px; font-size:0.8438rem; font-weight:700; border-radius:2px; cursor:pointer; width:100%; transition:background .2s; }
.pwa-modal-btn:hover { background:#D4A830; }

/* ── PRZYCISK INSTALACJI W NAV ── */
.nav-install-btn {
  background:var(--gold); color:#0E1F3B;
  border:none; padding:7px 14px; font-size:0.75rem; font-weight:700;
  border-radius:2px; cursor:pointer; transition:background .2s;
  font-family:inherit; letter-spacing:.03em; margin-left:8px;
  display:flex; align-items:center; gap:5px; white-space:nowrap;
}
.nav-install-btn:hover { background:#D4A830; }

@media(max-width:900px) {
  .nav-install-btn { display:none; }
}

/* ══════════════════════════════════════
   BANNER PUSH — pełna szerokość
══════════════════════════════════════ */
#push-banner {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: rgba(8, 16, 36, 0.96);
  border-top: 1px solid rgba(196,154,42,.35);
  z-index: 9999;
  box-shadow: 0 -4px 32px rgba(0,0,0,.5);
  animation: slideUp .3s ease;
  backdrop-filter: blur(10px);
}
@keyframes slideUp {
  from { transform: translateY(100%); }
  to   { transform: translateY(0); }
}
.push-banner-inner {
  max-width: 100%;
  margin: 0 auto;
  padding: 14px 2rem;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: nowrap;
}
.push-bell { font-size: 22px; flex-shrink: 0; }
.push-text { flex: 1; display: flex; flex-direction: column; gap: 1px; }
.push-text strong { font-size: 14px; font-weight: 700; color: #ffffff; }
.push-text span { font-size: 13px; color: rgba(255,255,255,.55); }
.push-btns { display: flex; gap: 10px; flex-shrink: 0; }
.push-btn-yes {
  background: #C49A2A; color: #0E1F3B;
  border: none; padding: 9px 22px;
  font-size: 13px; font-weight: 700;
  border-radius: 2px; cursor: pointer;
  transition: background .2s; white-space: nowrap;
  letter-spacing: .03em;
}
.push-btn-yes:hover { background: #D4A830; }
.push-btn-no {
  background: transparent; color: rgba(255,255,255,.55);
  border: 1px solid rgba(255,255,255,.2);
  padding: 9px 16px; font-size: 13px;
  border-radius: 2px; cursor: pointer;
  transition: all .2s; white-space: nowrap;
}
.push-btn-no:hover { border-color: rgba(255,255,255,.5); color: #fff; }

/* Toast */
.push-toast {
  position: fixed; bottom: 24px; left: 50%;
  transform: translateX(-50%);
  background: #2E7D32; color: #fff;
  padding: 12px 24px; border-radius: 4px;
  font-size: 14px; font-weight: 700;
  z-index: 10000; box-shadow: 0 4px 16px rgba(0,0,0,.3);
  animation: fadeInOut 3s ease forwards;
}
@keyframes fadeInOut {
  0%   { opacity:0; transform:translateX(-50%) translateY(10px); }
  15%  { opacity:1; transform:translateX(-50%) translateY(0); }
  75%  { opacity:1; }
  100% { opacity:0; }
}

/* Modal PWA */
.pwa-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.65); z-index:9998; display:flex; align-items:center; justify-content:center; padding:1.5rem; }
.pwa-modal-box { background:#fff; border-radius:4px; padding:2rem; max-width:360px; width:100%; position:relative; text-align:center; box-shadow:0 20px 60px rgba(0,0,0,.3); }
.pwa-modal-close { position:absolute; top:12px; right:14px; background:none; border:none; font-size:1.25rem; cursor:pointer; color:#6B6358; line-height:1; }
.pwa-modal-icon { font-size:2.5rem; margin-bottom:.75rem; }
.pwa-modal-title { font-family:'Merriweather',serif; font-size:1.1rem; font-weight:700; color:#0E1F3B; margin-bottom:.75rem; }
.pwa-modal-text { font-size:0.8438rem; color:#6B6358; margin-bottom:.5rem; text-align:left; }
.pwa-modal-steps { list-style:decimal; padding-left:1.25rem; margin-bottom:1rem; text-align:left; }
.pwa-modal-steps li { font-size:0.8438rem; color:#1E1A14; padding:4px 0; line-height:1.5; }
.pwa-modal-note { font-size:0.75rem; color:#9B7820; margin-bottom:1.25rem; font-style:italic; }
.pwa-modal-btn { background:#C49A2A; color:#0E1F3B; border:none; padding:11px 28px; font-size:0.8438rem; font-weight:700; border-radius:2px; cursor:pointer; width:100%; transition:background .2s; }
.pwa-modal-btn:hover { background:#D4A830; }

@media(max-width:600px) {
  .push-banner-inner { padding:12px 1rem; flex-wrap:wrap; }
  .push-btns { width:100%; }
  .push-btn-yes, .push-btn-no { flex:1; text-align:center; }
}

/* ══════════════════════════════════════
   INTENCJE MSZALNE — nowy układ
══════════════════════════════════════ */
.int-layout { display:grid; grid-template-columns:260px 1fr; gap:2rem; align-items:start; }

/* Sidebar */
.int-sidebar { position:sticky; top:80px; }
.int-side-widget { background:var(--paper,#fff); border:1px solid var(--border,#DDD5C8); border-radius:2px; overflow:hidden; }
.int-side-head { background:var(--navy,#0E1F3B); color:#F5F0E8; padding:11px 16px; font-size:0.7188rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; border-bottom:2px solid var(--gold,#C49A2A); }
.int-side-body { padding:1rem 16px; }
.int-side-body.p0 { padding:0; }
.int-side-parish { font-family:'Merriweather',serif; font-size:.9rem; font-weight:700; color:var(--navy,#0E1F3B); margin-bottom:.5rem; line-height:1.3; }
.int-side-note { font-size:0.7812rem; color:var(--mid,#6B6358); line-height:1.6; margin-bottom:.75rem; }
.int-side-row { display:flex; gap:10px; font-size:0.8125rem; color:var(--mid,#6B6358); padding:6px 0; border-top:1px solid var(--border,#DDD5C8); align-items:flex-start; }
.int-side-row a { color:var(--gold-dark,#9B7820); }

/* Lista tygodni */
.int-week-item { display:flex; align-items:center; gap:10px; padding:10px 14px; border-bottom:1px solid var(--border,#DDD5C8); text-decoration:none; transition:background .12s; }
.int-week-item:last-child { border-bottom:none; }
.int-week-item:hover { background:#F4F0EA; }
.int-week-item.active { background:var(--gold-pale,#FBF5E6); }
.int-week-dot { width:8px; height:8px; border-radius:50%; background:#DDD5C8; flex-shrink:0; }
.int-week-dot.active { background:var(--gold,#C49A2A); }
.int-week-label { font-size:0.8125rem; color:var(--navy,#0E1F3B); flex:1; line-height:1.3; }
.int-week-item.active .int-week-label { font-weight:700; color:var(--gold-dark,#9B7820); }
.int-week-count { font-size:0.6875rem; background:var(--light,#EDE8DF); color:var(--mid,#6B6358); padding:2px 7px; border-radius:10px; flex-shrink:0; }
.int-week-item.active .int-week-count { background:var(--gold,#C49A2A); color:#0E1F3B; font-weight:700; }

/* Nagłówek tygodnia */
.int-week-header { background:var(--paper,#fff); border:1px solid var(--border,#DDD5C8); border-radius:2px; padding:1.25rem 1.5rem; margin-bottom:1rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; }
.int-week-title { font-family:'Merriweather',serif; font-size:1.3rem; font-weight:700; color:var(--navy,#0E1F3B); }
.int-current-badge { display:inline-block; background:var(--gold,#C49A2A); color:#0E1F3B; font-size:0.6875rem; font-weight:700; padding:3px 10px; border-radius:2px; letter-spacing:.06em; margin-top:5px; }
.int-week-nav { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.int-nav-btn { background:var(--paper,#fff); border:1px solid var(--border,#DDD5C8); color:var(--navy,#0E1F3B); padding:7px 14px; font-size:0.8125rem; font-weight:600; border-radius:2px; text-decoration:none; transition:border-color .15s,background .15s; }
.int-nav-btn:hover { border-color:var(--gold,#C49A2A); background:#F4F0EA; }
.int-nav-today { background:var(--navy,#0E1F3B); color:#F5F0E8; padding:7px 14px; font-size:0.8125rem; font-weight:600; border-radius:2px; text-decoration:none; transition:background .15s; }
.int-nav-today:hover { background:var(--navy-mid,#162D54); }
.int-nav-current { font-size:0.7812rem; color:var(--mid,#6B6358); font-style:italic; }

/* Info box */
.int-info-box { background:#F4F0EA; border-left:3px solid var(--gold,#C49A2A); padding:.85rem 1.1rem; font-size:0.8438rem; color:var(--mid,#6B6358); line-height:1.65; margin-bottom:1.5rem; border-radius:0 2px 2px 0; }
.int-info-box strong { color:var(--navy,#0E1F3B); }

/* Bloki dni */
.int-day-block { background:var(--paper,#fff); border:1px solid var(--border,#DDD5C8); border-radius:2px; margin-bottom:1.25rem; overflow:hidden; }
.int-day-header { display:flex; align-items:center; gap:1rem; padding:1rem 1.25rem; border-bottom:1px solid var(--border,#DDD5C8); background:#FAFAF8; }
.int-day-num { background:var(--navy,#0E1F3B); color:#F5F0E8; width:52px; height:52px; border-radius:2px; display:flex; flex-direction:column; align-items:center; justify-content:center; flex-shrink:0; }
.int-day-d { font-family:'Merriweather',serif; font-size:1.35rem; font-weight:700; line-height:1; color:var(--gold,#C49A2A); }
.int-day-m { font-size:0.5938rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(245,240,232,.55); margin-top:1px; }
.int-day-name { font-family:'Merriweather',serif; font-size:1.05rem; font-weight:700; color:var(--navy,#0E1F3B); }
.int-day-count { font-size:0.7188rem; color:var(--gold-dark,#9B7820); font-weight:700; letter-spacing:.06em; text-transform:uppercase; margin-top:2px; }
.int-day-rows { padding:.25rem 0; }
.int-row-item { display:flex; align-items:baseline; gap:.75rem; padding:.85rem 1.25rem; border-bottom:1px solid var(--border,#DDD5C8); }
.int-row-item:last-child { border-bottom:none; }
.int-row-arrow { color:var(--gold,#C49A2A); font-size:1rem; flex-shrink:0; }
.int-row-time { font-family:'Merriweather',serif; font-weight:700; color:var(--gold-dark,#9B7820); font-size:1rem; flex-shrink:0; min-width:50px; }
.int-row-text { font-size:0.875rem; color:#1E1A14; line-height:1.55; }

@media(max-width:900px) {
  .int-layout { grid-template-columns:1fr; }
  .int-sidebar { position:static; }
  .int-week-header { flex-direction:column; align-items:flex-start; }
}
@media(max-width:600px) {
  .int-day-header { padding:.75rem 1rem; }
  .int-row-item { padding:.75rem 1rem; gap:.5rem; }
}

/* ══════════════════════════════════════
   TRYB JASNY / CIEMNY + ROZMIAR TEKSTU
══════════════════════════════════════ */

/* Rozmiar tekstu */
html.font-sm  { font-size: 14px; }
html.font-md  { font-size: 16px; }
html.font-lg  { font-size: 18px; }
html.font-xl  { font-size: 20px; }

/* Pasek dostępności w topbar */
.a11y-bar { display:flex; align-items:center; gap:6px; }
.a11y-btn {
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:3px;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.15);
  color:rgba(245,240,232,.7); font-size:0.75rem; font-weight:700;
  cursor:pointer; transition:all .15s; font-family:inherit; line-height:1;
  text-decoration:none;
}
.a11y-btn:hover, .a11y-btn.active { background:var(--gold,#C49A2A); color:#0E1F3B; border-color:var(--gold,#C49A2A); }
.a11y-sep { width:1px; height:18px; background:rgba(255,255,255,.15); margin:0 2px; }

/* Przełącznik dark mode */
.dark-toggle {
  display:inline-flex; align-items:center; gap:6px;
  cursor:pointer; font-size:0.75rem; color:rgba(245,240,232,.6);
  background:none; border:none; padding:0; font-family:inherit;
}
.dark-toggle-track {
  width:36px; height:20px; border-radius:10px; background:rgba(255,255,255,.15);
  position:relative; transition:background .2s; flex-shrink:0;
  border:1px solid rgba(255,255,255,.2);
}
.dark-toggle-thumb {
  position:absolute; top:2px; left:2px; width:14px; height:14px;
  border-radius:50%; background:#F5F0E8; transition:transform .2s;
}
.dark-toggle.on .dark-toggle-track { background:var(--gold,#C49A2A); }
.dark-toggle.on .dark-toggle-thumb { transform:translateX(16px); background:#0E1F3B; }

/* ── DARK MODE ─────────────────────── */
html.dark-mode {
  --navy:      #1a2f52;
  --navy-mid:  #1e3660;
  --gold:      #D4A830;
  --gold-pale: #2a2010;
  --gold-dark: #D4A830;
  --paper:     #1e1e2e;
  --border:    #2e2e42;
  --mid:       #9090a8;
  --light:     #252535;
  --bg-main:   #13131f;
}

html.dark-mode body { background:#13131f; color:#e0e0f0; }
html.dark-mode .card,
html.dark-mode .news-card,
html.dark-mode .side-widget,
html.dark-mode .int-side-widget,
html.dark-mode .int-day-block,
html.dark-mode .int-week-header,
html.dark-mode .parafia-side-widget,
html.dark-mode .parafia-section,
html.dark-mode .home-widget,
html.dark-mode .acard { background:#1e1e2e; border-color:#2e2e42; }

html.dark-mode .tabs,
html.dark-mode .int-side-body,
html.dark-mode .int-week-item:hover { background:#252535; }

html.dark-mode .int-day-header,
html.dark-mode .int-section-header,
html.dark-mode .parafia-section-header { background:#1a1a2a; }

html.dark-mode .ogl-text,
html.dark-mode .int-row-text,
html.dark-mode .msze-who,
html.dark-mode .news-card-title { color:#e0e0f0; }

html.dark-mode .news-card { background:#1e1e2e; }
html.dark-mode .news-card:hover { box-shadow:0 10px 32px rgba(0,0,0,.4); }
html.dark-mode .news-card-img-placeholder { background:#252540; }

html.dark-mode .tab-btn.active { color:#e0e0f0; }
html.dark-mode .int-info-box { background:#1a2010; }

html.dark-mode .page-header { background:#1a2f52; }

html.dark-mode .kontakt-section { background:#181828; border-color:#2e2e42; }
html.dark-mode .church-grid { background:#1e1e2e; border-color:#2e2e42; }
html.dark-mode .church-info,
html.dark-mode .church-hours { background:#252535; }

html.dark-mode footer, html.dark-mode .footer { background:#0d0d1a; }

html.dark-mode .ogl-item,
html.dark-mode .int-row-item,
html.dark-mode .side-row,
html.dark-mode .parafia-contact-row { border-color:#2e2e42; }

html.dark-mode .msze-strip { background:#0d1830; }
html.dark-mode .msze-tabs-wrap { background:#0d1830; }

html.dark-mode .int-week-item { border-color:#2e2e42; }
html.dark-mode .int-week-item.active { background:#2a2010; }
html.dark-mode .parafia-side-link.active { background:#2a2010; }

html.dark-mode input,
html.dark-mode textarea,
html.dark-mode select { background:#252535; border-color:#3e3e52; color:#e0e0f0; }

html.dark-mode .btn-outline { border-color:rgba(245,240,232,.2); }

/* Płynne przejście */
body, .card, .news-card, .side-widget, .int-day-block, .page-header,
.kontakt-section, .church-grid, .footer, .nav, .topbar {
  transition: background-color .25s, border-color .25s, color .2s;
}

/* ══════════════════════════════════════
   CZYTNIK TEKSTU (TTS)
══════════════════════════════════════ */
.tts-btn {
  display:inline-flex; align-items:center; gap:5px;
  background:transparent; border:1px solid rgba(196,154,42,.4);
  color:var(--gold-dark,#9B7820); padding:4px 10px;
  font-size:0.75rem; font-weight:600; border-radius:20px;
  cursor:pointer; transition:all .15s; font-family:inherit;
  margin-top:6px; white-space:nowrap;
}
.tts-btn:hover { background:var(--gold-pale,#FBF5E6); border-color:var(--gold,#C49A2A); }
.tts-btn.tts-playing { background:var(--gold,#C49A2A); color:#0E1F3B; border-color:var(--gold,#C49A2A); }

.tts-btn-global {
  font-size:0.8125rem; padding:7px 16px; margin:0;
  border-radius:2px;
}

/* Przycisk w pasku dostępności */
.a11y-btn.tts-a11y {
  width:auto; padding:0 10px; font-size:0.7188rem; gap:4px;
}

/* Dark mode dla TTS */
html.dark-mode .tts-btn { border-color:rgba(212,168,48,.3); color:#D4A830; }
html.dark-mode .tts-btn:hover { background:#2a2010; }

/* ══════════════════════════════════════
   SEKCJA VATICAN NEWS
══════════════════════════════════════ */
.vatican-section { background:#F0EDE8; border-top:1px solid var(--border,#DDD5C8); padding:3.5rem 0; }

.vatican-header { text-align:center; margin-bottom:2.5rem; }
.vatican-eyebrow { font-size:0.75rem; letter-spacing:.2em; color:var(--gold-dark,#9B7820); font-weight:700; margin-bottom:.75rem; }
.vatican-title { font-family:'Merriweather',serif; font-size:clamp(1.6rem,3vw,2.4rem); font-weight:700; color:var(--navy,#0E1F3B); margin-bottom:.5rem; }
.vatican-sub { font-size:0.875rem; color:var(--mid,#6B6358); font-style:italic; margin-bottom:.75rem; }
.vatican-cross { font-size:1.25rem; color:var(--gold,#C49A2A); }

.vatican-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; margin-bottom:2rem; }

.vatican-card { background:#fff; border:1px solid var(--border,#DDD5C8); border-radius:2px; overflow:hidden; text-decoration:none; display:flex; flex-direction:column; transition:box-shadow .2s,transform .2s; }
.vatican-card:hover { box-shadow:0 8px 28px rgba(0,0,0,.12); transform:translateY(-3px); }

.vatican-card-img { height:180px; background-size:cover; background-position:center; background-color:var(--navy,#0E1F3B); }
.vatican-card-img-empty { background:linear-gradient(135deg,#0E1F3B,#162D54); display:flex; align-items:center; justify-content:center; }
.vatican-card-img-empty::after { content:'✝'; font-size:2.5rem; color:rgba(255,255,255,.1); }

.vatican-card-body { padding:1.1rem; flex:1; display:flex; flex-direction:column; }
.vatican-card-date { font-size:0.6562rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-dark,#9B7820); font-weight:700; margin-bottom:.5rem; }
.vatican-card-title { font-family:'Merriweather',serif; font-size:.92rem; font-weight:700; color:var(--navy,#0E1F3B); line-height:1.4; margin-bottom:.6rem; flex:1; }
.vatican-card:hover .vatican-card-title { color:var(--gold-dark,#9B7820); }
.vatican-card-desc { font-size:0.7812rem; color:var(--mid,#6B6358); line-height:1.6; margin-bottom:.75rem; }
.vatican-card-link { font-size:0.75rem; font-weight:700; color:var(--gold-dark,#9B7820); letter-spacing:.04em; }

.vatican-more { text-align:center; }
.vatican-more-btn { display:inline-flex; align-items:center; gap:8px; border:1px solid var(--navy,#0E1F3B); color:var(--navy,#0E1F3B); padding:12px 28px; font-size:0.8438rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; text-decoration:none; border-radius:2px; transition:all .2s; font-family:'Lato',sans-serif; }
.vatican-more-btn:hover { background:var(--navy,#0E1F3B); color:#F5F0E8; }

/* Dark mode */
html.dark-mode .vatican-section { background:#16162a; }
html.dark-mode .vatican-card { background:#1e1e2e; border-color:#2e2e42; }
html.dark-mode .vatican-card-title { color:#e0e0f0; }
html.dark-mode .vatican-more-btn { border-color:#e0e0f0; color:#e0e0f0; }
html.dark-mode .vatican-more-btn:hover { background:#e0e0f0; color:#13131f; }

@media(max-width:900px) { .vatican-grid { grid-template-columns:1fr 1fr; } }
@media(max-width:600px) { .vatican-grid { grid-template-columns:1fr; } .vatican-card-img { height:200px; } }

/* ── INTENCJE NA STRONIE GŁÓWNEJ — filtry i kościół ── */
.int-kos-filter { display:flex; gap:6px; flex-wrap:wrap; padding:10px 0 12px; border-bottom:1px solid var(--border,#DDD5C8); margin-bottom:4px; }
.int-kos-btn { padding:4px 12px; font-size:0.75rem; font-weight:600; border-radius:20px; border:1px solid var(--border,#DDD5C8); background:#fff; color:var(--mid,#6B6358); cursor:pointer; transition:all .15s; font-family:inherit; }
.int-kos-btn:hover { border-color:var(--gold,#C49A2A); color:var(--gold-dark,#9B7820); }
.int-kos-btn.active { background:var(--gold,#C49A2A); color:#0E1F3B; border-color:var(--gold,#C49A2A); font-weight:700; }

.int-date-dow { font-size:0.625rem; font-weight:700; color:var(--navy,#0E1F3B); letter-spacing:.06em; text-transform:uppercase; margin-right:6px; background:var(--light,#EDE8DF); padding:1px 6px; border-radius:2px; }

.int-kosciol { display:block; font-size:0.6875rem; color:var(--mid,#6B6358); font-style:italic; margin-top:2px; }

html.dark-mode .int-kos-btn { background:#1e1e2e; border-color:#2e2e42; color:#9090a8; }
html.dark-mode .int-kos-btn.active { background:var(--gold,#C49A2A); color:#0E1F3B; }
html.dark-mode .int-date-dow { background:#252535; color:#e0e0f0; }

/* ── WSPÓLNY FILTR KOŚCIOŁA ── */
.parish-filter { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:1.5rem; padding:12px 16px; background:var(--paper,#fff); border:1px solid var(--border,#DDD5C8); border-radius:2px; }
.parish-filter-label { font-size:0.6875rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--mid,#6B6358); flex-shrink:0; }
.parish-filter-btn { padding:5px 14px; font-size:0.8125rem; font-weight:600; border-radius:20px; border:1px solid var(--border,#DDD5C8); background:#fff; color:var(--mid,#6B6358); cursor:pointer; transition:all .15s; font-family:inherit; }
.parish-filter-btn:hover { border-color:var(--gold,#C49A2A); color:var(--gold-dark,#9B7820); }
.parish-filter-btn.active { background:var(--gold,#C49A2A); color:#0E1F3B; border-color:var(--gold,#C49A2A); font-weight:700; }
html.dark-mode .parish-filter { background:#1e1e2e; border-color:#2e2e42; }
html.dark-mode .parish-filter-btn { background:#252535; border-color:#2e2e42; color:#9090a8; }
html.dark-mode .parish-filter-btn.active { background:var(--gold,#C49A2A); color:#0E1F3B; }

/* ── INTENCJE — kościół pod intencją ── */
.int-text-wrap { display:flex; flex-direction:column; flex:1; }
.int-row-kosciol { font-size:0.6875rem; color:var(--mid,#6B6358); font-style:italic; margin-top:2px; }

/* ── FORMULARZ KONTAKTOWY w sekcji kościołów ── */
.church-contact-form { margin-top:1rem; padding:1rem; background:#F9F7F4; border-radius:2px; border-top:1px solid var(--border); }
.church-contact-form-title { font-size:0.6875rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--gold-dark); margin-bottom:.75rem; }
.church-contact-form input,
.church-contact-form textarea { background:#fff; transition:border-color .15s; }
.church-contact-form input:focus,
.church-contact-form textarea:focus { outline:none; border-color:var(--gold) !important; }
html.dark-mode .church-contact-form { background:#1a1a2a; }
html.dark-mode .church-contact-form input,
html.dark-mode .church-contact-form textarea { background:#252535; border-color:#3e3e52 !important; color:#e0e0f0; }

/* ── DARK MODE — uzupełnienia ─────────────────────────── */
html.dark-mode .sakr-section p,
html.dark-mode .sakr-section h2,
html.dark-mode .historia-section p,
html.dark-mode .historia-section h2 { color:#e0e0f0; }

html.dark-mode .card { background:#1e1e2e; border-color:#2e2e42; color:#e0e0f0; }
html.dark-mode .card-pad { color:#e0e0f0; }

html.dark-mode .side-row .val { color:#e0e0f0; }
html.dark-mode .side-row .lbl { color:#9090a8; }
html.dark-mode .side-widget-body { color:#e0e0f0; }
html.dark-mode .side-widget { background:#1e1e2e; border-color:#2e2e42; }

html.dark-mode .sakr-section { border-color:#2e2e42; }
html.dark-mode .historia-section { border-color:#2e2e42; }

html.dark-mode .ogl-item { color:#e0e0f0; }
html.dark-mode .ogl-text { color:#e0e0f0; }
html.dark-mode .nekr-full .name,
html.dark-mode .nekr-full .age,
html.dark-mode .nekr-full .tresc { color:#e0e0f0; }

html.dark-mode .zapow-names { color:#e0e0f0; }
html.dark-mode .zapow-date { color:#9090a8; }

html.dark-mode .news-card-excerpt { color:#9090a8; }
html.dark-mode .news-card-date { color:var(--gold); }

html.dark-mode .modl-nav { background:#1e1e2e; border-color:#2e2e42; }
html.dark-mode .modl-nav-btn { color:#9090a8; }
html.dark-mode .modl-nav-btn.active { color:#e0e0f0; background:#252535; }
html.dark-mode .modl-list-item { color:#9090a8; border-color:#2e2e42; }
html.dark-mode .modl-list-item.active { color:#e0e0f0; background:#252535; }
html.dark-mode .modl-title { color:#e0e0f0; }
html.dark-mode .modl-body { color:#c0c0d8; }
html.dark-mode .modl-info { color:#9090a8; }
html.dark-mode .modl-content { background:#1e1e2e; border-color:#2e2e42; }
html.dark-mode .modl-list { background:#1e1e2e; border-color:#2e2e42; }
html.dark-mode .modl-source { color:#9090a8; }

html.dark-mode .gal-item { background:#1e1e2e; border-color:#2e2e42; }
html.dark-mode .gal-caption { color:#9090a8; background:#252535; }

html.dark-mode p { color:#c0c0d8; }
html.dark-mode h1,
html.dark-mode h2,
html.dark-mode h3 { color:#e0e0f0; }

html.dark-mode .section-label-text { color:var(--gold); }

/* Inline stałe kolory w PHP */
html.dark-mode [style*="color:#1E1A14"],
html.dark-mode [style*="color:#2A2520"],
html.dark-mode [style*="color:#1e1a14"],
html.dark-mode [style*="color:#2a2520"] { color:#e0e0f0 !important; }

html.dark-mode [style*="color:var(--mid)"],
html.dark-mode .mid { color:#9090a8 !important; }

/* ── DARK MODE — Standardy ochrony dzieci ────────────── */
html.dark-mode .sod-term-key { color:#e0e0f0; }
html.dark-mode .sod-term-val { color:#c0c0d8; }
html.dark-mode .sod-term:nth-child(even) { background:#252535; }
html.dark-mode .sod-terms { border-color:#2e2e42; }
html.dark-mode .sod-term { border-color:#2e2e42; }

html.dark-mode .sod-standard-title { color:#e0e0f0; }
html.dark-mode .sod-standard-subtitle { color:var(--gold); }
html.dark-mode .sod-standard-header { border-color:#2e2e42; }

html.dark-mode .sod-h3 { color:#e0e0f0; }
html.dark-mode .sod-h3::before { background:var(--gold); }

html.dark-mode .sod-prose,
html.dark-mode .sod-prose p { color:#c0c0d8; }

html.dark-mode .sod-list li { color:#c0c0d8; }
html.dark-mode .sod-list li strong { color:#e0e0f0; }

html.dark-mode .sod-nav { background:#1e1e2e; border-color:#2e2e42; }
html.dark-mode .sod-nav a { color:#9090a8; border-color:#2e2e42; }
html.dark-mode .sod-nav a:hover,
html.dark-mode .sod-nav a.active { background:#252535; color:#e0e0f0; }
html.dark-mode .sod-nav-title { background:#0d0d1a; }

html.dark-mode .sod-badge { background:#252535; }
html.dark-mode .sod-standard { border-color:#2e2e42; }
html.dark-mode .sod-divider { color:rgba(196,154,42,.3); }
html.dark-mode .sod-divider::before,
html.dark-mode .sod-divider::after { background:rgba(196,154,42,.15); }

html.dark-mode .sod-note { background:rgba(196,154,42,.08); color:#c0c0d8; }
html.dark-mode .sod-note strong { color:#e0e0f0; }

html.dark-mode .sod-col-box.forbidden { background:rgba(192,57,43,.08); border-color:rgba(192,57,43,.2); }
html.dark-mode .sod-col-box.allowed  { background:rgba(39,174,96,.06); border-color:rgba(39,174,96,.15); }
html.dark-mode .sod-col-list li { color:#c0c0d8; }
html.dark-mode .sod-col-title { opacity:.85; }

html.dark-mode .sod-phone-card { background:#1e1e2e; border-color:#2e2e42; }
html.dark-mode .sod-phone-num { color:#e0e0f0; }
html.dark-mode .sod-phone-card.emergency .sod-phone-num { color:#e88a7a; }
html.dark-mode .sod-phone-desc { color:#9090a8; }

html.dark-mode .sod-decree { background:#1a2f52; }
html.dark-mode .sod-decree-text { color:rgba(224,224,240,.85); }

/* ── DARK MODE — Intencje mszalne ────────────────────── */
html.dark-mode .int-layout { color:#e0e0f0; }

html.dark-mode .int-side-widget { background:#1e1e2e; border-color:#2e2e42; }
html.dark-mode .int-side-head { background:#0d0d1a; color:#F5F0E8; }
html.dark-mode .int-side-body { background:#1e1e2e; color:#c0c0d8; }
html.dark-mode .int-side-parish { color:#e0e0f0; }
html.dark-mode .int-side-note { color:#9090a8; }
html.dark-mode .int-side-row { color:#c0c0d8; border-color:#2e2e42; }
html.dark-mode .int-side-row a { color:var(--gold); }

html.dark-mode .int-week-item { background:#1e1e2e; border-color:#2e2e42; }
html.dark-mode .int-week-item:hover { background:#252535; }
html.dark-mode .int-week-item.active { background:#2a2010; border-color:var(--gold); }
html.dark-mode .int-week-label { color:#c0c0d8; }
html.dark-mode .int-week-item.active .int-week-label { color:#e0e0f0; }

html.dark-mode .int-week-header { background:#1e1e2e; border-color:#2e2e42; }
html.dark-mode .int-week-title { color:#e0e0f0; }
html.dark-mode .int-nav-btn { background:#252535; border-color:#2e2e42; color:#c0c0d8; }
html.dark-mode .int-nav-btn:hover { background:#2e2e42; }
html.dark-mode .int-nav-current { color:#9090a8; }
html.dark-mode .int-nav-today { color:var(--gold); }

html.dark-mode .int-day-block { background:#1e1e2e; border-color:#2e2e42; }
html.dark-mode .int-day-header { background:#252535; border-color:#2e2e42; }
html.dark-mode .int-day-name { color:#e0e0f0; }
html.dark-mode .int-day-count { color:#9090a8; }
html.dark-mode .int-day-m { color:#9090a8; }
html.dark-mode .int-day-d { color:#e0e0f0; }

html.dark-mode .int-row-item { border-color:#2e2e42; }
html.dark-mode .int-row-item:hover { background:#252535; }
html.dark-mode .int-row-text { color:#e0e0f0; }
html.dark-mode .int-row-time { color:var(--gold); }
html.dark-mode .int-row-arrow { color:var(--gold); }
html.dark-mode .int-row-kosciol { color:#9090a8; }

html.dark-mode .int-info-box { background:#1a2010; border-color:rgba(196,154,42,.3); color:#c0c0d8; }
html.dark-mode .int-info-box strong { color:#e0e0f0; }

html.dark-mode .int-kos-filter { color:#9090a8; }
html.dark-mode .tts-day-btn { background:#252535; border-color:#2e2e42; color:#c0c0d8; }
html.dark-mode .tts-day-btn:hover { background:#2e2e42; }
