/* ============================================
   CHASE MERRITT — Global Styles
   Brand palette: #080F14 dark | #B8924A gold
   #FFFEF9 warm white | #F5F0E8 tan | #C9C2B5 muted warm
   ============================================ */

:root {
  --cm-ink: #080f14;
  --cm-copy: #080f14;
  --cm-muted: rgba(8, 15, 20, 0.68);
  --cm-line: rgba(8, 15, 20, 0.1);
  --cm-panel: #f5f0e8;
  --cm-wash: #fffef9;
  --cm-accent: #b8924a;
  --cm-gold: #b8924a;
  --cm-gold-text: #80632f;
  --cm-dark: #080f14;
  --cm-warm-white: #fffef9;
  --cm-button-light: #fefcf7;
  --cm-muted-warm: #c9c2b5;
  --cm-white: #ffffff;
  --cm-font-heading: "Raleway", sans-serif;
  --cm-font-body: "Poppins", sans-serif;
  --cm-letter-heading: 0.075em;
  --cm-letter-body: 0.015em;
  --cm-letter-eyebrow: 0.3em;
  --cm-letter-button: 0.2em;
  --cm-letter-stat: 0.05em;
  --cm-letter-stat-label: 0.1em;
  --cm-header-height: 79px; /* 78px inner + 1px border, so pages start flush beneath the rendered header */
  /* Base width; below ~2k viewports the max() leg stays 1480px (see second line). */
  --cm-shell-max: max(1480px, min(1880px, calc(1480px + max(0px, 100vw - 2000px) * 0.3)));
  /* Use everywhere layout width is set; UWW block below can widen (halve side margins). */
  --cm-shell-effective: var(--cm-shell-max);
  --cm-gutter: clamp(24px, 3vw, 44px);
}

/* ===== RESET ===== */

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

html,
body {
  overflow-x: hidden;
}

body {
  background-color: var(--cm-white);
  color: var(--cm-copy);
  font-family: var(--cm-font-body);
  font-weight: 400;
  font-size: 16px;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--cm-ink);
  font-family: var(--cm-font-body);
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  text-decoration: none;
  transition: color 0.3s ease;
}

a:hover {
  color: var(--cm-ink);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--cm-ink);
  font-family: var(--cm-font-heading);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  margin: 0;
  text-transform: uppercase;
}

h1 {
  font-size: 38px;
}
h2 {
  font-size: 36px;
}
h3 {
  font-size: 22px;
}
h4 {
  font-size: 14px;
}

p,
li,
span,
address {
  color: var(--cm-copy);
  font-family: var(--cm-font-body);
  font-weight: 400;
}

ul,
ol {
  list-style: none;
}

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

.cm-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: rgba(8, 15, 20, 0.96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255, 254, 249, 0.1);
  transition:
    background 0.3s ease,
    border-color 0.3s ease,
    backdrop-filter 0.3s ease,
    -webkit-backdrop-filter 0.3s ease;
}

.cm-header-inner {
  width: 100%;
  max-width: var(--cm-shell-effective);
  margin: 0 auto;
  padding: 0 var(--cm-gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  height: var(--cm-header-height);
}

.cm-header-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  gap: 12px;
  flex-shrink: 0;
  line-height: 0; /* keep img vertically aligned with nav; avoids link strut / baseline shift */
}

.cm-header-logo-image {
  width: auto;
  height: 58px;
  display: block;
}

.cm-header-logo-text {
  font-family: var(--cm-font-heading);
  font-size: 18px;
  font-weight: 500;
  color: var(--cm-ink);
  letter-spacing: var(--cm-letter-button);
  text-transform: uppercase;
}

.cm-header-logo-text span {
  color: var(--cm-ink);
  font-family: var(--cm-font-heading);
  font-weight: 500;
}

.cm-header-nav {
  display: flex;
  align-items: center;
  margin-left: auto;
  gap: clamp(18px, 1.45vw, 30px);
}

.cm-header-nav a {
  font-family: var(--cm-font-body);
  font-weight: 400;
  font-size: 11px;
  letter-spacing: var(--cm-letter-body);
  text-transform: uppercase;
  color: rgba(255, 254, 249, 0.86);
  text-decoration: none;
  transition: color 0.3s ease;
  white-space: nowrap;
}

.cm-header-nav a:hover,
.cm-header-nav a.active {
  color: var(--cm-gold);
}

.cm-header-nav a.cm-nav-cta {
  border: 1px solid var(--cm-button-light);
  padding: 11px 18px;
  border-radius: 0;
  background: transparent;
  color: var(--cm-button-light);
  font-family: var(--cm-font-heading);
  font-weight: 500;
  letter-spacing: var(--cm-letter-button);
  transition: all 0.3s ease;
}

button,
.cm-hero-cta,
.cm-tlf-button,
.cm-tlf-page-button,
.cm-contact-success-link,
.cm-tsg-button {
  border-radius: 0 !important;
}

.cm-header-nav a.cm-nav-cta:hover {
  background: var(--cm-gold);
  color: var(--cm-button-light);
  border-color: var(--cm-gold);
}

/* Mobile nav toggle */
.cm-nav-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  flex-direction: column;
  gap: 5px;
}

.cm-nav-toggle span {
  display: block;
  width: 22px;
  height: 1.5px;
  background: var(--cm-warm-white);
  transition: all 0.3s ease;
}

