/* ============================================================
   IVM Firma Handlowa — corporate design layer v1
   Overrides Elementor widget-level styling site-wide.
   Loaded by mu-plugins/ivm-design-2026.php (after Elementor CSS).
   Remove that file to fully revert to the original look.
   ============================================================ */

:root {
  --ivm-ink: #0b1524;        /* headings / near-black navy */
  --ivm-body: #475467;       /* body text slate */
  --ivm-muted: #667085;
  --ivm-accent: #d63b23;     /* flame red (logo) */
  --ivm-accent-dark: #b02e1a;
  --ivm-navy: #0c1b2a;       /* dark surfaces (footer) */
  --ivm-steel: #f4f6f8;      /* light section background */
  --ivm-line: #e4e7ec;
  --ivm-radius: 4px;
  --ivm-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 4px 12px rgba(16, 24, 40, .06);
  --ivm-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* ---------- Base typography ---------- */
body, body .elementor-widget-text-editor, body .elementor-widget-theme-post-content {
  font-family: var(--ivm-font) !important;
  color: var(--ivm-body);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
  font-family: var(--ivm-font) !important;
  color: var(--ivm-ink) !important;
  font-weight: 800 !important;
  letter-spacing: -0.025em;
  line-height: 1.15 !important;
}

/* Tame oversized display headings */
h1.elementor-heading-title, .elementor-widget-heading h1 { font-size: clamp(2.2rem, 4.4vw, 3.4rem) !important; }
h2.elementor-heading-title, .elementor-widget-heading h2 { font-size: clamp(1.9rem, 3.4vw, 2.6rem) !important; }
/* h3 = section titles on this site (Our Services, About Us…) */
h3.elementor-heading-title, .elementor-widget-heading h3 { font-size: clamp(1.7rem, 2.8vw, 2.2rem) !important; font-weight: 700 !important; }

.elementor-widget-text-editor p { margin-bottom: 1em; }

/* ---------- Header ---------- */
[data-elementor-type="header"],
.elementor-location-header {
  background: #fff;
}
[data-elementor-type="header"] .elementor-section,
.elementor-location-header > .elementor-section-wrap > .elementor-section,
.elementor-location-header .e-con {
  border-bottom: 1px solid var(--ivm-line);
  background: #fff !important;
}

/* Nav links */
.elementor-nav-menu a.elementor-item {
  font-family: var(--ivm-font) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  color: #344054 !important;
  letter-spacing: 0;
}
.elementor-nav-menu a.elementor-item:hover,
.elementor-nav-menu a.elementor-item.elementor-item-active {
  color: var(--ivm-ink) !important;
}
.elementor-nav-menu a.elementor-item.elementor-item-active {
  border-bottom: 2px solid var(--ivm-accent);
}
.elementor-nav-menu--main .elementor-item:before,
.elementor-nav-menu--main .elementor-item:after { display: none !important; }

/* ---------- Buttons (all Elementor buttons + form submits) ---------- */
.elementor-button,
button.elementor-button,
.elementor-button-link {
  font-family: var(--ivm-font) !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  letter-spacing: 0 !important;
  border-radius: var(--ivm-radius) !important;
  background-color: var(--ivm-ink) !important;
  color: #fff !important;
  padding: 13px 26px !important;
  box-shadow: none !important;
  transition: background-color .15s ease, transform .15s ease !important;
  text-transform: none !important;
}
.elementor-button:hover,
button.elementor-button:hover,
.elementor-button-link:hover {
  background-color: var(--ivm-accent-dark) !important;
  color: #fff !important;
  transform: translateY(-1px);
}

/* Primary CTA in header + form send = flame accent */
[data-elementor-type="header"] .elementor-button,
.elementor-location-header .elementor-button,
.elementor-form .elementor-button {
  background-color: var(--ivm-accent) !important;
}
[data-elementor-type="header"] .elementor-button:hover,
.elementor-location-header .elementor-button:hover,
.elementor-form .elementor-button:hover {
  background-color: var(--ivm-accent-dark) !important;
}

/* ---------- Images (page content only — never header/footer logos) ---------- */
[data-elementor-type="wp-page"] .elementor-widget-image img,
[data-elementor-type="wp-post"] .elementor-widget-image img {
  border-radius: var(--ivm-radius);
  box-shadow: var(--ivm-shadow);
}

/* ---------- Service cards (image-box widgets, page content only) ---------- */
[data-elementor-type="wp-page"] .elementor-widget-image-box .elementor-image-box-wrapper {
  background: #fff;
  border: 1px solid var(--ivm-line);
  border-radius: var(--ivm-radius);
  overflow: hidden;
  box-shadow: var(--ivm-shadow);
  transition: box-shadow .2s ease, transform .2s ease;
  height: 100%;
}
[data-elementor-type="wp-page"] .elementor-widget-image-box .elementor-image-box-wrapper:hover {
  transform: translateY(-3px);
  box-shadow: 0 4px 8px rgba(16,24,40,.08), 0 12px 28px rgba(16,24,40,.12);
}
[data-elementor-type="wp-page"] .elementor-widget-image-box .elementor-image-box-img {
  width: 100% !important;
  margin: 0 !important;
}
[data-elementor-type="wp-page"] .elementor-widget-image-box .elementor-image-box-img img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 0;
  box-shadow: none;
}
[data-elementor-type="wp-page"] .elementor-widget-image-box .elementor-image-box-content {
  padding: 20px 22px 24px;
  text-align: left;
}
[data-elementor-type="wp-page"] .elementor-widget-image-box .elementor-image-box-title {
  font-size: 1.15rem !important;
  font-weight: 600 !important;
  color: var(--ivm-ink) !important;
  margin-bottom: 8px !important;
}
[data-elementor-type="wp-page"] .elementor-widget-image-box .elementor-image-box-description {
  font-size: 15px;
  color: var(--ivm-body);
  line-height: 1.6;
}

