/* ============================================================
   TM Blocks — Thrivemattic Design System
   All rules scoped under .tm-blocks-page (body class).
   Does NOT affect Divi-built pages.
   ============================================================ */

/* ── DESIGN TOKENS ── */
.tm-blocks-page {
  --charcoal: #1c2529;
  --charcoal-light: #2a363c;
  --olive: #808000;
  --olive-hover: #6d6d00;
  --olive-bright: #9a9a00;
  --olive-dim: rgba(128,128,0,0.10);
  --olive-medium: rgba(128,128,0,0.20);
  --cream: #faf7f2;
  --cream-dark: #f0ede6;
  --white: #ffffff;
  --text-primary: #333333;
  --text-secondary: #777777;
  --text-muted: #999999;
  --text-inverse: #ffffff;
  --text-inverse-muted: rgba(255,255,255,0.6);
  --border-light: rgba(0,0,0,0.06);
  --border-medium: rgba(0,0,0,0.12);
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.04), 0 1px 2px rgba(0,0,0,0.03);
  --shadow-md: 0 4px 20px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.04);
  --shadow-lg: 0 10px 40px rgba(0,0,0,0.08);
  --radius-sm: 4px;
  --radius: 8px;
  --radius-lg: 12px;
  --radius-pill: 9999px;
  --font-body: 'Lato', system-ui, -apple-system, sans-serif;
  --font-display: 'Oswald', system-ui, sans-serif;
  --font-logo-thrive: 'Josefin Sans', sans-serif;
  --container-max: 1280px;
  --section-padding: clamp(3.5rem, 6vw, 5rem) clamp(1.5rem, 5vw, 4rem);
}

/* ── BASE ── */
.tm-blocks-page {
  font-family: var(--font-body) !important;
  background: var(--cream) !important;
  color: var(--text-primary);
  line-height: 1.6;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}
.tm-blocks-page a { color: var(--olive); text-decoration: none; }

/* ── SECTION BACKGROUNDS ── */
.tm-blocks-page .tm-bg-charcoal { background: var(--charcoal) !important; color: var(--white); }
.tm-blocks-page .tm-bg-cream { background: var(--cream) !important; color: var(--text-primary); }
.tm-blocks-page .tm-bg-cream-dark { background: var(--cream-dark) !important; color: var(--text-primary); }
.tm-blocks-page .tm-bg-white { background: var(--white) !important; color: var(--text-primary); }

.tm-blocks-page .tm-section {
  padding: clamp(3.5rem, 6vw, 5rem) 0 !important;
}

/* ── SECTION LABEL ── */
.tm-blocks-page .tm-section-label {
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--olive) !important;
  margin-bottom: 8px !important;
}
.tm-blocks-page .tm-bg-charcoal .tm-section-label { color: var(--olive-bright) !important; }

/* ── SECTION TITLE ── */
.tm-blocks-page .tm-section-title {
  font-family: var(--font-display) !important;
  font-size: clamp(1.6rem, 3.5vw, 2.4rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.5px;
  line-height: 1.15 !important;
  color: var(--charcoal) !important;
  margin-bottom: 16px !important;
}
.tm-blocks-page .tm-bg-charcoal .tm-section-title { color: var(--white) !important; }

/* ── SECTION DESCRIPTION ── */

/* ── HERO ── */
.tm-blocks-page .tm-hero {
  padding: clamp(7rem, 12vw, 9rem) 0 clamp(4rem, 8vw, 6rem) !important;
  position: relative;
}
.tm-blocks-page .tm-hero-title {
  font-family: var(--font-display) !important;
  font-size: clamp(2.2rem, 5vw, 3.6rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.5px;
  line-height: 1.1 !important;
  color: var(--white) !important;
  margin: 0 auto 20px !important;
}
.tm-blocks-page .tm-hero-product {
  font-size: 15px !important;
  color: #fff !important;
  margin-top: 24px !important;
  letter-spacing: 0.5px;
}
.tm-blocks-page .tm-hero-product strong { color: var(--white); font-weight: 700; }
.tm-blocks-page .tm-olive-bright { color: var(--olive-bright); font-weight: 400; }

/* ── BUTTONS ── */
.tm-blocks-page .tm-btn-primary .wp-block-button__link {
  background: var(--olive) !important;
  color: var(--white) !important;
  border: 2px solid var(--olive) !important;
  border-radius: var(--radius) !important;
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  padding: 12px 28px !important;
  transition: all 0.2s;
  text-decoration: none !important;
}
.tm-blocks-page .tm-btn-primary .wp-block-button__link:hover {
  background: var(--olive-hover) !important;
  border-color: var(--olive-hover) !important;
}
.tm-blocks-page .tm-btn-outline-light .wp-block-button__link {
  background: transparent !important;
  color: var(--white) !important;
  border: 2px solid var(--white) !important;
  border-radius: var(--radius) !important;
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  padding: 12px 28px !important;
  transition: all 0.2s;
  text-decoration: none !important;
}
.tm-blocks-page .tm-btn-outline-light .wp-block-button__link:hover {
  background: rgba(255,255,255,0.1) !important;
}
.tm-blocks-page .tm-btn-outline .wp-block-button__link {
  background: transparent !important;
  color: var(--charcoal) !important;
  border: 2px solid var(--charcoal) !important;
  border-radius: var(--radius) !important;
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  padding: 12px 28px !important;
  transition: all 0.2s;
  text-decoration: none !important;
}
.tm-blocks-page .tm-btn-outline .wp-block-button__link:hover {
  background: var(--charcoal) !important;
  color: var(--white) !important;
}
.tm-blocks-page .tm-btn-secondary .wp-block-button__link {
  background: var(--charcoal) !important;
  color: var(--white) !important;
  border: 2px solid var(--charcoal) !important;
  border-radius: var(--radius) !important;
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  padding: 12px 28px !important;
  transition: all 0.2s;
  text-decoration: none !important;
}
.tm-blocks-page .tm-btn-secondary .wp-block-button__link:hover {
  background: var(--charcoal-light) !important;
  border-color: var(--charcoal-light) !important;
}
.tm-blocks-page .tm-btn-ghost .wp-block-button__link {
  background: transparent !important;
  color: var(--olive) !important;
  border: 2px solid var(--olive) !important;
  border-radius: var(--radius) !important;
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  padding: 12px 28px !important;
  transition: all 0.2s;
  text-decoration: none !important;
}
.tm-blocks-page .tm-btn-ghost .wp-block-button__link:hover {
  background: var(--olive-dim) !important;
}

/* ── BADGES ── */
.tm-blocks-page .tm-badge {
  display: inline-block !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  padding: 5px 14px !important;
  border-radius: 20px;
  text-decoration: none !important;
}
.tm-blocks-page .tm-badge-olive { background: var(--olive); color: var(--white) !important; text-align: center !important; }
.tm-blocks-page .tm-badge-charcoal { background: var(--charcoal); color: var(--white) !important; }
.tm-blocks-page .tm-badge-outline { background: transparent; color: var(--olive) !important; border: 1.5px solid var(--olive); }
.tm-blocks-page .tm-badge-cream { background: var(--olive-dim); color: var(--olive) !important; }

/* ── OLIVE ACCENT LINE ── */
.tm-blocks-page .tm-olive-line {
  height: 3px;
  background: linear-gradient(90deg, var(--olive), var(--olive-bright), var(--olive));
}

/* ── STATS ── */
.tm-blocks-page .tm-stats-row { gap: clamp(32px, 6vw, 80px) !important; justify-content: center; }
body.tm-blocks-page main#main .tm-stat-number,
.tm-blocks-page .tm-stat-number {
  font-family: var(--font-display) !important;
  font-size: 56px !important; font-weight: 600 !important;
  color: var(--olive) !important; line-height: 1 !important; margin-bottom: 4px !important;
}
.tm-blocks-page .tm-bg-charcoal .tm-stat-number { color: var(--olive-bright) !important; }
.tm-blocks-page .tm-stat-label {
  font-size: 13px !important; color: var(--text-secondary) !important; margin-top: 4px !important; line-height: 1.6 !important;
}
.tm-blocks-page .tm-bg-charcoal .tm-stat-label { color: #fff !important; }

/* ── FEATURE CARDS ── */
.tm-blocks-page .tm-features-grid { gap: 24px !important; }
.tm-blocks-page .tm-feature-card {
  background: var(--white) !important; border-radius: var(--radius-lg) !important;
  padding: 28px 24px !important; box-shadow: var(--shadow-sm);
  border-left: 3px solid var(--olive) !important;
  border-top: none !important; border-right: none !important; border-bottom: none !important;
  transition: box-shadow 0.3s, transform 0.3s;
}
.tm-blocks-page .tm-feature-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); }
.tm-blocks-page .tm-feature-icon { font-size: 28px !important; margin-bottom: 12px !important; line-height: 1 !important; }
.tm-blocks-page .tm-feature-title {
  font-family: var(--font-display) !important; font-size: 18px !important;
  font-weight: 500 !important; color: var(--charcoal) !important; margin-bottom: 8px !important;
}
.tm-blocks-page .tm-feature-desc { font-size: 14px !important; color: var(--text-secondary) !important; line-height: 1.6 !important; }
@media (max-width: 768px) { .tm-blocks-page .tm-features-grid { flex-direction: column !important; } }

/* ── STEPS ── */
.tm-blocks-page .tm-steps { margin-top: 32px !important; gap: 32px !important; }
.tm-blocks-page .tm-step { text-align: center; }
.tm-blocks-page .tm-step-number {
  display: flex !important; align-items: center; justify-content: center;
  width: 48px !important; height: 48px !important; min-width: 48px; min-height: 48px;
  border-radius: 50% !important; background: var(--olive); color: var(--white) !important;
  font-family: var(--font-display) !important; font-size: 22px !important; font-weight: 600 !important;
  margin: 0 auto 16px !important; padding: 0 !important; line-height: 48px !important;
}
.tm-blocks-page .tm-step-title {
  font-family: var(--font-display) !important; font-size: 16px !important;
  font-weight: 500 !important; color: var(--charcoal) !important; margin-bottom: 6px !important;
}
.tm-blocks-page .tm-step-desc { font-size: 13px !important; color: var(--text-secondary) !important; line-height: 1.6 !important; }
@media (max-width: 768px) {
  .tm-blocks-page .tm-steps { flex-wrap: wrap; }
  .tm-blocks-page .tm-steps > .wp-block-column { flex-basis: calc(50% - 16px) !important; }
}
@media (max-width: 480px) { .tm-blocks-page .tm-steps > .wp-block-column { flex-basis: 100% !important; } }

/* ── PLATFORM PILLS ── */
.tm-blocks-page .tm-platforms { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 24px; }
.tm-blocks-page .tm-platform-pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 14px; border-radius: var(--radius-pill);
  background: var(--charcoal-light); color: var(--text-inverse-muted);
  font-size: 13px; font-weight: 600; font-family: var(--font-body);
}
.tm-blocks-page .tm-platform-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--olive-bright); }

