/* =========================
   LAYOUT UTILITIES
========================= */

.tm-center {
    text-align: center;
}

/* =========================
   SECTION RHYTHM
========================= */

.tm-section-head h2,
.tm-section-head-center h2,
.tm-section-header h2,
.tm-section-header-center h2 {
    margin-bottom: 18px;
}

.tm-section-head p,
.tm-section-head-center p,
.tm-section-header p,
.tm-section-header-center p {
    max-width: 680px;
}

.tm-section-head-center p,
.tm-section-header-center p {
    margin-left: auto;
    margin-right: auto;
}

/* =========================
   GLOBAL PAGE HERO SYSTEM
========================= */

.tm-page-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 430px;
  gap: clamp(56px, 8vw, 110px);
  align-items: center;
}

.tm-page-hero-content {
  max-width: 780px;
}

.tm-page-hero-content h1,
.tm-page-hero-title {
  margin: 0;

  color: #0f172a;

  font-size: clamp(3.2rem, 5.7vw, 6rem);
  line-height: .92;
  letter-spacing: -.075em;
}

.tm-page-hero-lead {
  max-width: 680px;
  margin: 26px 0 0;

  color: #64748b;
  opacity: 1;

  font-size: 1.08rem;
  line-height: 1.8;
}

.tm-page-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;

  margin-top: 34px;
}

@media (max-width: 980px) {

  .tm-page-hero-grid {
    grid-template-columns: 1fr;
  }

}

@media (max-width: 640px) {

  .tm-page-hero-content h1,
  .tm-page-hero-title {
    font-size: clamp(2.55rem, 13vw, 3.75rem);
    line-height: .93;
    letter-spacing: -.075em;
  }

  .tm-page-hero-lead {
    font-size: .98rem;
    line-height: 1.68;
  }

  .tm-page-hero-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .tm-page-hero-actions .tm-btn {
    width: 100%;
  }

}

.tm-maint-card-grid,
.tm-maint-process,
.tm-web-service-grid,
.tm-web-reference-grid,
.tm-web-benefit-grid {
  display: grid;
  gap: 22px;
}

.tm-web-service-grid,
.tm-web-reference-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tm-web-care-grid,
.tm-web-faq-grid {
  display: grid;
  gap: clamp(42px, 6vw, 84px);
  align-items: start;
}

.tm-web-faq-grid {
  grid-template-columns: minmax(280px, 420px) minmax(0, 1fr);
}

@media (max-width: 1100px) {
  .tm-maint-split,
  .tm-maint-pricing-layout,
  .tm-maint-trust,
  .tm-maint-box,
  .tm-web-split,
  .tm-web-result-grid,
  .tm-web-care-grid,
  .tm-web-faq-grid {
    grid-template-columns: 1fr;
  }

  .tm-maint-card-grid-4,
  .tm-maint-process,
  .tm-web-service-grid,
  .tm-web-reference-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .tm-maint-card-grid-4,
  .tm-maint-process,
  .tm-maint-mini-grid,
  .tm-web-service-grid,
  .tm-web-reference-grid,
  .tm-web-benefit-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================
   GLOBAL LOGO / MANAGED / CARE GRIDS
========================= */

.tm-ref-page .tm-logos-grid,
.tm-care-logos-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  max-width: 980px;
  margin: 0 auto;
}

.tm-managed-grid,
.tm-care-managed-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

@media (max-width: 980px) {
  .tm-ref-page .tm-logos-grid,
  .tm-care-logos-grid,
  .tm-managed-grid,
  .tm-care-managed-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tm-ref-page .tm-logos-grid,
  .tm-care-logos-grid {
    max-width: 680px;
  }

}

@media (max-width: 640px) {
  .tm-managed-grid,
  .tm-care-managed-grid {
    grid-template-columns: 1fr;
  }

  .tm-ref-page .tm-logos-grid,
  .tm-care-logos-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
}

