/*
 * Refresh frontendu – zjednotenie a jemná modernizácia (10/2026).
 * Načítava sa za bundle.min.css. Používa len farby z palety témy
 * ($blue #4b526e, $gold #d4a113, $green #4b6e51, $red #943636, $gray, $soft-gray, white, black).
 * SCSS zdroják témy je neúplný, preto sú úpravy v samostatnom CSS.
 */

:root {
  --solinky-blue: #4b526e;
  --solinky-gold: #d4a113;
  --solinky-gray: #a0a0a0;
  --solinky-soft-gray: #f6f6f6;
  --solinky-trans: 0.25s ease;
  /* motív zaobleného rohu (ako .header-rounded a .btn) */
  --solinky-radius-sm: 0.375rem;
  --solinky-radius-motif: 1rem;
}

@media (min-width: 992px) {
  :root {
    --solinky-radius-motif: 1.75rem;
  }
}

/* 1. Riadkovanie nadpisov
   h3 má v téme pevných 76px aj na mobile (pri 24px písme) – dvojriadkový nadpis sa rozpadal. */
h3,
.h3,
.text-heading-3 {
  line-height: 1.25;
}

@media (min-width: 992px) {
  h3,
  .h3,
  .text-heading-3 {
    line-height: 4.75rem;
  }
}

/* 4. Plávajúce tlačidlo nastavení cookies – menšie, v rohu, v modrej z palety */
body #cookieButtonOpen {
  left: 0.75rem;
  bottom: 0.75rem;
  padding: 0.4375rem;
  line-height: 0;
  background: var(--solinky-blue);
  opacity: 0.85;
  transition: opacity var(--solinky-trans);
}

body #cookieButtonOpen:hover,
body #cookieButtonOpen:focus-visible {
  opacity: 1;
}

body #cookieButtonOpen #buttonImg {
  width: 1rem;
  height: 1rem;
  margin-bottom: 0;
}

/* 5.–7. Obsahové stránky (šablóna „Predvolená" – content-page.php) */
.page-content-custom-page .col-12 > p,
.page-content-custom-page .col-12 > ul,
.page-content-custom-page .col-12 > ol,
.page-content-custom-page .col-12 > h2,
.page-content-custom-page .col-12 > h3,
.page-content-custom-page .col-12 > h4,
.page-content-custom-page .col-12 > h5,
.page-content-custom-page .col-12 > h6,
.page-content-custom-page .col-12 > blockquote,
.page-content-custom-page .col-12 > .wp-block-quote {
  /* cca 75 znakov pri 22px písme */
  max-width: 56rem;
}

/* odstavce a odrážky rovnakou veľkosťou a riadkovaním */
.page-content-custom-page .col-12 p,
.page-content-custom-page .col-12 li {
  font-size: 1rem;
  line-height: 1.5;
}

@media (min-width: 992px) {
  .page-content-custom-page .col-12 p,
  .page-content-custom-page .col-12 li {
    font-size: 1.375rem;
    line-height: 2.125rem;
  }
}

.page-content-custom-page .col-12 > p {
  margin-bottom: 1rem;
}

.page-content-custom-page .col-12 ul,
.page-content-custom-page .col-12 ol {
  padding-left: 1.4em;
  margin-bottom: 1.5rem;
}

.page-content-custom-page .col-12 ul {
  list-style-type: disc;
}

.page-content-custom-page .col-12 li + li {
  margin-top: 0.25rem;
}

.page-content-custom-page .col-12 li > ul,
.page-content-custom-page .col-12 li > ol {
  margin: 0.25rem 0 0;
  list-style-type: circle;
}

/* stupnica nadpisov v obsahu – menšia ako H1 stránky (60px);
   !important, lebo téma veľkosti nastavuje utilitami .fs-* s !important */
.page-content-custom-page .col-12 h2 {
  font-size: 1.625rem !important;
  line-height: 1.2;
}

.page-content-custom-page .col-12 h3 {
  font-size: 1.375rem !important;
  line-height: 1.25;
}

.page-content-custom-page .col-12 h4 {
  font-size: 1.25rem !important;
  line-height: 1.3;
}

.page-content-custom-page .col-12 h5,
.page-content-custom-page .col-12 h6 {
  font-size: 1.125rem !important;
  line-height: 1.3;
}

@media (min-width: 992px) {
  .page-content-custom-page .col-12 h2 {
    font-size: 2.5rem !important;
  }

  .page-content-custom-page .col-12 h3 {
    font-size: 2rem !important;
  }

  .page-content-custom-page .col-12 h4 {
    font-size: 1.625rem !important;
  }

  .page-content-custom-page .col-12 h5,
  .page-content-custom-page .col-12 h6 {
    font-size: 1.375rem !important;
  }
}

/* jednotné vertikálne medzery – vzduch pred nadpisom, menej za ním */
.page-content-custom-page .col-12 > h2,
.page-content-custom-page .col-12 > h3,
.page-content-custom-page .col-12 > h4,
.page-content-custom-page .col-12 > h5,
.page-content-custom-page .col-12 > h6 {
  margin-top: 2rem;
  margin-bottom: 0.75rem;
}

@media (min-width: 992px) {
  .page-content-custom-page .col-12 > h2,
  .page-content-custom-page .col-12 > h3,
  .page-content-custom-page .col-12 > h4,
  .page-content-custom-page .col-12 > h5,
  .page-content-custom-page .col-12 > h6 {
    margin-top: 3rem;
    margin-bottom: 1rem;
  }
}

.page-content-custom-page .col-12 > :first-child {
  margin-top: 0;
}

.page-content-custom-page .col-12 > :last-child {
  margin-bottom: 0;
}

/* medzera pred logami partnerov pod obsahom */
.page-content-custom-page {
  padding-bottom: 3rem;
}

@media (min-width: 992px) {
  .page-content-custom-page {
    padding-bottom: 5rem;
  }
}

/* odkazy v texte rozlíšiteľné */
.page-content-custom-page .col-12 p a,
.page-content-custom-page .col-12 li a {
  text-decoration: underline;
  text-underline-offset: 0.15em;
  text-decoration-thickness: 1px;
}

.page-content-custom-page .col-12 p a:hover,
.page-content-custom-page .col-12 li a:hover {
  text-decoration-thickness: 2px;
}

/* 8. Zoznam odkazov (napr. „Pre rodičov") */
.page-content-custom-page .col-12 ul.page-link-list {
  list-style: none;
  padding-left: 0;
}

.page-content-custom-page .col-12 ul.page-link-list li + li {
  margin-top: 0.5rem;
}

.page-content-custom-page .col-12 ul.page-link-list a {
  text-decoration: none;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
}

.page-content-custom-page .col-12 ul.page-link-list a::before {
  content: "";
  flex: 0 0 auto;
  width: 0.5em;
  height: 0.5em;
  background: var(--solinky-gold);
  border-bottom-left-radius: 0.25em;
  border-top-right-radius: 0.25em;
  transition: transform var(--solinky-trans);
}

