/* Unified editorial typography: consistent style and size at each heading level. */
:root {
  --heading-main-size: 38px;
  --heading-section-size: 30px;
  --heading-card-size: 18px;
  --heading-color: #1b2f26;
  --heading-accent: #09543e;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-style: normal !important;
  font-weight: 800 !important;
  line-height: 1.28 !important;
  letter-spacing: -0.02em !important;
  text-transform: none !important;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

/* Main page title */
.block1_headline > h1 {
  color: #111111 !important;
  font-size: var(--heading-main-size) !important;
  line-height: 1.18 !important;
  margin: 0 0 22px !important;
  text-align: center !important;
}

/* All section and hero slide H2 headings share a single size and typography. */
#block4_programmsid .block4_h1,
#block5_priceid .block5_price_h1,
#map_block h2,
#block2id .block2_textbox h2,
.block3_sertifacate h2,
#block6_contactsid > .wrapper > h2,
.header-carousel .header-slide-content h2 {
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-size: var(--heading-section-size) !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.02em !important;
  text-transform: none !important;
}

#block4_programmsid .block4_h1,
#block5_priceid .block5_price_h1,
#map_block h2,
#block2id .block2_textbox h2,
.block3_sertifacate h2,
#block6_contactsid > .wrapper > h2 {
  color: var(--heading-color) !important;
  text-align: center !important;
  margin: 0 auto 26px !important;
}

.header-carousel .header-slide-content h2 {
  color: #ffffff !important;
  text-align: left !important;
  margin: 0 0 14px !important;
}

/* All card and sub-section H3 headings share the same size and weight. */
h3,
#block4_programmsid [class^="block4_item"][class$="_headline"],
#block5_priceid .price_wrapper [class$="_txt"] h3,
#block2id .block2_textbox h3 {
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-size: var(--heading-card-size) !important;
  font-weight: 800 !important;
  line-height: 1.42 !important;
  letter-spacing: -0.01em !important;
  text-transform: none !important;
}

#block4_programmsid [class^="block4_item"][class$="_headline"],
#block5_priceid .price_wrapper [class$="_txt"] h3 {
  color: var(--heading-accent) !important;
  text-align: center;
  text-wrap: balance;
}

#block5_priceid .price_wrapper [class$="_txt"] h3 { text-align: left; }

#block2id .block2_textbox h3 {
  color: var(--heading-accent) !important;
  text-align: left !important;
  margin: 22px 0 10px !important;
  padding: 16px 18px !important;
  border: 1px solid #dcebe0;
  border-radius: 16px;
  background: #f2f8f3;
}

#block2id .block2_textbox_line { display: none !important; }
#block2id .block2_textbox .about-cta-text {
  margin-top: 0 !important;
  padding: 0 2px !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
}

/* One readable body-text scale throughout the website. */
body, p, li, label, input, button, textarea {
  font-family: 'Montserrat', Arial, sans-serif;
}
body { font-size: 16px; line-height: 1.7; }
p { line-height: 1.7; }

@media (min-width: 768px) and (max-width: 1100px) {
  :root { --heading-main-size: 34px; --heading-section-size: 28px; --heading-card-size: 17px; }
}

@media (max-width: 767px) {
  :root { --heading-main-size: 29px; --heading-section-size: 25px; --heading-card-size: 16px; }
  .block1_headline > h1 { margin-bottom: 16px !important; }
  #block4_programmsid .block4_h1,
  #block5_priceid .block5_price_h1,
  #map_block h2,
  #block2id .block2_textbox h2,
  .block3_sertifacate h2,
  #block6_contactsid > .wrapper > h2 { margin-bottom: 20px !important; }
  .header-carousel .header-slide-content h2 { margin-bottom: 12px !important; }
  #block2id .block2_textbox .about-cta-text { font-size: 15px !important; }
}

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