@media (max-width: 390px) {
  .tm-ref-page .tm-logos-grid,
  .tm-care-logos-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================
   GLOBAL HOME LAYOUT ALIASES
========================= */

.tm-home-hero-grid,
.tm-home-problem-grid,
.tm-home-solution-grid,
.tm-home-trust-grid {
  display: grid;
  gap: clamp(52px, 7vw, 110px);
  align-items: center;
}

.tm-home-hero-grid {
  grid-template-columns: minmax(0, 1fr) 500px;
}

.tm-home-trust-grid {
  grid-template-columns: 360px minmax(0,1fr);
}

.tm-home-solution-points,
.tm-home-trust-list {
  display: grid;
  gap: 14px;
  margin-top: 34px;
}

.tm-home-final-cta-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
}

@media (max-width: 1100px) {
  .tm-home-hero-grid,
  .tm-home-problem-grid,
  .tm-home-solution-grid,
  .tm-home-trust-grid {
    grid-template-columns: 1fr;
  }

}

@media (max-width: 760px) {
  .tm-home-final-cta-actions {
    flex-direction: column;
  }

  .tm-home-final-cta-actions .tm-btn {
    width: 100%;
  }

}

/* =========================
   WEBSITE CHECK LAYOUT
========================= */

.tm-wc-landing-hero,
.tm-wc-report-hero,
.tm-wc-personal,
.tm-wc-report-request,
.tm-wc-insights,
.tm-wc-dark,
.tm-wc-final,
.tm-wc-report-success {
  padding: clamp(92px, 8vw, 132px) 0;
}

.tm-wc-landing-hero {
  position: relative;
  overflow: hidden;
}

.tm-wc-preview-grid {
  display: grid;
  grid-template-columns: 1.15fr repeat(3, minmax(0, 1fr));
  gap: 22px;
}

@media (max-width: 1100px) {

  .tm-wc-preview-grid,
  .tm-grid-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .tm-wc-landing-hero,
  .tm-wc-preview,
  .tm-wc-report-hero,
  .tm-wc-personal,
  .tm-wc-report-request,
  .tm-wc-insights,
  .tm-wc-dark,
  .tm-wc-final,
  .tm-wc-report-success {
    padding: 72px 0;
  }

  .tm-wc-preview-grid,
  .tm-grid-3,
  .tm-wc-preview-grid-3,
  .tm-wc-report-facts {
    grid-template-columns: 1fr;
  }
.tm-maint-hero,
  .tm-web-hero,
  .tm-care-sites-hero,
  .tm-ref-hero,
  .tm-about-hero,
  .tm-wc-landing-hero,
  .tm-wissen-single-hero,
  .tm-contact-hero {
    padding-top: 30px !important;
    padding-bottom: 36px !important;
  }

  .tm-page-hero-grid,
  .tm-v200-hero-grid,
  .tm-web-hero-grid,
  .tm-care-sites-hero-grid,
  .tm-wissen-single-hero-grid,
  .tm-contact-hero-grid {
    gap: 24px !important;
  }

  .tm-page-hero-content h1,
  .tm-page-hero-title,
  .tm-maint-hero .tm-page-hero-content h1,
  .tm-web-hero .tm-page-hero-content h1,
  .tm-care-sites-hero h1,
  .tm-ref-hero .tm-page-hero-content h1,
  .tm-about-hero .tm-page-hero-content h1,
  .tm-wc-landing-hero h1,
  .tm-wissen-single-page .tm-page-hero-title,
  .tm-contact-hero-copy h1 {
    font-size: clamp(2.32rem, 10.4vw, 3.18rem) !important;
    line-height: .96 !important;
    letter-spacing: -.065em !important;
  }

  .tm-page-hero-lead,
  .tm-maint-hero .tm-page-hero-lead,
  .tm-web-hero .tm-page-hero-lead,
  .tm-wc-landing-hero .tm-page-hero-lead,
  .tm-wissen-single-page .tm-page-hero-lead,
  .tm-contact-hero-copy > p:not(.tm-contact-eyebrow) {
    margin-top: 14px !important;
    font-size: .98rem !important;
    line-height: 1.58 !important;
  }

  .tm-page-hero-actions,
  .tm-maint-actions,
  .tm-web-actions,
  .tm-contact-hero-actions {
    margin-top: 20px !important;
  }
}