.page-content-custom-page .col-12 ul.page-link-list a:hover {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.page-content-custom-page .col-12 ul.page-link-list a:hover::before {
  transform: translateX(0.2em);
}

/* 9. Pätička – čitateľnejšie odkazy, vyrovnanejšie medzery */
.footer__bottom p {
  font-size: 0.875rem !important;
  line-height: 1.35rem;
}

.footer__bottom__list li {
  font-size: 0.9375rem;
  line-height: 1.35;
  margin-bottom: 0.625rem;
}

@media (min-width: 992px) {
  .footer__bottom__list li {
    margin-bottom: 0.875rem;
  }

  .footer__bottom h6 {
    margin-bottom: 1.5rem;
  }
}

.footer__bottom__list li:last-of-type {
  margin-bottom: 0;
}

.footer__bottom__list a {
  text-underline-offset: 0.2em;
}

/* 10. Jemný hover na kartách + 12. motív zaobleného rohu na obrázkoch */
.announcement__img {
  overflow: hidden;
  border-radius: var(--solinky-radius-sm);
  border-top-right-radius: var(--solinky-radius-motif);
  border-bottom-left-radius: var(--solinky-radius-motif);
  transform: translateZ(0);
}

.announcement__img img {
  transition: transform var(--solinky-trans);
}

.announcement:hover .announcement__img img {
  transform: scale(1.05);
}

.announcement:hover .text-blog-heading {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.announcement__icon svg {
  transition: transform var(--solinky-trans);
}

.announcement:hover .announcement__icon svg {
  transform: translateX(0.25rem);
}

.event-calendar {
  transition: transform var(--solinky-trans), box-shadow var(--solinky-trans);
}

.event-calendar:hover,
.event-calendar:has(:focus-visible) {
  transform: translateY(-0.1875rem);
  box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.08);
}

.gallery__img {
  border-radius: var(--solinky-radius-sm);
  border-top-right-radius: var(--solinky-radius-motif);
  border-bottom-left-radius: var(--solinky-radius-motif);
}

.gallery__img img {
  transition: transform var(--solinky-trans), filter var(--solinky-trans);
}

.gallery__img:hover img {
  transform: scale(1.06);
}

@media (prefers-reduced-motion: reduce) {
  .announcement__img img,
  .announcement__icon svg,
  .event-calendar,
  .gallery__img img,
  .page-content-custom-page .col-12 ul.page-link-list a::before,
  body #cookieButtonOpen {
    transition: none;
  }

  .announcement:hover .announcement__img img,
  .announcement:hover .announcement__icon svg,
  .event-calendar:hover,
  .event-calendar:has(:focus-visible),
  .gallery__img:hover img {
    transform: none;
  }
}

/* 11. Viditeľný focus pri ovládaní klávesnicou */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.btn:focus-visible {
  outline: 3px solid var(--solinky-gold);
  outline-offset: 3px;
  box-shadow: none;
}

/* na zlatých prvkoch by zlatý obrys zanikol */
.btn-gold:focus-visible,
.bg-gold a:focus-visible {
  outline-color: var(--solinky-blue);
}

/* karty s roztiahnutým odkazom – obrys okolo celej karty */
.announcement:has(.stretched-link:focus-visible),
.event-calendar__item:has(.stretched-link:focus-visible),
body.home .home-slider__item:has(.stretched-link:focus-visible) {
  outline: 3px solid var(--solinky-gold);
  outline-offset: 6px;
}

.announcement .stretched-link:focus-visible,
.event-calendar__item .stretched-link:focus-visible,
body.home .home-slider__item .stretched-link:focus-visible {
  outline: none;
}


/* =====================================================================
 * Úvodná stránka – 2. kolo
 * Výraznejšia hierarchia, jednotný rytmus sekcií, motív zaobleného rohu.
 * Len farby z palety témy.
 * ===================================================================== */

body.home {
  --home-gap: 3.5rem;
  --home-motif: 2rem;
  --home-motif-lg: 4rem;
}

@media (min-width: 992px) {
  body.home {
    --home-gap: 6.5rem;
    --home-motif: 3rem;
    --home-motif-lg: 7.5rem;
  }
}

/* skryté pre oko, dostupné pre čítačky (duplicitné nadpisy kariet) */
.home-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* jednotný rytmus sekcií */
body.home .home-slider,
body.home .home-welcome,
body.home .home-video,
body.home .home-vision,
body.home .event-calendar-wrapper,
body.home .gallery-wrapper {
  margin-bottom: var(--home-gap);
}

/* jednotný nadpis sekcie so zlatým akcentom v tvare motívu */
.home-section-title {
  font-size: 1.75rem !important;
  line-height: 1.15 !important;
  letter-spacing: 0;
  margin-bottom: 1.5rem;
}

.home-section-title::before {
  content: "";
  display: block;
  width: 2.75rem;
  height: 0.4375rem;
  margin-bottom: 0.875rem;
  background-color: var(--solinky-gold);
  border-top-right-radius: 0.4375rem;
  border-bottom-left-radius: 0.4375rem;
}

@media (min-width: 992px) {
  .home-section-title {
    font-size: 2.75rem !important;
    margin-bottom: 2.5rem;
  }
}

/* tlačidlo „Zobraziť všetky…" namiesto pásu cez celú šírku */
.home-section-cta {
  display: flex;
  justify-content: center;
  margin-top: 2rem;
}

.home-section-cta .btn {
  padding: 0.875rem 2rem;
  letter-spacing: 0.03em;
}

@media (min-width: 992px) {
  .home-section-cta {
    margin-top: 3rem;
  }
}

/* --- Hlavný oznam (hero) ------------------------------------------- */
body.home .home-header {
  padding: 1.5rem 0 2.5rem;
  margin-bottom: var(--home-gap);
  border-bottom-left-radius: var(--home-motif-lg);
}

body.home .home-header .row {
  align-items: center;
  row-gap: 1.75rem;
}

body.home .home-header__img {
  margin-bottom: 0;
  aspect-ratio: 16 / 10;
  border-radius: 0.5rem;
  border-top-left-radius: var(--home-motif-lg);
  box-shadow: 0 1.25rem 2.5rem rgba(75, 82, 110, 0.18);
}

body.home .home-header__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.home .home-header__tag {
  border-radius: 0.25rem;
  border-top-right-radius: 0.875rem;
  border-bottom-left-radius: 0.875rem;
  padding: 0.4375rem 0.875rem;
  font-size: 0.875rem !important;
  letter-spacing: 0.06em;
  margin-bottom: 1rem;
}

body.home .home-header .text-blog-heading {
  font-size: 1.75rem !important;
  line-height: 1.15 !important;
  margin-bottom: 1rem;
}

body.home .home-header .text-blog-description {
  font-size: 1.0625rem !important;
  line-height: 1.55 !important;
  max-width: 34rem;
  margin-bottom: 1.5rem;
}

body.home .home-header .btn {
  padding: 0.875rem 2rem;
}

@media (min-width: 992px) {
  body.home .home-header {
    padding: 3.5rem 0;
  }

  body.home .home-header .col-lg-6:last-child {
    padding-left: 3.5rem;
  }

  body.home .home-header .text-blog-heading {
    font-size: 3rem !important;
    margin-bottom: 1.5rem;
  }

  body.home .home-header .text-blog-description {
    font-size: 1.375rem !important;
    margin-bottom: 2.25rem;
  }

  body.home .home-header__tag {
    margin-bottom: 1.5rem;
  }
}

/* --- Slider oznamov – karty ---------------------------------------- */
body.home .home-slider .swiper {
  position: relative;
}

body.home .home-slider .swiper-slide {
  height: auto;
}

body.home .home-slider__item {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

body.home .home-slider .swiper-slide .home-slider__item__img,
body.home .home-slider .swiper-slide:nth-child(n) .home-slider__item__img {
  width: 100%;
  aspect-ratio: 16 / 9;
  margin-bottom: 1.25rem;
  border-radius: 0.375rem;
  border-top-right-radius: var(--home-motif);
  border-bottom-left-radius: var(--home-motif);
}

body.home .home-slider__item__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.home .home-slider__item:hover .home-slider__item__img img {
  transform: scale(1.05);
}

body.home .home-slider__item__title {
  font-size: 1.25rem !important;
  line-height: 1.25 !important;
  margin-bottom: 0.75rem;
  padding-right: 0;
}

body.home .home-slider__item:hover .home-slider__item__title {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

/* štítky zariadení ako malé „pilulky" s motívom */
body.home .home-slider__item__tag {
  font-size: 0.75rem !important;
  line-height: 1.2;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.3125rem 0.625rem;
  border-radius: 0.1875rem;
  border-top-right-radius: 0.625rem;
  border-bottom-left-radius: 0.625rem;
}

/* štítky nad nadpisom – „pre koho je oznam" */
body.home .home-slider__item__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  margin-bottom: 0.625rem;
}

body.home .home-slider__item__tags .home-slider__item__tag {
  margin: 0;
}

/* nadpis max. 3 riadky – karty rovnako vysoké */
body.home .home-slider__item__title {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 0;
}

/* karta oznamu – sivé pozadie z palety, motív rohu na celej karte,
   obrázok orezáva karta, štítky a nadpis s vnútorným odsadením */
body.home .home-slider__item {
  background-color: var(--solinky-soft-gray);
  overflow: hidden;
  transform: translateZ(0);
  border-radius: 0.375rem;
  border-top-right-radius: var(--home-motif);
  border-bottom-left-radius: var(--home-motif);
  transition: box-shadow var(--solinky-trans);
}

body.home .home-slider__item:hover {
  box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.08);
}

