/* Footer — Theme Builder global footer chrome. */

/* Footer menu stacks to a centered column ≤980px. Both need !important — Divi sets
   align-items:stretch on .et_pb_menu .et_pb_menu__menu > nav > ul, which outranks this. */
@media (max-width: 980px) {
  .et-l--footer .et-menu {
    flex-direction: column !important;
    align-items: center !important;
  }
}

/* ── Footer logo — centre it (drop Divi's .et_pb_menu__logo 30px gutter) ── */
.et-l--footer .et_pb_menu__logo { margin-right: 0; }

/* CTA card — the row's border-radius makes Divi clip it (overflow:hidden), chopping
   the "Call our office" pill that floats up over the top. Allow it to overflow. */
.et-l--footer .et_pb_section:first-of-type .et_pb_row { overflow: visible !important; }

/* Footer nav band — section stays dark (blue-1, logo on dark per Figma); only the
   menu's link list becomes a full-bleed background-blue strip with dark nav text. */
.et-l--footer .et_pb_section:has(.et_pb_menu) .et_pb_menu__menu {
  background-color: var(--background-blue);
  width: 100vw;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  padding: 3rem 0 !important;         /* tablet / mobile */
  display: flex;
  justify-content: center;
}
.et-l--footer .et_pb_section:has(.et_pb_menu) .et_pb_menu a { color: var(--blue-1) !important; }

/* Contain the strip's 100vw overflow — kills the horizontal scroll. 100vw counts the
   vertical scrollbar, so with classic scrollbars the strip is ~15px wider than the
   content and pokes past the right edge. clip (not hidden) makes no scroll container
   and leaves overflow-y visible, so the CTA pill still floats up out of its row. */
.et-l--footer { overflow-x: clip; }

/* Divi gives menu links tall vertical padding — drop it so the strip is thin. */
.et-l--footer .et_pb_menu li a { padding-top: 0 !important; padding-bottom: 0 !important; }

/* Nav items = body-sm token. The .body-sm class alone doesn't take on menu links
   (Divi sets size/weight/spacing explicitly), so map the token values here. */
.et-l--footer .et_pb_menu .et-menu li a {
  font-family: var(--font-inter-18pt) !important;
  font-size: var(--text-body-sm) !important;   /* 16px */
  font-weight: 400 !important;
  letter-spacing: -0.01em !important;
  line-height: normal !important;
}

/* desktop: tight .75rem strip */
@media (min-width: 981px) {
  .et-l--footer .et_pb_section:has(.et_pb_menu) .et_pb_menu__menu { padding: 0.75rem 0 !important; }
}

/* tablet / mobile: stacked nav, centered, with breathing room */
@media (max-width: 980px) {
  .et-l--footer .et_pb_section:has(.et_pb_menu) .et_pb_menu__menu { align-items: center !important; }
  .et-l--footer .et_pb_menu .et-menu {
    width: 100%;
    justify-content: center !important;
    align-items: center !important;
    text-align: center;
    row-gap: 1rem;
  }
  .et-l--footer .et_pb_menu .et-menu li { text-align: center; }
}

/* Footer NAP columns — ONE continuous orange rule between the 4 headings and their
   body. The headings share a bottom edge; draw one full-width line across the row
   (through the gaps) rather than 4 per-column segments. Stacked ≤980: no line. */
@media (min-width: 981px) {
  .et-l--footer .subheading-sm { padding-bottom: 1rem; }   /* gap: heading → line */
  .et-l--footer .et_pb_column:has(.subheading-sm) { position: relative; }
  .et-l--footer .et_pb_column:has(.subheading-sm)::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 2.5rem;                                          /* ≈ heading box bottom */
    border-top: 1px solid var(--orange-2);
    pointer-events: none;
  }
}
