@import url('https://fonts.googleapis.com/css2?family=Dosis:wght@400;500&family=Lato:wght@300;400;600&display=swap');

:root {
  --elizjum-navy: #122b43;
  --elizjum-blue: #285a7a;
  --elizjum-gold: #b49559;
  --elizjum-ink: #24313a;
  --elizjum-muted: #65717b;
  --elizjum-paper: #fbfaf7;
}

.com-content-article.item-page {
  max-width: 1100px;
  margin: 0 auto;
  color: var(--elizjum-ink);
}

.com-content-article .page-header {
  position: relative;
  display: grid;
  min-height: 165px;
  margin: 0 0 1.8rem;
  place-items: center;
  border: 0;
  overflow: hidden;
  background: #fff;
}

.com-content-article .page-header::before {
  position: absolute;
  top: 50%;
  left: 50%;
  color: #f0f0f0;
  font-family: Lato, sans-serif;
  font-size: 6.5rem;
  font-weight: 300;
  line-height: 1;
  content: "O";
  transform: translate(-50%, -50%);
}

.com-content-article .page-header h1 {
  position: relative;
  z-index: 1;
  color: var(--elizjum-navy);
  font-family: Lato, sans-serif;
  font-size: clamp(1.6rem, 3vw, 2.05rem);
  font-weight: 300;
  letter-spacing: .13em;
  text-transform: uppercase;
}

/* Joomla artykuł renderuje tytuł jako h2; osobny styl dla strony „O nas”. */
body.itemid-405 .container-component .page-header {
  position: relative;
  display: grid;
  height: 165px !important;
  min-height: 165px !important;
  padding: 0 !important;
  margin: 0 0 1.8rem !important;
  place-items: center;
  overflow: hidden;
  background: #fff;
  border: 0;
}

body.itemid-405 .container-component .page-header::before {
  position: absolute;
  top: 50%;
  left: 50%;
  color: #f0f0f0;
  font-family: Lato, sans-serif;
  font-size: 6.5rem;
  font-weight: 300;
  line-height: 1;
  content: "O";
  transform: translate(-50%, -50%);
}

body.itemid-405 .container-component .page-header > h2 {
  position: relative;
  z-index: 1;
  margin: 0 !important;
  color: var(--elizjum-navy) !important;
  font-family: Lato, sans-serif !important;
  font-size: 2.05rem !important;
  font-weight: 300 !important;
  letter-spacing: .13em;
  line-height: 1 !important;
  text-transform: uppercase;
}

/* Adres bez Itemid: ten sam wzór dla tytułów treści Joomla. */
body .container-component main .page-header {
  position: relative;
  display: grid;
  height: 165px !important;
  min-height: 165px !important;
  padding: 0 !important;
  margin: 0 0 1.8rem !important;
  place-items: center;
  overflow: hidden;
  background: #fff;
  border: 0;
}

body .container-component main .page-header::before {
  position: absolute;
  top: 50%;
  left: 50%;
  color: #f0f0f0;
  font-family: Lato, sans-serif;
  font-size: 6.5rem;
  font-weight: 300;
  line-height: 1;
  content: "O";
  transform: translate(-50%, -50%);
}

body .container-component main .page-header > h2 {
  position: relative;
  z-index: 1;
  margin: 0 !important;
  color: var(--elizjum-navy) !important;
  font-family: Lato, sans-serif !important;
  font-size: 2.05rem !important;
  font-weight: 300 !important;
  letter-spacing: .13em;
  line-height: 1 !important;
  text-transform: uppercase;
}

.elizjum-about {
  font-size: 1.06rem;
  line-height: 1.78;
}