body.home .home-slider .swiper-slide .home-slider__item__img,
body.home .home-slider .swiper-slide:nth-child(n) .home-slider__item__img {
  margin-bottom: 0;
  border-radius: 0;
}

body.home .home-slider__item__tags {
  margin: 1.25rem 1.25rem 0.625rem;
}

body.home .home-slider__item__title {
  padding: 0 1.25rem 1.5rem;
}

/* oznam bez štítkov – nadpis nesmie byť nalepený na obrázku */
body.home .home-slider__item__img + .home-slider__item__title {
  margin-top: 1.25rem;
}

@media (min-width: 992px) {
  body.home .home-slider__item__tags {
    margin: 1.5rem 1.75rem 0.75rem;
  }

  body.home .home-slider__item__title {
    padding: 0 1.75rem 2rem;
  }

  body.home .home-slider__item__img + .home-slider__item__title {
    margin-top: 1.5rem;
  }
}

/* šípky slidera pod kartami – nikdy neprekryjú nadpis ani štítky
   (JS slidera nastavuje inline „top", preto !important) */
body.home .home-slider__swiper-btns {
  position: static !important;
  top: auto !important;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: 1.5rem;
}

body.home .home-slider__swiper-prev {
  transform: none;
}

body.home .home-slider__swiper-prev svg {
  transform: rotate(180deg);
}

body.home .home-slider__swiper-btns button {
  width: 3rem;
  height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #e4e4e4;
  border-radius: 50%;
  color: var(--solinky-blue);
  background-color: #fff;
  transition: background-color var(--solinky-trans), color var(--solinky-trans), border-color var(--solinky-trans);
}

body.home .home-slider__swiper-btns button svg {
  width: 1.25rem;
  height: 1.25rem;
}

body.home .home-slider__swiper-btns button:not(.swiper-button-disabled):hover {
  background-color: var(--solinky-blue);
  border-color: var(--solinky-blue);
  color: #fff;
}

@media (min-width: 992px) {
  body.home .home-slider__item__title {
    font-size: 1.625rem !important;
  }

  body.home .home-slider__item__tag {
    font-size: 0.8125rem !important;
  }
}

/* --- Uvítanie ------------------------------------------------------- */
body.home .home-welcome h1 {
  font-size: 2rem !important;
  line-height: 1.15 !important;
  letter-spacing: 0;
  max-width: 46rem;
  margin-bottom: 1.5rem;
}

body.home .home-welcome h1::before {
  content: "";
  display: block;
  width: 2.75rem;
  height: 0.4375rem;
  margin-bottom: 1rem;
  background-color: var(--solinky-gold);
  border-top-right-radius: 0.4375rem;
  border-bottom-left-radius: 0.4375rem;
}

body.home .home-welcome p {
  max-width: 65ch;
  margin-bottom: 0;
  padding-left: 1.25rem;
  border-left: 4px solid var(--solinky-gold);
  font-size: 1.0625rem !important;
  line-height: 1.65 !important;
  color: rgba(0, 0, 0, 0.8);
}

@media (min-width: 992px) {
  /* nadpis vľavo, úvodný text vpravo – menej prázdneho miesta */
  body.home .home-welcome {
    display: grid;
    grid-template-columns: 5fr 7fr;
    column-gap: 4rem;
    align-items: start;
  }

  body.home .home-welcome h1 {
    font-size: 2.75rem !important;
    margin-bottom: 0;
  }

  body.home .home-welcome p {
    margin-top: 1.4375rem;
  }

  body.home .home-welcome p {
    font-size: 1.3125rem !important;
    padding-left: 1.75rem;
  }
}

/* --- Video ---------------------------------------------------------- */
/* video má rovnaký tvar rohov ako panel (veľký horný pravý a dolný ľavý),
   polomer proporčne menší podľa veľkosti videa */
body.home .home-video {
  --home-video-radius: 2.5rem;
}

body.home .home-video__wrapper {
  border-radius: 0.375rem !important;
  border-top-right-radius: var(--home-video-radius) !important;
  border-bottom-left-radius: var(--home-video-radius) !important;
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.12);
}

/* presný pomer 16:9 (pôvodne 52,25 %) */
body.home .home-video__wrapper {
  padding-top: 56.25%;
}

@media (min-width: 992px) {
  body.home .home-video {
    --home-video-radius: 4.5rem;
  }

  /* väčšie video: stĺpce 7/12 + 4/12 (PurgeCSS ich z bundle odstránil) */
  body.home .home-video .col-lg-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
  }

  body.home .home-video .col-lg-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
}

body.home .home-video .text-blog-heading {
  font-size: 1.5rem !important;
  line-height: 1.2 !important;
}

@media (max-width: 991.98px) {
  body.home .home-video {
    border-top-right-radius: var(--home-motif-lg);
    border-bottom-left-radius: var(--home-motif-lg);
    margin-left: 0.75rem;
    margin-right: 0.75rem;
    padding: 2.5rem 0.5rem;
  }
}

@media (min-width: 992px) {
  body.home .home-video {
    background-color: transparent;
    padding: 0;
  }

  body.home .home-video > .container {
    background-color: var(--solinky-soft-gray);
    padding: 3.5rem 3rem;
    border-top-right-radius: var(--home-motif-lg);
    border-bottom-left-radius: var(--home-motif-lg);
  }

  body.home .home-video .text-blog-heading {
    font-size: 2.25rem !important;
  }
}

/* --- Vízia ---------------------------------------------------------- */
body.home .home-vision__text {
  line-height: 1.3 !important;
}

/* --- Kalendár podujatí – karty v jednom štýle s ostatnými ------------ */
body.home .event-calendar {
  border-width: 2px;
  border-radius: 0.375rem;
  border-top-right-radius: var(--home-motif);
  border-bottom-left-radius: var(--home-motif);
  padding-bottom: 1.5rem;
  background-color: #fff;
}

body.home .event-calendar__school {
  margin-bottom: 1.5rem;
  border-top-left-radius: 0.25rem;
}

body.home .event-calendar__item {
  position: relative;
  width: 100%;
  padding-left: 1rem;
  border-left: 3px solid var(--event-calendar-color);
}

body.home .event-calendar__item .text-primary-date {
  color: var(--event-calendar-color);
}

body.home .event-calendar__empty {
  color: rgba(0, 0, 0, 0.6);
  font-size: 1rem !important;
  line-height: 1.5 !important;
}

@media (min-width: 992px) {
  body.home .event-calendar__empty {
    font-size: 1.25rem !important;
  }
}

body.home .event-calendar__item:has(.event-calendar__empty) {
  border-left-color: #e4e4e4;
}

@media (min-width: 992px) {
  body.home .event-calendar {
    max-width: none;
    padding-bottom: 2rem;
  }

  body.home .event-calendar__school {
    margin-bottom: 2rem;
  }
}

/* --- Fotogaléria (NextGEN) – mriežka s motívom ---------------------- */
body.home .gallery-wrapper__top {
  margin-bottom: 0;
}

body.home .gallery-wrapper__top .home-section-title {
  margin-bottom: 1.5rem !important;
}

@media (min-width: 992px) {
  body.home .gallery-wrapper__top .home-section-title {
    margin-bottom: 2.5rem !important;
  }
}

/* NextGEN nastavuje display: block !important */
body.home .gallery-wrapper .ngg-galleryoverview {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
  margin: 0;
  overflow: visible;
}

body.home .gallery-wrapper .ngg-gallery-thumbnail-box {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
}

body.home .gallery-wrapper .ngg-clear,
body.home .gallery-wrapper .ngg-galleryoverview > br {
  display: none;
}

body.home .gallery-wrapper .ngg-gallery-thumbnail {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
}

body.home .gallery-wrapper .ngg-gallery-thumbnail a {
  display: block;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  border-radius: 0.375rem;
  transform: translateZ(0);
}