/* ── VALIDATION ITEMS ── */
.tm-blocks-page .tm-validation-grid { margin-top: 24px !important; gap: 16px !important; }
.tm-blocks-page .tm-validation-item {
  display: flex !important; flex-direction: row !important; align-items: flex-start !important;
  gap: 12px !important; padding: 16px !important; background: var(--white) !important;
  border-radius: var(--radius) !important; border: 1px solid var(--border-light) !important;
  margin-bottom: 16px !important;
}
.tm-blocks-page .tm-vi-icon {
  width: 32px !important; height: 32px !important; min-width: 32px;
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 700; flex-shrink: 0; padding: 0 !important;
  line-height: 32px !important; text-align: center;
}
.tm-blocks-page .tm-vi-green { background: rgba(34,197,94,0.1); color: #22c55e; }
.tm-blocks-page .tm-vi-amber { background: rgba(212,160,23,0.1); color: #d4a017; }
.tm-blocks-page .tm-vi-red { background: rgba(239,68,68,0.1); color: #ef4444; }
.tm-blocks-page .tm-vi-blue { background: rgba(59,130,246,0.1); color: #3b82f6; }
.tm-blocks-page .tm-vi-text { flex: 1; }
.tm-blocks-page .tm-vi-desc { font-size: 13px !important; color: var(--text-secondary) !important; line-height: 1.6 !important; }
@media (max-width: 640px) { .tm-blocks-page .tm-validation-grid { flex-direction: column !important; } }

/* ── SHOWCASE IMAGES ── */
.tm-blocks-page .tm-showcase-grid { margin-top: 32px !important; gap: 24px !important; }
.tm-blocks-page .tm-showcase-img img {
  border-radius: var(--radius-lg) !important; box-shadow: var(--shadow-lg);
  transition: transform 0.3s, box-shadow 0.3s;
}
.tm-blocks-page .tm-showcase-img img:hover { transform: translateY(-4px); box-shadow: 0 16px 48px rgba(0,0,0,0.12); }
.tm-blocks-page .tm-showcase-img figure { margin: 0 !important; }

/* ── FOOTER ── */
.tm-blocks-page .tm-footer {
  background: var(--charcoal) !important; color: var(--text-inverse-muted); padding: 48px 0 0; position: relative;
}
.tm-blocks-page .tm-footer::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, var(--olive), var(--olive-bright), var(--olive));
}
.tm-blocks-page .tm-footer-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; padding-bottom: 40px; border-bottom: 1px solid rgba(255,255,255,0.08); }
.tm-blocks-page .tm-footer-col h4 {
  font-family: var(--font-display) !important; font-size: 14px !important; font-weight: 500 !important;
  letter-spacing: 1px !important; text-transform: uppercase !important; color: var(--white) !important; margin-bottom: 16px !important;
}
.tm-blocks-page .tm-footer-col ul { list-style: none; padding: 0; margin: 0; }
.tm-blocks-page .tm-footer-col li { margin-bottom: 8px; }
.tm-blocks-page .tm-footer-col a { font-size: 14px; color: rgba(255,255,255,0.5); text-decoration: none; transition: color 0.2s; }
.tm-blocks-page .tm-footer-col a:hover { color: var(--olive); }
.tm-blocks-page .tm-footer-industries { padding: 16px 0; font-size: 13px; color: rgba(255,255,255,0.3); border-bottom: 1px solid rgba(255,255,255,0.05); }
.tm-blocks-page .tm-footer-industries a { color: rgba(255,255,255,0.4); text-decoration: none; }
.tm-blocks-page .tm-footer-industries a:hover { color: rgba(255,255,255,0.7); }
.tm-blocks-page .tm-footer-bottom { padding: 20px 0; display: flex; justify-content: space-between; align-items: center; font-size: 13px; color: rgba(255,255,255,0.25); }
.tm-blocks-page .tm-footer-bottom a { color: rgba(255,255,255,0.3); text-decoration: none; }
.tm-blocks-page .tm-footer-bottom a:hover { color: rgba(255,255,255,0.6); }
@media (max-width: 768px) {
  .tm-blocks-page .tm-footer-grid { grid-template-columns: 1fr 1fr; }
  .tm-blocks-page .tm-footer-bottom { flex-direction: column; gap: 8px; text-align: center; }
}
@media (max-width: 480px) { .tm-blocks-page .tm-footer-grid { grid-template-columns: 1fr; } }

/* ── FIX: Olive line in CTA/cover blocks ──
   The olive-line is inside wp-block-cover__inner-container which has
   constrained width. We make the cover block the positioning context
   and let the line escape the inner container to go edge-to-edge. */
.tm-blocks-page .wp-block-cover {
  position: relative;
  overflow: visible !important;
}
.tm-blocks-page .wp-block-cover .olive-line,
.tm-blocks-page .wp-block-cover .tm-olive-line {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  height: 3px;
  z-index: 2;
}

/* ============================================================
   STYLE.CSS NEUTRALIZATION
   The child theme style.css has bare h1-h6, p, body selectors
   with !important (old Divi-era styles). These override our
   design system. We neutralize them here with higher specificity.
   ============================================================ */

/* Reset global heading overrides from style.css */
.tm-blocks-page h1,
.tm-blocks-page h2,
.tm-blocks-page h3,
.tm-blocks-page h4,
.tm-blocks-page h5,
.tm-blocks-page h6 {
  font-family: var(--font-display) !important;
  color: var(--charcoal) !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Typography per style guide:
   H1: 44px / 600 / 1.15 / 0.5px
   H2: 28px / 500 / 1.3  / 0.5px
   H3: 22px / 500 / 1.35 / 0.3px
   H4: 18px / 500 / 1.3  / 0.3px
   H5: 16px / 500
   H6: 14px / 500 / 1.5px letter-spacing / uppercase */
.tm-blocks-page h1 {
  font-size: 44px !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  letter-spacing: 0.5px;
}
.tm-blocks-page h2 {
  font-size: 28px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.5px;
}
.tm-blocks-page h3 {
  font-size: 22px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.3px;
}
.tm-blocks-page h4 {
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.3px;
}
.tm-blocks-page h5 {
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
}
.tm-blocks-page h6 {
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

/* Reset paragraph and body overrides */
.tm-blocks-page p {
  font-family: var(--font-body) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  color: var(--text-primary) !important;
  line-height: 1.7;
}

/* Dark background heading/text color overrides */
.tm-blocks-page .tm-bg-charcoal h1,
.tm-blocks-page .tm-bg-charcoal h2,
.tm-blocks-page .tm-bg-charcoal h3,
.tm-blocks-page .tm-bg-charcoal h4,
.tm-blocks-page .wp-block-cover.is-dark h1,
.tm-blocks-page .wp-block-cover.is-dark h2,
.tm-blocks-page .wp-block-cover.is-dark h3,
.tm-blocks-page .wp-block-cover.is-dark h4,
.tm-blocks-page .tm-section-title-light {
  color: var(--white) !important;
}
.tm-blocks-page .tm-bg-charcoal p,
.tm-blocks-page .wp-block-cover.is-dark p {
  color: #fff !important;
}

/* Hero title: larger than standard H1 */
.tm-blocks-page .tm-hero-title {
  font-size: clamp(2.2rem, 5vw, 3.6rem) !important;
  font-weight: 500 !important;
  line-height: 1.1 !important;
  color: var(--white) !important;
}

/* Section title: responsive clamp */
.tm-blocks-page .tm-section-title,
.tm-blocks-page .tm-section-title-light {
  font-size: clamp(1.6rem, 3.5vw, 2.4rem) !important;
  font-weight: 500 !important;
  line-height: 1.15 !important;
}
.tm-blocks-page .tm-section-title-light {
  color: var(--white) !important;
}

/* Stat numbers: 64px per style guide */
body.tm-blocks-page main#main .tm-stat-number,
.tm-blocks-page .tm-stat-number {
  font-size: 64px !important;
  font-weight: 600 !important;
  letter-spacing: -1px;
}

/* ============================================================
   SPACING SYSTEM
   ============================================================ */

.tm-blocks-page .tm-section-label {
  margin-bottom: 8px !important;
}
.tm-blocks-page .tm-section-label + .tm-section-title,
.tm-blocks-page .tm-section-label + .wp-block-heading {
  margin-top: 0 !important;
}
.tm-blocks-page .tm-section-title,
.tm-blocks-page .tm-section-title-light {
  margin-bottom: 16px !important;
}
.tm-blocks-page .wp-block-buttons {
  gap: 12px;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* ============================================================
   RESPONSIVE — TABLET (768px)
   ============================================================ */
@media (max-width: 768px) {
  .tm-blocks-page h1 { font-size: 32px !important; line-height: 1.2 !important; }
  .tm-blocks-page h2 { font-size: 24px !important; }
  .tm-blocks-page h3 { font-size: 20px !important; }
  .tm-blocks-page .tm-hero-title { font-size: 2rem !important; }
  body.tm-blocks-page main#main .tm-stat-number,
.tm-blocks-page .tm-stat-number { font-size: 48px !important; }
  .tm-blocks-page .tm-stats-row { gap: 32px !important; }
  .tm-blocks-page .tm-features-grid,
  .tm-blocks-page .tm-steps { flex-wrap: wrap !important;
        justify-content: center; }
  .tm-blocks-page .tm-features-grid > .wp-block-column,
  .tm-blocks-page .tm-steps > .wp-block-column {
    flex-basis: calc(50% - 12px) !important;
    flex-grow: 0 !important;
  }
  .tm-blocks-page .tm-showcase-grid > .wp-block-column,
  .tm-blocks-page .tm-validation-grid > .wp-block-column {
    flex-basis: 100% !important;
  }
}

/* ============================================================
   RESPONSIVE — MOBILE (480px)
   ============================================================ */
@media (max-width: 480px) {
  .tm-blocks-page h1 { font-size: 26px !important; }
  .tm-blocks-page h2 { font-size: 22px !important; }
  .tm-blocks-page .tm-hero-title { font-size: 1.75rem !important; }
}

/* ============================================================
   DIVI STYLE NEUTRALIZATION
   Divi injects inline styles (#et-boc .et-l h1, etc.) and
   admin bar styles even on non-Divi pages. These rules
   override Divi's effects specifically on .tm-blocks-page.
   ============================================================ */

/* Divi resets all element margins/padding via #et-boc .et-l —
   we re-apply our own values */
.tm-blocks-page #et-boc,
.tm-blocks-page #et-boc .et-l,
.tm-blocks-page .et_divi_builder {
  font-family: var(--font-body) !important;
  font-size: 16px !important;
  color: var(--text-primary) !important;
}
.tm-blocks-page #et-boc .et-l h1,
.tm-blocks-page #et-boc .et-l h2,
.tm-blocks-page #et-boc .et-l h3,
.tm-blocks-page #et-boc .et-l h4,
.tm-blocks-page #et-boc .et-l h5,
.tm-blocks-page #et-boc .et-l h6 {
  font-family: var(--font-display) !important;
  color: var(--charcoal) !important;
}
.tm-blocks-page #et-boc .et-l p,
.tm-blocks-page #et-boc .et-l span,
.tm-blocks-page #et-boc .et-l a {
  font-family: inherit !important;
  color: inherit !important;
}

/* Hide Divi builder wrapper if it appears on block pages */
.tm-blocks-page .et-db #et-boc,
.tm-blocks-page .et_builder_inner_content {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Ensure Divi block wrapper doesn't constrain our layout */
.tm-blocks-page .wp-block-divi-layout {
  margin-bottom: 0 !important;
}

/* ============================================================
   CONTAINER SYSTEM
   Apply 'tm-container' class to any Group block in the editor
   to constrain its content to 1280px max-width, centered.
   ============================================================ */
.tm-container {
  margin: auto !important;
  max-width: 1280px !important;
  width: 100%;
  padding: 0px;
}

@media (max-width: 1300px) {
  .tm-container {
  margin: auto !important;
    padding: 0 20px;
  }
}



/* Disable WP core content-size constraint on tm-blocks pages */
body.tm-blocks-page .is-layout-constrained > * {
  max-width: none !important;
}

/* ── Override style.css: body main#main p { line-height: 32px !important } ──
   That rule has ID specificity (main#main). We must match it. */
body.tm-blocks-page main#main p.tm-stat-number {
  font-size: 64px !important;
  line-height: 1 !important;
  font-weight: 600 !important;
  font-family: var(--font-display) !important;
}
body.tm-blocks-page main#main p.tm-stat-label {
  font-size: 13px !important;
  line-height: 1.6 !important;
}
body.tm-blocks-page main#main p.tm-step-number {
  font-size: 22px !important;
  line-height: 48px !important;
}
body.tm-blocks-page main#main p.tm-step-desc {
  font-size: 13px !important;
  line-height: 1.6 !important;
}
body.tm-blocks-page main#main p.tm-feature-icon {
  font-size: 28px !important;
  line-height: 1 !important;
}
body.tm-blocks-page main#main p.tm-feature-desc {
  font-size: 14px !important;
  line-height: 1.6 !important;
}
body.tm-blocks-page main#main p.tm-section-label,
body.tm-blocks-page main#main p.tm-section-label-light {
  font-size: 11px !important;
  line-height: 1.4 !important;
}
body.tm-blocks-page main#main p.tm-badge-olive {
  font-size: 11px !important;
  line-height: 1.4 !important;
}
body.tm-blocks-page main#main p.tm-hero-sub {
  font-size: 18px !important;
  line-height: 1.6 !important;
}
body.tm-blocks-page main#main p.tm-hero-product {
  font-size: 15px !important;
  line-height: 1.6 !important;
}
body.tm-blocks-page main#main p.tm-vi-desc {
  font-size: 13px !important;
  line-height: 1.6 !important;
}
body.tm-blocks-page main#main p {
  font-size: 16px !important;
  line-height: 1.7 !important;
  font-family: var(--font-body) !important;
}