@media screen and (max-width: 900px) {
  .cm-header-logo {
    min-height: 44px;
  }

  .cm-header-logo-image {
    height: 52px;
  }

  .cm-nav-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
  }

  .cm-header-nav {
    /* Anchored to the header's real bottom edge (top:100% of the fixed
       header) — the old fixed + top:var() left a bright seam when the
       rendered header height drifted from the variable. */
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #080f14;
    flex-direction: column;
    padding: 14px 24px 22px;
    gap: 4px;
    border-bottom: 1px solid rgba(255, 254, 249, 0.12);
    transform: translateY(-8px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
      transform 0.3s ease,
      opacity 0.3s ease,
      visibility 0.3s;
  }

  .cm-header-nav.is-open {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .cm-header-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    font-size: 14px;
  }

  .cm-home .cm-header:not(.is-scrolled) .cm-header-nav {
    background: #080f14;
    border-bottom-color: rgba(255, 254, 249, 0.12);
  }
}

.cm-home .cm-header:not(.is-scrolled) {
  background: rgba(8, 15, 20, 0.96);
  border-bottom-color: rgba(255, 254, 249, 0.1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.cm-home .cm-header:not(.is-scrolled) .cm-header-logo::after {
  color: #ffffff;
}

.cm-home .cm-header:not(.is-scrolled) .cm-header-nav a {
  color: rgba(255, 255, 255, 0.84);
  text-shadow: 0 2px 14px rgba(8, 15, 20, 0.2);
}

.cm-home .cm-header:not(.is-scrolled) .cm-header-nav a:hover,
.cm-home .cm-header:not(.is-scrolled) .cm-header-nav a.active {
  color: #ffffff;
}

.cm-home .cm-header:not(.is-scrolled) .cm-header-nav a.cm-nav-cta {
  border-color: var(--cm-button-light);
  background: transparent;
  color: var(--cm-button-light);
}

.cm-home .cm-header:not(.is-scrolled) .cm-header-nav a.cm-nav-cta:hover {
  background: var(--cm-gold);
  border-color: var(--cm-gold);
  color: var(--cm-button-light);
}

.cm-home .cm-header:not(.is-scrolled) .cm-nav-toggle span {
  background: #ffffff;
}

/* ===== FOOTER ===== */

.cm-footer {
  position: relative;
  z-index: 120;
  background: var(--cm-warm-white);
  padding: clamp(29px, 3.85vw, 50px) 0 clamp(22px, 2.4vw, 34px);
  border-top: 1px solid rgba(184, 146, 74, 0.08);
}

.cm-footer-inner {
  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding: 0 clamp(48px, 6.4vw, 116px);
}

.cm-footer-top {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) auto minmax(160px, 1fr);
  align-items: center;
  column-gap: clamp(34px, 4.8vw, 84px);
  min-height: clamp(134px, 15.6vw, 226px);
}

.cm-footer-logo {
  position: relative;
  justify-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 12px;
  color: var(--cm-dark);
  font-family: var(--cm-font-heading);
  font-size: clamp(24px, 2.4vw, 40px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-button);
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  text-indent: 0;
  white-space: nowrap;
}

.cm-footer-logo::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 86%;
  height: 2px;
  transform: translateX(-50%);
  background: linear-gradient(
    90deg,
    rgba(184, 146, 74, 0),
    rgba(184, 146, 74, 0.95) 14%,
    rgba(184, 146, 74, 0.95) 86%,
    rgba(184, 146, 74, 0)
  );
}

.cm-footer-nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(10px, 1.3vw, 17px);
}

.cm-footer-nav a {
  color: rgba(8, 15, 20, 0.68);
  font-family: var(--cm-font-body);
  font-size: clamp(14px, 1vw, 19px);
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1;
  text-decoration: none;
  text-transform: none;
  transition: color 0.24s ease;
}

.cm-footer-nav a:hover,
.cm-footer-nav a:focus-visible,
.cm-footer-email:hover,
.cm-footer-email:focus-visible,
.cm-footer-phone:hover,
.cm-footer-phone:focus-visible {
  color: rgba(8, 15, 20, 0.92);
}

.cm-footer-contact {
  justify-self: end;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: clamp(10px, 1.2vw, 17px);
  color: rgba(8, 15, 20, 0.68);
  font-family: var(--cm-font-body);
  font-weight: 400;
}

.cm-footer-email {
  color: rgba(8, 15, 20, 0.68);
  font-family: var(--cm-font-body);
  font-size: clamp(14px, 1vw, 19px);
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color 0.24s ease;
  white-space: nowrap;
}

.cm-footer-direct {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 7px;
}

.cm-footer-phone {
  color: rgba(8, 15, 20, 0.68);
  font-family: var(--cm-font-body);
  font-size: clamp(14px, 1vw, 19px);
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1;
  text-decoration: none;
  transition: color 0.24s ease;
  white-space: nowrap;
}

.cm-footer-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: clamp(11px, 1.2vw, 18px);
  padding-top: clamp(16px, 1.8vw, 30px);
}

.cm-footer-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: clamp(170px, 12vw, 230px);
  min-height: clamp(30px, 2.1vw, 42px);
  padding: 0 clamp(14px, 1.4vw, 24px);
  border: 1px solid var(--cm-gold);
  color: var(--cm-gold);
  font-family: var(--cm-font-heading);
  font-size: clamp(10px, 0.68vw, 13px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-button);
  line-height: 1;
  text-decoration: none;
  text-indent: var(--cm-letter-button);
  text-transform: uppercase;
  transition:
    background-color 0.24s ease,
    border-color 0.24s ease,
    color 0.24s ease,
    transform 0.24s ease;
  white-space: nowrap;
}