body.home .gallery-wrapper .ngg-gallery-thumbnail-box:nth-child(odd) .ngg-gallery-thumbnail a {
  border-top-right-radius: var(--home-motif);
}

body.home .gallery-wrapper .ngg-gallery-thumbnail-box:nth-child(even) .ngg-gallery-thumbnail a {
  border-bottom-left-radius: var(--home-motif);
}

body.home .gallery-wrapper .ngg-gallery-thumbnail img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover;
  margin: 0;
  padding: 0;
  border: 0;
  transition: transform var(--solinky-trans);
}

body.home .gallery-wrapper .ngg-gallery-thumbnail a:hover img {
  transform: scale(1.06);
}

/* na mobile stačí 6 fotiek – kratšie scrollovanie */
@media (max-width: 767.98px) {
  body.home .gallery-wrapper .ngg-gallery-thumbnail-box:nth-child(n + 7) {
    display: none;
  }
}

@media (min-width: 768px) {
  body.home .gallery-wrapper .ngg-galleryoverview {
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
  }
}

@media (min-width: 992px) {
  body.home .gallery-wrapper .ngg-galleryoverview {
    grid-template-columns: repeat(6, 1fr);
    gap: 1.25rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.home .home-slider__item,
  body.home .home-slider__swiper-btns button,
  body.home .gallery-wrapper .ngg-gallery-thumbnail img {
    transition: none;
  }

  body.home .home-slider__item:hover .home-slider__item__img img,
  body.home .gallery-wrapper .ngg-gallery-thumbnail a:hover img {
    transform: none;
  }
}

/* =====================================================================
 * Písmo pre bežný text – Source Sans 3 (nadpisy a ovládacie prvky ostávajú v Space Grotesk)
 * Súbory sú v téme (frontend/dist/assets/fonts), variabilné rezy 400–700, latin + latin-ext.
 * ===================================================================== */
@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/SourceSans3-Roman-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/SourceSans3-Roman-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Source Sans 3";
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/SourceSans3-Italic-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Source Sans 3";
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/SourceSans3-Italic-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --solinky-font-text: "Source Sans 3", "Helvetica Neue", Arial, sans-serif;
}

/* bežný text: odstavce, zoznamy, tabuľky, popisy, formuláre, pätička */
p,
li,
td,
th,
dd,
dt,
blockquote,
figcaption,
input,
textarea,
select,
.text-paragraph,
.text-description,
.text-blog-description,
.footer,
.contact-info {
  font-family: var(--solinky-font-text);
}

/* v Space Grotesk ostávajú nadpisy, dátumy, štítky, tlačidlá a menu */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.text-heading-1, .text-heading-2, .text-heading-3, .text-heading-4, .text-heading-5, .text-heading-6,
.text-blog-heading,
.text-primary-date,
.text-secondary-date,
.btn,
.btn-simple,
.menu,
.menu li,
.footer h1, .footer h2, .footer h3, .footer h4, .footer h5, .footer h6,
[class*="__tag"],
[class*="__title"] {
  font-family: "Space Grotesk", sans-serif;
}

/* =====================================================================
 * Podstránky – rovnaký dizajnový jazyk ako úvodná stránka
 * (nadpisy so zlatým akcentom, karty so sivým pozadím, motív rohu, tlačidlá)
 * ===================================================================== */

body:not(.home) {
  --sub-motif: 1.5rem;
  --sub-motif-lg: 2.5rem;
  --sub-radius: 0.375rem;
  --sub-shadow: 0 0.75rem 2rem rgba(75, 82, 110, 0.12);
}

@media (min-width: 992px) {
  body:not(.home) {
    --sub-motif: 2.5rem;
    --sub-motif-lg: 5rem;
  }
}

/* --- Nadpis stránky (H1) -------------------------------------------- */
body:not(.home) .page-heading {
  margin: 2rem 0 1.75rem;
}

body:not(.home) .page-heading::before {
  content: "";
  display: block;
  width: 2.75rem;
  height: 0.4375rem;
  margin-bottom: 0.875rem;
  background-color: var(--solinky-gold);
  border-top-right-radius: 0.4375rem;
  border-bottom-left-radius: 0.4375rem;
}

/* archívy a 404 – nadpis nesmie byť nalepený na menu */
body:not(.home) main > .container:first-child > .page-heading.mt-0 {
  margin-top: 2rem !important;
}

@media (min-width: 992px) {
  body:not(.home) .page-heading {
    margin: 4.5rem 0 3rem;
  }

  body:not(.home) main > .container:first-child > .page-heading.mt-0 {
    margin-top: 4.5rem !important;
  }
}

/* nadpisy sekcií na podstránkach (Fotogaléria, …) */
body:not(.home) .home-section-title {
  margin-bottom: 0;
}

/* „Oznamy" na ZŠ / MŠ / Jedáleň – nadpis sekcie pod H1 stránky
   (bez zlatého akcentu – ten má H1 hneď nad ním) */
body:not(.home) .institution-section-title {
  margin-bottom: 1.25rem;
}

body:not(.home) .institution-section-title::before {
  display: none;
}

@media (min-width: 992px) {
  body:not(.home) .institution-section-title {
    margin-bottom: 2rem;
  }
}

/* --- Úvodná fotka podstránok (ZŠ, MŠ, Jedáleň) ---------------------------
 * Obrázok mal len height:100% – bol užší ako rámik, takže horný pravý roh
 * sa zaobľoval mimo fotky a pôsobil odrezane. Oba rohy motívu rovnaké,
 * v súlade s bannermi a video blokom na úvodnej stránke. */
.header-rounded {
  /* o tretinu nižšia ako pôvodne (72.316 % / 48.48 %) */
  padding-top: 48.21%;
  border-top-right-radius: var(--sub-motif-lg) !important;
  border-bottom-left-radius: var(--sub-motif-lg) !important;
}

@media (min-width: 992px) {
  .header-rounded {
    padding-top: 32.32%;
  }
}

.header-rounded picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* --- Banner s titulkom (detail oznamu, stránky s fotkou, Vízia) ------- */
.header-full-container {
  margin-top: 1.25rem;
  margin-bottom: 2rem;
}

.header-full.header-full--image {
  display: flex;
  align-items: flex-end;
  min-height: 15rem;
  margin-bottom: 0;
  overflow: hidden;
  transform: translateZ(0);
  background-color: var(--solinky-blue);
  border-radius: var(--sub-radius);
  border-top-right-radius: var(--sub-motif-lg);
  border-bottom-left-radius: var(--sub-motif-lg);
}

.header-full--image picture {
  top: 0;
  left: 0;
}

.header-full--image picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* overlay pre čitateľnosť titulku aj na svetlých grafikách */
.header-full--image::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(to top, rgba(75, 82, 110, 0.95) 0%, rgba(75, 82, 110, 0.75) 35%, rgba(75, 82, 110, 0.15) 75%, rgba(75, 82, 110, 0) 100%),
    linear-gradient(to right, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 60%);
  pointer-events: none;
}

.header-full__inner {
  z-index: 2 !important;
  width: 100%;
  padding: 1.5rem 1.25rem;
}

.header-full--image .header-full__title {
  padding: 0 !important;
  max-width: 50rem;
  font-size: 1.875rem !important;
  line-height: 1.15 !important;
  text-shadow: 0 0.125rem 0.75rem rgba(0, 0, 0, 0.35);
  overflow-wrap: anywhere;
}

@media (min-width: 992px) {
  .header-full-container {
    margin-top: 2.5rem;
    margin-bottom: 3rem;
  }

  .header-full.header-full--image {
    min-height: 26rem;
  }

  .header-full__inner {
    padding: 3rem 3.5rem;
  }

  .header-full--image .header-full__title {
    font-size: 3.25rem !important;
  }
}

/* --- Detail oznamu / podujatia: termín a „pre koho" -------------------- */
.entry-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
  margin-bottom: 2rem;
}

.entry-meta__date {
  color: var(--solinky-blue);
  font-size: 1.125rem !important;
}

.entry-meta__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
}

