/* Premium, accessible footer treatment shared by the main and service pages. */
  body > footer#contact,
  .footer {
    background:
      radial-gradient(circle at 8% 10%, rgba(8, 174, 234, .16), transparent 28rem),
      linear-gradient(145deg, #101a35 0%, #122b3a 100%) !important;
    border-top: 0 !important;
    color: rgba(255, 255, 255, .76) !important;
    margin-top: clamp(56px, 8vw, 96px);
    overflow: hidden;
    padding: clamp(48px, 6vw, 78px) max(24px, calc((100vw - 1160px) / 2)) 34px !important;
    position: relative;
  }

  body > footer#contact::before,
  .footer::before {
    background: linear-gradient(90deg, #08aeea, #77d6c4, transparent 82%);
    content: "";
    height: 4px;
    inset: 0 0 auto;
    position: absolute;
  }

  .footer .shell {
    width: 100%;
  }

  .footer-grid,
  .footer-inner {
    align-items: start !important;
    display: grid !important;
    gap: clamp(28px, 4vw, 52px) !important;
    grid-template-columns: minmax(250px, 1.25fr) repeat(4, minmax(130px, 1fr)) !important;
    margin-inline: auto;
    max-width: 1160px;
  }

  .footer-grid > div:first-child,
  .footer-brand {
    background: linear-gradient(145deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, .055));
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 28px;
    box-shadow: 0 22px 54px rgba(0, 0, 0, .16);
    display: grid;
    gap: 12px;
    max-width: none !important;
    padding: clamp(22px, 3vw, 30px);
  }

  .footer-logo {
    background: #fff;
    border-radius: 16px;
    box-sizing: border-box;
    height: auto;
    margin: 0 0 8px !important;
    padding: 10px 14px;
    width: min(230px, 100%);
  }

  .footer-brand > strong {
    color: #fff !important;
    font-size: clamp(1.35rem, 2vw, 1.8rem);
    letter-spacing: -.025em;
  }

  .footer-grid p,
  .footer-brand > span {
    color: rgba(255, 255, 255, .74) !important;
    line-height: 1.65 !important;
    margin: 0 !important;
  }

  .footer-grid > div:not(:first-child),
  .footer-links > div {
    align-content: start;
    display: grid;
    gap: 3px !important;
  }

  .footer-grid h4,
  .footer-links b {
    color: #fff !important;
    font-size: .76rem !important;
    font-weight: 900;
    letter-spacing: .12em;
    margin: 0 0 12px !important;
    text-transform: uppercase;
  }

  .footer-grid a:not(.button),
  .footer-links a {
    border-radius: 10px;
    color: rgba(255, 255, 255, .72) !important;
    display: block;
    font-size: .9rem !important;
    font-weight: 700 !important;
    line-height: 1.4;
    margin: 0 !important;
    overflow-wrap: anywhere;
    padding: 7px 8px;
    text-decoration: none;
    transition: background .18s ease, color .18s ease, transform .18s ease;
  }

  .footer-grid a:not(.button):hover,
  .footer-grid a:not(.button):focus-visible,
  .footer-links a:hover,
  .footer-links a:focus-visible {
    background: rgba(255, 255, 255, .09);
    color: #fff !important;
    outline: none;
    transform: translateX(3px);
  }

  .footer-grid a:not(.button):focus-visible,
  .footer-links a:focus-visible {
    box-shadow: 0 0 0 3px rgba(8, 174, 234, .4);
  }

  .footer-grid .button,
  .footer-brand .button {
    background: #08aeea !important;
    border-color: #08aeea !important;
    color: #08142c !important;
    justify-self: start;
    margin-top: 6px;
  }

  .footer-grid .button:hover,
  .footer-grid .button:focus-visible,
  .footer-brand .button:hover,
  .footer-brand .button:focus-visible {
    background: #7edcf7 !important;
    border-color: #7edcf7 !important;
    transform: translateY(-2px);
  }

  .footer-credential-badge {
    background: rgba(126, 220, 247, .12) !important;
    border-color: rgba(126, 220, 247, .3) !important;
    color: #a9e9fb !important;
    justify-self: start;
  }

  .footer-links {
    display: grid !important;
    gap: clamp(24px, 3vw, 38px) !important;
    grid-column: 2 / -1;
    grid-template-columns: repeat(3, minmax(140px, 1fr)) !important;
  }

  .footer-bottom {
    align-items: center;
    border-top: 1px solid rgba(255, 255, 255, .13) !important;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px !important;
    margin: 40px auto 0 !important;
    max-width: 1160px;
    padding-top: 22px !important;
  }

  .footer-bottom a,
  .footer-bottom span {
    color: rgba(255, 255, 255, .62) !important;
    font-size: .8rem;
    font-weight: 700;
    text-decoration: none;
  }

  .footer-bottom span:last-child {
    margin-left: auto;
  }

  @media (max-width: 1050px) {
    .footer-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .footer-grid > div:first-child {
      grid-column: 1 / -1;
    }

    .footer-inner {
      grid-template-columns: 1fr !important;
    }

    .footer-links {
      grid-column: auto;
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
  }

  @media (max-width: 720px) {
    body > footer#contact,
    .footer {
      padding: 44px 20px 118px !important;
    }

    .footer-grid,
    .footer-links {
      grid-template-columns: 1fr !important;
    }

    .footer-grid > div:first-child {
      grid-column: auto;
    }

    .footer-grid > div:not(:first-child),
    .footer-links > div {
      border-top: 1px solid rgba(255, 255, 255, .11);
      padding-top: 20px;
    }

    .footer-grid h4,
    .footer-links b {
      margin-bottom: 8px !important;
    }

    .footer-bottom {
      align-items: flex-start;
      flex-direction: column;
      gap: 10px !important;
    }

    .footer-bottom span:last-child {
      margin-left: 0;
    }
  }