.cm-footer-button:hover,
.cm-footer-button:focus-visible {
  background-color: var(--cm-gold);
  border-color: var(--cm-gold);
  color: var(--cm-button-light);
  transform: translateY(-2px);
}

.cm-footer-bottom {
  margin-top: clamp(19px, 1.9vw, 31px);
  padding-top: clamp(14px, 1.45vw, 22px);
  border-top: 1px solid rgba(184, 146, 74, 0.46);
}

.cm-footer-copy {
  color: rgba(184, 146, 74, 0.68);
  font-family: var(--cm-font-body);
  font-size: clamp(13px, 0.95vw, 18px);
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.2;
}

.cm-footer-tagline,
.cm-footer-columns,
.cm-footer-column,
.cm-footer-eyebrow,
.cm-footer-stack,
.cm-footer-location,
.cm-footer-logo-image,
.cm-footer-brand {
  /* Legacy footer hooks retained for older generated pages until rebuild. */
}

@media screen and (max-width: 1180px) {
  .cm-footer-top {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 24px;
    min-height: 0;
  }

  .cm-footer-nav,
  .cm-footer-direct,
  .cm-footer-contact,
  .cm-footer-actions {
    align-items: center;
    text-align: center;
  }

  .cm-footer-nav {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
  }

  .cm-footer-contact {
    justify-self: center;
  }

  .cm-footer-logo::after {
    left: 50%;
    transform: translateX(-50%);
    background: linear-gradient(90deg, transparent, rgba(184, 146, 74, 0.58), transparent);
  }
}

@media screen and (max-width: 767px) {
  /* Mobile footer recomposition: wordmark leads, contact follows, nav recedes —
     mirrors the desktop hierarchy instead of the DOM order. */
  .cm-footer {
    padding: 46px 0 26px;
  }

  .cm-footer-inner {
    padding: 0 32px;
  }

  .cm-footer-top {
    gap: 10px;
  }

  .cm-footer-logo {
    order: -2;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    font-size: 24px;
    letter-spacing: 0.2em;
    text-indent: 0.2em;
    padding-bottom: 14px;
  }

  .cm-footer-contact {
    order: -1;
    gap: 2px;
  }

  .cm-footer-direct {
    gap: 0;
  }

  .cm-footer-nav a,
  .cm-footer-email,
  .cm-footer-phone {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: 16px;
  }

  .cm-footer-actions {
    padding-top: 10px;
  }

  .cm-footer-button {
    min-height: 44px;
    width: min(100%, 230px);
    min-width: 0;
  }

  .cm-footer-nav {
    margin-top: 18px;
    gap: 2px 28px;
  }

  .cm-footer-nav a {
    font-size: 15px;
  }

  .cm-footer-copy {
    color: var(--cm-gold);
    font-size: 14px;
  }
}

/* True ultrawide only (not 16:10): each side margin is half the centered case — W' = (100vw + W) / 2. */
@media (min-width: 2000px) and (min-aspect-ratio: 2 / 1) {
  :root {
    --cm-shell-effective: min(100vw, calc((100vw + var(--cm-shell-max)) / 2));
  }
}

/* ===== UTILITY ===== */

.cm-page-padding {
  padding-top: var(--cm-header-height); /* offset for fixed header */
}

.cm-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Sitewide new homepage wordmark logo */
.cm-header-logo {
  width: 292px;
  height: 42px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  line-height: 1;
}

.cm-header-logo-image {
  display: none;
}

.cm-header-logo::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 2px;
  width: 260px;
  height: 2px;
  transform: translateX(-50%);
  background: linear-gradient(
    90deg,
    rgba(184, 146, 74, 0),
    rgba(184, 146, 74, 0.95) 14%,
    rgba(184, 146, 74, 0.95) 86%,
    rgba(184, 146, 74, 0)
  );
  pointer-events: none;
  z-index: 1;
}

.cm-header-logo::after {
  content: "CHASE MERRITT";
  position: relative;
  z-index: 2;
  color: #ffffff;
  font-family: var(--cm-font-heading);
  font-size: 24px;
  font-weight: 500;
  letter-spacing: var(--cm-letter-button);
  line-height: 1;
  white-space: nowrap;
}

@media screen and (max-width: 900px) {
  .cm-header-logo {
    width: 230px;
  }

  .cm-header-logo::before {
    width: 210px;
  }

  .cm-header-logo::after {
    font-size: 18px;
    letter-spacing: var(--cm-letter-button);
  }
}

/* Align header logo position with homepage across all pages */
.cm-header-inner {
  max-width: none;
  height: 78px;
  padding: 0 42px 0 34px;
}

@media screen and (max-width: 1120px) {
  .cm-header-inner {
    padding-left: 24px;
    padding-right: 24px;
  }
}

/* Unified site header nav — match homepage navbar across generated pages. */
.cm-header-nav {
  gap: 30px !important;
}

.cm-header .cm-header-nav a,
.cm-header:not(.is-scrolled) .cm-header-nav a {
  font-family: var(--cm-font-body) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: var(--cm-letter-body) !important;
  color: rgba(255, 254, 249, 0.86) !important;
  text-shadow: none !important;
}