.entry-meta__tag {
  display: inline-block;
  color: #fff;
  font-family: "Space Grotesk", sans-serif;
  font-weight: 700;
  font-size: 0.75rem;
  line-height: 1.2;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.3125rem 0.625rem;
  border-radius: 0.1875rem;
  border-top-right-radius: 0.625rem;
  border-bottom-left-radius: 0.625rem;
}

@media (min-width: 992px) {
  .entry-meta {
    margin-bottom: 3rem;
  }

  .entry-meta__date {
    font-size: 1.375rem !important;
  }
}

/* --- Zoznam oznamov (ZŠ, MŠ, Jedáleň, /oznamy/, vyhľadávanie) – karty --- */
body:not(.home) .announcement-wrapper:not(.row) {
  max-width: 62rem;
}

body:not(.home) .announcement-wrapper:not(.row) > .announcement {
  padding: 1rem;
  margin-bottom: 1rem;
  background-color: var(--solinky-soft-gray);
  border-radius: var(--sub-radius);
  border-top-right-radius: var(--sub-motif);
  border-bottom-left-radius: var(--sub-motif);
  transition: box-shadow var(--solinky-trans);
}

body:not(.home) .announcement-wrapper:not(.row) > .announcement:hover {
  box-shadow: var(--sub-shadow);
}

body:not(.home) .announcement-wrapper:not(.row) .announcement__row {
  margin-bottom: 0;
  align-items: center;
}

body:not(.home) .announcement-wrapper:not(.row) .announcement > .text-blog-description {
  margin-top: 0.75rem;
}

body:not(.home) .announcement__content {
  max-width: none;
}

body:not(.home) .announcement__icon {
  top: 1rem;
  right: 1rem;
}

/* na mobile je šípka v rohu karty – nadpis jej musí uhnúť */
@media (max-width: 991.98px) {
  body:not(.home) .announcement-wrapper:not(.row) .announcement__content {
    padding-right: 1.75rem;
  }
}

/* dátum menší a nenápadný, titulok výrazný */
body:not(.home) .announcement .text-secondary-date {
  font-size: 0.9375rem !important;
  line-height: 1.3 !important;
  letter-spacing: 0.02em;
  margin-bottom: 0.375rem;
  color: rgba(0, 0, 0, 0.55);
}

body:not(.home) .announcement .text-secondary-date.future-event,
body:not(.home) .announcement .text-secondary-date.current-event {
  color: var(--solinky-blue);
}

body:not(.home) .announcement .text-blog-heading {
  font-size: 1.125rem !important;
  line-height: 1.25 !important;
  margin-bottom: 0;
}

body:not(.home) .announcement__title {
  margin-bottom: 0.5rem;
}

