/*
Theme Name: Farnosť Moravský Svätý Ján
Theme URI: https://svjan.fara.sk
Author: Návrh pre farnosť Moravský Svätý Ján
Description: Tradičná, dôstojná téma pre rímskokatolícku farnosť Moravský Svätý Ján (dekanát Šaštín). Pergamenová paleta, Cormorant Garamond + Spectral + Public Sans. Obsahuje typy obsahu Farské oznamy a Fotoalbumy, automatický dátum s liturgickým kalendárom a zvýraznenie dnešnej svätej omše.
Version: 1.6.2
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
Text Domain: farnost-msj
*/

/* Väčšina vzhľadu je inline v šablónach (rovnako ako v návrhu), aby sa web vykreslil okamžite.
   Tu sú len drobné pomocné triedy, ktoré nemožno spraviť inline. */

*{box-sizing:border-box;}
html,body{margin:0;}
body{background:#f5f0e6;}
a{text-decoration:none; color:inherit;}

/* rozbaľovacie menu O farnosti */
.navdrop{position:relative;}
.navdrop > .menu{display:none; position:absolute; top:100%; left:50%; transform:translateX(-50%); padding-top:10px; z-index:40;}
.navdrop:hover > .menu{display:block;}
.navdrop .menu .inner{background:#fffdf8; border:1px solid #e6dcc8; border-radius:5px; box-shadow:0 12px 30px rgba(44,38,32,.16); padding:6px; min-width:250px;}
.navdrop .menu a{display:block; padding:10px 14px; border-radius:3px; font-size:14px; color:#4a4036; white-space:nowrap;}
.navdrop .menu a:hover{background:#f3ead9; color:#8a6d3b;}

/* WP nav — aktívna položka + šípka pri podmenu */
.fmsj-desktop-nav .current-menu-item > a,
.fmsj-desktop-nav .current-menu-parent > a,
.fmsj-desktop-nav .current_page_item > a,
.fmsj-desktop-nav .current_page_parent > a{
  color:#8a6d3b; border-bottom:2px solid #8a6d3b; padding-bottom:3px;
}
.fmsj-desktop-nav .menu-item-has-children > a::after,
.fmsj-desktop-nav .page_item_has_children > a::after{
  content:" ▾"; font-size:11px; opacity:.7;
}
.fmsj-desktop-nav .sub-menu{
  display:none; position:absolute; z-index:40; margin-top:10px;
  background:#fffdf8; border:1px solid #e6dcc8; border-radius:5px;
  box-shadow:0 12px 30px rgba(44,38,32,.16); padding:6px; min-width:230px; list-style:none;
}
.fmsj-desktop-nav .menu-item-has-children{position:relative;}
.fmsj-desktop-nav .menu-item-has-children:hover > .sub-menu{display:block;}
.fmsj-desktop-nav .sub-menu li{display:block;}
.fmsj-desktop-nav .sub-menu a{display:block; padding:10px 14px; border-radius:3px; border:none; white-space:nowrap;}
.fmsj-desktop-nav .sub-menu a:hover{background:#f3ead9; color:#8a6d3b;}

/* carousel */
.galtrack{display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; padding-bottom:2px;}
.galtrack::-webkit-scrollbar{display:none;}
.galslide{flex:0 0 calc((100% - 36px)/3); scroll-snap-align:start; box-sizing:border-box; display:block; text-decoration:none;}
.galdot{flex:0 0 auto; width:11px; height:11px; min-width:11px; border-radius:50%; border:1.5px solid #c9b78f; background:transparent; padding:0; cursor:pointer; transition:background .2s, border-color .2s;}
.galdots{flex-wrap:wrap; align-items:center;}

/* galéria — prepínač rokov, karty, lightbox */
.pthumb{cursor:pointer; transition:filter .2s;}
.pthumb:hover{filter:brightness(1.05);}

/* WordPress menu — hlavné + rozbaľovacie podmenu */
.fmsj-desktop-nav, .fmsj-desktop-nav ul, .fmsj-mobile-nav, .fmsj-mobile-nav ul{list-style:none; margin:0; padding:0;}
.fmsj-desktop-nav li{list-style:none; position:relative;}
.fmsj-desktop-nav a{text-decoration:none; color:#4a4036;}
.fmsj-desktop-nav > li > a:hover{color:#8a6d3b;}
.fmsj-desktop-nav .sub-menu{display:none; position:absolute; top:100%; left:50%; transform:translateX(-50%); margin-top:10px; background:#fffdf8; border:1px solid #e6dcc8; border-radius:5px; box-shadow:0 12px 30px rgba(44,38,32,.16); padding:6px; min-width:230px; z-index:40;}
.fmsj-desktop-nav li:hover > .sub-menu{display:block;}
.fmsj-desktop-nav .sub-menu li{display:block;}
.fmsj-desktop-nav .sub-menu a{display:block; padding:10px 14px; border-radius:3px; font-size:14px; white-space:nowrap;}
.fmsj-desktop-nav .sub-menu a:hover{background:#f3ead9; color:#8a6d3b;}
.fmsj-mobile-nav li{list-style:none;}
.fmsj-mobile-nav a{display:block; padding:11px 6px; border-bottom:1px solid #ece2cf; color:#4a4036; text-decoration:none;}
.fmsj-mobile-nav .sub-menu{padding-left:14px;}
.fmsj-mobile-nav .sub-menu a{font-size:15px; color:#6a6052;}
.fmsj-mobile-nav .sub-menu > .menu-item-has-children > a{pointer-events:none; text-transform:uppercase; font-size:12px; letter-spacing:.12em; font-weight:700; color:#8a7649;}
.fmsj-mobile-nav .sub-menu > .menu-item-has-children > a::after{content:none !important;}

/* Fix: rozbaľovacie menu — bez medzery (hover sa nestratí) + na klik/klávesnicu */
.fmsj-desktop-nav .menu-item-has-children{position:relative;}
.fmsj-desktop-nav .sub-menu{margin-top:0 !important; top:100% !important;}
.fmsj-desktop-nav .menu-item-has-children:hover > .sub-menu,
.fmsj-desktop-nav .menu-item-has-children:focus-within > .sub-menu{display:block !important;}

/* „O farnosti" ako jeden panel so skupinami — 3. úroveň sa nezobrazuje ako vysúvanie */
.fmsj-desktop-nav .sub-menu{text-align:left; min-width:280px; max-width:380px;}
.fmsj-desktop-nav .sub-menu a{white-space:normal;}
.fmsj-desktop-nav .sub-menu .sub-menu{
  position:static !important; display:block !important; transform:none !important;
  margin:0 !important; padding:2px 0 6px !important; border:0 !important;
  box-shadow:none !important; background:transparent !important; min-width:0 !important; max-width:none;
}
/* položky vnútri skupiny mierne odsadené */
.fmsj-desktop-nav .sub-menu .sub-menu a{padding-left:24px;}
/* Kostoly / Kaplnky = nadpis skupiny (nie klikateľný odkaz) */
.fmsj-desktop-nav .sub-menu > .menu-item-has-children > a{
  cursor:default; pointer-events:none; font-family:'Public Sans',sans-serif;
  font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:#8a7649; padding:9px 14px 4px;
}
.fmsj-desktop-nav .sub-menu > .menu-item-has-children > a::after{content:none !important;}
.fmsj-desktop-nav .sub-menu > .menu-item-has-children > a:hover{background:transparent; color:#8a7649;}

/* fotoalbum — mriežka na plnú šírku stránky */
.fmsj-album-grid{
  display:grid; width:100%;
  grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:16px;
}
.fmsj-album-grid .pthumb{aspect-ratio:4/3; cursor:zoom-in;}
@media (max-width:900px){ .fmsj-album-grid{grid-template-columns:repeat(auto-fill, minmax(200px,1fr)) !important;} }
@media (max-width:600px){ .fmsj-album-grid{grid-template-columns:repeat(2,1fr) !important;} }

/* obsah článku / stránky — responzívne obrázky a plagáty */
.fmsj-article img{max-width:100%; height:auto; border-radius:4px;}
.fmsj-article figure{margin:20px 0;}
.fmsj-article figure img{display:block; margin:0 auto;}
.fmsj-article figcaption{font-family:'Public Sans',sans-serif; font-size:13px; color:#7d6e52; text-align:center; margin-top:6px;}
.fmsj-article p{margin:0 0 16px;}

/* užitočné odkazy */
.odkazy-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; list-style:none; padding:0; margin:0;}
.odkazy-grid li{list-style:none;}
.odkazy-grid a{display:flex; align-items:center; justify-content:space-between; gap:10px; background:#fffdf8; border:1px solid #e6dcc8; border-radius:4px; padding:20px 22px; font-family:'Public Sans',sans-serif; font-size:15px; font-weight:600; color:#3a342b;}
.odkazy-grid a:after{content:'→'; color:#8a6d3b;}
@media (max-width:900px){ .odkazy-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .odkazy-grid{grid-template-columns:1fr;} }

/* ---------- Responzívne (mobil / tablet) ---------- */
.fmsj-mobile-nav{display:none;}
/* Vyhľadávanie — stále viditeľné pole priamo v hlavičke */
.fmsj-search-inline{
  display:flex; align-items:center; gap:6px; width:210px;
  background:#fffdf8; border:1px solid #d8c9a8; border-radius:8px; padding:0 12px;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.fmsj-search-inline:focus-within{border-color:#8a6d3b; box-shadow:0 0 0 3px rgba(138,109,59,.14);}
.fmsj-search-inline svg{flex:none;}
.fmsj-search-inline input::placeholder{color:#8a7649;}
/* mobilné pole (na celú šírku pod hlavičkou), na počítači skryté */
.fmsj-search-mobile{display:none; align-items:center; gap:6px; margin-top:14px; background:#fffdf8; border:1px solid #d8c9a8; border-radius:8px; padding:0 12px;}
.fmsj-search-mobile svg{flex:none;}
.fmsj-search-mobile input::placeholder{color:#8a7649;}

@media (max-width:900px){
  .galslide{flex:0 0 82% !important;}
}

@media (max-width:1024px){
  /* navigácia → hamburger (aj tablet) */
  .fmsj-desktop-nav{display:none !important;}
  .fmsj-burger{display:flex !important;}
  /* lupa ostáva viditeľná aj na mobile — otvorí rovnaký panel */
  .fmsj-mobile-nav{display:none;}
  .fmsj-mobile-nav.open{display:flex !important;}
  /* hľadanie: skryť kompaktné v riadku, zobraziť pole na celú šírku */
  .fmsj-search-inline{display:none !important;}
  .fmsj-search-mobile{display:flex !important;}
  .navdrop .menu{position:static; transform:none; padding-top:4px;}
  .navdrop .menu .inner{box-shadow:none; border:none; padding:0 0 0 12px; min-width:0;}
}

@media (max-width:900px){
  /* viacstĺpcové mriežky → jeden stĺpec */
  [style*="grid-template-columns"]{grid-template-columns:1fr !important;}
  [style*="grid-template-columns:repeat(3,1fr)"],[style*="grid-template-columns:repeat(4,1fr)"]{grid-template-columns:repeat(2,1fr) !important;}

  /* horný pruh: dátum pod seba */
  .fmsj-topbar{flex-direction:column; align-items:flex-start; gap:4px; font-size:11.5px;}

  /* zmenšenie veľkých nadpisov */
  [style*="font-size:58px"]{font-size:40px !important;}
  [style*="font-size:46px"]{font-size:32px !important;}
  [style*="font-size:40px"]{font-size:28px !important;}
  [style*="font-size:38px"]{font-size:26px !important;}
  [style*="font-size:32px"],[style*="font-size:30px"]{font-size:25px !important;}

  /* veľké odsadenie kariet (omše, oznamy) na mobile stlačiť */
  [style*="padding:56px 54px"]{padding:26px 20px !important;}

  /* hero nižší */
  .fmsj-hero img{height:46vh !important;}
}

@media (max-width:600px){
  .galslide{flex:0 0 100% !important; scroll-snap-align:center !important;}
  [style*="grid-template-columns:repeat(3,1fr)"],[style*="grid-template-columns:repeat(4,1fr)"]{grid-template-columns:1fr !important;}
  [style*="font-size:58px"]{font-size:31px !important;}
  [style*="font-size:46px"]{font-size:28px !important;}
  [style*="padding:56px 54px"]{padding:22px 16px !important;}
}



/* ---------- Animovaný baner na domovskej stránke ---------- */
.msj-baner{position:relative;z-index:0;isolation:isolate;width:100%;aspect-ratio:1920/780;min-height:260px;overflow:hidden;background:#1a150e;}
.msj-baner .msj-foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 38%;opacity:0;
  animation-duration:var(--msj-cyklus,18s);animation-timing-function:ease-in-out;animation-iteration-count:infinite;}
.msj-baner.msj-n1 .msj-foto{opacity:1;animation:none;}
.msj-zavoj{position:absolute;inset:0;background:linear-gradient(100deg,rgba(26,21,14,.9) 0%,rgba(26,21,14,.76) 26%,rgba(26,21,14,.36) 52%,rgba(26,21,14,.04) 76%);}
.msj-text{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:0 5.8vw;max-width:58%;}
.msj-nadradene{font-family:'Public Sans',sans-serif;font-size:clamp(11px,1vw,19px);font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:#d8ab52;}
.msj-nazov{font-family:'Cormorant Garamond',serif;font-weight:700;font-size:clamp(34px,5.6vw,108px);line-height:1.02;color:#f7f1e2;margin-top:.15em;}
.msj-linka{width:clamp(56px,6.1vw,118px);height:3px;background:#b3892f;margin:clamp(14px,1.6vw,30px) 0 clamp(12px,1.4vw,26px);}
.msj-popisy{position:relative;height:clamp(46px,4.8vw,92px);}
.msj-popisy div{position:absolute;inset:0;font-family:'Spectral',serif;font-size:clamp(15px,1.56vw,30px);line-height:1.4;color:#e2d6bd;opacity:0;
  animation-duration:var(--msj-cyklus,18s);animation-timing-function:ease-in-out;animation-iteration-count:infinite;}
.msj-baner.msj-n1 .msj-popisy div{opacity:1;animation:none;}
.msj-stopky{position:absolute;right:3.3vw;bottom:2.9vw;display:flex;gap:.73vw;}
.msj-stopky span{width:4.4vw;max-width:84px;height:3px;background:rgba(247,241,226,.26);overflow:hidden;display:block;}
.msj-stopky i{display:block;height:100%;width:0;background:#d8ab52;animation-duration:var(--msj-cyklus,18s);animation-timing-function:linear;animation-iteration-count:infinite;}
@media (max-width:700px){
  .msj-baner{aspect-ratio:720/520;min-height:340px;}
  .msj-baner .msj-foto{object-position:50% 42%;}
  .msj-zavoj{background:linear-gradient(to top,rgba(26,21,14,.92) 0%,rgba(26,21,14,.7) 40%,rgba(26,21,14,.34) 72%,rgba(26,21,14,.1) 100%);}
  .msj-text{max-width:100%;padding:0 7vw;}
  .msj-nadradene{font-size:12px;letter-spacing:.24em;}
  .msj-nazov{font-size:clamp(30px,8.1vw,58px);}
  .msj-popisy{height:3.4em;}
  .msj-popisy div{font-size:clamp(14px,2.8vw,20px);}
  .msj-stopky{right:7vw;bottom:5vw;gap:8px;}
  .msj-stopky span{width:34px;}
}
@media (prefers-reduced-motion:reduce){
  .msj-baner .msj-foto,.msj-popisy div,.msj-stopky i{animation:none;}
  .msj-baner .msj-foto:first-of-type,.msj-popisy div:first-child{opacity:1;transform:none;}
}

/* zvýraznenie práve čítaného odstavca */
.fmsj-cita{background:linear-gradient(90deg,rgba(216,171,82,.18),rgba(216,171,82,.06));box-shadow:-10px 0 0 rgba(216,171,82,.18);border-radius:3px;transition:background .3s;}
.fmsj-citanie-play:hover{background:#f6efdd;}
.fmsj-citanie-stop:hover{background:#f6efdd;}
@media (prefers-reduced-motion:reduce){.fmsj-cita{transition:none;}}

/* ================= Prístupnosť ================= */
.fmsj-skip{position:absolute; left:-9999px; top:0; z-index:9999;}
.fmsj-skip:focus{
  left:10px; top:10px; background:#fffdf8; border:2px solid #8a6d3b; border-radius:4px;
  padding:11px 18px; font-family:'Public Sans',sans-serif; font-size:14px; font-weight:600; color:#5c4a22;
}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible,
select:focus-visible, summary:focus-visible, [tabindex]:focus-visible{
  outline:3px solid #8a6d3b; outline-offset:2px; border-radius:3px;
}
#fmsj-obsah:focus{outline:none;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }

/* ================= Tlač a ukladanie do PDF ================= */
@media print{
  @page{margin:16mm 14mm;}
  html, body{background:#fff !important; color:#000 !important; font-size:11.5pt; line-height:1.55;}
  .fmsj-topbar, .fmsj-desktop-nav, .fmsj-mobile-nav, .fmsj-burger,
  .fmsj-search-inline, .fmsj-search-mobile, .fmsj-citanie, .fmsj-nastroje, .fmsj-tlac, .fmsj-skip,
  .fmsj-baner, .fmsj-baner-wrap, .fmsj-hero-slider, .fmsj-lightbox,
  .fmsj-newsletter, .fmsj-newsletter-box, .fmsj-vyveska,
  .fmsj-no-print, nav, footer, .wp-block-search, form[role="search"]{
    display:none !important;
  }
  [style*="position:sticky"], [style*="position: sticky"]{position:static !important;}
  *{box-shadow:none !important; text-shadow:none !important;}
  [style*="background:#fffdf8"], [style*="background:#f5f0e6"], [style*="background:#f3ead9"]{background:#fff !important;}
  a{color:#000 !important; text-decoration:none !important;}
  img{max-width:100% !important; height:auto !important;}
  img, figure, table, blockquote, li{break-inside:avoid; page-break-inside:avoid;}
  h1, h2, h3, h4{break-after:avoid; page-break-after:avoid; color:#000 !important;}
  [style*="max-width:1560px"], [style*="max-width:1000px"], [style*="max-width:1180px"], .fmsj-article{
    max-width:100% !important; padding-left:0 !important; padding-right:0 !important;
  }
  .fmsj-print-hlavicka{display:block !important;}
}
.fmsj-print-hlavicka{display:none;}

/* tlačidlá nad článkom (čítanie nahlas, tlač) */
.fmsj-tlac, .fmsj-citanie-play{transition:background .16s ease, border-color .16s ease, color .16s ease;}
.fmsj-tlac:hover, .fmsj-citanie-play:hover{background:#f6edd9 !important; border-color:#c2a870 !important; color:#6a5019 !important;}
.fmsj-tlac:active{transform:translateY(1px);}
.fmsj-tlac svg{flex:none;}

/* =====================================================================
   RESPONZÍVNE — komplexná úprava pre tablety a mobily
   (tento blok je zámerne na konci súboru, aby prepísal skoršie pravidlá)
   ===================================================================== */

/* nič nesmie pretekať do strán */
img, video, iframe, table, pre{max-width:100%;}
h1, h2, h3, h4, p, li, td, th, dd, dt{overflow-wrap:break-word;}

/* široké tabuľky (rozpis omší, liturgický kalendár, oznamy) — vodorovný posun
   namiesto pretečenia von zo stránky */
.entry-content table, .fmsj-article table, .fmsj-tabulka{
  display:block; width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch;
}

/* ---------- TABLET NA ŠIRKU / MENŠÍ NOTEBOOK (do 1200 px) ---------- */
@media (max-width:1200px){
  /* štyri a viac stĺpcov je na tablete neúnosné → dva */
  [style*="grid-template-columns:repeat(4,1fr)"],
  [style*="grid-template-columns:repeat(5,1fr)"],
  [style*="grid-template-columns:repeat(6,1fr)"],
  [style*="grid-template-columns:repeat(7,1fr)"]{grid-template-columns:repeat(2,1fr) !important;}
  .odkazy-grid{grid-template-columns:repeat(2,1fr) !important;}

  /* bočné odsadenie sekcií zmenšiť */
  [style*="padding:60px 40px"]{padding:44px 26px !important;}
  [style*="padding:0 40px 60px"]{padding:0 26px 44px !important;}
  [style*="padding:8px 40px 60px"]{padding:8px 26px 44px !important;}
  [style*="padding:34px 40px"]{padding:28px 26px !important;}
  [style*="padding:6px 40px 8px"]{padding:6px 26px 8px !important;}

  /* vnútro veľkých kariet */
  [style*="padding:56px 54px"]{padding:38px 34px !important;}
}

/* ---------- TABLET NA VÝŠKU (do 900 px) ---------- */
@media (max-width:900px){
  /* mriežky s pevným prvým stĺpcom (náhľad + text) → pod seba */
  [style*="grid-template-columns:300px 1fr"],
  [style*="grid-template-columns:280px 1fr"]{grid-template-columns:1fr !important;}
  [style*="grid-template-columns:300px 1fr"] > div:first-child,
  [style*="grid-template-columns:280px 1fr"] > div:first-child{min-height:190px !important;}

  /* päta na dva stĺpce */
  footer [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="background:#2c2620"] [style*="grid-template-columns:repeat(3,1fr)"]{
    grid-template-columns:repeat(2,1fr) !important; gap:26px !important;
  }

  /* rozpis svätých omší — deň/miesto/čas na dva riadky namiesto troch stĺpcov */
  .mass-row{grid-template-columns:1fr auto !important; row-gap:0 !important;}
  .mass-row > div{padding:12px 18px !important;}
  .mass-row > div:nth-child(2){grid-column:1 / -1; padding-top:0 !important; font-size:13.5px !important;}

  /* bočné odsadenie */
  [style*="padding:60px 40px"]{padding:34px 18px !important;}
  [style*="padding:0 40px 60px"]{padding:0 18px 34px !important;}
  [style*="padding:8px 40px 60px"]{padding:8px 18px 34px !important;}
  [style*="padding:34px 40px"]{padding:24px 18px !important;}
  [style*="padding:6px 40px 8px"]{padding:6px 18px 8px !important;}
  [style*="padding:10px 6vw 40px"]{padding:10px 20px 30px !important;}

  /* dotykové cieľové plochy aspoň 44 px */
  .fmsj-mobile-nav a, .fmsj-mobile-nav button,
  .fmsj-burger, .fmsj-search-mobile button{min-height:44px;}
  .fmsj-mobile-nav a{display:flex; align-items:center;}
}

/* ---------- MOBIL (do 600 px) ---------- */
@media (max-width:600px){
  /* naozaj všetko do jedného stĺpca */
  [style*="grid-template-columns"]{grid-template-columns:1fr !important;}
  .odkazy-grid, .fmsj-album-grid{grid-template-columns:1fr !important;}
  footer [style*="grid-template-columns"],
  [style*="background:#2c2620"] [style*="grid-template-columns"]{grid-template-columns:1fr !important; gap:24px !important;}

  /* fotogaléria a albumy — dva stĺpce sú na mobile ešte čitateľné */
  .fmsj-album-grid, .fmsj-photogrid{grid-template-columns:repeat(2,1fr) !important; gap:10px !important;}

  /* karty a sekcie: úzke odsadenie */
  [style*="padding:56px 54px"]{padding:20px 15px !important;}
  [style*="padding:30px 34px"], [style*="padding:26px 30px"]{padding:18px 16px !important;}
  [style*="padding:24px 26px"], [style*="padding:22px 24px"]{padding:16px 16px !important;}
  [style*="padding:48px 6vw"]{padding:32px 18px !important;}

  /* typografia */
  [style*="font-size:40px"]{font-size:25px !important;}
  [style*="font-size:38px"]{font-size:24px !important;}
  [style*="font-size:32px"], [style*="font-size:30px"]{font-size:22px !important;}
  [style*="font-size:28px"], [style*="font-size:27px"]{font-size:21px !important;}
  .entry-content, .fmsj-article{font-size:16px !important; line-height:1.72 !important;}

  /* rozpis omší */
  .mass-row > div{padding:11px 14px !important;}
  .mass-row > div:last-child{font-size:20px !important;}

  /* formuláre — pole na celú šírku, 16 px proti automatickému priblíženiu v iOS */
  input[type="text"], input[type="email"], input[type="tel"], input[type="date"],
  input[type="number"], select, textarea{width:100% !important; font-size:16px !important;}
  button, input[type="submit"]{min-height:46px;}

  /* tlačidlá nad článkom pod seba */
  .fmsj-nastroje{flex-wrap:wrap !important; gap:8px !important;}
}

/* ---------- VELMI ÚZKE DISPLEJE (do 380 px) ---------- */
@media (max-width:380px){
  [style*="padding:56px 54px"]{padding:16px 12px !important;}
  .fmsj-album-grid, .fmsj-photogrid{grid-template-columns:1fr !important;}
  [style*="font-size:58px"]{font-size:27px !important;}
}

/* ---------- Úvodná stránka na mobile: obsah pod obrázok ----------
   Farské oznamy: náhľad PDF nad textom, nie vedľa neho.
   Najbližšie sväté omše: čas pod deň a miesto.                     */
@media (max-width:700px){
  .fmsj-oznam-home{flex-direction:column !important; gap:16px !important;}
  .fmsj-oznam-thumb{flex:0 0 auto !important; align-self:center !important; max-width:230px; width:100%;}
  .fmsj-oznam-thumb img{width:100% !important; height:auto !important;}
  .fmsj-oznam-home > div:last-child [style*="font-size:34px"]{font-size:24px !important; margin-bottom:12px !important;}
  .fmsj-oznam-home > div:last-child [style*="font-size:18px"]{font-size:16px !important; margin-bottom:18px !important;}
  .fmsj-oznam-home a[style*="padding:13px 26px"]{flex:1 1 100%; text-align:center;}

  /* nadpis karty + odkaz „všetky“ pod seba */
  [style*="justify-content:space-between"][style*="align-items:baseline"]{
    flex-wrap:wrap !important; gap:6px !important;
  }

  /* riadky svätých omší na úvodnej stránke */
  [style*="display:flex"].mass-row{
    flex-direction:column !important; align-items:flex-start !important; gap:2px !important;
  }
  [style*="display:flex"].mass-row > div:last-child{font-size:22px !important;}
}

/* ---------- Karusel kostolov a kaplniek na mobile ----------
   Bodky sa nesmú stláčať do oválov; na dotyk potrebujú väčšiu plochu,
   preto ich zväčšíme a dáme im viac priestoru medzi sebou.        */
@media (max-width:700px){
  .galdots{gap:14px !important; margin-top:16px !important; flex-wrap:wrap; row-gap:14px !important;}
  .galdot{
    flex:0 0 auto !important; width:12px !important; height:12px !important; min-width:12px !important;
    position:relative; box-sizing:border-box !important; padding:0 !important;
  }
  /* neviditeľná dotyková plocha ~36 px okolo bodky */
  .galdot::after{content:''; position:absolute; inset:-12px;}
  .galslide > div{height:220px !important;}
  .galslide [style*="font-size:23px"]{font-size:19px !important;}
  .galslide [style*="padding:24px 26px"]{padding:16px 18px !important;}
}

/* ---------- Mobilné menu: posúvanie a zabalené podmenu ---------- */
.fmsj-mobile-nav.open{
  max-height:calc(100vh - 118px);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding-bottom:14px;
}
/* riadok s odkazom a šípkou */
.fmsj-mnav-row{display:flex; align-items:center; gap:6px; border-bottom:1px solid #ece2cf;}
.fmsj-mnav-row > a{flex:1 1 auto; border-bottom:none !important;}
.fmsj-mnav-tog{
  flex:0 0 auto; width:44px; min-height:44px; display:flex; align-items:center; justify-content:center;
  background:none; border:none; padding:0; cursor:pointer; color:#8a6d3b; font-size:22px; line-height:1;
}
.fmsj-mnav-tog > span{display:block; transition:transform .18s ease;}
.menu-item-has-children.open > .fmsj-mnav-row .fmsj-mnav-tog > span{transform:rotate(90deg);}
/* podmenu zabalené, kým sa nerozbalí */
.fmsj-mobile-nav .menu-item-has-children > .sub-menu{display:none;}
.fmsj-mobile-nav .menu-item-has-children.open > .sub-menu{display:block;}
/* vnorené skupiny (nadpisy v podmenu) zostávajú rozbalené */
.fmsj-mobile-nav .sub-menu .menu-item-has-children > .sub-menu{display:block;}
@media (prefers-reduced-motion:reduce){ .fmsj-mnav-tog > span{transition:none;} }