.cm-header .cm-header-nav a:hover,
.cm-header .cm-header-nav a.active,
.cm-header:not(.is-scrolled) .cm-header-nav a:hover,
.cm-header:not(.is-scrolled) .cm-header-nav a.active {
  color: var(--cm-gold) !important;
}

.cm-header .cm-header-nav a.cm-nav-cta,
.cm-header.cm-header:not(.is-scrolled) .cm-header-nav a.cm-nav-cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 148px !important;
  min-height: 46px !important;
  padding: 0 18px !important;
  border: 1px solid var(--cm-button-light) !important;
  background: transparent !important;
  color: var(--cm-button-light) !important;
  font-family: var(--cm-font-heading) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: var(--cm-letter-button) !important;
  line-height: 1 !important;
  text-align: center !important;
  text-indent: var(--cm-letter-button) !important;
}

.cm-header .cm-header-nav a.cm-nav-cta:hover,
.cm-header.cm-header:not(.is-scrolled) .cm-header-nav a.cm-nav-cta:hover {
  background: var(--cm-gold) !important;
  border-color: var(--cm-gold) !important;
  color: var(--cm-button-light) !important;
}

/* Mobile header geometry parity: keep logo and hamburger anchored like the homepage while preserving page-specific colors. */
@media screen and (max-width: 1120px) {
  .cm-header-inner {
    max-width: none !important;
    height: 74px !important;
    padding: 0 24px !important;
  }

  /* Eight nav items: tighter gap and CTA keep the row inside a 1024px viewport. */
  .cm-header-nav {
    gap: 18px !important;
  }

  .cm-header .cm-header-nav a.cm-nav-cta,
  .cm-header.cm-header:not(.is-scrolled) .cm-header-nav a.cm-nav-cta {
    min-width: 120px !important;
    padding: 0 14px !important;
  }
}

@media screen and (max-width: 1024px) {
  .cm-header-nav {
    gap: 14px !important;
  }

  .cm-header .cm-header-nav a.cm-nav-cta,
  .cm-header.cm-header:not(.is-scrolled) .cm-header-nav a.cm-nav-cta {
    min-width: 110px !important;
  }
}

@media screen and (max-width: 900px) {
  .cm-header-logo {
    width: min(260px, calc(100% - 56px)) !important;
    min-width: 0;
    flex-shrink: 1;
    height: 44px !important;
  }

  .cm-header-logo::before {
    width: 100% !important;
  }

  .cm-header-logo::after {
    font-size: 18px !important;
    letter-spacing: var(--cm-letter-button) !important;
  }

  .cm-nav-toggle {
    width: 44px !important;
    flex: 0 0 44px;
    padding: 11px !important;
    margin: 0 !important;
    align-items: stretch !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
  }

  .cm-nav-toggle span {
    width: 22px !important;
    height: 1.5px !important;
  }
}

@media screen and (max-width: 767px) {
  .cm-header-logo {
    margin-left: -8px !important;
  }
}