body:not(.home) .announcement:hover .text-blog-heading {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

@media (min-width: 992px) {
  body:not(.home) .announcement-wrapper:not(.row) > .announcement {
    padding: 1.25rem;
    margin-bottom: 1.25rem;
  }

  body:not(.home) .announcement__img-wrapper {
    max-width: 13rem;
    margin-right: 1.75rem;
  }

  body:not(.home) .announcement .text-secondary-date {
    font-size: 1.0625rem !important;
  }

  body:not(.home) .announcement .text-blog-heading {
    font-size: 1.5rem !important;
  }

  body:not(.home) .announcement__title {
    margin-bottom: 0.625rem;
  }
}

/* --- Podujatia (/podujatia/) – mriežka kariet ------------------------- */
body:not(.home) .announcement-wrapper.row > .announcement {
  margin-bottom: 1.25rem;
}

body:not(.home) .announcement-wrapper.row > .announcement > .announcement__row {
  height: 100%;
  margin-bottom: 0;
  padding: 1.25rem 1.25rem 1.5rem;
  background-color: var(--solinky-soft-gray);
  border-radius: var(--sub-radius);
  border-top-right-radius: var(--sub-motif);
  border-bottom-left-radius: var(--sub-motif);
  transition: box-shadow var(--solinky-trans);
}

body:not(.home) .announcement-wrapper.row > .announcement:hover > .announcement__row {
  box-shadow: var(--sub-shadow);
}

body:not(.home) .announcement-wrapper.row .announcement__icon {
  position: static;
  margin-left: auto;
}

body:not(.home) .announcement-wrapper.row .announcement__title {
  gap: 1rem;
  padding-right: 0;
}

/* --- Stránkovanie (podujatia, oznamy, vyhľadávanie) -------------------- */
body:not(.home) .pagination {
  margin: 2rem 0 0;
}

@media (min-width: 992px) {
  body:not(.home) .pagination {
    margin-top: 3rem;
  }
}

/* --- Tlačidlá „Zobraziť staršie / všetky" na ZŠ, MŠ, Jedáleň ------------ */
body:not(.home) .announcement-wrapper .home-section-cta {
  justify-content: flex-start;
  margin-top: 1.5rem;
}

body:not(.home) .event-calendar-wrapper .home-section-cta {
  margin-top: 2rem;
}

/* --- Kalendár na ZŠ / MŠ – rovnaké karty ako na úvodnej stránke ------- */
body:not(.home) .event-calendar {
  border-width: 2px;
  border-radius: var(--sub-radius);
  border-top-right-radius: var(--sub-motif);
  border-bottom-left-radius: var(--sub-motif);
  padding-bottom: 1.5rem;
  background-color: #fff;
}

body:not(.home) .event-calendar__school {
  border-top-left-radius: 0.25rem;
}

body:not(.home) .event-calendar__item {
  position: relative;
  width: 100%;
  padding-left: 1rem;
  border-left: 3px solid var(--event-calendar-color);
}

body:not(.home) .event-calendar__item .text-primary-date {
  color: var(--event-calendar-color);
}

@media (min-width: 992px) {
  body:not(.home) .event-calendar {
    max-width: none;
    padding-bottom: 2rem;
  }
}

/* --- Galéria na ZŠ / MŠ ----------------------------------------------- */
body:not(.home) .gallery-wrapper__top {
  margin-bottom: 1.5rem;
}

@media (min-width: 992px) {
  body:not(.home) .gallery-wrapper__top {
    margin-bottom: 2.5rem;
  }
}

/* --- Dokumenty (/subory/…) – rozbaľovacie karty -------------------------- */
.documents-collapse {
  border: 0 !important;
  margin-bottom: 1rem !important;
  background-color: var(--solinky-soft-gray);
  border-radius: var(--sub-radius) !important;
  border-top-right-radius: var(--sub-motif) !important;
  border-bottom-left-radius: var(--sub-motif) !important;
  transition: box-shadow var(--solinky-trans);
}

.documents-collapse:hover,
.documents-collapse.open {
  box-shadow: var(--sub-shadow);
}

.documents-collapse:last-of-type {
  margin-bottom: 2.5rem !important;
}

.documents-collapse__top {
  align-items: center;
  padding: 1.25rem 1.5rem !important;
}

.documents-collapse.open .documents-collapse__top {
  padding-bottom: 1rem !important;
}

.documents-collapse__top h6 {
  font-size: 1.125rem !important;
}

.documents-collapse__trigger {
  color: var(--solinky-gold);
}

.documents-collapse__content {
  padding: 0 1.5rem !important;
}

.documents-collapse__content__inner {
  border-top: 2px solid #e4e4e4 !important;
  padding: 1.25rem 0 1.5rem !important;
}

.documents-collapse__item {
  margin-bottom: 1rem !important;
}

.documents-collapse__item__text {
  font-size: 1rem !important;
  line-height: 1.4 !important;
}

.documents-collapse__item__download {
  margin-left: auto;
  color: var(--solinky-blue) !important;
}

@media (min-width: 992px) {
  .documents-collapse {
    margin-bottom: 1.25rem !important;
  }

  .documents-collapse:last-of-type {
    margin-bottom: 4rem !important;
  }

  .documents-collapse__top {
    padding: 1.75rem 2.25rem !important;
  }

  .documents-collapse.open .documents-collapse__top {
    padding-bottom: 1.25rem !important;
  }

  .documents-collapse__top h6 {
    font-size: 1.5rem !important;
  }

  .documents-collapse__content {
    padding: 0 2.25rem !important;
  }

  .documents-collapse__item__text {
    font-size: 1.125rem !important;
  }
}

/* --- Kontakt ------------------------------------------------------------ */
.contact-info {
  margin-top: 2.5rem;
}

.contact-info__col {
  margin-bottom: 1.25rem !important;
}

.contact-info__col h3 {
  font-size: 1.5rem !important;
  margin-bottom: 1rem !important;
}

.contact-info__col h3::before {
  content: "";
  display: block;
  width: 2.75rem;
  height: 0.4375rem;
  margin-bottom: 0.875rem;
  background-color: var(--solinky-gold);
  border-top-right-radius: 0.4375rem;
  border-bottom-left-radius: 0.4375rem;
}

.contact-info__col p {
  font-size: 1.0625rem !important;
  line-height: 1.6 !important;
  padding: 0.5rem 0;
  border-bottom: 1px solid #e4e4e4;
}

.contact-info__col p:last-child {
  border-bottom: 0;
}

.contact-bottom {
  margin-top: 2rem;
}

.contact-bottom h4,
.contact-bottom p {
  font-size: 1rem !important;
  line-height: 1.6 !important;
}

.contact-bottom h4 {
  font-size: 1.25rem !important;
  margin-bottom: 0.5rem;
}

@media (min-width: 992px) {
  .contact-info {
    margin-top: 4rem;
  }

  .contact-info__col {
    margin-bottom: 2.5rem !important;
  }

  .contact-info__col h3 {
    font-size: 2.25rem !important;
    margin-bottom: 1.5rem !important;
  }

  .contact-info__col p {
    font-size: 1.375rem !important;
  }

  .contact-bottom h4 {
    font-size: 1.75rem !important;
  }

  .contact-bottom p {
    font-size: 1.25rem !important;
  }
}

/* --- 404 a vyhľadávanie ------------------------------------------------ */
.error-404__text,
.search-results__empty {
  font-size: 1.125rem !important;
  line-height: 1.6 !important;
  margin-bottom: 1.5rem;
}

main.page-content:has(.error-404__text),
main.search-results {
  padding-bottom: 3rem;
}

@media (min-width: 992px) {
  main.page-content:has(.error-404__text),
  main.search-results {
    padding-bottom: 5rem;
  }
}

/* --- Fotogaléria – albumy NextGEN (/fotogaleria/, /fotogaleria-zs/, …) --- */
.ngg-albumoverview.default-view {
  display: grid !important; /* NextGEN nastavuje display:block !important */
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.75rem 1rem;
  margin: 0 0 2rem;
}

@media (min-width: 768px) {
  .ngg-albumoverview.default-view {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1200px) {
  .ngg-albumoverview.default-view {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2.5rem 1.5rem;
  }
}

.ngg-albumoverview.default-view > .ngg-clear,
.ngg-albumoverview.default-view > br {
  display: none;
}

.ngg-albumoverview.default-view .ngg-album-compact {
  float: none !important;
  display: block !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  text-align: left !important;
}

.ngg-albumoverview .ngg-album-compactbox::before,
.ngg-albumoverview .ngg-album-compactbox::after {
  display: none !important;
}

.ngg-albumoverview .ngg-album-link,
.ngg-albumoverview .ngg-album-link a {
  display: block;
  width: 100%;
  height: 100%;
}

.ngg-albumoverview .ngg-album-compactbox {
  position: relative;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 3 / 2; /* náhľady albumov NextGEN sú 240×160 */
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: hidden;
  transform: translateZ(0);
  background-color: var(--solinky-soft-gray) !important;
  border-radius: var(--sub-radius);
  border-top-right-radius: var(--sub-motif);
  border-bottom-left-radius: var(--sub-motif);
}

.ngg-albumoverview .ngg-album-compactbox .Thumb,
.ngg-albumoverview .ngg-album-compactbox img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  object-fit: cover;
  transition: transform var(--solinky-trans);
}

.ngg-albumoverview .ngg-album-compact:hover .ngg-album-compactbox img {
  transform: scale(1.05);
}

.ngg-albumoverview .ngg-album-compact h4,
.ngg-albumoverview .ngg-album-compact .ngg-album-desc {
  font-family: "Space Grotesk", sans-serif !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  margin: 0.75rem 0 0 !important;
  max-width: none !important;
  height: auto !important;
}

.ngg-albumoverview .ngg-album-compact h4 .ngg-album-desc {
  /* NextGEN skracuje názov skriptom shave() podľa výšky prvého názvu – pevné 2 riadky;
     text je zarovnaný ku spodku, aby počet fotiek bol vždy tesne pod názvom */
  display: flex !important;
  flex-direction: column;
  justify-content: flex-end;
  height: 2.5em !important;
  max-width: none !important;
  overflow: hidden !important;
  margin: 0 !important;
  color: inherit;
}

.ngg-albumoverview .ngg-album-compact:hover h4 a {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.ngg-albumoverview.default-view p.ngg-album-gallery-image-counter,
.page-content-custom-page .col-12 .ngg-albumoverview p.ngg-album-gallery-image-counter {
  display: block !important;
  margin: 0.3125rem 0 0 !important;
  padding: 0 !important;
  font-family: var(--solinky-font-text);
  font-size: 0.875rem !important;
  line-height: 1.3 !important;
  color: var(--solinky-blue);
  opacity: 0.8;
  text-align: left;
}

.ngg-albumoverview p.ngg-album-gallery-image-counter strong {
  font-weight: 600;
}

@media (min-width: 992px) {
  .ngg-albumoverview .ngg-album-compact h4,
  .ngg-albumoverview .ngg-album-compact .ngg-album-desc {
    font-size: 1.125rem !important;
  }
}

/* detail galérie (fotky albumu) – responzívna mriežka */
body:not(.home) .ngg-galleryoverview.default-view {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
  margin: 0 0 2rem !important;
}

@media (min-width: 768px) {
  body:not(.home) .ngg-galleryoverview.default-view {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
  }
}

@media (min-width: 1200px) {
  body:not(.home) .ngg-galleryoverview.default-view {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
  }
}

body:not(.home) .ngg-galleryoverview.default-view > br,
body:not(.home) .ngg-galleryoverview.default-view > .ngg-clear {
  display: none;
}

body:not(.home) .ngg-galleryoverview .ngg-gallery-thumbnail-box {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}

body:not(.home) .ngg-galleryoverview .ngg-gallery-thumbnail {
  margin: 0 !important;
  border: 0 !important;
  padding: 0 !important;
  background: none !important;
}

body:not(.home) .ngg-galleryoverview .ngg-gallery-thumbnail a {
  display: block;
  margin: 0 !important;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  transform: translateZ(0);
  background-color: var(--solinky-soft-gray);
  border-radius: var(--sub-radius);
  border-top-right-radius: var(--sub-motif);
  border-bottom-left-radius: var(--sub-motif);
}

body:not(.home) .ngg-galleryoverview .ngg-gallery-thumbnail img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  object-fit: cover;
  transition: transform var(--solinky-trans);
}

body:not(.home) .ngg-galleryoverview .ngg-gallery-thumbnail a:hover img {
  transform: scale(1.05);
}

/* stránkovanie je vnútri mriežky – cez celú šírku */
.ngg-albumoverview.default-view > .ngg-navigation,
.ngg-galleryoverview.default-view > .ngg-navigation {
  grid-column: 1 / -1;
}

/* stránkovanie NextGEN – jednotné tlačidlá 44×44 (min. dotyková plocha)
 * Pozor: NextGEN má triedy prehodené – šípka späť ◄ má triedu .next, šípka
 * vpred ▶ triedu .prev. Smer preto určuje poradie (:first-child / :last-child). */
div.ngg-navigation {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  margin: 1rem 0 2rem !important;
  padding: 0 !important;
  font-family: "Space Grotesk", sans-serif;
  font-size: 1rem !important;
}

div.ngg-navigation > a,
div.ngg-navigation > span {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 2.75rem;
  height: 2.75rem;
  padding: 0 0.75rem !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0.375rem !important;
  box-shadow: none !important;
  background: var(--solinky-soft-gray) !important;
  color: #000 !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  transition: background-color var(--solinky-trans), color var(--solinky-trans);
}

div.ngg-navigation > span.current {
  background: var(--solinky-blue) !important;
  color: #fff !important;
  cursor: default !important;
}

div.ngg-navigation > span.ellipsis {
  cursor: default;
}

div.ngg-navigation > a:hover {
  background: #e4e4e4 !important;
  color: #000 !important;
}

/* šípky – pôvodné znaky ◄ ▶ (rôzne veľké) skryté, jednotný chevron cez CSS */
div.ngg-navigation > a.prev,
div.ngg-navigation > a.next {
  width: 2.75rem;
  padding: 0 !important;
  font-size: 0 !important;
  color: var(--solinky-blue) !important;
}

div.ngg-navigation > a.prev::before,
div.ngg-navigation > a.next::before {
  content: "";
  width: 0.5625rem;
  height: 0.5625rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
}

/* späť (prvá položka) */
div.ngg-navigation > a:first-child:is(.prev, .next)::before {
  transform: translateX(0.125rem) rotate(-135deg);
}

/* vpred (posledná položka) */
div.ngg-navigation > a:last-child:is(.prev, .next)::before {
  transform: translateX(-0.125rem) rotate(45deg);
}

/* detail albumu – drobčeková navigácia */
.ngg-breadcrumbs {
  margin: 0 0 1.5rem !important;
  padding: 0 !important;
  font-family: "Space Grotesk", sans-serif;
  font-size: 0.9375rem;
  text-transform: none;
}

.ngg-breadcrumbs li {
  font-size: inherit !important;
  text-transform: none !important;
}

.ngg-breadcrumbs a {
  color: var(--solinky-blue);
}

/* --- Vízia – odrážky „Žiak vie…" ------------------------------------------
 * Trojuholník pôsobil ako rozbaľovací prvok (akordeón) – nahradený štvorčekom
 * v tvare motívu webu vo farbe sekcie, deliace čiary zjemnené. */
.vision-item__list li {
  align-items: flex-start;
  line-height: 1.5 !important;
  gap: 0.875rem !important;
  padding: 0.875rem 0 !important;
  border-bottom-color: #eceaea !important;
}

.vision-item__list li:first-of-type {
  padding-top: 0 !important;
}

.vision-item__list li:last-of-type {
  border-bottom: 0 !important;
}

.vision-item__list li::before {
  flex: 0 0 auto;
  width: 0.625rem !important;
  height: 0.625rem !important;
  margin-top: 0.45em !important;
  border: 0 !important;
  background-color: var(--vision-color);
  border-top-right-radius: 0.3125rem !important;
  border-bottom-left-radius: 0.3125rem !important;
}

@media (min-width: 992px) {
  .vision-item__list li {
    gap: 1rem !important;
    padding: 1rem 0 1rem 0.5rem !important;
  }

  .vision-item__list li:first-of-type {
    padding-top: 0 !important;
  }

  .vision-item__list li {
    line-height: 1.55 !important;
  }

  .vision-item__list li::before {
    margin-top: 0.5em !important;
  }
}

/* --- Obsahové stránky: text vložený z iných aplikácií (napr. Teams) ---------
 * je zabalený v <div> – šírka textu obmedzená rovnako ako pri bežných odsekoch */
.page-content-custom-page .col-12 > div:not([class*="wp-block-"]):not([class*="ngg-"]):not(.row) {
  max-width: 56rem;
}

.page-content-custom-page .col-12 > div:not([class*="wp-block-"]):not([class*="ngg-"]) p {
  max-width: 56rem;
}

/* --- Citácia (blockquote / wp-block-quote / wp-block-pullquote) -------------- */
.page-content-custom-page .col-12 blockquote,
.page-content-custom-page .col-12 .wp-block-quote,
.page-content-custom-page .col-12 .wp-block-pullquote {
  position: relative;
  margin: 0 0 2rem !important;
  padding: 1.5rem 1.5rem 1.5rem 1.75rem;
  border: 0;
  border-left: 0.375rem solid var(--solinky-gold);
  background-color: #fffde8; /* $soft-gold */
  border-top-right-radius: var(--sub-motif);
  border-bottom-left-radius: 0.375rem;
  text-align: left;
}

.page-content-custom-page .col-12 .wp-block-pullquote blockquote {
  margin: 0 !important;
  padding: 0;
  border: 0;
  background: none;
}

/* text citátu */
.page-content-custom-page .col-12 blockquote > p,
.page-content-custom-page .col-12 .wp-block-quote > p,
.page-content-custom-page .col-12 .wp-block-pullquote p {
  max-width: none;
  margin: 0 !important;
  font-family: var(--solinky-font-text);
  font-style: italic;
  font-size: 1.25rem !important;
  line-height: 1.5 !important;
  color: var(--solinky-blue);
}

.page-content-custom-page .col-12 blockquote > p em {
  font-style: inherit;
}

/* podpis – posledný odsek v citácii alebo <cite>, hneď pod citátom vľavo, s pomlčkou */
.page-content-custom-page .col-12 blockquote > p:last-child:not(:first-child),
.page-content-custom-page .col-12 blockquote cite,
.page-content-custom-page .col-12 .wp-block-quote cite,
.page-content-custom-page .col-12 .wp-block-pullquote cite {
  display: block;
  margin-top: 0.75rem !important;
  text-align: left !important;
  font-family: "Space Grotesk", sans-serif;
  font-style: normal;
  font-weight: 600;
  font-size: 0.9375rem !important;
  line-height: 1.4 !important;
  letter-spacing: 0.02em;
  color: rgba(0, 0, 0, 0.7);
}

.page-content-custom-page .col-12 blockquote > p:last-child:not(:first-child)::before,
.page-content-custom-page .col-12 blockquote cite::before,
.page-content-custom-page .col-12 .wp-block-quote cite::before,
.page-content-custom-page .col-12 .wp-block-pullquote cite::before {
  /* bez medzery – inak ::first-letter nezachytí prvé písmeno podpisu */
  content: "—";
  margin-right: 0.3em;
}

.page-content-custom-page .col-12 blockquote > p:last-child:not(:first-child)::first-letter,
.page-content-custom-page .col-12 blockquote cite::first-letter {
  text-transform: uppercase;
}

/* podpis ako samostatný odsek zarovnaný vpravo hneď za citáciou */
.page-content-custom-page .col-12 blockquote + p.has-text-align-right,
.page-content-custom-page .col-12 .wp-block-quote + p.has-text-align-right {
  margin-top: -1.25rem !important;
  text-align: left !important;
  font-family: "Space Grotesk", sans-serif;
  font-weight: 600;
  font-size: 0.9375rem !important;
}

@media (min-width: 992px) {
  .page-content-custom-page .col-12 blockquote,
  .page-content-custom-page .col-12 .wp-block-quote,
  .page-content-custom-page .col-12 .wp-block-pullquote {
    margin-bottom: 3rem !important;
    padding: 2.25rem 2.5rem 2.25rem 2.75rem;
  }

  .page-content-custom-page .col-12 blockquote > p,
  .page-content-custom-page .col-12 .wp-block-quote > p,
  .page-content-custom-page .col-12 .wp-block-pullquote p {
    font-size: 1.75rem !important;
    line-height: 1.4 !important;
  }

  .page-content-custom-page .col-12 blockquote > p:last-child:not(:first-child),
  .page-content-custom-page .col-12 blockquote cite,
  .page-content-custom-page .col-12 .wp-block-quote cite,
  .page-content-custom-page .col-12 .wp-block-pullquote cite {
    margin-top: 1rem !important;
    font-size: 1.0625rem !important;
  }
}

/* --- Zníženie pohybu ---------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .ngg-albumoverview .ngg-album-compactbox img,
  .documents-collapse,
  body:not(.home) .announcement-wrapper > .announcement,
  body:not(.home) .announcement-wrapper > .announcement > .announcement__row {
    transition: none;
  }

  .ngg-albumoverview .ngg-album-compact:hover .ngg-album-compactbox img {
    transform: none;
  }
}

/* --- Úvodná fotka ZŠ, MŠ, Jedáleň s H1 cez overlay (ako banner s titulkom) --- */
.header-rounded--title::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(to top, rgba(75, 82, 110, 0.95) 0%, rgba(75, 82, 110, 0.75) 35%, rgba(75, 82, 110, 0.15) 75%, rgba(75, 82, 110, 0) 100%),
    linear-gradient(to right, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 60%);
  pointer-events: none;
}