/* ============================================================
   TYPOGRAPHY CORRECTIONS — matching style guide exactly
   Uses body.tm-blocks-page main#main to beat style.css ID specificity
   ============================================================ */

/* H1: Oswald 44px / 600 / 1.15 / 0.5px */
body.tm-blocks-page main#main h1 {
  font-family: 'Oswald', system-ui, sans-serif !important;
  font-size: 44px !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  letter-spacing: 0.5px;
}

/* H2: Oswald 28px / 500 / 1.3 / 0.5px */
body.tm-blocks-page main#main h2 {
  font-family: 'Oswald', system-ui, sans-serif !important;
  font-size: 28px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.5px;
}

/* H3: Oswald 22px / 500 / 1.35 / 0.3px */
body.tm-blocks-page main#main h3 {
  font-family: 'Oswald', system-ui, sans-serif !important;
  font-size: 22px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.3px;
}

/* H4 / Card Title: Oswald 18px / 500 / 1.3 / 0.3px */
body.tm-blocks-page main#main h4 {
  font-family: 'Oswald', system-ui, sans-serif !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.3px;
}

/* vi-title: Lato 14px / 700 / 1.5 */

/* Step title: Oswald 16px / 500 / 1.4 / 0.3px */
body.tm-blocks-page main#main h3.tm-step-title {
  font-size: 16px !important;
  line-height: 1.4 !important;
}

