/* =========================
   SECTION SYSTEM
========================= */

.tm-section {
  background: #ffffff;
}

.tm-section-soft {
  background:
    radial-gradient(circle at 100% 0%, rgba(37, 99, 235, 0.07), transparent 34%),
    var(--tm-bg-soft);
}

.tm-section-dark {
  background:
    radial-gradient(circle at 82% 22%, rgba(37, 99, 235, 0.26), transparent 34%),
    linear-gradient(135deg, var(--tm-dark) 0%, var(--tm-dark-soft) 58%, #020617 100%);
  color: #ffffff;
}

.tm-section-dark h1,
.tm-section-dark h2,
.tm-section-dark h3,
.tm-section-dark h4,
.tm-section-dark strong {
  color: #ffffff;
}

.tm-section-dark p,
.tm-section-dark li {
  color: rgba(255, 255, 255, 0.74);
}

/* =========================
   CTA SECTIONS
========================= */

.tm-cta-section {
  padding-block: var(--tm-section-space);
  background:
    radial-gradient(circle at 82% 22%, rgba(37, 99, 235, 0.1), transparent 34%),
    var(--tm-bg-soft);
}

.tm-cta-box {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 48px;
  align-items: center;

  padding: 56px;

  border: 1px solid var(--tm-border);
  border-radius: var(--tm-radius-xl);

  background: rgba(255, 255, 255, 0.9);

  box-shadow: var(--tm-shadow-lg);
}

.tm-cta-box h2 {
  margin-bottom: 12px;
}

.tm-cta-box p {
  max-width: 640px;
  margin: 0;
}

/* =========================
   SECTION HEADER
========================= */

.tm-section-header {
  max-width: 780px;
  margin-bottom: 52px;
}

.tm-section-header p:last-child,
.tm-section-header-center p:last-child {
  margin-bottom: 0;
}

/* =========================
   MOBILE
========================= */

@media (max-width: 760px) {
  .tm-hero-section {
    padding: var(--tm-hero-space-mobile) 0 78px;
  }

  .tm-cta-box {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 28px;
    border-radius: var(--tm-radius-lg);
  }

  .tm-section-header,
  .tm-section-header-center {
    margin-bottom: 34px;
  }
}

/* =========================
   DARK SPLIT SECTION FINAL
========================= */

.tm-page-section.tm-section-dark.tm-dark-split {
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 18%, rgba(37, 99, 235, 0.32), transparent 36%),
    linear-gradient(135deg, #050816 0%, #08111f 58%, #020617 100%);
}

.tm-page-section.tm-section-dark.tm-dark-split .tm-page-inner {
  min-height: 360px;
  align-items: center;
}

.tm-page-section.tm-section-dark.tm-dark-split h2 {
  max-width: 560px;
  margin-bottom: 18px;
  color: #ffffff;
}

.tm-page-section.tm-section-dark.tm-dark-split .tm-lead {
  max-width: 560px;
  color: rgba(255, 255, 255, 0.74);
}

.tm-page-section.tm-section-dark.tm-dark-split .tm-eyebrow {
  color: #60a5fa;
}

.tm-page-section.tm-section-dark.tm-dark-split .tm-card-glass,
.tm-page-section.tm-section-dark.tm-dark-split .tm-card-dark {
  justify-self: end;
  width: 100%;
  max-width: 360px;
}

@media (max-width: 760px) {
  .tm-page-section.tm-section-dark.tm-dark-split .tm-page-inner {
    min-height: auto;
  }

  .tm-page-section.tm-section-dark.tm-dark-split .tm-card-glass,
  .tm-page-section.tm-section-dark.tm-dark-split .tm-card-dark {
    justify-self: stretch;
    max-width: none;
  }
}

/* =========================
   HERO V2
========================= */

.tm-hero-v2 {
  position: relative;
  overflow: hidden;

  background:
    radial-gradient(circle at top right,
      rgba(37, 99, 235, 0.08),
      transparent 34%),
    linear-gradient(180deg,
      #ffffff 0%,
      #f8fafc 100%);
}

.tm-hero-v2::before {
  content: "";

  position: absolute;
  inset: 0;

  background:
    linear-gradient(rgba(255,255,255,0.72),
    rgba(255,255,255,0.88));

  pointer-events: none;
}

.tm-hero-v2 .tm-page-inner-wide {
  position: relative;
  z-index: 2;
}

.tm-hero-v2-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 520px;
  gap: 72px;
  align-items: center;
}

/* =========================
   DARK CTA SECTION
========================= */

.tm-dark-cta {
  position: relative;
  overflow: hidden;

  background:
    radial-gradient(circle at center,
      rgba(37, 99, 235, 0.28),
      transparent 36%),
    linear-gradient(135deg,
      #020617 0%,
      #08111f 100%);

  color: #ffffff;
}

.tm-dark-cta::before {
  content: "";

  position: absolute;
  inset: 0;

  background:
    linear-gradient(
      90deg,
      rgba(255,255,255,0.02) 1px,
      transparent 1px
    );

  background-size: 80px 80px;

  opacity: 0.18;
}

.tm-dark-cta > * {
  position: relative;
  z-index: 2;
}

/* =========================
   MOBILE
========================= */

@media (max-width: 1100px) {

  .tm-hero-v2-grid {
    grid-template-columns: 1fr;
    gap: 54px;
  }

}

@media (max-width: 760px) {

  .tm-hero-v2-grid {
    gap: 34px;
  }

}

.page-demo .tm-section-dark,
.page-demo .tm-dark-cta {
  background:
    radial-gradient(circle at 78% 18%, rgba(37, 99, 235, 0.32), transparent 36%),
    linear-gradient(135deg, #050816 0%, #08111f 58%, #020617 100%) !important;

  color: #ffffff !important;
}

.page-demo .tm-section-dark h1,
.page-demo .tm-section-dark h2,
.page-demo .tm-section-dark h3,
.page-demo .tm-section-dark p,
.page-demo .tm-section-dark li,
.page-demo .tm-section-dark strong,
.page-demo .tm-dark-cta h1,
.page-demo .tm-dark-cta h2,
.page-demo .tm-dark-cta h3,
.page-demo .tm-dark-cta p,
.page-demo .tm-dark-cta li,
.page-demo .tm-dark-cta strong {
  color: #ffffff !important;
}

@media (max-width: 760px) {

  .tm-page-section {
    overflow: hidden;
  }

  .tm-section-head p,
  .tm-section-head .tm-lead {
    max-width: 100%;
  }

  .tm-card,
  .tm-kpi-card,
  .tm-article-card,
  .tm-topic-card,
  .tm-reference-kpi,
  .tm-reference-quote {
    border-radius: 22px;
  }

}
/* =========================
   GLOBAL PAGE SECTION ALIASES
   Keeps old page classes but routes them through one section system.
========================= */

.tm-maint-section,
.tm-web-section,
.tm-web-hero,
.tm-web-final {
  position: relative;
  overflow: hidden;
  padding: clamp(92px, 9vw, 140px) 0;
}

.tm-maint-white,
.tm-web-white {
  background: #ffffff;
}

.tm-maint-light,
.tm-web-light,
.tm-web-soft {
  background:
    radial-gradient(circle at 82% 8%, rgba(37, 99, 235, .07), transparent 34%),
    #f8fafc;
}

.tm-maint-soft {
  background:
    radial-gradient(circle at 82% 12%, rgba(37,99,235,.08), transparent 34%),
    linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
}

.tm-maint-dark {
  background:
    radial-gradient(circle at 75% 20%, rgba(37,99,235,.18), transparent 34%),
    linear-gradient(180deg, #020617 0%, #081127 100%);
}

.tm-maint-dark h2,
.tm-maint-card-dark h3,
.tm-maint-head-dark h2,
.tm-web-card-dark h3,
.tm-web-care-panel h3,
.tm-web-final h2 {
  color: #ffffff;
}

.tm-maint-dark p,
.tm-maint-card-dark p,
.tm-maint-head-dark p,
.tm-web-card-dark p,
.tm-web-care-panel p,
.tm-web-final p {
  color: rgba(226,232,240,.72);
}

.tm-maint-head,
.tm-web-head {
  max-width: 780px;
  margin-bottom: 44px;
}

.tm-maint-head-center,
.tm-web-head-center {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.tm-maint-center,
.tm-web-center {
  display: flex;
  justify-content: center;
  margin-top: 38px;
}

@media (max-width: 760px) {
  .tm-maint-section,
  .tm-web-section,
  .tm-web-hero,
  .tm-web-final {
    padding: 82px 0;
  }
}

/* =========================
   GLOBAL REFERENCE / CARE SECTION ALIASES
========================= */

.tm-ref-page section,
.tm-care-page section {
  padding: clamp(86px, 9vw, 136px) 0;
}

.tm-ref-hero,
.tm-care-hero {
  padding-top: clamp(92px, 8vw, 132px);
  padding-bottom: clamp(92px, 8vw, 132px);
}

.tm-ref-page .tm-center,
.tm-care-page .tm-center {
  text-align: center;
}

.tm-ref-page .tm-section-head,
.tm-care-page .tm-section-head {
  max-width: 820px;
  margin: 0 auto 58px;
}

.tm-ref-page .tm-section-head h2,
.tm-care-page .tm-section-head h2 {
  margin: 0;
  color: #0f172a;
  font-size: clamp(2.7rem, 5vw, 5rem);
  line-height: .92;
  letter-spacing: -.07em;
}

.tm-ref-page .tm-section-head p,
.tm-care-page .tm-section-head p {
  max-width: 680px;
  margin: 18px auto 0;
  color: #64748b;
  font-size: 1.05rem;
  line-height: 1.75;
}

.tm-ref-page .tm-logos,
.tm-care-logos {
  padding: clamp(62px, 7vw, 94px) 0;
  background: #ffffff;
  border-top: 1px solid rgba(226, 232, 240, .72);
  border-bottom: 1px solid rgba(226, 232, 240, .72);
}

.tm-ref-page .tm-logos .tm-eyebrow,
.tm-care-logos .tm-eyebrow {
  margin-bottom: 34px;
  color: #2563eb;
}

.tm-ref-page .tm-logos-note,
.tm-care-logos-note {
  max-width: 520px;
  margin: 28px auto 0;
  color: #64748b;
  font-size: .98rem;
  line-height: 1.65;
}

@media (max-width: 640px) {
  .tm-ref-page section,
  .tm-care-page section {
    padding: 72px 0;
  }

  .tm-ref-page .tm-section-head h2,
  .tm-care-page .tm-section-head h2 {
    font-size: clamp(2.55rem, 13vw, 3.75rem);
    line-height: .93;
    letter-spacing: -.075em;
  }

  .tm-ref-page .tm-section-head p,
  .tm-care-page .tm-section-head p {
    font-size: .98rem;
    line-height: 1.68;
  }

  .tm-ref-page .tm-logos,
  .tm-care-logos {
    padding: 58px 0;
  }

  .tm-ref-page .tm-logos .tm-eyebrow,
  .tm-care-logos .tm-eyebrow {
    margin-bottom: 26px;
  }
}

/* =========================
   GLOBAL HOME SECTION ALIASES
========================= */

.tm-home-hero,
.tm-home-problem,
.tm-home-solution,
.tm-home-trust,
.tm-home-final-cta {
  position: relative;
  overflow: hidden;
  padding: clamp(96px, 9vw, 140px) 0;
}

.tm-home-hero {
  padding: clamp(92px, 9vw, 138px) 0 clamp(82px, 8vw, 126px);
}

.tm-home-problem h2,
.tm-home-solution-content h2,
.tm-home-trust-content h2,
.tm-home-final-cta h2 {
  line-height: .93;
  letter-spacing: -.075em;
}

.tm-home-problem h2,
.tm-home-solution-content h2,
.tm-home-trust-content h2 {
  font-size: clamp(3rem, 5vw, 5.2rem);
}

.tm-home-final-cta h2 {
  max-width: 760px;
  margin: 18px auto 22px;
  color: #ffffff;
  font-size: clamp(3rem, 5.4vw, 5.4rem);
}

.tm-home-solution-text,
.tm-home-trust-text {
  max-width: 620px;
  color: #64748b;
  font-size: 1.05rem;
  line-height: 1.82;
}

.tm-home-final-cta p {
  max-width: 620px;
  margin: 0 auto 34px;
  color: rgba(226,232,240,.74);
  font-size: 1.05rem;
  line-height: 1.82;
}

@media (max-width: 760px) {
  .tm-home-hero,
  .tm-home-problem,
  .tm-home-solution,
  .tm-home-trust,
  .tm-home-final-cta {
    padding: 82px 0;
  }

  .tm-home-hero h1,
  .tm-home-problem h2,
  .tm-home-solution-content h2,
  .tm-home-trust-content h2,
  .tm-home-final-cta h2 {
    font-size: clamp(2.7rem, 12vw, 4.2rem);
    line-height: .94;
  }
}

/* =========================
   WEBSITE CHECK SECTIONS
========================= */

.tm-wc-preview {
  padding: clamp(92px, 8vw, 132px) 0;
}

.tm-wc-report-request {
  background:
    radial-gradient(circle at 50% 0%, rgba(37, 99, 235, .08), transparent 34%),
    #f8fafc;
}

.tm-wc-dark h2,
.tm-wc-dark h3,
.tm-wc-dark .tm-eyebrow {
  color: #ffffff;
}

.tm-wc-dark aside .tm-btn,
.tm-wc-final-box .tm-btn,
.tm-wc-ampel-card .tm-btn,
.tm-wc-report-status-card .tm-btn {
  width: fit-content;
}

@media (max-width: 760px) {
  .tm-wc-dark aside .tm-btn,
  .tm-wc-final-box .tm-btn,
  .tm-wc-ampel-card .tm-btn,
  .tm-wc-report-status-card .tm-btn {
    width: 100%;
    justify-content: center;
  }
}