.header-rounded__inner {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  padding: 1.25rem 1.25rem 1.25rem 2.5rem;
}

.header-rounded--title .header-full__title {
  max-width: 50rem;
  font-size: 1.5rem !important;
  line-height: 1.15 !important;
  text-shadow: 0 0.125rem 0.75rem rgba(0, 0, 0, 0.35);
  overflow-wrap: anywhere;
}

@media (min-width: 992px) {
  .header-rounded__inner {
    padding: 3rem 3.5rem 3rem 5.5rem;
  }

  .header-rounded--title .header-full__title {
    font-size: 3.25rem !important;
  }
}

/* titulok v úvodnej fotke: bez odsadenia 120 px zdedeného z .header-full__title */
.header-rounded--title .header-full__title {
  padding: 0 !important;
}

/* na mobile banner rastie s textom (dlhé H1 sa neoreže): výška z pomeru ako minimum */
@media (max-width: 991.98px) {
  .header-rounded--title {
    display: flex;
    align-items: flex-end;
    min-height: calc((100vw - 2.5rem) * 0.4821);
    padding-top: 0 !important;
  }

  .header-rounded--title .header-rounded__inner {
    position: relative;
    width: 100%;
  }
}

/* --- Kalendár: štítok zariadenia zarovnaný na ľavý okraj karty ------------- */
.event-calendar__school {
  margin-left: -1.6875rem; /* = vnútorné odsadenie karty (27 px) */
  border-top-left-radius: 0 !important;
}