/* Feature title: Oswald 18px / 500 / 1.3 / 0.3px */
body.tm-blocks-page main#main h3.tm-feature-title {
  font-size: 18px !important;
  line-height: 1.3 !important;
  letter-spacing: 0.3px;
}

/* Stat number: Oswald 64px / 600 / 1 / -1px */
body.tm-blocks-page main#main p.tm-stat-number {
  font-family: 'Oswald', system-ui, sans-serif !important;
  font-size: 64px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: -1px;
}

/* Stat label: Lato 13px / 500 / 1.6 */
body.tm-blocks-page main#main p.tm-stat-label {
  font-family: 'Lato', system-ui, sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
}

/* Feature icon: 28px / 1 */
body.tm-blocks-page main#main p.tm-feature-icon {
  font-size: 28px !important;
  line-height: 1 !important;
}

/* Feature desc: Lato 14px / 400 / 1.6 */
body.tm-blocks-page main#main p.tm-feature-desc {
  font-family: 'Lato', system-ui, sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
}

/* Step number: Oswald 22px / 600 */
body.tm-blocks-page main#main p.tm-step-number {
  font-family: 'Oswald', system-ui, sans-serif !important;
  font-size: 22px !important;
  line-height: 48px !important;
}

/* Step desc: Lato 13px / 500 / 1.6 */
body.tm-blocks-page main#main p.tm-step-desc {
  font-family: 'Lato', system-ui, sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
}

/* Validation desc: Lato 13px / 400 / 1.6 */
body.tm-blocks-page main#main p.tm-vi-desc {
  font-family: 'Lato', system-ui, sans-serif !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
}

/* Section label: Lato 11px / 700 / 1.4 / 2px uppercase */
body.tm-blocks-page main#main p.tm-section-label,
body.tm-blocks-page main#main p.tm-section-label-light {
  font-family: 'Lato', system-ui, sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 2px;
  text-transform: uppercase;
}

/* Badge: Lato 11px / 700 / 1.4 / 1.2px uppercase */
body.tm-blocks-page main#main p.tm-badge-olive {
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
}

/* Hero sub: Lato 18px / 300 / 1.6 */
body.tm-blocks-page main#main p.tm-hero-sub {
  font-family: 'Lato', system-ui, sans-serif !important;
  font-size: 18px !important;
  font-weight: 300 !important;
  line-height: 1.6 !important;
}

/* Hero product: Lato 15px / 400 / 1.6 */
body.tm-blocks-page main#main p.tm-hero-product {
  font-family: 'Lato', system-ui, sans-serif !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
}

/* Default paragraph: Lato 16px / 400 / 1.7 */
body.tm-blocks-page main#main p {
  font-family: 'Lato', system-ui, sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.7 !important;
}

/* ============================================================
   NEW COMPONENTS — Education Landing Pages
   Added for university-lp and education-parent pages
   ============================================================ */

