/* ==========================================================================
   ICM Footer 2026 — clean isolated architecture
   Namespace: icmf26-*
   Official ICM guideline defaults:
   Navy #0D4778 | Gold #8C845E | Light Grey #EBEBEB | Grey #999999 | Dark Grey #4E4D4D
   ========================================================================== */
.elementor-widget-icm_main_footer,
.elementor-widget-icm_footer_bottom,
.elementor-widget-icm_main_footer > .elementor-widget-container,
.elementor-widget-icm_footer_bottom > .elementor-widget-container {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.icmf26,
.icmf26 * {
  box-sizing: border-box;
}

.icmf26 {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin-inline: calc(50% - 50vw);
  font-family: inherit;
  color: #EBEBEB;
  background: #0D4778;
  overflow-x: clip;
}

.icmf26-shell {
  width: min(var(--icm-container, 1200px), calc(100% - (var(--icm-container-gutter, 36px) * 2)));
  max-width: var(--icm-container, 1200px);
  margin-inline: auto;
  padding: 0;
}

.icmf26-width--custom .icmf26-shell {
  width: min(var(--icmf26-custom-max, 1420px), calc(100% - (var(--icmf26-custom-gutter, 36px) * 2)));
  max-width: var(--icmf26-custom-max, 1420px);
}

/* --------------------------------------------------------------------------
   Main footer
   -------------------------------------------------------------------------- */
.icmf26-main {
  padding-block: var(--icmf26-main-pad-top, 80px) var(--icmf26-main-pad-bottom, 0px);
}

.icmf26-main__layout {
  display: grid;
  grid-template-columns: minmax(220px, var(--icmf26-brand-width, 31%)) minmax(0, 1fr);
  gap: var(--icmf26-main-row-gap, 36px) var(--icmf26-main-gap, 72px);
  align-items: start;
  direction: inherit;
}

.icmf26-main--no-brand .icmf26-main__layout,
.icmf26-main--no-nav .icmf26-main__layout {
  grid-template-columns: minmax(0, 1fr);
}

.icmf26-brand {
  display: flex;
  flex-direction: column;
  min-width: 0;
  text-align: start;
  align-items: flex-start;
}

.icmf26-brand__logo {
  display: block;
  width: var(--icmf26-logo-width, 102px);
  max-width: 100%;
  height: auto;
  margin: 0 0 var(--icmf26-logo-gap, 24px);
  object-fit: contain;
}

.icmf26-brand__description {
  width: 100%;
  margin: 0;
  color: var(--icmf26-brand-color, #EBEBEB);
  font-size: var(--icmf26-brand-size, 16px);
  font-weight: 400;
  line-height: var(--icmf26-brand-lh, 1.9);
  text-align: start;
  overflow-wrap: break-word;
  word-break: normal;
}

.icmf26-brand__description > :first-child { margin-top: 0; }
.icmf26-brand__description > :last-child { margin-bottom: 0; }

.icmf26-follow {
  width: 100%;
  margin-top: var(--icmf26-social-top, 28px);
  text-align: start;
}

.icmf26-follow__title {
  margin: 0 0 var(--icmf26-social-title-gap, 14px);
  color: var(--icmf26-social-title-color, #EBEBEB);
  font-size: var(--icmf26-social-title-size, 14px);
  font-weight: 700;
  line-height: 1.5;
}

.icmf26-socials {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: var(--icmf26-social-gap, 12px);
}

.icmf26-social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--icmf26-social-size, 44px);
  height: var(--icmf26-social-size, 44px);
  min-width: var(--icmf26-social-size, 44px);
  min-height: var(--icmf26-social-size, 44px);
  padding: 0;
  border: var(--icmf26-social-border-w, 0px) solid var(--icmf26-social-border, #EBEBEB);
  border-radius: var(--icmf26-social-radius, 12px);
  color: var(--icmf26-social-color, #EBEBEB) !important;
  background: var(--icmf26-social-bg, #4E4D4D);
  font-size: var(--icmf26-social-font-size, 13px);
  font-weight: 700;
  line-height: 1;
  text-decoration: none !important;
  transition: transform .18s ease, opacity .18s ease;
}

.icmf26-social:hover,
.icmf26-social:focus-visible {
  color: var(--icmf26-social-color, #EBEBEB) !important;
  opacity: .9;
  transform: translateY(-1px);
}

.icmf26-social img {
  display: block;
  width: 18px;
  height: 18px;
  object-fit: contain;
}

/* THE ONLY grid that controls the link columns. */
.icmf26-main__nav {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: var(--icmf26-nav-col-gap, 42px);
  row-gap: var(--icmf26-nav-row-gap, 34px);
  width: 100%;
  min-width: 0;
  align-items: start;
  direction: inherit;
}

.icmf26-col {
  display: block;
  min-width: 0;
  max-width: 100%;
  text-align: start;
  direction: inherit;
}

.icmf26-col__title {
  margin: 0 0 var(--icmf26-title-gap, 20px);
  padding: 0;
  color: var(--icmf26-title-color, #EBEBEB);
  font-size: var(--icmf26-title-size, 16px);
  font-weight: 700;
  line-height: 1.5;
  text-align: start;
  overflow-wrap: break-word;
  word-break: normal;
}

.icmf26-col__links {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--icmf26-link-gap, 12px);
  list-style: none;
  margin: 0;
  padding: 0;
}

.icmf26-col__links li {
  display: block;
  margin: 0;
  padding: 0;
  min-width: 0;
}

.icmf26-col__links a {
  display: inline;
  color: var(--icmf26-link-color, #EBEBEB) !important;
  font-size: var(--icmf26-link-size, 16px);
  font-weight: 400;
  line-height: 1.75;
  text-decoration: none !important;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: none;
  transition: color .18s ease;
}

.icmf26-col__links a:hover,
.icmf26-col__links a:focus-visible {
  color: var(--icmf26-link-hover, #8C845E) !important;
}

.icmf26-col__custom {
  color: var(--icmf26-link-color, #EBEBEB);
  font-size: var(--icmf26-link-size, 16px);
  line-height: 1.75;
}

/* Full row is deliberately the only per-column width override. It can never
   create implicit grid tracks, so the selected device column count remains
   authoritative. */
.icmf26-col--full-d { grid-column: 1 / -1; }
.icmf26-col--hide-d { display: none; }

/* --------------------------------------------------------------------------
   Bottom footer
   -------------------------------------------------------------------------- */
.icmf26-bottom {
  padding-block: var(--icmf26-bottom-pad-top, 0px) var(--icmf26-bottom-pad-bottom, 40px);
}

.icmf26-separator {
  width: var(--icmf26-separator-width, 100%);
  max-width: 100%;
  margin-block-start: var(--icmf26-separator-before, 32px);
  margin-block-end: var(--icmf26-separator-after, 32px);
  margin-inline-start: 0;
  margin-inline-end: auto;
  height: auto;
  overflow: visible;
}

.icmf26-separator span {
  display: block;
  width: 100%;
  height: 0;
  border: 0;
  border-top-width: var(--icmf26-separator-thickness, 1px);
  border-top-style: solid;
  border-top-color: var(--icmf26-separator-color, #EBEBEB);
  background: none;
  opacity: var(--icmf26-separator-opacity, .22);
}

.icmf26-meta {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: var(--icmf26-meta-gap, 24px);
  width: 100%;
  min-width: 0;
}

.icmf26-meta__langs,
.icmf26-meta__copy {
  min-width: 0;
}

.icmf26-meta-order--copy-first .icmf26-meta__copy { order: 0; }
.icmf26-meta-order--copy-first .icmf26-meta__langs { order: 1; }
.icmf26-meta-order--lang-first .icmf26-meta__langs { order: 0; }
.icmf26-meta-order--lang-first .icmf26-meta__copy { order: 1; }

.icmf26-meta__copy {
  color: var(--icmf26-meta-color, #EBEBEB);
  font-size: var(--icmf26-meta-size, 14px);
  font-weight: 400;
  line-height: 1.6;
  text-align: start;
}

.icmf26-langs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: var(--icmf26-lang-gap, 8px);
  margin: 0;
  padding: 0;
}

.icmf26-lang {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--icmf26-lang-height, 40px);
  padding-inline: var(--icmf26-lang-pad-x, 15px);
  border: 0;
  border-radius: var(--icmf26-lang-radius, 12px);
  color: var(--icmf26-lang-color, #EBEBEB) !important;
  background: transparent;
  font-size: var(--icmf26-lang-size, 14px);
  font-weight: 500;
  line-height: 1;
  text-decoration: none !important;
}

.icmf26-lang.is-current {
  color: var(--icmf26-lang-active-color, #0D4778) !important;
  background: var(--icmf26-lang-active-bg, #EBEBEB);
  font-weight: 700;
}

.icmf26-legal {
  width: 100%;
  margin-top: var(--icmf26-legal-top, 32px);
  padding: var(--icmf26-legal-pad-top, 22px) var(--icmf26-legal-pad-right, 24px) var(--icmf26-legal-pad-bottom, 22px) var(--icmf26-legal-pad-left, 24px);
  border: var(--icmf26-legal-border-w, 1px) solid var(--icmf26-legal-border, #999999);
  border-radius: var(--icmf26-legal-radius, 12px);
  color: var(--icmf26-legal-color, #EBEBEB);
  background: var(--icmf26-legal-bg, #4E4D4D);
  font-size: var(--icmf26-legal-size, 13px);
  font-weight: 400;
  line-height: 1.85;
  text-align: start;
  overflow-wrap: break-word;
  word-break: normal;
}

.icmf26-legal p {
  margin: 0 0 var(--icmf26-legal-p-gap, 10px);
  padding: 0;
}
.icmf26-legal p:last-child { margin-bottom: 0; }
.icmf26-legal__warning {
  color: var(--icmf26-warning-color, #8C845E) !important;
  font-weight: 700;
}

/* --------------------------------------------------------------------------
   Tablet
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  .icmf26-shell {
    width: min(var(--icm-container, 1200px), calc(100% - (var(--icm-container-gutter-md, 20px) * 2)));
  }
  .icmf26-width--custom .icmf26-shell {
    width: min(var(--icmf26-custom-max, 1200px), calc(100% - (var(--icmf26-custom-gutter, 20px) * 2)));
  }
  .icmf26-main {
    padding-block: var(--icmf26-main-pad-top, 64px) var(--icmf26-main-pad-bottom, 0px);
  }
  .icmf26-main__layout {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--icmf26-main-row-gap, 42px) var(--icmf26-main-gap, 48px);
  }
  .icmf26-brand { width: 100%; }
  .icmf26-main__nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--icmf26-nav-col-gap, 30px);
    row-gap: var(--icmf26-nav-row-gap, 34px);
  }
  .icmf26-col--full-d { grid-column: auto; }
  .icmf26-col--hide-d { display: block; }
  .icmf26-col--full-t { grid-column: 1 / -1; }
  .icmf26-col--hide-t { display: none; }
  .icmf26-separator {
    margin-block-start: var(--icmf26-separator-before, 28px);
    margin-block-end: var(--icmf26-separator-after, 28px);
  }
}

/* --------------------------------------------------------------------------
   Mobile
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .icmf26-shell {
    width: min(var(--icm-container, 1200px), calc(100% - (var(--icm-container-gutter-sm, 14px) * 2)));
  }
  .icmf26-width--custom .icmf26-shell {
    width: min(var(--icmf26-custom-max, 720px), calc(100% - (var(--icmf26-custom-gutter, 14px) * 2)));
  }
  .icmf26-main {
    padding-block: var(--icmf26-main-pad-top, 48px) var(--icmf26-main-pad-bottom, 0px);
  }
  .icmf26-main__layout {
    grid-template-columns: minmax(0, 1fr);
    row-gap: var(--icmf26-main-row-gap, 36px);
  }
  .icmf26-brand__logo {
    width: var(--icmf26-logo-width, 96px);
  }
  .icmf26-main__nav {
    /* fallback only; Elementor responsive selector is authoritative */
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--icmf26-nav-col-gap, 24px);
    row-gap: var(--icmf26-nav-row-gap, 34px);
  }
  .icmf26-col--full-t { grid-column: auto; }
  .icmf26-col--hide-t { display: block; }
  .icmf26-col--full-m { grid-column: 1 / -1; }
  .icmf26-col--hide-m { display: none; }

  .icmf26-meta {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: var(--icmf26-meta-gap, 16px);
  }
  .icmf26-meta__langs,
  .icmf26-meta__copy { width: 100%; }
  .icmf26-langs { width: 100%; }
  .icmf26-meta__copy { text-align: start; }
  .icmf26-separator {
    margin-block-start: var(--icmf26-separator-before, 24px);
    margin-block-end: var(--icmf26-separator-after, 24px);
  }
  .icmf26-legal {
    margin-top: var(--icmf26-legal-top, 24px);
  }
}

/* Social order rhythm: no phantom margin when buttons are above the title. */
.icmf26-follow--above .icmf26-socials { margin-bottom: var(--icmf26-social-title-gap, 14px); }
.icmf26-follow--above .icmf26-follow__title { margin-bottom: 0; }