.elizjum-about__lead {
  position: relative;
  padding: clamp(1.75rem, 5vw, 4rem);
  margin-bottom: clamp(1.75rem, 4vw, 3.5rem);
  overflow: hidden;
  color: #fff;
  background: linear-gradient(225deg, #73c0b3, rgba(123, 187, 116, .95));
}

.elizjum-about__lead::after {
  position: absolute;
  right: -3rem;
  bottom: -6rem;
  width: 15rem;
  height: 15rem;
  content: "";
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 50%;
}

.elizjum-about__lead p { position: relative; z-index: 1; max-width: 48rem; margin-bottom: 1rem; }
.elizjum-about__lead p:last-child { margin-bottom: 0; }
.elizjum-about__eyebrow { color: #efd7a7; font-size: .75rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.elizjum-about__intro { font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.45rem, 3vw, 2.1rem); line-height: 1.4; }

.elizjum-about__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, .55fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: start; }
.elizjum-about__section { margin: 0 0 clamp(2rem, 5vw, 4.5rem); }
.elizjum-about__section h2 { margin: 0 0 1.15rem; color: var(--elizjum-navy); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.5rem, 2.5vw, 2.1rem); font-weight: 500; }
.elizjum-about__section p { margin: 0 0 1.15rem; }

.elizjum-about__contact { padding: 2rem; color: var(--elizjum-navy); text-align: center; background: var(--elizjum-paper); border-top: 4px solid #73c0b3; }
.elizjum-about__contact p { margin: 0 0 .5rem; color: var(--elizjum-muted); font-size: .82rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.elizjum-about__contact strong { display: block; font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; font-weight: 500; line-height: 1.4; }
.elizjum-about__contact a { display: table; margin: 1.2rem auto 0; color: var(--elizjum-navy); font-size: 1.3rem; font-weight: 700; text-decoration-color: #73c0b3; text-decoration-thickness: 2px; text-underline-offset: 5px; }

/* Kontakt: numery telefonów Tarnowskie Góry są wyraźnym, osobnym elementem. */
#sppb-addon-1569872100503 .sppb-addon-title { line-height: 1.16; }
#sppb-addon-1569872100503 .sppb-addon-title a.elizjum-contact-phone {
  display: inline-block;
  margin-top: .18rem;
  color: #000 !important;
  font-size: clamp(1.8rem, 3vw, 2.35rem);
  font-weight: 700;
  line-height: 1.1;
  text-decoration: none;
}
#sppb-addon-1569872100503 .sppb-addon-title a.elizjum-contact-phone:hover,
#sppb-addon-1569872100503 .sppb-addon-title a.elizjum-contact-phone:focus { color: #000 !important; text-decoration: none !important; }

/* Kontakt: logo jest wyśrodkowane względem pełnego bloku danych po prawej. */
#section-id-1569872100495 .sppb-row {
  align-items: center;
}
#section-id-1569872100495 .sppb-column:nth-child(2) {
  align-self: center;
}

.elizjum-about__services-heading { font-weight: 700; }
.elizjum-about__services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .15rem 2rem; padding: 1.35rem 0 1.4rem; margin: 0 0 1.25rem; list-style: none; border-top: 1px solid #dce1e3; border-bottom: 1px solid #dce1e3; }
.elizjum-about__services li { position: relative; padding-left: 1.25rem; }
.elizjum-about__services li::before { position: absolute; left: 0; color: var(--elizjum-gold); content: "◆"; font-size: .55rem; top: .55rem; }

@media (max-width: 720px) {
  .com-content-article .page-header { margin-top: 1.75rem; }
  .elizjum-about__grid, .elizjum-about__services { grid-template-columns: 1fr; }
  .elizjum-about__contact { margin-bottom: 2rem; }
}