/* -- NAV (custom HTML block) -- */
.tm-blocks-page .tm-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 clamp(1.5rem, 4vw, 3rem);
  height: 64px;
  background: transparent;
  transition: background 0.3s, box-shadow 0.3s;
}
.tm-blocks-page .tm-nav.scrolled {
  background: var(--white);
  box-shadow: var(--shadow-sm);
}
.tm-blocks-page .tm-nav__logo {
  font-family: var(--font-logo-thrive);
  font-size: 22px;
  font-weight: 700;
  color: var(--white);
  text-decoration: none;
  letter-spacing: -0.5px;
}
.tm-blocks-page .tm-nav.scrolled .tm-nav__logo { color: var(--charcoal); }
.tm-blocks-page .tm-nav__logo-mattic { font-weight: 300; color: var(--olive); }
.tm-blocks-page .tm-nav__logo-dot { color: var(--olive); font-weight: 300; }
.tm-blocks-page .tm-nav__links { display: flex; list-style: none; gap: 0; margin: 0; padding: 0; }
.tm-blocks-page .tm-nav__links a {
  display: block; padding: 20px 16px; font-size: 14px; font-weight: 600;
  color: rgba(255,255,255,0.7); text-decoration: none; transition: color 0.2s;
}
.tm-blocks-page .tm-nav.scrolled .tm-nav__links a { color: var(--text-secondary); }
.tm-blocks-page .tm-nav__links a:hover { color: var(--white); }
.tm-blocks-page .tm-nav.scrolled .tm-nav__links a:hover { color: var(--charcoal); }
.tm-blocks-page .tm-nav__cta {
  font-family: var(--font-body); font-size: 13px; font-weight: 700;
  padding: 8px 20px; border-radius: var(--radius);
  background: var(--olive); color: var(--white); text-decoration: none; transition: background 0.2s;
}
.tm-blocks-page .tm-nav__cta:hover { background: var(--olive-hover); }
@media (max-width: 768px) { .tm-blocks-page .tm-nav__links { display: none; } }

/* -- BREADCRUMB -- */
.tm-blocks-page .tm-breadcrumb {
  background: var(--charcoal-light);
  padding: 0.6rem clamp(1.5rem, 5vw, 4rem);
  padding-top: calc(0px + 0.6rem);
  font-size: 0.8rem;
}
.tm-blocks-page .tm-breadcrumb ol {
  display: flex; align-items: center; gap: 0.4rem;
  max-width: 1100px; margin: 0 auto; list-style: none; padding: 0;
    padding-left: 0px !important;
    margin-bottom: 0px !important;
}
.tm-blocks-page .tm-breadcrumb li {
  display: flex; align-items: center; gap: 0.4rem;
  color: rgba(255,255,255,0.4);
}
.tm-blocks-page .tm-breadcrumb li a {
  color: rgba(255,255,255,0.55); transition: color 0.2s;
}
.tm-blocks-page .tm-breadcrumb li a:hover { color: var(--white); }
.tm-blocks-page .tm-breadcrumb li:last-child { color: rgba(255,255,255,0.7); }
.tm-blocks-page .tm-breadcrumb .bc-sep { color: rgba(255,255,255,0.3); }

/* -- STAT CARDS (4-col grid) -- */
.tm-blocks-page .tm-stat-cards {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 1.5rem !important;
  margin-top: 2.5rem !important;
  margin-bottom: 2rem !important;
}
.tm-blocks-page .tm-stat-cards > .wp-block-column {
  flex-basis: auto !important;
  flex-grow: 0 !important;
}
.tm-blocks-page .tm-stat-card {
  background: var(--white) !important;
  border-radius: var(--radius-lg) !important;
  padding: 2rem 1.5rem 0px !important;
  text-align: center;
  box-shadow: var(--shadow-sm);
  transition: transform 0.25s, box-shadow 0.25s;
}
.tm-blocks-page .tm-stat-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}
body.tm-blocks-page main#main .tm-stat-card .tm-stat-number {
  font-size: clamp(2rem, 3.5vw, 2.8rem) !important;
  margin-bottom: 0.5rem !important;
}
body.tm-blocks-page main#main .tm-stat-card .tm-stat-label {
  font-size: 0.88rem !important;
  color: var(--text-secondary) !important;
  line-height: 1.4 !important;
}
@media (max-width: 992px) {
  .tm-blocks-page .tm-stat-cards { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 420px) {
  .tm-blocks-page .tm-stat-cards { grid-template-columns: 1fr !important; }
}

/* -- CAPABILITY CARDS (2-col grid with left border) -- */
.tm-blocks-page .tm-capability-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 1.5rem !important;
  margin-top: 2.5rem !important;
}
.tm-blocks-page .tm-capability-grid > .wp-block-column {
  flex-basis: auto !important;
  flex-grow: 0 !important;
}
.tm-blocks-page .tm-capability-card {
  background: var(--white) !important;
  border-radius: var(--radius-lg) !important;
  padding: 2rem 2rem 2rem 2.2rem !important;
  border-left: 4px solid var(--olive) !important;
  border-top: none !important; border-right: none !important; border-bottom: none !important;
  box-shadow: var(--shadow-sm);
  transition: transform 0.25s, box-shadow 0.25s;
}
.tm-blocks-page .tm-capability-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}
body.tm-blocks-page main#main .tm-capability-card h3 {
  margin-bottom: 0.6rem !important;
  color: var(--charcoal) !important;
}
body.tm-blocks-page main#main .tm-capability-card p {
  font-size: 0.9rem !important;
  color: var(--text-secondary) !important;
  line-height: 1.65 !important;
}
@media (max-width: 768px) {
  .tm-blocks-page .tm-capability-grid { grid-template-columns: 1fr !important; }
}

/* -- CASE STUDY METRICS ROW -- */
.tm-blocks-page .tm-metrics-row {
  display: flex !important;
  flex-wrap: wrap;
  gap: 2rem !important;
  margin-top: 0 !important;
}
body.tm-blocks-page main#main .tm-metric-value {
  font-family: var(--font-display) !important;
  font-size: clamp(1.2rem, 2vw, 1.6rem) !important;
  font-weight: 600 !important;
  color: var(--olive-bright) !important;
  line-height: 1.3 !important;
}
.tm-blocks-page .tm-bg-cream .tm-metric-value { color: var(--olive) !important; }
body.tm-blocks-page main#main .tm-metric-desc {
  font-size: 0.85rem !important;
  color: #000 !important;
  margin-top: 0.25rem !important;
  line-height: 1.4 !important;
}
.tm-blocks-page .tm-bg-cream .tm-metric-desc { color: var(--text-secondary) !important; }
@media (max-width: 640px) {
  .tm-blocks-page .tm-metrics-row { flex-direction: column; gap: 1.2rem !important; }
}

/* -- CASE COLUMNS (2-col layout) -- */
.tm-blocks-page .tm-case-columns {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 3rem !important;
  margin-top: 0.5rem !important;
}
.tm-blocks-page .tm-case-columns > .wp-block-column {
  flex-basis: auto !important;
  flex-grow: 0 !important;
}
body.tm-blocks-page main#main .tm-case-columns h3 {
  margin-bottom: 0.6rem !important;
  font-size: 0.85rem !important;
  font-family: var(--font-body) !important;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 700 !important;
}
.tm-blocks-page .tm-bg-charcoal .tm-case-columns h3 { color: var(--olive-bright) !important; }
body.tm-blocks-page main#main .tm-case-columns p {
  font-size: 0.95rem !important;
  line-height: 1.7 !important;
}
.tm-blocks-page .tm-bg-charcoal .tm-case-columns p { color: rgba(255,255,255,0.75) !important; }
@media (max-width: 768px) {
  .tm-blocks-page .tm-case-columns { grid-template-columns: 1fr !important; gap: 2rem !important; }
}