@media (min-width: 992px) {
  .event-calendar__school {
    margin-left: -2.9375rem; /* 47 px */
  }
}

/* --- Odkazy v texte: zelená z palety ($green), odlíšené od textu ----------- */
#js-page-content :is(p, li, td, dd, blockquote, figcaption) a:not(.btn):not(.btn-simple):not(.stretched-link) {
  color: #4b6e51;
  text-decoration: underline;
  text-underline-offset: 0.15em;
  text-decoration-thickness: 1px;
}

#js-page-content :is(p, li, td, dd, blockquote, figcaption) a:not(.btn):not(.btn-simple):not(.stretched-link):hover {
  color: #4b6e51;
  text-decoration-thickness: 2px;
}

/* --- Pätička: Facebook v štýle webu (namiesto výraznej modrej Facebooku) --- */
.footer__bottom__fb {
  gap: 0.5rem;
  padding: 0.5rem 1rem 0.5rem 0.75rem !important;
  color: #ffffff !important;
  background-color: transparent !important;
  border: 1.5px solid rgba(255, 255, 255, 0.6);
  border-radius: 0.375rem !important;
  border-bottom-left-radius: 1rem !important;
  transition: background-color var(--solinky-trans), color var(--solinky-trans), border-color var(--solinky-trans);
}

.footer__bottom__fb .icon-facebook {
  width: 1.375rem;
  height: 1.375rem;
  fill: currentColor;
}

.footer__bottom__fb span {
  margin: 0 !important;
  font-family: "Space Grotesk", sans-serif;
  font-size: 1rem !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
}

.footer__bottom__fb:hover,
.footer__bottom__fb:focus-visible {
  color: var(--solinky-blue) !important;
  background-color: #ffffff !important;
  border-color: #ffffff;
  text-decoration: none;
}

/* --- Jednotný kontajner obsahu: všetky bloky (formuláre, tabuľky, vložené prvky) zarovnané vľavo na šírku textu --- */
.page-content-custom-page .col-12 > * {
  max-width: 56rem;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* WPForms – farby a tvary z palety webu */
.page-content-custom-page .wpforms-container {
  --wpforms-field-border-color: #cacaca;
  --wpforms-field-border-radius: 0.375rem;
  --wpforms-field-text-color: #000000;
  --wpforms-label-color: #000000;
  --wpforms-button-background-color: #4b526e;
  --wpforms-button-border-radius: 0.375rem;
  --wpforms-button-text-color: #ffffff;
}

.page-content-custom-page .wpforms-container .wpforms-field-label {
  font-family: "Space Grotesk", sans-serif;
}

.page-content-custom-page .wpforms-container input:focus,
.page-content-custom-page .wpforms-container textarea:focus {
  border-color: #4b526e !important;
  box-shadow: 0 0 0 1px #4b526e !important;
}


/* --- Rozvrh hodín z EduPage (vložený iframe) – na celú šírku obsahu ---------- */
.page-content-custom-page .col-12 > .edupage-rozvrh {
  display: block;
  width: 100%;
  max-width: none;
  height: 75vh;
  min-height: 34rem;
  border: 1px solid #e4e4e4;
  border-radius: 0.375rem;
  border-top-right-radius: 2.5rem;
  border-bottom-left-radius: 2.5rem;
}

.page-content-custom-page .col-12 > .edupage-rozvrh__link {
  margin-top: 1rem;
}

@media (min-width: 992px) {
  .page-content-custom-page .col-12 > .edupage-rozvrh {
    height: 52rem;
  }
}

/* --- Predvolené tlačidlá v obsahu (Gutenberg „Tlačidlo", odosielacie tlačidlá formulárov)
 * v rovnakom štýle ako .btn témy: modrá z palety, Space Grotesk 600, motív rohu,
 * hover = obrys (ako .btn-gold / .btn-blue na webe) */
#js-page-content :is(.wp-block-button__link, .wp-element-button, input[type="submit"], input[type="button"], button[type="submit"]):not(.btn) {
  display: inline-block;
  padding: 0.5625rem 1.4375rem;
  font-family: "Space Grotesk", sans-serif !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  line-height: 1.33rem;
  color: #ffffff !important;
  text-decoration: none !important;
  text-transform: uppercase;
  background-color: #4b526e !important;
  border: 2px solid #4b526e !important;
  border-radius: 0 !important;
  border-bottom-left-radius: 1.4375rem !important;
  cursor: pointer;
  transition: color var(--solinky-trans), background-color var(--solinky-trans);
}

#js-page-content :is(.wp-block-button__link, .wp-element-button, input[type="submit"], input[type="button"], button[type="submit"]):not(.btn):hover {
  color: #4b526e !important;
  background-color: transparent !important;
}

/* variant „Obrys" z editora */
#js-page-content .is-style-outline > .wp-block-button__link {
  color: #4b526e !important;
  background-color: transparent !important;
}

#js-page-content .is-style-outline > .wp-block-button__link:hover {
  color: #ffffff !important;
  background-color: #4b526e !important;
}

#js-page-content .wp-block-buttons {
  gap: 0.75rem;
  margin: 1.5rem 0;
}

/* --- Omrvinková navigácia galérií (NextGEN) ------------------------------ */
#js-page-content .ngg-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.5rem;
  margin: 0 0 1.5rem;
  padding: 0;
  list-style: none;
}

#js-page-content .ngg-breadcrumbs .ngg-breadcrumb {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  font-family: "Space Grotesk", sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.4;
  color: #000000;
}

#js-page-content .ngg-breadcrumbs .ngg-breadcrumb a {
  color: #4b526e !important;
  text-decoration: none !important;
}

#js-page-content .ngg-breadcrumbs .ngg-breadcrumb a:hover {
  color: #4b526e !important;
  text-decoration: underline !important;
}

/* oddeľovač » → jemná šípka */
#js-page-content .ngg-breadcrumb-divisor {
  font-size: 0;
}

#js-page-content .ngg-breadcrumb-divisor::before {
  content: "›";
  font-size: 1.125rem;
  color: #a0a0a0;
}

/* --- Fotogalérie na celú šírku kontajnera (nie len šírku textu) ----------- */
.page-content-custom-page .col-12:has(> .ngg-albumoverview, > .ngg-galleryoverview, > .ngg-breadcrumbs) {
  flex: 0 0 100%;
  width: 100%;
  max-width: 100%;
}

.page-content-custom-page .col-12 > :is(.ngg-albumoverview, .ngg-galleryoverview, .ngg-breadcrumbs, .ngg-navigation) {
  max-width: none;
}