/* Kafle usług na stronie głównej – style pierwotnego szablonu JB Nation. */
.container-main-bottom .moduletable.card {
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.container-main-bottom .sppb-addon-title,
.container-main-bottom .sppb-addon-title a {
  color: #5f2039;
  font-family: Lato, sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 34px;
  text-decoration: none;
}
.container-main-bottom .sppb-addon-title a:hover { color: #5f2039; text-decoration: none; }
.container-main-bottom .sppb-addon-text-block,
.container-main-bottom .sppb-addon-text-block p {
  color: #9c9c9c;
  font-family: Lato, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 22px;
}
.container-main-bottom .sppb-addon-text-block p { margin: 0; }
.container-main-bottom .sppb-btn.sppb-btn-custom {
  padding: 11px 20px;
  color: #fff;
  font-family: Lato, sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
  text-transform: lowercase;
  background: #9dd3ca;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.container-main-bottom .sppb-btn.sppb-btn-custom:hover { color: #fff; background: #91c6bd; }
.container-main-bottom .sppb-addon-icon .sppb-icon-inner {
  display: grid;
  width: 100px;
  height: 100px;
  margin: -50px auto -10px;
  place-items: center;
  background: #fff;
  border-radius: 50%;
}
.container-main-bottom .sppb-addon-icon .sppb-icon-inner i,
.container-main-bottom .sppb-addon-icon .sppb-icon-inner svg {
  color: #72c0b3;
  font-size: 48px;
}
@media (max-width: 720px) {
  .container-main-bottom .sppb-addon-title,
  .container-main-bottom .sppb-addon-title a { font-size: 18px; line-height: 28px; }
  .container-main-bottom .sppb-addon-icon .sppb-icon-inner { width: 80px; height: 80px; margin: -40px auto -8px; }
  .container-main-bottom .sppb-addon-icon .sppb-icon-inner i,
  .container-main-bottom .sppb-addon-icon .sppb-icon-inner svg { font-size: 35px; }
}

/* Cassiopeia renderuje „main-bottom” wewnątrz .container-component. */
.container-component main + .moduletable {
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.container-component main + .moduletable .sppb-addon-title,
.container-component main + .moduletable .sppb-addon-title a {
  color: #333 !important;
  font-family: Lato, sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 34px;
  text-decoration: none !important;
}
.container-component main + .moduletable .sppb-addon-title a:hover,
.container-component main + .moduletable .sppb-addon-title a:focus {
  color: #333 !important;
  text-decoration: none !important;
}
.container-component main + .moduletable .sppb-addon-text-block,
.container-component main + .moduletable .sppb-addon-text-block p {
  color: #9c9c9c !important;
  font-family: Lato, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 22px;
}
.container-component main + .moduletable .sppb-btn,
.container-component main + .moduletable .sppb-btn:hover,
.container-component main + .moduletable .sppb-btn:focus {
  color: #fff !important;
  text-decoration: none !important;
}
.container-component main + .moduletable .sppb-addon-icon .sppb-icon-inner {
  display: grid;
  width: 100px;
  height: 100px;
  margin: -50px auto -10px;
  place-items: center;
  background: #fff;
  border-radius: 50%;
}
.container-component main + .moduletable .sppb-addon-icon .sppb-icon-inner i,
.container-component main + .moduletable .sppb-addon-icon .sppb-icon-inner svg {
  color: #72c0b3;
  font-size: 48px;
}

/* Identyfikatory pierwszych sześciu kafli – niezależne od chrome szablonu. */
#sppb-addon-1515153678604 .sppb-addon-title,
#sppb-addon-1515153678604 .sppb-addon-title a,
#sppb-addon-1515153678611 .sppb-addon-title,
#sppb-addon-1515153678611 .sppb-addon-title a,
#sppb-addon-1515153678618 .sppb-addon-title,
#sppb-addon-1515153678618 .sppb-addon-title a,
#sppb-addon-1515153678579 .sppb-addon-title,
#sppb-addon-1515153678579 .sppb-addon-title a,
#sppb-addon-1515153678587 .sppb-addon-title,
#sppb-addon-1515153678587 .sppb-addon-title a,
#sppb-addon-1515153678595 .sppb-addon-title,
#sppb-addon-1515153678595 .sppb-addon-title a {
  color: #333 !important;
  text-decoration: none !important;
  border: 0 !important;
  border-bottom: 0 !important;
  background-image: none !important;
  box-shadow: none !important;
}
#sppb-addon-1515153678604 a,
#sppb-addon-1515153678611 a,
#sppb-addon-1515153678618 a,
#sppb-addon-1515153678579 a,
#sppb-addon-1515153678587 a,
#sppb-addon-1515153678595 a {
  text-decoration: none !important;
  border-bottom: 0 !important;
  background-image: none !important;
  box-shadow: none !important;
}

/* Kolejne kafle usług (drugi i trzeci rząd). */
#sppb-addon-1618220207621 .sppb-addon-title,
#sppb-addon-1618220207621 .sppb-addon-title a,
#sppb-addon-1569608206632 .sppb-addon-title,
#sppb-addon-1569608206632 .sppb-addon-title a,
#sppb-addon-1622042571333 .sppb-addon-title,
#sppb-addon-1622042571333 .sppb-addon-title a,
#sppb-addon-1663235733210 .sppb-addon-title,
#sppb-addon-1663235733210 .sppb-addon-title a,
#sppb-addon-1630486833271 .sppb-addon-title,
#sppb-addon-1630486833271 .sppb-addon-title a {
  color: #333 !important;
  text-decoration: none !important;
  border: 0 !important;
  border-bottom: 0 !important;
  background-image: none !important;
  box-shadow: none !important;
}
#sppb-addon-1618220207621 a,
#sppb-addon-1569608206632 a,
#sppb-addon-1622042571333 a,
#sppb-addon-1663235733210 a,
#sppb-addon-1630486833271 a {
  text-decoration: none !important;
  border-bottom: 0 !important;
  background-image: none !important;
  box-shadow: none !important;
}