/* -- TESTIMONIAL -- */
.tm-blocks-page .tm-testimonial {
  margin-top: 2.5rem !important;
  padding: 2rem 2.5rem !important;
  border-left: 3px solid var(--olive) !important;
  border-radius: 0 var(--radius-lg) var(--radius-lg) 0 !important;
  border-top: none !important; border-right: none !important; border-bottom: none !important;
}
.tm-blocks-page .tm-bg-charcoal .tm-testimonial { background: var(--charcoal-light) !important; }
.tm-blocks-page .tm-bg-cream .tm-testimonial { background: var(--cream-dark) !important; }
.tm-blocks-page .tm-bg-white .tm-testimonial { background: var(--cream) !important; }
body.tm-blocks-page main#main .tm-testimonial-quote {
  font-size: 1.05rem !important;
  line-height: 1.7 !important;
  font-style: italic;
  margin-bottom: 0.8rem !important;
}
.tm-blocks-page .tm-bg-charcoal .tm-testimonial-quote { color: rgba(255,255,255,0.85) !important; }
body.tm-blocks-page main#main .tm-testimonial-cite {
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  font-style: normal;
  line-height: 1.4 !important;
}
.tm-blocks-page .tm-bg-charcoal .tm-testimonial-cite { color: var(--olive-bright) !important; }
.tm-blocks-page .tm-bg-charcoal .tm-testimonial-cite span { color: rgba(255,255,255,0.5); font-weight: 400; }
.tm-blocks-page .tm-bg-cream .tm-testimonial-cite span,
.tm-blocks-page .tm-bg-white .tm-testimonial-cite span { color: var(--text-secondary); font-weight: 400; }
@media (max-width: 640px) {
  .tm-blocks-page .tm-testimonial { padding: 1.5rem !important; }
}

/* -- HALO CARDS (3-col) -- */
.tm-blocks-page .tm-halo-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1.5rem !important;
  margin-top: 2.5rem !important;
  margin-bottom: 2.5rem !important;
}
.tm-blocks-page .tm-halo-grid > .wp-block-column {
  flex-basis: auto !important;
  flex-grow: 0 !important;
}
.tm-blocks-page .tm-halo-card {
  background: var(--cream) !important;
  border-radius: var(--radius-lg) !important;
  padding: 2rem !important;
  box-shadow: var(--shadow-sm);
  transition: transform 0.25s, box-shadow 0.25s;
}
.tm-blocks-page .tm-halo-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}
body.tm-blocks-page main#main .tm-halo-card h3 {
  margin-bottom: 0.6rem !important;
  color: var(--charcoal) !important;
}
body.tm-blocks-page main#main .tm-halo-card p {
  font-size: 0.9rem !important;
  color: var(--text-secondary) !important;
  line-height: 1.65 !important;
}
body.tm-blocks-page main#main .tm-halo-stat {
  font-size: 0.82rem !important;
  color: var(--olive) !important;
  margin-top: 0.8rem !important;
  font-weight: 500 !important;
}
@media (max-width: 768px) {
  .tm-blocks-page .tm-halo-grid { grid-template-columns: 1fr !important; }
}

/* -- CLIENT TAGS -- */
.tm-blocks-page .tm-client-tags {
  display: flex; flex-wrap: wrap; gap: 0.75rem;
  margin-bottom: 1.5rem !important; margin-top: 0 !important;
}
.tm-blocks-page .tm-client-tag {
  display: inline-block;
  padding: 0.55rem 1.3rem;
  background: var(--cream);
  border-radius: var(--radius-pill);
  font-size: 0.88rem; font-weight: 500;
  color: var(--text-primary);
  transition: background 0.2s;
}
.tm-blocks-page .tm-client-tag:hover { background: var(--cream-dark); }

/* -- COUNTRY TAGS -- */
.tm-blocks-page .tm-country-tags {
  display: flex; flex-wrap: wrap; gap: 0.5rem;
  margin-bottom: 2.5rem !important; margin-top: 0 !important;
}
.tm-blocks-page .tm-country-tag {
  display: inline-block;
  padding: 0.35rem 0.9rem;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: var(--radius-pill);
  font-family: var(--font-body);
  font-size: 0.75rem; letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text-secondary); font-weight: 700;
}

/* -- FAQ ACCORDION -- */
.tm-blocks-page .tm-faq-list { max-width: 820px; }
.tm-blocks-page .tm-faq-item {
  border-bottom: 1px solid rgba(0,0,0,0.08);
  padding: 1.5rem 0;
}
.tm-blocks-page .tm-faq-item:first-child {
  border-top: 1px solid rgba(0,0,0,0.08);
}
.tm-blocks-page .tm-faq-question {
  font-family: var(--font-display);
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  font-weight: 500; letter-spacing: 0.3px;
  color: var(--charcoal);
  cursor: pointer;
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  width: 100%; background: none; border: none; text-align: left; padding: 0;
  line-height: 1.35;
}
.tm-blocks-page .tm-faq-question:hover { color: var(--olive); }
.tm-blocks-page .tm-faq-icon {
  flex-shrink: 0; width: 24px; height: 24px;
  display: flex; align-items: center; justify-content: center;
  color: var(--olive);
  transition: transform 0.3s;
}
.tm-blocks-page .tm-faq-item.open .tm-faq-icon { transform: rotate(45deg); }
.tm-blocks-page .tm-faq-answer {
  max-height: 0; overflow: hidden;
  transition: max-height 0.4s ease, padding 0.3s ease;
}
.tm-blocks-page .tm-faq-item.open .tm-faq-answer {
  max-height: 500px; padding-top: 1rem;
}
body.tm-blocks-page main#main .tm-faq-answer p {
  font-size: 0.95rem !important;
  color: var(--text-secondary) !important;
  line-height: 1.75 !important;
}

/* -- FAQ DETAILS (education parent) -- */
.tm-blocks-page .tm-faq-details details {
  border-bottom: 1px solid rgba(0,0,0,0.08);
  padding: 1.25rem 0;
}
.tm-blocks-page .tm-faq-details summary {
  font-family: var(--font-display);
  font-size: clamp(1rem, 1.8vw, 1.2rem);
  font-weight: 500;
  cursor: pointer;
  list-style: none;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.tm-blocks-page .tm-faq-details summary::-webkit-details-marker { display: none; }
.tm-blocks-page .tm-faq-details .tm-faq-plus {
  font-size: 1.5rem; color: var(--olive); flex-shrink: 0;
}
body.tm-blocks-page main#main .tm-faq-details details p {
  margin-top: 1rem !important;
  color: var(--text-secondary) !important;
  font-size: 0.95rem !important;
  line-height: 1.7 !important;
}

/* -- RESEARCH LINKS -- */
.tm-blocks-page .tm-research-links {
  display: flex; flex-direction: column; gap: 0.6rem; margin-top: 1.5rem;
}
.tm-blocks-page .tm-research-links a {
  color: var(--olive-bright) !important;
  font-size: 0.95rem; font-weight: 600;
  transition: color 0.2s; text-decoration: none;
}
.tm-blocks-page .tm-research-links a:hover { color: var(--white) !important; }

/* -- INLINE LINKS -- */
body.tm-blocks-page main#main a.tm-inline-link {
  color: var(--olive) !important;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: rgba(128,128,0,0.3);
  text-underline-offset: 2px;
  transition: text-decoration-color 0.2s;
}
body.tm-blocks-page main#main a.tm-inline-link:hover {
  text-decoration-color: var(--olive);
}
.tm-blocks-page .tm-bg-charcoal a.tm-inline-link {
  color: var(--olive-bright) !important;
  text-decoration-color: rgba(154,154,0,0.3);
}
.tm-blocks-page .tm-bg-charcoal a.tm-inline-link:hover {
  text-decoration-color: var(--olive-bright);
}

/* -- EXPLORERS METRIC -- */
body.tm-blocks-page main#main .tm-explorers-metric {
  font-family: var(--font-display) !important;
  font-size: clamp(1.6rem, 3vw, 2.4rem) !important;
  font-weight: 600 !important;
  color: var(--olive) !important;
  margin-bottom: 1.5rem !important;
  line-height: 1.2 !important;
}

