/* Semantic component calibration over the unchanged canonical brand families. */
:root {
  --fd-ui-title-size: clamp(24px, 2.1vw, 30px);
  --fd-ui-title-leading: 1.35;
  --fd-control-size: 16px;
  --fd-control-height: 56px;
  --fd-control-gap: 12px;
}
body [data-type-role="display"] {
  font-family: var(--display-font);
  font-weight: var(--display-weight);
  line-height: var(--display-leading);
  letter-spacing: var(--display-track);
}
body [data-type-role="body-heading"] {
  font-family: var(--body-font);
  font-weight: var(--body-weight);
  font-size: var(--fd-ui-title-size);
  line-height: var(--fd-ui-title-leading);
  letter-spacing: normal;
}
/* Category names retain their approved display scale and English-standard case. */
.service-list [data-type-role="body-heading"] { font-size: clamp(31px, 3.5vw, 54px); line-height: 1.2; }
/* Display role: Satoshi 500, tracking -0.06em, leading 1.04. */
.hero #hero-title { line-height: var(--display-leading); letter-spacing: var(--display-track); }
/* Icon 152 / wordmark 560 / gap 28, scaled as one relationship. */
.brand-lockup { display: inline-flex; align-items: center; gap: calc(28 / 560 * 179.5px); min-height: 44px; flex: none; }
.brand-lockup .brand-symbol { width: calc(152 / 560 * 179.5px); height: auto; flex: none; }
.brand-lockup .brand-wordmark { width: 179.5px; height: auto; }
@media (max-width: 700px) {
  .brand-lockup { gap: calc(28 / 560 * 123px); }
  .brand-lockup .brand-symbol { width: calc(152 / 560 * 123px); }
  .brand-lockup .brand-wordmark { width: 123px; }
}
.action-arrow { display: inline-block; width: 1em; height: 1em; flex: none; vertical-align: -.12em; }
body :is(.eyebrow,.index,.startup-meta,.staff-card-kicker,figcaption) {
  font-family: var(--meta-font);
  font-weight: var(--meta-weight);
  line-height: var(--meta-leading);
  letter-spacing: var(--meta-track);
}
body strong, body b { font-weight: var(--body-weight); }

/* Equal primary roles share one height, label scale, padding and icon contract. */
body .cn-button:not([data-variant="link"]):not([role="tab"]):not([data-size="sm"]):not(.motif-replay) {
  min-height: var(--fd-control-height);
  padding: var(--fd-control-padding-block, 12px) 16px;
  gap: var(--fd-control-gap);
  font: var(--body-weight) var(--fd-control-size)/var(--fd-control-leading, var(--body-leading)) var(--body-font);
  text-align: left;
  justify-content: center;
  max-width: 100%;
}
body .cn-button[data-size="sm"] {
  min-height: 44px;
  padding: 8px 12px;
  gap: 8px;
  font: var(--body-weight) 14px/var(--body-leading) var(--body-font);
}
body .cn-button:not([role="tab"]) > :is(.icon,.action-arrow),
body .cn-button > span[aria-hidden] > .action-arrow {
  display: block; width: 20px; height: 20px; flex: none;
}
body .cn-button > span[aria-hidden] { display: inline-flex; align-items: center; flex: none; }
body .cn-button[data-variant="link"] { justify-content: flex-start; }
body .cn-button:not([data-variant="outline"]):not([data-variant="ghost"]):not([data-variant="link"]):not(.light-button):not([role="tab"]):hover {
  background: var(--quiet); color: var(--paper);
}
body .cn-button[data-variant="outline"]:hover,
body .cn-button[data-variant="ghost"]:hover,
body .cn-button.light-button:hover { background: var(--wash); color: var(--ink); }
body .cn-input, body .cn-textarea, body .cn-select { font-size: 16px; }
/* The calculator is a numeric UI display, not an ordinary 16px form field.
   Its currency and editable value must keep the same font, scale and baseline. */
body .money-input {
  font: var(--body-weight) clamp(36px, 5vw, 50px)/1.2 var(--body-font);
  letter-spacing: normal;
  gap: 8px;
}
body .money-input .cn-input { font: inherit; letter-spacing: inherit; }
.startup-stage.cn-button { font-size: 16px; }
.startup-text-link { min-height: 44px; font: var(--body-weight) 16px/var(--body-leading) var(--body-font); gap: 12px; }

/* Related navigation actions share a hit box without becoming filled buttons. */
body .header nav > a,
body .startup-header nav > a,
/* Match the Real UI variant specificity; the link reset otherwise wins. */
body .header nav > a.cn-button[data-variant="link"] { display: inline-flex; align-items: center; min-height: 44px; padding-block: 10px; }
.legal-header { gap: 24px; flex-wrap: wrap; }
.legal-back { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; }
/* The motif artwork may stay 100px wide; its replay label is content-sized. */
body .frame-mark { width: max-content; max-width: 100%; }
body .frame-mark .motif-replay.cn-button { min-height: 44px; gap: 8px; white-space: nowrap; }

/* Reuse the homepage's major-section rhythm, not per-page near-miss values. */
.section { padding-block: var(--fd-section-space); }
.startup-foundations, .startup-guide, .startup-intake, .startup-faq { padding-block: var(--fd-section-space); }
.partner-entry .eyebrow { margin: 0; }
.partner-entry > a:not(.cn-button) { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.application .field > span { font-size: 14px; line-height: var(--body-leading); }
.application .field > small { font-size: 12px; line-height: var(--body-leading); }
.partner-entry [data-type-role="body-heading"] { font-size: 24px; }
body .startup-intake .program-form [data-type-role="body-heading"] { font-size: var(--fd-ui-title-size); }
@media (max-width: 760px) {
  #partner-signup > .partner-entry { margin-top: 32px; }
  .partner-entry { padding: 24px; }
  /* Two 20px label lines + 7px block padding + borders fit the 56px primary
     role at 320px. Keep 16px text, the full label and a minimum (not fixed)
     height so enlarged/translated text can grow rather than being clipped. */
  .ministries .ministry-title .cn-button,
  .ministries .proof-form > .cn-button,
  .startup-intake .program-form > .cn-button {
    --fd-control-leading: 1.25;
    --fd-control-padding-block: 7px;
  }
  body .steps [data-type-role="body-heading"],
  body .selection-rows [data-type-role="body-heading"] { font-size: 22px; }
  .proof-form legend { font-size: 18px; line-height: 1.4; }
  .letter-copy > p:first-child { font-size: 24px; line-height: 1.4; }
}