/* Tytuł modułu usług ma ten sam motyw, co tytuł „O nas”. */
.main-bottom.card {
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.main-bottom.card > .card-header {
  position: relative;
  display: flex;
  height: 165px;
  margin: 0;
  padding: 0;
  align-items: center;
  justify-content: center;
  color: #263b54;
  font-family: Dosis, sans-serif;
  font-size: 26px;
  font-weight: 400;
  letter-spacing: 2px;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
  background: #fff;
  border: 0;
}
.main-bottom.card > .card-header::before {
  position: absolute;
  z-index: 0;
  top: 50%;
  left: 50%;
  width: 55px;
  height: 80px;
  content: "";
  background: url('/images/layout/logo-silver-elizjum-big.png') center / contain no-repeat;
  opacity: .32;
  transform: translate(-50%, -50%);
}
.main-bottom.card > .card-header { isolation: isolate; }
.main-bottom.card > .card-header::after {
  position: absolute;
  z-index: -1;
  content: "";
}
.main-bottom.card > .card-body {
  padding: 0;
  background: #fff;
  border: 0;
}

/* Wprowadzenie do poradnika na stronie głównej. */
.elizjum-guide-intro {
  position: relative;
  max-width: 1280px;
  margin: 0 auto;
  padding: 82px 20px 42px;
  text-align: center;
}
.elizjum-guide-intro::before {
  position: absolute;
  z-index: 0;
  top: calc(50% + 20px);
  left: 50%;
  width: 55px;
  height: 80px;
  content: "";
  background: url('/images/layout/logo-silver-elizjum-big.png') center / contain no-repeat;
  opacity: .32;
  transform: translate(-50%, -50%);
}
.elizjum-guide-intro h2 {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #333;
  font-family: Lato, sans-serif;
  font-size: 30px;
  font-weight: 400;
  line-height: 1.35;
}
.bottom-b.card {
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.bottom-b.card > .card-body { padding: 0; background: #fff; }

/* Dwa moduły poradnika muszą układać się pionowo, nie jako kolumny stopki. */
.container-bottom-b {
  display: block !important;
}
.container-bottom-b > .bottom-b.card {
  width: 100%;
}

/* Końcowy panel kontaktowy, scalony wizualnie z końcem strony. */
.elizjum-bottom-contact {
  display: flex;
  min-height: 390px;
  margin-top: 0;
  padding: 70px 20px 80px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-align: center;
  background: #000;
  box-shadow: 0 0 0 100vmax #000;
  clip-path: inset(0 -100vmax);
}
.elizjum-bottom-contact__phone {
  margin-bottom: 30px;
  color: #fff;
  font-family: Lato, sans-serif;
  font-size: clamp(38px, 4vw, 56px);
  font-weight: 600;
  letter-spacing: .02em;
  line-height: 1;
  text-decoration: none;
}
.elizjum-bottom-contact__phone:hover,
.elizjum-bottom-contact__phone:focus { color: #fff; text-decoration: none; }
.elizjum-bottom-contact__logo {
  display: block;
  width: 100px;
  height: auto;
  opacity: .9;
}
.container-footer { background: #000; }
@media (max-width: 720px) {
  .elizjum-bottom-contact { min-height: 310px; padding: 55px 20px 60px; }
  .elizjum-bottom-contact__phone { margin-bottom: 25px; }
  .elizjum-bottom-contact__logo { width: 82px; }
}

/* Śródtytuły poradnika – format zgodny z pierwotną stroną. */
#sppb-addon-1569363198176 .sppb-addon-title,
#sppb-addon-1569363127183 .sppb-addon-title {
  margin: 0 0 30px !important;
  color: #9dd3ca !important;
  font-family: Lato, sans-serif;
  font-size: 27px;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none !important;
  text-transform: uppercase;
}
#sppb-addon-1569363357934 .sppb-addon-title,
#sppb-addon-1569363357939 .sppb-addon-title {
  margin: 0 0 18px !important;
  color: #9dd3ca !important;
  font-family: Lato, sans-serif;
  font-size: 27px;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none !important;
  text-transform: uppercase;
}
@media (max-width: 720px) {
  .main-bottom.card > .card-header { height: 130px; font-size: 20px; letter-spacing: 1px; }
  .main-bottom.card > .card-header::before { font-size: 62px; }
}

/* W nagłówkach sekcji logo zastępuje dekoracyjną pierwszą literę. */
.com-content-article .page-header::before,
body.itemid-405 .container-component .page-header::before,
body .container-component main .page-header::before,
#sppb-addon-1565780791708::before,
.elizjum-home-about-heading::before {
  width: 55px;
  height: 80px;
  content: "";
  background: url('/images/layout/logo-silver-elizjum-big.png') center / contain no-repeat;
  opacity: .32;
}

/* Usuwa pozostałą dekorację litery ze starego dodatku SP Page Builder. */
#sppb-addon-1565780791708 .sppb-addon-title::before,
#sppb-addon-1565780791708 .sppb-addon-title::after,
.elizjum-home-about-heading .sppb-addon-title::before,
.elizjum-home-about-heading .sppb-addon-title::after {
  display: none !important;
  content: none !important;
  background: none !important;
}

/* Slider strony głównej – lekka, zgodna z Joomla 4/5 wersja dawnego Revolution Slidera. */
.container-banner { width: 100%; }
.elizjum-slider { position: relative; height: max(620px, 100vh); overflow: hidden; color: #fff; background: #0b120b; }
.elizjum-slide { position: absolute; inset: 0; display: grid; place-items: center; padding: 12rem 5rem 4rem; opacity: 0; background-image: linear-gradient(rgba(0,0,0,.14), rgba(0,0,0,.14)), var(--slide-image); background-position: center top; background-repeat: no-repeat; background-size: cover; transition: opacity 1s ease; }
.elizjum-slide.is-active { z-index: 1; opacity: 1; }
.elizjum-slide__content { max-width: 900px; text-align: center; text-shadow: 0 2px 8px rgba(0,0,0,.3); }
.elizjum-slide__title { margin: 0 0 2.2rem; font-family: Lato, sans-serif; font-size: clamp(2rem, 4vw, 3.6rem); font-weight: 600; letter-spacing: .03em; text-transform: uppercase; }
.elizjum-slide__quote { margin: 0 0 3.2rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.7rem, 3vw, 2.6rem); font-style: italic; line-height: 1.4; }
.elizjum-slide__author { margin: 0; font-family: Lato, sans-serif; font-size: clamp(1.8rem, 3.5vw, 3rem); font-weight: 300; letter-spacing: .02em; text-transform: uppercase; }
.elizjum-slide__button { display: inline-block; padding: .7rem 1.8rem; color: #fff; font-family: Dosis, sans-serif; font-size: 1.05rem; font-weight: 500; text-decoration: none; text-transform: uppercase; border: 1px solid #fff; transition: color .2s ease, background-color .2s ease; }
.elizjum-slide__button:hover { color: #1b1b1b; background: #fff; }
.elizjum-slider__arrow { position: absolute; z-index: 2; top: 50%; display: grid; width: 4.4rem; height: 4.4rem; padding: 0; place-items: center; color: #aeb6ba; font-family: Arial, sans-serif; font-size: 4rem; font-weight: 200; line-height: 1; cursor: pointer; background: rgba(255,255,255,.96); border: 0; transform: translateY(-50%); }
.elizjum-slider__arrow--prev { left: 0; }
.elizjum-slider__arrow--next { right: 0; }
.elizjum-slider__arrow:hover { color: #fff; background: var(--elizjum-navy); }
@media (max-width: 720px) { .elizjum-slider { height: 680px; } .elizjum-slide { padding: 9rem 1.25rem 3rem; } .elizjum-slider__arrow { width: 3.1rem; height: 3.6rem; font-size: 3rem; } }
@media (prefers-reduced-motion: reduce) { .elizjum-slide { transition: none; } }

/* Wspólny nagłówek Elizjum – moduły działają tylko w szablonie Cassiopeia_elizjum4. */
.container-header {
  position: relative;
  z-index: 1000;
  min-height: 168px;
  color: #fff;
  background: #000;
  transition: background-color .25s ease, box-shadow .25s ease;
}

.container-header .container-topbar {
  position: absolute;
  top: 1rem;
  right: max(1.25rem, calc((100vw - 1180px) / 2));
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  gap: 1.2rem;
  min-height: 2.35rem;
  padding: 0;
  color: #fff;
  background: transparent;
}

.container-topbar .moduletable { display: flex; align-items: center; margin: 0; }
.container-topbar a { color: #fff; font-family: Lato, sans-serif; font-size: 30px; font-weight: 600; text-decoration: none; }
.container-topbar .numerdb::before { display: none; }
.container-topbar .social-icons span { display: block; }
.container-topbar .social-icons a { display: inline-grid; width: 2.25rem; height: 2.25rem; place-items: center; color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.88); border-radius: 50%; }
.container-topbar .elizjum-menu-toggle {
  display: inline-grid;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  place-items: center;
  color: #fff;
  font-family: Arial, sans-serif;
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  background: transparent;
  border: 1px solid rgba(255,255,255,.88);
  border-radius: 50%;
}
.container-topbar .elizjum-menu-toggle:hover { color: #000; background: #fff; }
.container-topbar details.elizjum-menu-toggle { display: inline-grid; }
.container-topbar details.elizjum-menu-toggle > summary {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  cursor: pointer;
  list-style: none;
}
.container-topbar details.elizjum-menu-toggle > summary::-webkit-details-marker { display: none; }

.container-header > .grid-child {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

.container-header .navbar-brand { padding: 1rem 0 .6rem; }
.container-header .brand-logo { display: inline-flex; align-items: center; }
.container-header .brand-logo img { width: 69px; max-width: none; height: 100px; object-fit: contain; object-position: left center; }

.container-header .container-nav {
  position: absolute;
  right: max(1.25rem, calc((100vw - 1180px) / 2));
  bottom: 0;
  left: max(1.25rem, calc((100vw - 1180px) / 2));
  width: auto;
  padding: 0;
}
.container-header .container-nav .mod-menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0;
  margin: 0 0 0 150px;
  padding: 0;
  border-top: 1px solid rgba(255,255,255,.24);
  list-style: none;
}

.container-header .container-nav .mod-menu > li { position: relative; margin: 0; }
.container-header .container-nav .mod-menu > li > a,
.container-header .container-nav .mod-menu > li > button {
  display: block;
  padding: 35px 10px;
  color: #fff;
  font-family: Dosis, sans-serif;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: normal;
  text-decoration: none;
  text-transform: uppercase;
}

.container-header .container-nav .mod-menu > li > a:hover,
.container-header .container-nav .mod-menu > li.active > a,
.container-header .container-nav .mod-menu > li > a[aria-current="page"] { color: #fff; }
.container-header .container-nav .mod-menu ul { z-index: 50; min-width: 17rem; padding: .45rem 0; background: #fff; box-shadow: 0 .5rem 1.3rem rgba(18, 43, 67, .18); }
.container-header .container-nav .mod-menu ul a { display: block; padding: .55rem 1rem; color: var(--elizjum-ink); font-size: .9rem; text-decoration: none; }
.container-header .container-nav .mod-menu ul a:hover { color: #fff; background: var(--elizjum-navy); }

/* Strona główna: nagłówek jest nałożony na zdjęcie i ciemnieje po przewinięciu. */
body.itemid-117 .container-header {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,.38), rgba(0,0,0,.10));
  box-shadow: none;
}

body.itemid-117 .container-header.elizjum-scrolled {
  position: fixed;
  background: #000;
  box-shadow: 0 2px 13px rgba(0,0,0,.32);
}

@media (max-width: 900px) {
  .container-header .container-nav .mod-menu > li > a,
  .container-header .container-nav .mod-menu > li > button { padding: 26px 7px; font-size: 13px; }
}

@media (max-width: 720px) {
  .container-header { min-height: auto; }
  .container-header .container-topbar { position: static; justify-content: center; padding: .5rem 1rem; }
  .container-topbar a { font-size: 1.1rem; }
  .container-header .navbar-brand { text-align: center; }
  .container-header .brand-logo img { height: 64px; }
  .container-header .container-nav { position: static; width: min(1180px, calc(100% - 2.5rem)); margin: 0 auto; }
  .container-header .container-nav .mod-menu { display: block; margin-left: 0; }
  .container-header .container-nav .mod-menu > li > a,
  .container-header .container-nav .mod-menu > li > button { padding: .75rem 0; }
  .container-header .container-nav { display: none; }
  body.elizjum-nav-expanded .container-header .container-nav { display: block; }
}

/* Wysuwane menu otwierane przyciskiem w prawym górnym rogu. */
body.elizjum-nav-expanded .container-header .container-nav {
  position: fixed;
  z-index: 2100;
  top: 0;
  right: 0;
  bottom: 0;
  left: auto;
  display: block;
  width: min(360px, 90vw);
  padding: 5.5rem 2rem 2rem;
  margin: 0;
  overflow-y: auto;
  background: #fff;
  box-shadow: -12px 0 32px rgba(0,0,0,.24);
}
body.elizjum-nav-expanded .container-header .container-nav .mod-menu {
  display: block;
  margin: 0;
  border: 0;
}
body.elizjum-nav-expanded .container-header .container-nav .mod-menu > li > a,
body.elizjum-nav-expanded .container-header .container-nav .mod-menu > li > button {
  padding: .8rem 0;
  color: #111;
  font-size: 1rem;
  border-bottom: 1px solid #ececec;
}
body.elizjum-nav-expanded .container-header .container-nav .mod-menu > li > a:hover,
body.elizjum-nav-expanded .container-header .container-nav .mod-menu > li.active > a { color: #73c0b3; }
body.elizjum-nav-expanded .elizjum-menu-toggle {
  position: fixed;
  z-index: 2101;
  top: 1rem;
  right: 1rem;
  color: #111;
  background: #fff;
  border-color: #111;
}
body.elizjum-nav-expanded .elizjum-menu-toggle { font-size: 0; }
body.elizjum-nav-expanded .elizjum-menu-toggle::before { content: "×"; font-size: 1.6rem; }
body.elizjum-nav-expanded details.elizjum-menu-toggle::before { display: none; content: none; }

/* Wariant natywny: menu działa również, gdy przeglądarka blokuje skrypty modułu. */
body:has(details.elizjum-menu-toggle[open]) .container-header .container-nav {
  position: fixed;
  z-index: 2100;
  top: 0;
  right: 0;
  bottom: 0;
  left: auto;
  display: block;
  width: min(360px, 90vw);
  padding: 5.5rem 2rem 2rem;
  margin: 0;
  overflow-y: auto;
  background: #fff;
  box-shadow: -12px 0 32px rgba(0,0,0,.24);
}
body:has(details.elizjum-menu-toggle[open]) .container-header .container-nav .mod-menu { display: block; margin: 0; border: 0; }
body:has(details.elizjum-menu-toggle[open]) .container-header .container-nav .mod-menu > li > a,
body:has(details.elizjum-menu-toggle[open]) .container-header .container-nav .mod-menu > li > button { padding: .8rem 0; color: #111; font-size: 1rem; border-bottom: 1px solid #ececec; }
body:has(details.elizjum-menu-toggle[open]) .container-header .container-nav .mod-menu > li > a:hover,
body:has(details.elizjum-menu-toggle[open]) .container-header .container-nav .mod-menu > li.active > a { color: #73c0b3; }
body:has(details.elizjum-menu-toggle[open]) .container-header .container-nav .mod-menu li.parent > ul {
  position: static;
  display: block;
  min-width: 0;
  padding: .15rem 0 .55rem 1rem;
  margin: 0;
  background: transparent;
  box-shadow: none;
}
body:has(details.elizjum-menu-toggle[open]) .container-header .container-nav .mod-menu li.parent > ul a {
  padding: .43rem 0;
  color: #111;
  font-family: Dosis, sans-serif;
  font-size: .95rem;
  line-height: 1.25;
}
body:has(details.elizjum-menu-toggle[open]) .container-header .container-nav .mod-menu li.parent > ul a:hover { color: #73c0b3; background: transparent; }
body:has(details.elizjum-menu-toggle[open]) .elizjum-menu-toggle {
  position: fixed;
  z-index: 2101;
  top: 1rem;
  right: 1rem;
  color: #111;
  background: #fff;
  border-color: #111;
}
body:has(details.elizjum-menu-toggle[open]) .elizjum-menu-toggle > summary { font-size: 0; }
body:has(details.elizjum-menu-toggle[open]) .elizjum-menu-toggle > summary::before { content: "×"; font-size: 1.6rem; }

/* Strona główna: tytuł sekcji „O nas”, odtworzony z pierwotnego szablonu. */
#section-id-1565780791705,
.elizjum-home-about-title-section {
  height: 165px;
  min-height: 165px !important;
  padding: 0 !important;
  margin: 0 !important;
  background: #fff;
}
#section-id-1565780791705 > .sppb-row-container,
.elizjum-home-about-title-section > .sppb-row-container,
#section-id-1565780791705 .sppb-row,
.elizjum-home-about-title-section .sppb-row,
#section-id-1565780791705 .sppb-column,
.elizjum-home-about-title-section .sppb-column {
  height: 100%;
}
#sppb-addon-1565780791708,
.elizjum-home-about-heading {
  position: relative;
  display: flex;
  height: 100%;
  margin: 0 !important;
  align-items: center;
  justify-content: center;
}
#sppb-addon-1565780791708::before,
.elizjum-home-about-heading::before {
  position: absolute;
  z-index: 0;
  top: 50%;
  left: 50%;
  color: #f1f1f1;
  font-family: Lato, sans-serif;
  font-size: 78px;
  font-weight: 300;
  line-height: 1;
  content: "O";
  transform: translate(-50%, -50%);
}
#sppb-addon-1565780791708 .sppb-addon-title,
.elizjum-home-about-heading .sppb-addon-title {
  position: relative;
  z-index: 1;
  margin: 0 !important;
  color: #263b54;
  font-family: Dosis, sans-serif;
  font-size: 26px;
  font-weight: 400;
  letter-spacing: 2px;
  line-height: 1;
}

/* W pierwowzorze treść zaczyna się bez dodatkowego odstępu po tytule. */
#section-id-1565779496144,
#section-id-1565779496144 > .sppb-row-container {
  padding-top: 0 !important;
}

/* Galeria: kompaktowy kadr filmu oraz znak Elizjum pod nagłówkiem „Pogrzeby”. */
#section-id-1671183694827 {
  padding: 25px 0 30px !important;
}
#sppb-addon-1671183694827 {
  display: flex;
  justify-content: center;
}
#sppb-addon-1671183694827 .sppb-addon-animated-heading {
  position: relative;
  display: flex;
  min-height: 180px;
  align-items: center;
  justify-content: center;
}
#sppb-addon-1671183694827 .sppb-addon-animated-heading::before {
  position: absolute;
  z-index: 0;
  top: 50%;
  left: 50%;
  width: 108px;
  height: 144px;
  content: "";
  background: url('/images/layout/logo-silver-elizjum-big.png') center / contain no-repeat;
  opacity: .32;
  transform: translate(-50%, -50%);
}
#sppb-addon-1671183694827 .sppb-addon-title {
  position: relative;
  z-index: 1;
  margin: 0 !important;
  color: #263b54;
  font-family: Dosis, sans-serif;
  font-size: 52px;
  font-weight: 400;
  letter-spacing: 2px;
  line-height: 1;
  text-transform: uppercase;
}
@media (max-width: 720px) {
  #section-id-1565780791705,
  .elizjum-home-about-title-section { height: 130px; min-height: 130px !important; }
  #sppb-addon-1565780791708::before,
  .elizjum-home-about-heading::before { font-size: 72px; }
  #sppb-addon-1565780791708 .sppb-addon-title,
  .elizjum-home-about-heading .sppb-addon-title { font-size: 24px; letter-spacing: 3px; }
  #sppb-addon-1671183694827 { padding: 20px 0 25px !important; }
}