/* -- AUDIENCE CARDS -- */
.tm-blocks-page .tm-audience-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 1.5rem !important;
}
.tm-blocks-page .tm-audience-grid > .wp-block-column { flex-basis: auto !important; flex-grow: 0 !important; }
.tm-blocks-page .tm-audience-card {
  background: var(--white) !important;
  border-radius: var(--radius-lg) !important;
  padding: clamp(2rem, 4vw, 3rem) !important;
  border: 1px solid rgba(0,0,0,0.06) !important;
  box-shadow: var(--shadow-sm);
  display: flex; flex-direction: column;
  transition: transform 0.3s, box-shadow 0.3s;
}
.tm-blocks-page .tm-audience-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
body.tm-blocks-page main#main .tm-audience-tag {
  font-size: 11px !important; font-weight: 700 !important; letter-spacing: 1.2px;
  text-transform: uppercase; color: var(--olive) !important; background: var(--olive-dim);
  padding: 0.35rem 0.75rem; border-radius: 20px; margin-bottom: 1rem !important;
  width: fit-content; line-height: 1.4 !important;
}
body.tm-blocks-page main#main .tm-audience-card h3 { font-size: clamp(1.4rem, 2.5vw, 1.8rem) !important; margin-bottom: 1rem !important; }
body.tm-blocks-page main#main .tm-audience-card p { color: var(--text-secondary) !important; font-size: 1rem !important; line-height: 1.7 !important; margin-bottom: 1.5rem !important; }
@media (max-width: 768px) { .tm-blocks-page .tm-audience-grid { grid-template-columns: 1fr !important; } }

/* -- TIER CARDS -- */
.tm-blocks-page .tm-tier-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 1.5rem !important;
}
.tm-blocks-page .tm-tier-grid > .wp-block-column { flex-basis: auto !important; flex-grow: 0 !important; }
.tm-blocks-page .tm-tier-card {
  background: var(--white) !important;
  border-radius: var(--radius-lg) !important;
  padding: clamp(2rem, 4vw, 2.75rem) !important;
  border: 1px solid rgba(0,0,0,0.08) !important;
  box-shadow: var(--shadow-sm);
  display: flex; flex-direction: column;
}
body.tm-blocks-page main#main .tm-tier-badge {
  display: inline-flex !important; font-size: 11px !important; font-weight: 700 !important;
  letter-spacing: 1.2px; text-transform: uppercase;
  padding: 0.35rem 0.75rem !important; border-radius: 20px;
  margin-bottom: 1.25rem !important; width: fit-content; line-height: 1.4 !important;
}
.tm-blocks-page .tm-tier-badge-sprint { background: var(--olive-dim); color: var(--olive) !important; }
.tm-blocks-page .tm-tier-badge-retainer { background: rgba(28,37,41,0.08); color: var(--charcoal) !important; }
body.tm-blocks-page main#main .tm-tier-card h3 { font-size: clamp(1.3rem, 2.2vw, 1.6rem) !important; margin-bottom: 1rem !important; }
body.tm-blocks-page main#main .tm-tier-card p { color: var(--text-secondary) !important; font-size: 0.95rem !important; line-height: 1.7 !important; }
body.tm-blocks-page main#main .tm-tier-price {
  font-family: var(--font-body) !important; font-size: 0.85rem !important;
  color: var(--text-primary) !important; font-weight: 500 !important;
  margin-bottom: 1.5rem !important; line-height: 1.4 !important;
}
@media (max-width: 768px) { .tm-blocks-page .tm-tier-grid { grid-template-columns: 1fr !important; } }

/* -- TIER CARD SERVICE LIST -- */
.tm-blocks-page .tm-tier-services { list-style: none !important; margin: 1rem 0 1.5rem !important; padding: 0 !important; }
.tm-blocks-page .tm-tier-services li { font-size: 0.9rem; color: var(--text-secondary); padding: 0.4rem 0 0.4rem 1.5rem; position: relative; }
.tm-blocks-page .tm-tier-services li::before { content: ''; position: absolute; left: 0; top: 50%; width: 6px; height: 6px; border-radius: 50%; background: var(--olive);
    transform: translateY(-50%); }

/* -- CASE CARDS (education parent) -- */
.tm-blocks-page .tm-case-cards {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1.5rem !important;
}
.tm-blocks-page .tm-case-cards > .wp-block-column { flex-basis: auto !important; flex-grow: 0 !important; }
.tm-blocks-page .tm-case-card {
  background: var(--cream) !important;
  border-radius: var(--radius-lg) !important;
  padding: clamp(1.75rem, 3vw, 2.25rem) !important;
  border: 1px solid rgba(0,0,0,0.04) !important;
  box-shadow: var(--shadow-sm);
  display: flex; flex-direction: column;
}
body.tm-blocks-page main#main .tm-case-org {
  font-family: var(--font-body) !important; font-size: 0.78rem !important; font-weight: 500 !important;
  letter-spacing: 0.04em; text-transform: uppercase; color: var(--olive) !important;
  margin-bottom: 1rem !important; line-height: 1.4 !important;
}
body.tm-blocks-page main#main .tm-case-result {
  font-family: var(--font-display) !important; font-size: clamp(1.2rem, 2vw, 1.5rem) !important;
  font-weight: 500 !important; color: var(--charcoal) !important;
  margin-bottom: 0.75rem !important; line-height: 1.3 !important;
}
body.tm-blocks-page main#main .tm-case-quote {
  font-size: 0.92rem !important; color: var(--text-secondary) !important;
  line-height: 1.7 !important; font-style: italic; margin-bottom: 1rem !important;
  padding-left: 1rem !important; border-left: 2px solid var(--olive);
}
body.tm-blocks-page main#main .tm-case-attribution {
  font-size: 0.82rem !important; color: var(--text-secondary) !important;
  font-weight: 500 !important; line-height: 1.4 !important;
}
@media (max-width: 768px) { .tm-blocks-page .tm-case-cards { grid-template-columns: 1fr !important; } }

/* -- PROBLEM CARDS (education parent) -- */
.tm-blocks-page .tm-problem-cards {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1.5rem !important;
}
.tm-blocks-page .tm-problem-cards > .wp-block-column { flex-basis: auto !important; flex-grow: 0 !important; }
.tm-blocks-page .tm-problem-card {
  background: var(--white) !important;
  border-radius: var(--radius-lg) !important;
  padding: clamp(1.5rem, 3vw, 2.25rem) !important;
  border: 1px solid rgba(0,0,0,0.06) !important;
  box-shadow: var(--shadow-sm);
  transition: transform 0.3s, box-shadow 0.3s;
}
.tm-blocks-page .tm-problem-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.tm-blocks-page .tm-card-icon {
  width: 48px; height: 48px; border-radius: var(--radius);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem; margin-bottom: 1.25rem; background: var(--cream);
}
body.tm-blocks-page main#main .tm-problem-card p { color: var(--text-secondary) !important; font-size: 0.95rem !important; line-height: 1.7 !important; }
@media (max-width: 768px) { .tm-blocks-page .tm-problem-cards { grid-template-columns: 1fr !important; } }

