/* Globalne style - generowane automatycznie. NIE EDYTUJ */


/* === site-font === */
html body,
html body button,
html body input,
html body select,
html body textarea,
html body .ast-custom-button,
html body .elementor-widget-heading h1,
html body .elementor-widget-heading h2,
html body .elementor-widget-heading h3,
html body .elementor-widget-heading h4,
html body .elementor-widget-heading h5,
html body .elementor-widget-heading h6,
html body h1, html body h2, html body h3,
html body h4, html body h5, html body h6,
html body .entry-content,
html body .site-title,
html body .menu-link,
html body p, html body li, html body a {
  font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-variant-ligatures: no-common-ligatures !important;
  -webkit-font-feature-settings: "liga" 0, "clig" 0 !important;
  font-feature-settings: "liga" 0, "clig" 0 !important;
}
html body h1, html body h2, html body h3,
html body h4, html body h5, html body h6,
html body .site-title {
  font-family: "Sora", "Inter", system-ui, sans-serif !important;
}

/* === sticky-header === */
/* Menu zawsze widoczne (sticky) - kompaktowe */
header.site-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 9999 !important;
  background: #ffffff !important;
  box-shadow: 0 2px 12px rgba(48,58,77,0.08) !important;
  transition: box-shadow 0.2s !important;
}
header.site-header .ast-primary-header-bar,
header.site-header .main-header-bar {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  min-height: 60px !important;
}
header.site-header .ast-builder-grid-row {
  min-height: 60px !important;
  align-items: center !important;
}
header.site-header .site-branding img,
header.site-header .custom-logo-link img {
  max-height: 60px !important;
  width: auto !important;
  height: auto !important;
}
header.site-header .main-navigation .menu-item > a,
header.site-header nav a {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  line-height: 1.2 !important;
}
header.site-header .ast-builder-html-element {
  line-height: 1.2 !important;
}