/* Drawer rhythm at mobile — must outrank the unified !important nav rules above. */
@media screen and (max-width: 900px) {
  .cm-header,
  .cm-home .cm-header:not(.is-scrolled) {
    background: #080f14;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  :root {
    --cm-header-height: 75px;
  }

  .cm-header-inner {
    gap: 12px;
    padding: 0 20px !important;
  }

  .cm-header-nav {
    gap: 4px !important;
    max-height: calc(100vh - var(--cm-header-height));
    max-height: calc(100dvh - var(--cm-header-height));
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .cm-header-nav a {
    width: 100%;
  }

  body.cm-nav-open {
    overflow: hidden;
  }

  .cm-header .cm-header-nav a,
  .cm-header:not(.is-scrolled) .cm-header-nav a {
    font-size: 14px !important;
  }
}

/* ============================================================
   TYPE SYSTEM — single source of typographic metrics.
   Page CSS may restyle COLOR on these selectors, never metrics
   (family, size, weight, letter-spacing, line-height, case).
   Roles: masthead 88/68/64 · section 60/48 · card 40/28 · h4 22 ·
   lead 21 · body-l 18 · body 16 · body-s 14 · micro 12 ·
   eyebrow 12 (card/form labels 11) · stat label 12 · button 12
   ============================================================ */

/* Heading spans stay in the heading face — the `p, li, span` body
   rule above must never leak Poppins into headline accent words. */
h1 span,
h2 span,
h3 span,
h4 span {
  font-family: var(--cm-font-heading);
  font-weight: inherit;
  letter-spacing: inherit;
}

/* ----- Mastheads (Raleway 500) ----- */
.cm-project-page-title {
  font-family: var(--cm-font-heading);
  font-size: clamp(52px, 5.6vw, 88px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 0.9;
  text-transform: uppercase;
}

.cm-strategies-hero h1 {
  font-family: var(--cm-font-heading);
  font-size: clamp(50px, 4.85vw, 68px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.15;
  text-transform: uppercase;
}

.cm-projects-heading,
.cm-team-intro-title,
.cm-careers-masthead-title,
.cm-contact-main h1,
.cm-tsg-hero-title {
  font-family: var(--cm-font-heading);
  font-size: clamp(40px, 4.2vw, 64px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.18;
  text-transform: uppercase;
}

/* Team masthead stays a single line on desktop: same curve, lower cap
   so the nowrap title always fits its shell (natural width 19.7x fs). */
.cm-team-intro-title {
  font-size: clamp(32px, 4.2vw, 60px);
}

.cm-investor-brand-logo {
  font-family: var(--cm-font-heading);
  font-size: clamp(36px, 5vw, 60px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-button);
  line-height: 1;
  text-transform: uppercase;
}

.cm-hero-canvas h1 {
  font-family: var(--cm-font-heading);
  font-size: clamp(38px, 4vw, 56px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.15;
  text-transform: uppercase;
}

/* ----- Section titles ----- */
.cm-about-canvas h2,
.cm-approach-canvas h2,
.cm-stats-canvas h2,
.cm-strategies-canvas h2,
.cm-contact-canvas h2 {
  font-family: var(--cm-font-heading);
  font-size: clamp(38px, 4vw, 60px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.14;
  text-transform: uppercase;
}

.cm-investments-heading h2 {
  font-family: var(--cm-font-heading);
  font-size: clamp(42px, 4.5vw, 60px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1;
  text-transform: uppercase;
}

.cm-team-section-title,
.cm-careers-section-title {
  font-family: var(--cm-font-heading);
  font-size: clamp(34px, 3.8vw, 60px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 0.98;
  text-transform: uppercase;
}

.cm-tlf-strategy h2 {
  font-family: var(--cm-font-heading);
  font-size: clamp(46px, 4.1vw, 60px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.18;
  text-transform: uppercase;
}

.cm-team-person-name {
  font-family: var(--cm-font-heading);
  font-size: clamp(34px, 3.6vw, 56px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 0.96;
  text-transform: uppercase;
}

.cm-tsg-section-title {
  font-family: var(--cm-font-heading);
  font-size: clamp(34px, 4.2vw, 54px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.02;
  text-transform: uppercase;
}

.cm-careers-asset-title,
.cm-careers-section-title--roles,
.cm-tsg-section-title-platform {
  font-family: var(--cm-font-heading);
  font-size: clamp(30px, 3.2vw, 48px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.02;
  text-transform: uppercase;
}

.cm-projects-partners-title,
.cm-projects-partner-cta-title {
  font-family: var(--cm-font-heading);
  font-size: clamp(30px, 3.45vw, 48px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.15;
  text-transform: uppercase;
}

.cm-tsg-lens-title {
  font-family: var(--cm-font-heading);
  font-size: clamp(30px, 3.2vw, 42px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.14;
  text-transform: uppercase;
}

/* tsg statement + seasons (legacy hooks kept on-system) */
.cm-tsg-intro-lead {
  font-family: var(--cm-font-heading);
  font-size: clamp(28px, 3.2vw, 42px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.22;
  text-transform: uppercase;
}

.cm-tsg-season-title {
  font-family: var(--cm-font-heading);
  font-size: 22px;
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.1;
  text-transform: uppercase;
}

/* ----- Card / panel titles ----- */
.cm-feature-canvas h3 {
  font-family: var(--cm-font-heading);
  font-size: clamp(28px, 2.35vw, 40px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.08;
  text-transform: uppercase;
}

.cm-careers-role-title {
  font-family: var(--cm-font-heading);
  font-size: clamp(28px, 2.8vw, 40px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1;
  text-transform: uppercase;
}

.cm-projects-card__name {
  font-family: var(--cm-font-heading);
  font-size: clamp(24px, 3vw, 40px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.02;
  text-transform: uppercase;
}

.cm-projects-grid .cm-projects-card__name {
  font-size: 28px;
}

.cm-careers-listing-title {
  font-family: var(--cm-font-heading);
  font-size: clamp(20px, 1.9vw, 28px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.04;
  text-transform: uppercase;
}

.cm-project-page-panel-title,
.cm-project-page-note-title {
  font-family: var(--cm-font-heading);
  font-size: 28px;
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.05;
  text-transform: uppercase;
}

.cm-strategies-canvas h3 {
  font-family: var(--cm-font-heading);
  font-size: clamp(18px, 1.65vw, 28px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.16;
  text-transform: uppercase;
}

.cm-inquiry-card h3 {
  font-family: var(--cm-font-heading);
  font-size: 28px;
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1;
  text-transform: uppercase;
}

.cm-investor-path h2 {
  font-family: var(--cm-font-heading);
  font-size: clamp(25px, 3.1vw, 28px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.16;
  text-transform: uppercase;
}

.cm-approach-canvas__statement h3 {
  font-family: var(--cm-font-heading);
  font-size: clamp(34px, 4vw, 55px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.16;
  text-transform: uppercase;
}

.cm-strategies-canvas h3 .cm-strategy-title-accent {
  font: inherit;
  letter-spacing: inherit;
}

/* ----- H4 / name rows ----- */
.cm-investments-canvas__card span,
.cm-tsg-destination-name,
.cm-contact-detail-title {
  font-family: var(--cm-font-heading);
  font-size: 22px;
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.08;
  text-transform: uppercase;
}

.cm-contact-detail-title {
  line-height: 1.04;
}

.cm-contact-detail-title span {
  font-family: var(--cm-font-heading);
  font-weight: 500;
  letter-spacing: inherit;
}

.cm-strategies-canvas article span {
  font-family: var(--cm-font-heading);
  font-size: clamp(14px, 1.25vw, 22px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
}

/* ----- Stats (Raleway 500, ls 50) ----- */
.cm-stat-canvas strong {
  font-family: var(--cm-font-heading);
  font-size: clamp(58px, 6vw, 88px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-stat);
  line-height: 0.9;
}

.cm-team-founder-stat-number,
.cm-team-profile-stat-number {
  font-family: var(--cm-font-heading);
  font-size: clamp(28px, 2.8vw, 40px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-stat);
  line-height: 1;
}

.cm-projects-meta-number {
  font-family: var(--cm-font-heading);
  font-size: 28px;
  font-weight: 500;
  letter-spacing: var(--cm-letter-stat);
  line-height: 1;
}

.cm-project-page-fact-value,
.cm-tsg-fact-value {
  font-family: var(--cm-font-heading);
  font-size: 24px;
  font-weight: 500;
  letter-spacing: var(--cm-letter-stat);
  line-height: 1.08;
}

/* ----- Body: leads (21) ----- */
.cm-approach-canvas p,
.cm-strategies-canvas__copy p,
.cm-contact-canvas p,
.cm-contact-canvas__forms-intro p {
  font-family: var(--cm-font-body);
  font-size: 21px;
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.5;
}

.cm-about-canvas__copy p {
  font-family: var(--cm-font-body);
  font-size: 21px;
  font-weight: 300;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.5;
}

.cm-careers-copy.cm-careers-copy--lead {
  font-family: var(--cm-font-body);
  font-size: 21px;
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.6;
}

/* Asset-section body: masthead-lead treatment, one step smaller. */
.cm-careers-asset-copy p {
  font-family: var(--cm-font-body);
  font-size: 19px;
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.6;
}

.cm-contact-intro {
  font-family: var(--cm-font-body);
  font-size: 18px;
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.65;
}

.cm-connect-method-value {
  font-family: var(--cm-font-body);
  font-size: 18px;
  font-weight: 500;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.35;
}

.cm-projects-intro {
  font-family: var(--cm-font-body);
  font-size: clamp(18px, 1.48vw, 21px);
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.5;
}

.cm-projects-note {
  font-family: var(--cm-font-body);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.6;
}

.cm-project-page-summary {
  font-family: var(--cm-font-body);
  font-size: clamp(18px, 1.6vw, 21px);
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.55;
}

.cm-tsg-hero-subtitle {
  font-family: var(--cm-font-body);
  font-size: 21px;
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.55;
}

/* ----- Body: large (18) ----- */
.cm-tlf-strategy p {
  font-family: var(--cm-font-body);
  font-size: 18px;
  font-weight: 400;
  font-style: normal;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.7;
}

.cm-tlf-strategy em {
  font-style: normal;
}

.cm-feature-canvas p {
  font-family: var(--cm-font-body);
  font-size: clamp(15px, 1.15vw, 18px);
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.5;
}

/* ----- Body: standard (16 / 1.7) ----- */
.cm-team-intro-body,
.cm-team-note-copy,
.cm-team-person-bio,
.cm-team-principle-copy,
.cm-careers-copy,
.cm-careers-note-copy,
.cm-careers-role-copy,
.cm-careers-openings-copy,
.cm-project-page-panel-copy,
.cm-project-page-note-copy,
.cm-investor-note p,
.cm-tsg-section-body,
.cm-tsg-destination-copy,
.cm-tsg-intro-copy,
.cm-tsg-note-copy,
.cm-tsg-season-body,
.cm-tsg-lens-copy p {
  font-family: var(--cm-font-body);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.7;
}

.cm-projects-partners-copy,
.cm-projects-partner-cta-copy {
  font-family: var(--cm-font-body);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.6;
}

/* ----- Body: small (14 / 1.6) ----- */
.cm-contact-detail-copy,
.cm-contact-visual-copy,
.cm-team-profile-detail-copy,
.cm-investor-path-copy,
.cm-investor-error,
.cm-projects-card__type,
.cm-careers-listing-details p,
.cm-careers-listing-details li,
.cm-inquiry-card p {
  font-family: var(--cm-font-body);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.6;
}

.cm-inquiry-card p {
  line-height: 1.5;
}

/* ----- Body: micro (12–13) ----- */
.cm-investor-disclaimer p {
  font-family: var(--cm-font-body);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.6;
}

.cm-project-page-footer-copy,
.cm-tsg-page-footer-copy {
  font-family: var(--cm-font-body);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.6;
}

.cm-careers-listing-cta p,
.cm-careers-role-fact dd {
  font-family: var(--cm-font-body);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.55;
}

/* ----- Quotes ----- */
.cm-quote-canvas blockquote,
.cm-testimonial-canvas blockquote {
  font-family: var(--cm-font-body);
  font-size: clamp(19px, 1.6vw, 24px);
  font-style: italic;
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.3;
}

/* ----- Eyebrows (Poppins 600, ls 300) ----- */
.cm-canvas-eyebrow,
.cm-team-label,
.cm-team-note-label,
.cm-careers-label,
.cm-careers-note-label,
.cm-contact-label,
.cm-contact-detail-label,
.cm-contact-visual-kicker,
.cm-projects-card__eyebrow,
.cm-project-page-kicker,
.cm-project-page-panel-label,
.cm-project-page-note-label,
.cm-tsg-hero-kicker,
.cm-tsg-lens-kicker,
.cm-approach-canvas__statement small {
  font-family: var(--cm-font-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: var(--cm-letter-eyebrow);
  line-height: 1.4;
  text-transform: uppercase;
}

.cm-inquiry-card__path,
.cm-inquiry-card .cm-inquiry-card__form-note {
  font-family: var(--cm-font-body);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: var(--cm-letter-eyebrow);
  text-transform: uppercase;
}

/* Card-level and form labels */
.cm-inquiry-card label,
.cm-contact-field label,
.cm-investor-field label,
.cm-careers-listing-category,
.cm-careers-listing-details h4 {
  font-family: var(--cm-font-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: var(--cm-letter-eyebrow);
  line-height: 1.4;
  text-transform: uppercase;
}

.cm-careers-role-fact dt {
  font-family: var(--cm-font-body);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: var(--cm-letter-eyebrow);
  line-height: 1;
  text-transform: uppercase;
}

/* ----- Stat / meta labels (Poppins 500, ls 100) ----- */
.cm-stat-canvas span {
  font-family: var(--cm-font-body);
  font-size: clamp(11px, 0.85vw, 14px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-stat-label);
  line-height: 1.35;
  text-transform: uppercase;
}

.cm-team-founder-stat-label,
.cm-team-profile-stat-label,
.cm-projects-meta-label,
.cm-projects-card__badge,
.cm-project-page-fact-label,
.cm-testimonial-canvas__role,
.cm-quote-canvas figcaption strong,
.cm-quote-canvas figcaption em,
.cm-connect-method-label,
.cm-tsg-fact-label,
.cm-tsg-destination-number {
  font-family: var(--cm-font-body);
  font-size: 12px;
  font-weight: 500;
  font-style: normal;
  letter-spacing: var(--cm-letter-stat-label);
  line-height: 1.4;
  text-transform: uppercase;
}

.cm-testimonial-canvas__role {
  line-height: 1.5;
}

.cm-careers-listing-meta {
  font-family: var(--cm-font-heading);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: var(--cm-letter-stat-label);
  line-height: 1.4;
  text-transform: uppercase;
}

.cm-careers-location-band__line {
  font-family: var(--cm-font-heading);
  font-size: clamp(21px, 2.24vw, 32.2px);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  line-height: 1.02;
  text-transform: uppercase;
}

/* Careers legacy hooks (role pages) */
.cm-careers-role-chip,
.cm-careers-overview-label {
  font-family: var(--cm-font-body);
  font-weight: 600;
  text-transform: uppercase;
}

.cm-careers-overview-value {
  font-family: var(--cm-font-heading);
  font-weight: 500;
  letter-spacing: var(--cm-letter-heading);
  text-transform: uppercase;
}

.cm-careers-role-meta {
  font-family: var(--cm-font-body);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.5;
  text-transform: uppercase;
}

.cm-careers-role-subtitle {
  font-family: var(--cm-font-heading);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.075em;
  line-height: 1.35;
  text-transform: uppercase;
}

/* ----- Buttons & links (Raleway 500, ls 200) ----- */
.cm-canvas-button,
.cm-canvas-text-link,
.cm-canvas-dark-link,
.cm-hero-canvas__scroll,
.cm-projects-hero-scroll,
.cm-inquiry-card__submit,
.cm-team-link,
.cm-team-button,
.cm-careers-link,
.cm-careers-button,
.cm-careers-role-link,
.cm-contact-success-link,
.cm-contact-submit button,
.cm-investor-submit,
.cm-project-page-back,
.cm-tsg-page-back,
.cm-careers-listing-apply,
.cm-careers-listing-details a:not(.cm-careers-listing-apply),
.cm-strategies-link,
.cm-strategies-link:visited,
.cm-projects-partner-cta-link {
  font-family: var(--cm-font-heading);
  font-weight: 500;
  letter-spacing: var(--cm-letter-button);
  text-transform: uppercase;
}

.cm-canvas-button,
.cm-projects-partner-cta-link {
  font-size: 14px;
}
.cm-canvas-button--small {
  font-size: 12px;
}
.cm-canvas-text-link,
.cm-canvas-dark-link {
  font-size: 18px;
  line-height: 1;
}
.cm-approach-canvas__actions .cm-canvas-dark-link {
  font-size: 24px;
}
.cm-strategies-link,
.cm-strategies-link:visited {
  font-size: clamp(20px, 1.7vw, 24px);
  line-height: 1.3;
}
.cm-hero-canvas__scroll,
.cm-projects-hero-scroll {
  font-size: 12px;
  line-height: 1;
}
.cm-inquiry-card__submit {
  font-size: 12px;
}
.cm-team-link,
.cm-project-page-back,
.cm-tsg-page-back {
  font-size: 12px;
}
.cm-team-button,
.cm-careers-link,
.cm-careers-button,
.cm-careers-role-link {
  font-size: 12px;
  line-height: 1;
}
.cm-contact-success-link,
.cm-contact-submit button {
  font-size: 12px;
}
.cm-investor-submit {
  font-size: 12px;
  line-height: 1.3;
}
.cm-careers-listing-apply,
.cm-careers-listing-details a:not(.cm-careers-listing-apply) {
  font-size: 11px;
}
.cm-careers-listing-apply {
  line-height: 1;
}
.cm-footer-button {
  font-size: 12px;
}

.cm-strategies-link__soon {
  font-family: var(--cm-font-body);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: var(--cm-letter-stat-label);
  line-height: 1;
  text-transform: uppercase;
}

/* Arrow glyphs inside canvas links (text spans keep the link size) */
.cm-canvas-button span[aria-hidden="true"],
.cm-canvas-text-link span[aria-hidden="true"],
.cm-canvas-dark-link span[aria-hidden="true"] {
  font-size: 28px;
  line-height: 1;
}

.cm-about-canvas__quicklinks {
  font-family: var(--cm-font-heading);
  font-weight: 500;
  letter-spacing: var(--cm-letter-button);
  text-transform: uppercase;
}

/* ----- Contact method rows (home contact canvas) ----- */
.cm-contact-canvas__method strong,
.cm-contact-canvas__phone strong {
  font-family: var(--cm-font-body);
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  letter-spacing: var(--cm-letter-stat-label);
  text-transform: uppercase;
}

.cm-contact-canvas__method em,
.cm-contact-canvas__phone em {
  font-family: var(--cm-font-body);
  font-size: 21px;
  font-style: normal;
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1;
}

/* ----- Form inputs (Poppins 400 15) ----- */
.cm-contact-field input,
.cm-contact-field textarea,
.cm-contact-field select,
.cm-inquiry-card input,
.cm-inquiry-card textarea,
.cm-investor-field input,
.cm-investor-field select,
.cm-investor-field textarea {
  font-family: var(--cm-font-body);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: var(--cm-letter-body);
  line-height: 1.5;
}

/* Mobile body copy scale — page styles load after global.css, so these use !important to keep the site-wide mobile pass consistent without touching desktop. */
@media screen and (max-width: 900px) {
  body {
    font-size: 16px !important;
  }

  p,
  li,
  address,
  .cm-about-canvas__copy p,
  .cm-approach-canvas p,
  .cm-strategies-canvas__copy p,
  .cm-feature-canvas p,
  .cm-contact-canvas p,
  .cm-contact-canvas__forms-intro p,
  .cm-team-intro-body,
  .cm-team-note-copy,
  .cm-team-person-bio,
  .cm-team-principle-copy,
  .cm-projects-intro,
  .cm-project-page-panel-copy,
  .cm-project-page-note-copy,
  .cm-project-page-footer-copy,
  .cm-tsg-intro-copy,
  .cm-tsg-section-body,
  .cm-tsg-destination-copy,
  .cm-tsg-note-copy,
  .cm-tsg-season-body,
  .cm-tlf-page-copy,
  .cm-tlf-page-filter-copy,
  .cm-tlf-page-case-copy,
  .cm-tlf-page-lane-copy,
  .cm-tlf-page-platform-copy,
  .cm-tlf-strategy p,
  .cm-careers-copy,
  .cm-careers-note-copy,
  .cm-careers-role-copy,
  .cm-careers-role-list li,
  .cm-careers-listing-cta p,
  .cm-investor-body,
  .cm-contact-intro,
  .cm-contact-detail-copy,
  .cm-contact-visual-copy,
  .cm-contact-prototype__card-copy,
  .cm-fund-copy,
  .cm-fund-project-body,
  .cm-fund-card-copy,
  .cm-fund-lane-copy,
  .cm-fund-rail-copy {
    font-size: 16px !important;
    line-height: 1.6 !important;
  }

  .cm-careers-copy--lead,
  .cm-careers-asset-copy p,
  .cm-careers-listing-summary,
  .cm-project-page-summary,
  .cm-tlf-page-copy--lead,
  .cm-tlf-page-masthead-body,
  .cm-tsg-intro-lead {
    font-size: 16px !important;
    line-height: 1.6 !important;
  }

  /* Keep label hierarchy on phones: eyebrows and stat labels must stay
     smaller than body copy (the p rule above would flatten them to 14). */
  .cm-canvas-eyebrow,
  .cm-team-label,
  .cm-team-note-label,
  .cm-contact-label,
  .cm-contact-detail-label,
  .cm-contact-visual-kicker,
  .cm-careers-label,
  .cm-careers-note-label,
  .cm-project-page-kicker,
  .cm-projects-card__eyebrow,
  .cm-project-page-panel-label,
  .cm-project-page-note-label,
  .cm-tsg-hero-kicker,
  .cm-tsg-lens-kicker,
  .cm-team-founder-stat-label,
  .cm-team-profile-stat-label,
  .cm-project-page-fact-label,
  .cm-projects-meta-label,
  .cm-projects-card__badge,
  .cm-testimonial-canvas__role,
  .cm-tsg-fact-label,
  .cm-tsg-destination-number {
    font-size: 12px !important;
    line-height: 1.4 !important;
  }

  /* Styled paragraphs that must keep their own scale on phones (September
     2026 UI review): the 404 numeral, leadership statistics and the
     confirmation detail title are <p> elements. CJ kept the Insights date
     at the phone body size. */
  .cm-404-code {
    font-size: clamp(72px, 22vw, 96px) !important;
    line-height: 0.9 !important;
  }

  .cm-team-founder-stat-number,
  .cm-team-profile-stat-number {
    font-size: 28px !important;
    line-height: 1 !important;
  }

  .cm-contact-detail-title {
    font-size: 20px !important;
    line-height: 1.1 !important;
  }

  .cm-contact-intro {
    font-size: 16px !important;
  }

  input:not([type="hidden"]),
  select,
  textarea {
    font-size: 16px !important;
  }

  .cm-contact-field label,
  .cm-investor-field label {
    font-size: 12px;
  }

  .cm-footer .cm-footer-copy {
    color: var(--cm-dark);
    font-size: 12px !important;
  }

  .cm-footer-button {
    color: var(--cm-dark);
  }
}

/* Readable text on light backgrounds; decorative accents retain the brand gold. */
.cm-footer-button {
  color: var(--cm-gold-text);
}
.cm-footer-copy {
  color: rgba(8, 15, 20, 0.72);
}
.cm-footer-button:hover,
.cm-footer-button:focus-visible {
  color: var(--cm-ink);
}