/* -- PROCESS CARDS (numbered) -- */
.tm-blocks-page .tm-process-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 1.5rem !important;
}
.tm-blocks-page .tm-process-grid > .wp-block-column { flex-basis: auto !important; flex-grow: 0 !important; }
.tm-blocks-page .tm-process-card {
  background: var(--white) !important;
  border-radius: var(--radius-lg) !important;
  padding: clamp(1.5rem, 3vw, 2.25rem) !important;
  border: 1px solid rgba(0,0,0,0.06) !important;
  box-shadow: var(--shadow-sm);
  transition: transform 0.3s, box-shadow 0.3s;
}
.tm-blocks-page .tm-process-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
body.tm-blocks-page main#main .tm-process-number {
  font-family: var(--font-display) !important; font-size: 2rem !important;
  font-weight: 600 !important; color: var(--olive) !important;
  margin-bottom: 0.75rem !important; line-height: 1 !important;
}
body.tm-blocks-page main#main .tm-process-card p { color: var(--text-secondary) !important; font-size: 0.95rem !important; line-height: 1.7 !important; }
@media (max-width: 768px) { .tm-blocks-page .tm-process-grid { grid-template-columns: 1fr !important; } }

/* -- HALO FEATURES (large numbers) -- */
.tm-blocks-page .tm-halo-features {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 2rem !important;
  margin-top: 2.5rem !important;
  text-align: center;
}
.tm-blocks-page .tm-halo-features > .wp-block-column { flex-basis: auto !important; flex-grow: 0 !important; }
body.tm-blocks-page main#main .tm-halo-number {
  font-family: var(--font-display) !important; font-size: 56px !important;
  font-weight: 600 !important; color: var(--olive) !important;
  margin-bottom: 0.35rem !important; line-height: 1 !important;
}
body.tm-blocks-page main#main .tm-halo-label {
  font-size: 0.85rem !important; color: var(--text-inverse-muted) !important; line-height: 1.4 !important;
}
@media (max-width: 768px) { .tm-blocks-page .tm-halo-features { grid-template-columns: 1fr !important; gap: 1.5rem !important; } }

/* -- CTA STRIP -- */
.tm-blocks-page .tm-cta-strip {
  padding: clamp(3rem, 6vw, 5rem) 0 !important;
  text-align: center;
  position: relative;
}
.tm-blocks-page .tm-cta-strip::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--olive), var(--olive-bright), var(--olive));
}
body.tm-blocks-page main#main .tm-cta-strip h2 {
  font-size: clamp(1.3rem, 2.5vw, 1.8rem) !important;
  font-weight: 500 !important; color: var(--white) !important;
  max-width: 700px; margin: 0 auto 0.5rem !important;
}

/* -- METRICS GRID (research section) -- */
.tm-blocks-page .tm-metrics-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1.5rem !important;
  margin-bottom: 2.5rem !important;
  text-align: center;
}
.tm-blocks-page .tm-metrics-grid > .wp-block-column { flex-basis: auto !important; flex-grow: 0 !important; }
body.tm-blocks-page main#main .tm-metric-number {
  font-family: var(--font-display) !important;
  font-size: clamp(2.5rem, 5vw, 3.5rem) !important;
  font-weight: 600 !important; color: var(--olive) !important;
  line-height: 1.1 !important; margin-bottom: 0.5rem !important;
}
body.tm-blocks-page main#main .tm-metric-label {
  font-size: 0.9rem !important; color: var(--text-inverse-muted) !important; line-height: 1.4 !important;
}
@media (max-width: 768px) { .tm-blocks-page .tm-metrics-grid { grid-template-columns: 1fr !important; gap: 1.5rem !important; } }

/* -- SECTION DESC -- */
body.tm-blocks-page main#main p.tm-section-desc {
  font-size: 16px !important;
  color: var(--text-secondary) !important;
  line-height: 1.7 !important;
}
body.tm-blocks-page main#main p.tm-section-desc-light {
  font-size: 16px !important;
  color: var(--text-inverse-muted) !important;
  line-height: 1.7 !important;
}
body.tm-blocks-page main#main p.tm-subhead-light {
  font-size: clamp(1.05rem, 1.8vw, 1.25rem) !important;
  color: rgba(255,255,255,0.72) !important; line-height: 1.7 !important; max-width: 640px;
}
body.tm-blocks-page main#main p.tm-context {
  color: var(--text-secondary) !important;
  font-size: 0.95rem !important;
  line-height: 1.7 !important;
}

/* -- CTA CLOSE (university LP) -- */
.tm-blocks-page .tm-cta-close {
  text-align: center;
  padding: clamp(5rem, 10vw, 8rem) 0 !important;
}
body.tm-blocks-page main#main .tm-cta-close h2 { color: var(--white) !important; margin-bottom: 0.5rem !important; }
.tm-blocks-page .tm-cta-close .wp-block-buttons { justify-content: center; }
.tm-blocks-page .tm-cta-close .tm-olive-short {
  width: 60px; height: 3px; background: var(--olive);
  border-radius: 2px; margin: 0 auto 2rem;
}

/* -- RESEARCH LINKS ROW (centered) -- */
.tm-blocks-page .tm-research-links-row {
  display: flex; flex-wrap: wrap; gap: 2rem; justify-content: center; margin-top: 2rem;
}
.tm-blocks-page .tm-research-links-row a {
  font-size: 0.95rem; color: var(--olive-bright) !important; font-weight: 600;
  transition: color 0.2s; text-decoration: none;
}
.tm-blocks-page .tm-research-links-row a:hover { color: var(--white) !important; }

/* -- HERO FULL (education parent) -- */
.tm-blocks-page .tm-hero-full {
  display: flex !important;
  align-items: center;
}

/* -- SECTION INTRO spacing helper -- */
.tm-blocks-page .tm-section-intro {
  margin-bottom: clamp(2rem, 4vw, 3rem) !important;
}

/* -- FAQ FIX: details/summary native toggle support -- */
.tm-blocks-page details.tm-faq-item .tm-faq-answer {
  max-height: 0; overflow: hidden;
  transition: max-height 0.4s ease, padding 0.3s ease;
}
.tm-blocks-page details.tm-faq-item[open] .tm-faq-answer {
  max-height: 2000px; padding-top: 1rem; overflow: visible;
}
.tm-blocks-page .tm-faq-details details > p {
  display: none;
}
.tm-blocks-page .tm-faq-details details[open] > p {
  display: block;
}

/* -- HEADING SPACING CONSISTENCY -- */
/* All card h3 headings: consistent 0.75rem bottom margin */
body.tm-blocks-page main#main .tm-problem-card h3 {
  margin-bottom: 0.75rem !important;
}
body.tm-blocks-page main#main .tm-process-card h3 {
  margin-bottom: 0.75rem !important;
}
/* Normalize existing card h3 margins to 0.75rem */
body.tm-blocks-page main#main .tm-capability-card h3 {
  margin-bottom: 0.75rem !important;
}
body.tm-blocks-page main#main .tm-halo-card h3 {
  margin-bottom: 0.75rem !important;
}
body.tm-blocks-page main#main .tm-feature-card h3,
body.tm-blocks-page main#main h3.tm-feature-title {
  margin-bottom: 0.75rem !important;
}
body.tm-blocks-page main#main .tm-audience-card h3 {
  margin-bottom: 0.75rem !important;
}
body.tm-blocks-page main#main .tm-tier-card h3 {
  margin-bottom: 0.75rem !important;
}
/* Section title (H2): consistent 16px bottom */
body.tm-blocks-page main#main .tm-section-title,
body.tm-blocks-page main#main .tm-section-title-light {
  margin-bottom: 16px !important;
}
/* Hero title: 20px bottom (matches existing) */
body.tm-blocks-page main#main .tm-hero-title {
  margin-bottom: 20px !important;
}

@media only screen and (max-width: 768px) {
.mobile_y_45_padding{
padding: 45px 0px !important;
}
}