/* === menu-dropdown-gradient === */
/* Bridge nad submenu - hover utrzymuje menu otwarte */
header.site-header .menu-item-has-children {
  position: relative !important;
}
header.site-header .menu-item-has-children > .sub-menu {
  background: #ffffff !important;
  border: 1px solid #e1e4eb !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 24px rgba(48,58,77,0.12) !important;
  padding: 6px !important;
  overflow: hidden !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease, visibility 0s linear 0.4s !important;
  margin-top: 0 !important;
  top: 100% !important;
  min-width: 280px !important;
  width: max-content !important;
}
header.site-header .menu-item-has-children .sub-menu .menu-link {
  white-space: nowrap !important;
}
/* Bridge - niewidoczny pasek nad submenu zeby przerwa nie zamykala */
header.site-header .menu-item-has-children > .sub-menu::before {
  content: "";
  position: absolute;
  top: -16px;
  left: 0;
  right: 0;
  height: 16px;
  background: transparent;
}
/* Pokaz menu */
header.site-header .menu-item-has-children:hover > .sub-menu,
header.site-header .menu-item-has-children:focus-within > .sub-menu,
header.site-header .menu-item-has-children > .sub-menu:hover {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transition: opacity 0.2s ease, visibility 0s linear 0s !important;
}
header.site-header .menu-item-has-children .sub-menu .menu-item {
  border: none !important;
}
header.site-header .menu-item-has-children .sub-menu .menu-link {
  display: block !important;
  padding: 10px 16px !important;
  color: #303a4d !important;
  font-weight: 500 !important;
  border-radius: 8px !important;
  background: transparent !important;
  transition: background 0.2s, color 0.2s, transform 0.15s !important;
}
header.site-header .menu-item-has-children .sub-menu .menu-link:hover,
header.site-header .menu-item-has-children .sub-menu .menu-link:focus {
  background: linear-gradient(135deg, #eef4fb 0%, #dbe7f5 50%, #c8d8ef 100%) !important;
  color: #1e3a8a !important;
  transform: translateX(3px) !important;
}
header.site-header .menu-item-has-children .sub-menu .menu-link .ast-icon {
  opacity: 0.5 !important;
  margin-right: 4px !important;
}
header.site-header .menu-item-has-children .sub-menu .menu-link:hover .ast-icon {
  opacity: 1 !important;
}

/* === header-widen === */
/* Style podstawowe headera - layout siedzi w _header_body.html (inline) */
@media (min-width: 768px) {
  /* Wewnatrz menu - bez dodatkowych marginesow */
  header.site-header .ast-builder-menu-1,
  header.site-header .ast-main-header-bar-alignment,
  header.site-header .main-header-bar-navigation,
  header.site-header .main-navigation {
    margin: 0 !important;
  }
  header.site-header .main-header-menu {
    justify-content: center !important;
    margin: 0 !important;
  }
  /* Zmniejszone odstepy miedzy itemami menu */
  header.site-header .main-header-menu > .menu-item > .menu-link {
    padding: 10px 14px !important;
    font-size: 15px !important;
    white-space: nowrap !important;
  }
  /* Button - mniejszy padding */
  header.site-header .ast-custom-button,
  header.site-header .ast-header-button-1 .ast-custom-button {
    padding: 10px 18px !important;
    font-size: 14px !important;
    white-space: nowrap !important;
  }
  /* Nigdy nie zawijaj menu */
  header.site-header .main-navigation,
  header.site-header .main-header-menu {
    flex-wrap: nowrap !important;
    white-space: nowrap !important;
  }
}
/* Większy ekran - jeszcze szerszy */
@media (min-width: 1400px) {
  header.site-header .ast-container,
  header.site-header .site-primary-header-wrap {
    max-width: 1500px !important;
  }
  header.site-header .main-header-menu > .menu-item > .menu-link {
    padding: 10px 18px !important;
    font-size: 16px !important;
  }
}

/* === tile-links-fix === */
html body div[data-id="66e2aca"] a,
html body div[data-id="68cb683"] a,
html body div[data-id="9057c57"] a {
  color: #303a4d !important;
  text-decoration: none !important;
  border-bottom: none !important;
  font-weight: 600 !important;
  background: none !important;
}
html body div[data-id="66e2aca"] a:hover,
html body div[data-id="68cb683"] a:hover,
html body div[data-id="9057c57"] a:hover {
  color: #1a202c !important;
  text-decoration: none !important;
}

/* === tiles-row-fix === */
html body div.e-con.e-child[data-id="8b74373"] {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 24px !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  justify-content: center !important;
}
html body div.e-con.e-child[data-id="8b74373"] > .elementor-element {
  flex: 1 1 280px !important;
  min-width: 240px !important;
  max-width: 360px !important;
}
@media (max-width: 768px) {
  html body div.e-con.e-child[data-id="8b74373"] { flex-direction: column !important; }
  html body div.e-con.e-child[data-id="8b74373"] > .elementor-element { flex: 1 1 100% !important; max-width: 100% !important; }
}

/* === tiles-home-match === */
html body div.e-con[data-id="66e2aca"],
html body div.e-con[data-id="68cb683"],
html body div.e-con[data-id="9057c57"] {
  border: 1px solid #e1e4eb !important;
  transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s !important;
}
html body div.e-con[data-id="66e2aca"]:hover,
html body div.e-con[data-id="68cb683"]:hover,
html body div.e-con[data-id="9057c57"]:hover {
  border-color: #303a4d !important;
  border-width: 1px !important;
  transform: translateY(-4px) !important;
  box-shadow: 0 8px 24px rgba(48,58,77,0.15) !important;
}

html body div.e-con[data-id="66e2aca"],
html body div.e-con[data-id="68cb683"],
html body div.e-con[data-id="9057c57"] {
  text-align: center !important;
  align-items: center !important;
  padding: 30px 24px 32px !important;
  gap: 4px !important;
}
html body div.e-con[data-id="66e2aca"] .elementor-icon-wrapper,
html body div.e-con[data-id="68cb683"] .elementor-icon-wrapper,
html body div.e-con[data-id="9057c57"] .elementor-icon-wrapper {
  text-align: center !important;
  margin-bottom: 6px !important;
}
html body div.e-con[data-id="66e2aca"] svg,
html body div.e-con[data-id="68cb683"] svg,
html body div.e-con[data-id="9057c57"] svg {
  width: 36px !important;
  height: 36px !important;
}
html body div.e-con[data-id="66e2aca"] h5.elementor-heading-title,
html body div.e-con[data-id="68cb683"] h5.elementor-heading-title,
html body div.e-con[data-id="9057c57"] h5.elementor-heading-title {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #1a202c !important;
  margin: 2px 0 6px !important;
  text-align: center !important;
}
html body div.e-con[data-id="66e2aca"] p,
html body div.e-con[data-id="68cb683"] p,
html body div.e-con[data-id="9057c57"] p {
  text-align: center !important;
  color: #4a5568 !important;
  font-size: 15px !important;
  margin: 0 !important;
  line-height: 1.4 !important;
}
html body div.e-con[data-id="66e2aca"] .elementor-widget,
html body div.e-con[data-id="68cb683"] .elementor-widget,
html body div.e-con[data-id="9057c57"] .elementor-widget {
  margin: 0 !important;
}
html body div.e-con[data-id="66e2aca"] .elementor-widget-container,
html body div.e-con[data-id="68cb683"] .elementor-widget-container,
html body div.e-con[data-id="9057c57"] .elementor-widget-container {
  margin: 0 !important;
}

/* === custom-footer-css === */
footer.custom-footer {
  background: #303a4d !important;
  color: #cbd5e0 !important;
  padding: 50px 20px 24px !important;
  margin-top: 0 !important;
  border: none !important;
}
.custom-footer-inner {
  max-width: 1240px;
  margin: 0 auto;
}
.custom-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1.2fr 1.2fr;
  gap: 40px;
  padding-bottom: 36px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.custom-footer-col h4.custom-footer-title {
  color: #ffffff !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  margin: 0 0 16px 0 !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.custom-footer-list { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.custom-footer-list li {
  color: #cbd5e0 !important;
  font-size: 14px !important;
  line-height: 1.9 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.custom-footer-list li strong { color: #ffffff !important; font-weight: 600 !important; }
.custom-footer-list a {
  color: #cbd5e0 !important;
  text-decoration: none !important;
  transition: color 0.15s !important;
  border: none !important;
}
.custom-footer-list a:hover { color: #ffffff !important; }
.custom-footer-logo {
  filter: brightness(0) invert(1);
  margin-bottom: 12px;
  max-width: 220px;
  height: auto;
}
.custom-footer-tagline {
  color: #ffffff !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  margin: 0 0 12px 0 !important;
}
.custom-footer-desc {
  color: #a0aec0 !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}
.custom-footer-bottom {
  padding-top: 20px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.custom-footer-copy, .custom-footer-sites {
  color: #a0aec0 !important;
  font-size: 12px !important;
  margin: 0 !important;
}
@media (max-width: 900px) {
  .custom-footer-grid { grid-template-columns: 1fr 1fr; gap: 30px; }
}
@media (max-width: 600px) {
  .custom-footer-grid { grid-template-columns: 1fr; gap: 24px; }
  .custom-footer-bottom { flex-direction: column; text-align: center; }
}

/* === unified-footer-block === */
/* === KAFELKI + STOPKA jako jeden blok wizualny === */

html body div[data-id="b99c5de"] {
  display: block !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  position: relative !important;
  background: linear-gradient(180deg, #f5f7fa 0%, #eaeef4 100%) !important;
  padding: 30px 20px 40px !important;
  margin-top: 0 !important;
  border-top: none !important;
  box-sizing: border-box !important;
}
html body div[data-id="b99c5de"] > .e-con-inner {
  max-width: 1240px !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: block !important;
}
html body div[data-id="b99c5de"]::before {
  content: none !important;
  display: none !important;
}

html body divhtml body div[data-id="66e2aca"],
html body div[data-id="68cb683"],
html body div[data-id="9057c57"] {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  border-radius: 16px !important;
  padding: 32px 30px 36px !important;
  background-color: #ffffff !important;
  border: 1px solid #e1e4eb !important;
  box-shadow: 0 2px 12px rgba(48,58,77,0.06) !important;
  flex: 1 1 280px !important;
  min-width: 240px !important;
  max-width: 360px !important;
  transition: transform 0.25s, box-shadow 0.25s !important;
}
html body div[data-id="66e2aca"]:hover,
html body div[data-id="68cb683"]:hover,
html body div[data-id="9057c57"]:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 8px 24px rgba(48,58,77,0.12) !important;
  border-color: #303a4d !important;
}

html body div[data-id="d02b267"] .elementor-icon-wrapper,
html body div[data-id="52d37a5"] .elementor-icon-wrapper,
html body div[data-id="3248613"] .elementor-icon-wrapper {
  text-align: left !important;
  margin-bottom: 4px !important;
}
html body div[data-id="66e2aca"] svg,
html body div[data-id="68cb683"] svg,
html body div[data-id="9057c57"] svg {
  fill: #303a4d !important;
  width: 36px !important;
  height: 36px !important;
}

html body div[data-id="69f841b"] h5,
html body div[data-id="4de264e"] h5,
html body div[data-id="7819c5b"] h5 {
  color: #303a4d !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  margin: 8px 0 4px !important;
}

@media (max-width: 768px) {
  html body div[data-id="8b74373"] { flex-direction: column !important; align-items: center !important; }
  html body div[data-id="66e2aca"],
  html body div[data-id="68cb683"],
  html body div[data-id="9057c57"] { flex: 1 1 100% !important; min-width: 100% !important; max-width: 100% !important; }
  html body div[data-id="b99c5de"]::before { font-size: 22px; margin-bottom: 20px; }
}

/* === homepage-gradient === */
body {
  background: linear-gradient(180deg, #ffffff 0%, #f5f7fa 40%, #eaeef4 100%) !important;
  background-attachment: fixed !important;
}
.e-con-boxed { position: relative; }
html body div[data-id="b99c5de"] {
  background: linear-gradient(135deg, #f8fafc 0%, #eaeef4 50%, #dde4ec 100%) !important;
}
html body div[data-id="66e2aca"],
html body div[data-id="68cb683"],
html body div[data-id="9057c57"] {
  background: linear-gradient(160deg, #ffffff 0%, #f8fafc 100%) !important;
}
.menu-link[href*="tel:"],
a.menu-link[href*="tel"] {
  background: linear-gradient(135deg, #303a4d, #1a202c) !important;
  color: #ffffff !important;
}

/* === typography-rich === */
/* === Bogata typografia === */

/* H1 - mocny, granat, kompresja liter */
.entry-content h1, main.site-main h1,
.elementor-widget-heading h1.elementor-heading-title {
  font-size: clamp(28px, 3.5vw, 42px) !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.025em !important;
  color: #1a202c !important;
  margin: 0 0 20px 0 !important;
}

/* H2 - sekcyjne, z akcentem */
.entry-content h2, main.site-main h2,
.elementor-widget-heading h2.elementor-heading-title {
  font-size: clamp(22px, 2.6vw, 30px) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.015em !important;
  color: #1a202c !important;
  margin: 36px 0 14px !important;
}

/* H3 - granat, subtelnie wyrozniony */
.entry-content h3, main.site-main h3,
.elementor-widget-heading h3.elementor-heading-title {
  font-size: clamp(18px, 2vw, 22px) !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  color: #303a4d !important;
  margin: 28px 0 10px !important;
}

/* H4 - mniejszy naglowek, granat */
.entry-content h4, main.site-main h4,
.elementor-widget-heading h4.elementor-heading-title {
  font-size: clamp(20px, 2.2vw, 26px) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.01em !important;
  color: #1a202c !important;
  margin: 32px 0 12px !important;
}

/* H5 - tytul w kafelkach */
.elementor-widget-heading h5.elementor-heading-title {
  font-size: 19px !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
  color: #1a202c !important;
}

/* Pierwszy akapit po H2 - leading (wiekszy, lekki kolor) */
.elementor-widget-text-editor h2 + p,
main.site-main h2 + p {
  font-size: 17px !important;
  line-height: 1.5 !important;
  color: #475569 !important;
  font-weight: 500 !important;
}

/* Akapity - lepsza czytelnosc */
.elementor-widget-text-editor p,
.elementor-widget-theme-post-content p,
main .entry-content p {
  font-size: 16px !important;
  line-height: 1.5 !important;
  color: #334155 !important;
  margin-bottom: 12px !important;
}

/* STRONG - tylko pogrubienie */
.elementor-widget-text-editor strong,
.elementor-widget-theme-post-content strong,
main .entry-content strong {
  font-weight: 700 !important;
  color: #1a202c !important;
  background: none !important;
  padding: 0 !important;
}

/* EM - zwykla kursywa */
.elementor-widget-text-editor em,
main .entry-content em {
  font-style: italic !important;
}

/* Listy - lepsza estetyka */
.elementor-widget-text-editor ul,
.elementor-widget-text-editor ol,
main .entry-content ul,
main .entry-content ol {
  margin: 8px 0 14px !important;
  padding-left: 22px !important;
}
.elementor-widget-text-editor ul li,
.elementor-widget-text-editor ol li,
main .entry-content ul li,
main .entry-content ol li {
  font-size: 16px !important;
  line-height: 1.4 !important;
  color: #334155 !important;
  margin-bottom: 2px !important;
}
/* Akapity wewnatrz <li> nie powinny dodawac dodatkowego odstepu */
.elementor-widget-text-editor li p,
main .entry-content li p {
  margin: 0 !important;
  line-height: 1.4 !important;
}

/* Bold w listach - mocniejszy akcent */
.elementor-widget-text-editor li strong,
main .entry-content li strong {
  color: #1a202c !important;
  font-weight: 700 !important;
}

/* drop cap wylaczony */

/* Linki w treści - subtelne podkreślenie */
.elementor-widget-text-editor a,
main .entry-content a {
  color: #2563eb !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(37,99,235,0.3) !important;
  transition: border-color 0.2s !important;
}
.elementor-widget-text-editor a:hover,
main .entry-content a:hover {
  border-bottom-color: #2563eb !important;
}

/* === spacing-normalize === */
/* Ujednolicone odstepy pionowe miedzy sekcjami top-level (30px) */
/* Dziala globalnie na wszystkich stronach z Elementor sections */

/* Top-level sekcje (e-parent) - jednolity margin */
html body main .elementor-element.e-parent,
html body main .elementor-section,
html body main > article .elementor-section-wrap > .elementor-element.e-parent {
  margin-top: 0 !important;
  margin-bottom: 30px !important;
}

/* Ostatnia sekcja przed stopka - bez marginesu (zeby nie bylo dziury nad footerem) */
html body main .elementor-element.e-parent:last-child,
html body main .elementor-section:last-child {
  margin-bottom: 0 !important;
}

/* Sekcja kafelek (b99c5de) - usun dodatkowy padding na gorze */
html body div[data-id="b99c5de"] {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 50px 20px !important;
}

/* Hero - mniejszy margines pod nim (juz ma duzy padding) */
html body main .elementor-element.e-parent:first-child {
  margin-bottom: 30px !important;
}

/* Zwarte odstepy w containerach dziecych (e-child) - bez dodatkowych marginesow */
html body .elementor-element.e-child {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Mapa + sekcja zasiegu - jednolicie */
html body section#zasieg-mapa {
  margin: 30px 0 !important;
}
html body section#kafelki-kontakt {
  margin: 0 !important;
}

/* === hc-sections-normalize === */
/* Sekcje hc-* maja juz padding 30px - bez dodatkowych marginesow */
html body section.hc-why,
html body section.hc-reviews,
html body section.hc-areas {
  margin: 0 !important;
}
