/* TPP footer: native Elementor content, mobile-first layout. */
.tpp-footer {
  --footer-ink: #162d3a;
  --footer-text: #d2dde4;
  --footer-muted: #bbcad3;
  --footer-line: rgba(210,221,228,.18);
  background: var(--footer-ink) !important;
  border-top: 3px solid #d8242f;
  color: var(--footer-text);
  width: 100%;
  overflow-wrap: break-word;
}
.tpp-footer, .tpp-footer * { box-sizing: border-box; }
.tpp-footer .e-con, .tpp-footer .elementor-widget { min-width: 0; }
.tpp-footer .tpp-footer-shell,
.tpp-footer .tpp-footer-bottom {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.tpp-footer .tpp-footer-grid {
  display: grid !important;
  grid-template-columns: minmax(0,1fr);
  grid-template-areas: 'brand' 'contact' 'services' 'certifications';
  gap: 32px !important;
  width: 100% !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
  padding: 40px 24px 28px !important;
}
.tpp-footer .tpp-footer-grid > .e-con {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  gap: 0 !important;
}
.tpp-footer-brand { grid-area: brand; }
.tpp-footer-services { grid-area: services; }
.tpp-footer-contact { grid-area: contact; }
.tpp-footer-certifications { grid-area: certifications; }
.tpp-footer .elementor-widget { margin: 0 !important; }
.tpp-footer .tpp-footer-logo { margin-bottom: 20px !important; }
.tpp-footer .tpp-footer-logo .elementor-widget-container { text-align: left !important; }
.tpp-footer .tpp-footer-logo a { display: inline-flex; align-items: center; min-height: 44px; max-width: 100%; }
.tpp-footer .tpp-footer-logo img {
  display: block; width: 280px !important; height: auto !important;
  max-width: 100% !important; max-height: none !important; object-fit: contain;
}
.tpp-footer .tpp-footer-description,
.tpp-footer .tpp-footer-description p {
  color: var(--footer-muted) !important;
  font-size: 15px !important;
  line-height: 1.8 !important;
  font-weight: 400;
  text-align: left !important;
  margin: 0 !important;
  max-width: 43ch;
}
.tpp-footer .tpp-footer-heading { margin-bottom: 18px !important; }
.tpp-footer .tpp-footer-heading .elementor-heading-title {
  color: #fff !important; font-size: 18px !important; line-height: 1.4 !important;
  font-weight: 600 !important; letter-spacing: -.02em;
}
.tpp-footer .tpp-footer-link .elementor-icon-list-items { margin: 0 !important; padding: 0 !important; }
.tpp-footer .tpp-footer-link .elementor-icon-list-item { padding: 0 !important; margin: 0 !important; }
.tpp-footer .tpp-footer-link .elementor-icon-list-item > a {
  display: flex; align-items: center; gap: 12px;
  width: 100%; min-height: 48px; padding: 10px 0;
  color: var(--footer-text) !important; text-decoration: none !important;
}
.tpp-footer .tpp-footer-link .elementor-icon-list-text {
  color: inherit !important; font-size: 15px !important; line-height: 1.65 !important;
  font-weight: 400 !important; padding: 0 !important; overflow-wrap: anywhere;
}
.tpp-footer .tpp-footer-link .elementor-icon-list-icon {
  display: inline-flex; align-items: center; justify-content: center;
  flex: 0 0 20px; width: 20px; color: var(--footer-muted) !important;
}
.tpp-footer .tpp-footer-link .elementor-icon-list-icon :is(i,svg) {
  color: inherit !important; fill: currentColor !important; width: 18px; font-size: 18px;
}
.tpp-footer .tpp-footer-service-link .elementor-icon-list-icon { order: 2; margin-left: auto; }
.tpp-footer .tpp-footer-service-link .elementor-icon-list-icon :is(i,svg) { width: 12px; font-size: 12px; }
.tpp-footer .tpp-footer-service-link .elementor-icon-list-text { flex: 1; }
.tpp-footer .tpp-footer-service-link + .tpp-footer-service-link { border-top: 1px solid var(--footer-line); }
.tpp-footer .tpp-footer-address { margin-bottom: 12px !important; }
.tpp-footer .tpp-footer-address .elementor-icon-list-item > a { align-items: flex-start; padding-top: 0; }
.tpp-footer .tpp-footer-address .elementor-icon-list-icon { margin-top: 5px; }
.tpp-footer .tpp-footer-contact-action { border-top: 1px solid var(--footer-line); }
.tpp-footer .tpp-footer-link a:hover { color: #fff !important; }
.tpp-footer a:focus-visible { outline: 2px solid #fff; outline-offset: 4px; border-radius: 2px; }
.tpp-footer .tpp-footer-spacer,
.tpp-footer .tpp-footer-old-divider { display: none !important; }
.tpp-footer .tpp-footer-grid > .tpp-footer-certifications {
  display: flex !important; flex-direction: column !important;
  align-items: flex-start !important; gap: 18px !important;
  padding-top: 26px !important; border-top: 1px solid var(--footer-line);
}
.tpp-footer .tpp-footer-cert-heading .elementor-heading-title {
  font-size: 12px !important; line-height: 1.6 !important;
  font-weight: 600 !important; color: var(--footer-muted) !important;
  text-transform: uppercase; letter-spacing: .12em;
}
.tpp-footer .tpp-footer-badges {
  display: flex !important; flex-direction: row !important;
  flex-wrap: nowrap !important; gap: 12px !important;
  width: fit-content !important; max-width: 100%; padding: 0 !important;
}
.tpp-footer .tpp-footer-badge { width: 104px !important; flex: 0 1 104px; }
.tpp-footer .tpp-footer-badge img {
  display: block; width: 100% !important; height: auto !important;
  object-fit: contain; border: 1px solid rgba(255,255,255,.4);
}
.tpp-footer .tpp-footer-bottom { border-top: 1px solid var(--footer-line); }
.tpp-footer .tpp-footer-copyright {
  width: 100%; max-width: 1280px; margin: 0 auto !important;
  padding: 16px 24px 22px !important;
}
.tpp-footer .tpp-footer-copyright,
.tpp-footer .tpp-footer-copyright :is(div,p,span,a) {
  color: var(--footer-muted) !important; font-family: Inter,Arial,sans-serif !important;
  font-size: 12px !important; line-height: 1.8 !important; text-align: left !important;
}
.tpp-footer .tpp-footer-copyright a { color: #fff !important; display: inline-flex; align-items: center; min-height: 44px; }
@media (min-width: 768px) {
  .tpp-footer .tpp-footer-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
    grid-template-areas: 'brand brand' 'services contact' 'certifications certifications';
    gap: 36px 48px !important; padding: 48px 40px 28px !important;
  }
  .tpp-footer .tpp-footer-description, .tpp-footer .tpp-footer-description p { max-width: 66ch; }
  .tpp-footer .tpp-footer-grid > .tpp-footer-certifications { flex-direction: row !important; align-items: center !important; justify-content: space-between; }
  .tpp-footer .tpp-footer-cert-heading { width: auto; }
  .tpp-footer .tpp-footer-copyright { padding-left: 40px !important; padding-right: 40px !important; }
}
@media (min-width: 1100px) {
  .tpp-footer .tpp-footer-grid {
    grid-template-columns: 1.15fr .9fr 1.1fr;
    grid-template-areas: 'brand services contact' 'certifications certifications certifications';
    gap: 38px 64px !important; padding-top: 60px !important;
  }
  .tpp-footer .tpp-footer-description, .tpp-footer .tpp-footer-description p { max-width: 37ch; }
  .tpp-footer .tpp-footer-badge { width: 88px !important; flex-basis: 88px; }
}
@media (prefers-reduced-motion: no-preference) {
  .tpp-footer a { transition: color .18s ease; }
}
/* The source site-logo widget emits a second image for sticky headers. */
.tpp-footer .tpp-footer-logo img.rs___sticky-logo { display: none !important; }
@media (max-width: 767px) {
  /* Keep the theme's fixed back-to-top button clear of the legal text. */
  .tpp-footer .tpp-footer-copyright { padding-right: 80px !important; }
}