/* ---------- Forms ---------- */
.elementor-field-group .elementor-field-textual,
.elementor-field-group .elementor-select-wrapper select {
  font-family: var(--ivm-font) !important;
  font-size: 15px !important;
  color: var(--ivm-ink) !important;
  background: #fff !important;
  border: 1px solid #d0d5dd !important;
  border-radius: var(--ivm-radius) !important;
  padding: 12px 14px !important;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.elementor-field-group .elementor-field-textual:focus,
.elementor-field-group .elementor-select-wrapper select:focus {
  border-color: var(--ivm-ink) !important;
  box-shadow: 0 0 0 3px rgba(16, 24, 40, .12) !important;
  outline: none !important;
}
.elementor-field-group .elementor-field-textual::placeholder { color: #98a2b3 !important; }

/* ---------- Misc polish ---------- */
::selection { background: rgba(214, 59, 35, .18); }

/* Corporate accent: thin brand line above the header */
[data-elementor-type="header"] > .e-con:first-child,
[data-elementor-type="header"] > .elementor-section-wrap > *:first-child {
  border-top: 3px solid var(--ivm-accent);
}

/* Section titles get a short red rule underneath — corporate signature */
[data-elementor-type="wp-page"] .elementor-widget-heading h3.elementor-heading-title::after {
  content: "";
  display: block;
  width: 48px;
  height: 3px;
  background: var(--ivm-accent);
  margin-top: 14px;
}
/* centered headings (tagged by the loader JS) get a centered rule */
[data-elementor-type="wp-page"] .elementor-widget-heading h3.elementor-heading-title.ivm-centered::after {
  margin-left: auto;
  margin-right: auto;
}

/* ---------- Footer: LIGHT corporate ---------- */
[data-elementor-type="footer"] .e-con,
[data-elementor-type="footer"] .elementor-section,
.elementor-location-footer > .elementor-section-wrap > .elementor-section {
  background-color: var(--ivm-steel) !important;
}
[data-elementor-type="footer"] > .e-con:first-child,
[data-elementor-type="footer"] > .elementor-section-wrap > *:first-child {
  border-top: 1px solid var(--ivm-line);
}
[data-elementor-type="footer"] > .e-con {
  --padding-top: 56px !important;
  --padding-bottom: 48px !important;
  --padding-block-start: 56px !important;
  --padding-block-end: 48px !important;
  --min-height: 0 !important;
  min-height: 0 !important;
}
[data-elementor-type="footer"] > .e-con:last-child {
  --padding-top: 18px !important;
  --padding-bottom: 18px !important;
  --padding-block-start: 18px !important;
  --padding-block-end: 18px !important;
}
[data-elementor-type="footer"] h1, [data-elementor-type="footer"] h2,
[data-elementor-type="footer"] h3, [data-elementor-type="footer"] h4,
[data-elementor-type="footer"] .elementor-heading-title,
.elementor-location-footer .elementor-heading-title {
  color: var(--ivm-ink) !important;
  font-size: .85rem !important;
  font-weight: 700 !important;
  letter-spacing: .08em;
  text-transform: uppercase;
}
[data-elementor-type="footer"] p,
[data-elementor-type="footer"] li,
[data-elementor-type="footer"] span,
[data-elementor-type="footer"] .elementor-icon-list-text,
[data-elementor-type="footer"] .elementor-widget-text-editor,
.elementor-location-footer p,
.elementor-location-footer li,
.elementor-location-footer span,
.elementor-location-footer .elementor-widget-text-editor {
  color: var(--ivm-body) !important;
  font-size: 15px;
}
[data-elementor-type="footer"] a,
.elementor-location-footer a { color: var(--ivm-ink) !important; }
[data-elementor-type="footer"] a:hover,
.elementor-location-footer a:hover { color: var(--ivm-accent) !important; }

/* Footer logos: natural on light background — no chip, no crop */
[data-elementor-type="footer"] .elementor-image-box-wrapper,
.elementor-location-footer .elementor-image-box-wrapper {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
[data-elementor-type="footer"] .elementor-image-box-img,
.elementor-location-footer .elementor-image-box-img { width: auto !important; }
[data-elementor-type="footer"] .elementor-image-box-img img,
[data-elementor-type="footer"] .elementor-widget-image img,
.elementor-location-footer .elementor-image-box-img img,
.elementor-location-footer .elementor-widget-image img {
  width: auto !important;
  max-width: 150px !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  background: transparent;
  padding: 0;
  border-radius: 0;
  box-shadow: none;
}
[data-elementor-type="footer"] .elementor-image-box-content,
.elementor-location-footer .elementor-image-box-content {
  padding: 16px 0 0 !important;
  text-align: left;
}
[data-elementor-type="footer"] .elementor-image-box-description,
.elementor-location-footer .elementor-image-box-description {
  color: var(--ivm-body) !important;
  font-size: 15px;
}

/* Footer buttons (e.g. Terms and conditions) read as quiet text links */
[data-elementor-type="footer"] .elementor-widget-button .elementor-button {
  background: transparent !important;
  color: var(--ivm-body) !important;
  padding: 0 !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  text-decoration: underline;
  text-underline-offset: 3px;
  border-radius: 0 !important;
  transform: none !important;
}
[data-elementor-type="footer"] .elementor-widget-button .elementor-button:hover {
  background: transparent !important;
  color: var(--ivm-accent) !important;
}

/* Bottom bar: solid navy band, the only dark element — anchors the page */
[data-elementor-type="footer"] > .e-con:last-child,
[data-elementor-type="footer"] > .elementor-section-wrap > .elementor-section:last-child {
  background-color: var(--ivm-navy) !important;
}
[data-elementor-type="footer"] > .e-con:last-child *,
[data-elementor-type="footer"] > .elementor-section-wrap > .elementor-section:last-child * {
  color: #aab4c0 !important;
  font-size: 13.5px !important;
  letter-spacing: .02em;
}

/* Clamp runaway empty vertical space from full-height sections */
.elementor-section.elementor-section-height-full,
.elementor-section[data-settings*="min_height"] {
  min-height: 0 !important;
}

/* Uniform vertical rhythm (this site uses e-con flex containers):
   kill min-height-driven empty space, normalize top-level padding */
[data-elementor-type="wp-page"] .e-con {
  --min-height: 0 !important;
  min-height: 0 !important;
}
[data-elementor-type="wp-page"] > .e-con {
  --padding-top: 72px !important;
  --padding-bottom: 72px !important;
  --padding-block-start: 72px !important;
  --padding-block-end: 72px !important;
}

/* No stacking margins between top-level sections */
[data-elementor-type="wp-page"] .e-con.e-parent {
  --margin-top: 0 !important;
  --margin-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Hide containers whose only content is spacers or nothing (dead template leftovers) */
[data-elementor-type="wp-page"] .e-con.e-parent:not(:has(.elementor-widget:not(.elementor-widget-spacer))),
[data-elementor-type="wp-page"] .e-con.e-child:not(:has(.elementor-widget:not(.elementor-widget-spacer))) {
  display: none !important;
}
