/* CFS Storefront v0.1.20 — viewport-safe desktop mega menus.
 * The parent theme remains authoritative for the menu design.
 * This file only constrains the dropdown to the viewport and restores normal
 * text wrapping inside mega-menu columns.
 */
@media (min-width: 921px) {
  .nav-secondary,
  .nav-secondary .wrap,
  .nav-secondary nav,
  header.site .nav-secondary {
    overflow: visible !important;
  }

  .nav-secondary .dd {
    position: relative !important;
  }

  .nav-secondary .dd > .menu {
    position: absolute !important;
    top: calc(100% - 1px) !important;
    left: var(--cfs-menu-left, 0px) !important;
    right: auto !important;
    transform: none !important;
    max-width: calc(100vw - 24px) !important;
    max-height: var(--cfs-menu-max-height, calc(100vh - 128px));
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    box-sizing: border-box;
    z-index: 100 !important;
  }

  /* Resources needs enough room for three readable columns.  The previous
   * release kept the menu inside the viewport but inherited nowrap from the
   * navigation links, which caused descriptions to run through adjacent
   * columns. */
  .nav-secondary .dd > .menu.resource-mega {
    width: min(1040px, calc(100vw - 24px)) !important;
    min-width: 0 !important;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr) minmax(0, .92fr) !important;
    gap: 0 !important;
  }

  .resource-mega .mega-col {
    min-width: 0 !important;
  }

  .resource-mega a,
  .resource-mega .mega-link,
  .resource-mega .mega-link b,
  .resource-mega .mega-link span,
  .resource-mega .mega-link em {
    white-space: normal !important;
  }

  .resource-mega .mega-link b,
  .resource-mega .mega-link span {
    overflow-wrap: break-word;
    word-break: normal;
    max-width: 100%;
  }

  .resource-mega .mega-footer-cta strong {
    white-space: normal !important;
  }

  /* Preserve a continuous hover/focus path from the nav item to dropdown. */
  .nav-secondary .dd::after {
    content: "";
    position: absolute;
    left: -12px;
    right: -12px;
    top: calc(100% - 2px);
    height: 10px;
    z-index: 99;
    display: none;
  }
  .nav-secondary .dd:hover::after,
  .nav-secondary .dd:focus-within::after {
    display: block;
  }
}

/* At the narrowest desktop widths keep three columns, but tighten padding
 * rather than allowing text to overlap.  Below 921px the parent mobile nav
 * remains authoritative. */
@media (min-width: 921px) and (max-width: 1080px) {
  .resource-mega .mega-col {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
  .resource-mega .mega-link b {
    font-size: .87rem !important;
  }
  .resource-mega .mega-link span {
    font-size: .72rem !important;
  }
}

/* Clean, canonical footer contact column. */
.cfs-footer-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}
.cfs-footer-brand .footer-logo {
  margin-bottom: 20px !important;
}
.cfs-footer-summary {
  margin: 0 0 22px !important;
  max-width: 31em;
  font-size: .9rem !important;
  line-height: 1.62;
}
.cfs-footer-contact-block {
  display: grid;
  gap: 5px;
  margin: 0 0 18px;
}
.cfs-footer-contact-block h4 {
  margin: 0 0 6px !important;
}
.cfs-footer-contact-block a {
  display: inline-block;
  width: fit-content;
  text-decoration: none;
}
.cfs-footer-email {
  overflow-wrap: anywhere;
}
.cfs-footer-phone {
  font-size: 1rem;
  font-weight: 700;
}
.cfs-footer-hours {
  font-size: .82rem;
  opacity: .82;
}
.cfs-footer-service-area {
  margin: 0 0 12px;
  font-family: var(--mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
  font-size: .69rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.cfs-footer-address {
  margin: 0;
  font-style: normal;
  font-size: .76rem;
  line-height: 1.55;
  opacity: .72;
}
.cfs-footer-address span {
  display: block;
  margin-bottom: 3px;
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.cfs-footer-wordmark {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.cfs-footer-wordmark strong {
  display: inline-grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 4px;
}
@media (max-width: 720px) {
  .cfs-footer-summary {
    max-width: 36em;
  }
}
