/* Approved reading scale. Source: biosono.jp, measured 2026-10-10.
   Desktop lead = 18px / 500 / 2.2 at >=1350, 17.07px at 1280.
   Body = 16px / 500 / 2. Keep a 16px floor so compact PC windows never shrink existing body copy.
   Mobile lead/body = 16px / 500 / 2. Keep PRETAKE's approved display headings.
   Do not shrink the root font: menus, notes and controls keep legible floors. */
:root body.type-reference {
  --reading-lead: clamp(16px, 1.333333vw, 18px);
  --reading-body: 16px;
  --reading-small: 14px;
  --reading-note: 13px;
}

/* Introductory copy: keep space between lines, with a slightly stronger face. */
:root body.type-reference :is(.hero-a__lead, .section-lead, .services__lead,
  .experience__lead, .journal__lead, .contact__lead, .ec-section-lead,
  .mi-lead, .meo-section-intro > p, .meo-results__intro) {
  font-size: var(--reading-lead);
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: .01em;
}
:root body.type-reference .hero-a__lead strong {font-size: 20px; line-height: 1.8; margin-bottom: 12px}
:root body.type-reference .hero-a__detail {max-width: 640px}

/* Normal explanations and service cards. Deliberately exclude numbers/kickers. */
:root body.type-reference :is(.service-overview__card p, .partner-step__copy p,
  .partner-report-link p, .j-card-excerpt, .experience__item p,
  .brand-film__intro > p:not(.brand-film__eyebrow), .services__body p,
  .availability__reason, .consult-flow__text, .consult-flow__promise,
  .mi-strategy > p:not(.mi-step), .mi-execution li, .mi-roles p,
  .mi-sample-card__copy > p, .mi-loop p, .mi-offer > p,
  .meo-lp-invitation__copy > p:not(:first-child), .meo-discovery__focus > p,
  .meo-task > p:not(.meo-task__label), .meo-voice-step > p,
  .ec-method-step > p:not(.ec-method-step__label), .meo-note-panel > p, .ec-team-item > p,
  .meo-results__header > p, .meo-results__caption, .meo-results__next > p,
  .meo-lp-timeline p, .meo-lp-terms__notes p, .meo-lp-terms__cancel p,
  .ec-process-step p, .meo-lp-diagnosis__content li p,
  .ec-faq > div p, .meo-detail > div p, .meo-handoff li, .meo-plan-details li, .meo-tab-panel li) {
  font-size: var(--reading-body);
  font-weight: 500;
  line-height: 2;
  letter-spacing: .01em;
}
:root body.type-reference :is(.mi-intent, .mi-caption, .mi-execution > p:last-child,
  .mi-example-action > span, .mi-example-top, .mi-example-top p,
  .mi-hero-cta > span, .mi-opening > p, .mi-terms,
  .meo-lp-inline-cta span, .meo-lp-small, .meo-improvement-caption,
  .meo-lp-timeline li > span, .meo-plan-unit, .meo-plan-tax,
  .meo-results__story, .case-teaser__client,
  .contact__after, .consult-flow__conditions li, .site-footer__column a) {
  font-size: var(--reading-small);
  font-weight: 500;
  line-height: 1.9;
}
:root body.type-reference .meo-results__story {font-size:var(--reading-body);font-weight:600}
:root body.type-reference :is(.ec-note, .mi-diagram-note, .meo-results__footnote,
  .meo-results__category, .meo-results__action-period span,
  .meo-results__change > p, .meo-results__view-summary p,
  .meo-results__view-summary span, .meo-results__details p,
  .case-teaser__period, .availability__note, .meo-audit-board__note,
  .meo-lp-terms__notes small, .brand-film__note) {
  font-size: var(--reading-note);
  line-height: 1.9;
  letter-spacing: .01em;
}

/* Short labels/buttons need less leading, but must not return to 10–12px. */
:root body.type-reference :is(.pill-link, .hero-a__case-link, .text-link,
  .ec-local-nav a, .meo-results__filters button, .meo-results__details summary,
  .meo-results__more button, .meo-results__next a,
  .mi-strategy > a, .mi-offer > a, .mi-sample-card__button,
  .service-overview__card > span, .meo-tabs button, .ec-faq summary) {
  font-size: 14px;
  line-height: 1.7;
}
:root body.type-reference :is(.mi-plan-words span, .mi-execution li > b,
  .mi-example-action > b, .meo-results__count,
  .meo-results__change-heading, .meo-results__action-period,
  .meo-results__actions dt, .meo-results__details table) {font-size:13px;line-height:1.7}
:root body.type-reference :is(.mi-step > b, .mi-roles h3, .meo-task h3,
  .service-overview__card h3, .consult-flow__title) {font-size:20px;line-height:1.7}
:root body.type-reference :is(.mi-example-action > strong, .consult-flow__heading) {font-size:17px;line-height:1.9}
:root body.type-reference .mi-eyebrow {font-size:14px;line-height:1.8}
:root body.type-reference .mi-heading {margin-block:30px}
:root body.type-reference .mi-lead {margin-block:20px}
:root body.type-reference .mi-hero-cta {gap:20px}
:root body.type-reference .mi-flow {grid-template-columns:1fr 1fr 1fr}
:root body.type-reference .mi-flow > div {padding:26px 24px;min-width:0}
:root body.type-reference .mi-step > b {white-space:normal}
:root body.type-reference .mi-network svg text {font-size:17px}
:root body.type-reference .mi-network svg > text {font-size:19px}
:root body.type-reference .mi-execution li {gap:12px;padding-block:10px}
:root body.type-reference .mi-execution li > b {flex-shrink:0}
:root body.type-reference .mi-offer {flex-wrap:wrap;gap:18px 28px}
:root body.type-reference .mi-offer > p {flex:1 1 370px}
:root body.type-reference .mi-intent {min-height:0}
:root body.type-reference .mi-example-action {margin-top:20px}
:root body.type-reference .mi-examples article {display:flex;flex-direction:column}
:root body.type-reference .mi-examples .mi-example-action {flex:1}
:root body.type-reference .mi-loop {gap:24px}
:root body.type-reference .mi-loop > p {flex:1}
:root body.type-reference .meo-results__header > p {flex-shrink:1;max-width:520px}
:root body.type-reference .meo-results__details table {font-variant-numeric:tabular-nums}
:root body.type-reference .meo-results__chart {padding-left:48px}
:root body.type-reference :is(.meo-results__scale,.meo-results__zero,.meo-results__column) {font-size:11px}
:root body.type-reference .meo-results__view-summary {align-items:start}
:root body.type-reference .meo-results__view-summary > p {min-width:0}
:root body.type-reference .meo-results__actions {column-gap:16px}
:root body.type-reference .meo-results__actions dt {min-height:44px}
:root body.type-reference .meo-lp-sticky :is(a,p) {font-size:14px;line-height:1.6}
:root body.type-reference .site-nav {font-size:14px;gap:clamp(12px,1.2vw,18px)}
:root body.type-reference :is(.site-nav > a, .site-nav summary, .site-nav__submenu a) {font-size:14px}
:root body.type-reference .site-header__contact {font-size:14px}
:root body.type-reference :is(.mobile-menu nav > a, .mobile-menu nav > details > summary) {font-size:16px}
:root body.type-reference .mobile-menu__sub a {font-size:14px}

@media (min-width:768px) and (max-width:1000px) {
  :root body.type-reference .mi-flow {grid-template-columns:1fr 1fr}
  :root body.type-reference .mi-execution {grid-column:1/-1}
  :root body.type-reference .mi-execution ul {display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
}
@media (max-width:767px) {
  :root body.type-reference {--reading-lead:16px;--reading-body:16px}
  :root body.type-reference :is(.hero-a__lead, .section-lead, .services__lead,
    .experience__lead, .journal__lead, .contact__lead, .ec-section-lead,
    .mi-lead, .meo-section-intro > p, .meo-results__intro) {line-height:2}
  :root body.type-reference .hero-a__lead strong {font-size:18px}
  :root body.type-reference .hero-a__lead span br {display:none}
  :root body.type-reference .hero-a__actions {gap:14px;flex-wrap:wrap}
  :root body.type-reference .hero-a__actions .pill-link {padding-inline:20px}
  :root body.type-reference .hero-a__case-link {min-height:44px}
  :root body.type-reference .mi-flow {grid-template-columns:1fr}
  :root body.type-reference .mi-flow > div {padding:26px 22px;grid-column:auto}
  :root body.type-reference .mi-execution ul {display:block}
  :root body.type-reference .mi-heading {margin-block:26px}
  :root body.type-reference .mi-lead br {display:none}
  :root body.type-reference .mi-hero-cta {gap:14px;align-items:stretch}
  :root body.type-reference .mi-hero-cta > span {text-align:left}
  :root body.type-reference .mi-hero-cta > span br {display:initial}
  :root body.type-reference .mi-opening {align-items:flex-start;gap:10px}
  :root body.type-reference .mi-opening > p {font-size:14px}
  :root body.type-reference .mi-opening small {font-size:12px}
  :root body.type-reference .mi-offer > p {flex-basis:100%;margin:0}
  :root body.type-reference .mi-loop {align-items:flex-start;gap:16px;flex-wrap:wrap}
  :root body.type-reference .mi-loop > p {flex-basis:100%;margin:0}
  :root body.type-reference .mi-roles {grid-template-columns:1fr}
  :root body.type-reference .meo-results__actions {column-gap:10px}
  :root body.type-reference .meo-results__header > p {max-width:none}
  :root body.type-reference .meo-results__filters button {padding-inline:14px}
  :root body.type-reference .meo-results__details summary {align-items:start}
  :root body.type-reference .ec-faq summary {font-size:16px}
  :root body.type-reference .meo-lp-diagnosis__grid {grid-template-columns:minmax(0,1fr)}
  :root body.type-reference .meo-lp-diagnosis__grid > div {min-width:0}
  :root body.type-reference.meo-page .pill-link {min-width:0;max-width:100%;padding-inline:16px;gap:12px}
}
@media (max-width:420px) {
  :root body.type-reference .hero-a__actions {align-items:flex-start;flex-direction:column}
  :root body.type-reference .mi-flow > div {padding-inline:20px}
  :root body.type-reference .meo-results__actions {grid-template-columns:1fr;gap:12px}
  :root body.type-reference .meo-results__actions > div {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:12px}
  :root body.type-reference .meo-results__actions dt {min-height:0;margin:0}
  :root body.type-reference .meo-results__actions dd {display:flex;gap:6px}
  :root body.type-reference .meo-results__actions dd strong {display:inline;margin:0}
}
@media (max-width:600px) {
  :root body.type-reference .service-overview__grid {grid-template-columns:1fr;gap:12px}
  :root body.type-reference .service-overview__card {display:grid;grid-template-columns:28px 1fr;gap:8px 12px;padding:22px 24px 26px}
  :root body.type-reference .service-overview__number {grid-column:1;font-size:13px;padding-top:4px}
  :root body.type-reference .service-overview__card h3 {grid-column:2;margin:0;font-size:20px}
  :root body.type-reference .service-overview__card p {grid-column:2;padding-right:12px}
  :root body.type-reference .service-overview__arrow {font-size:22px}
}

/* Remaining pages: same reading hierarchy, without altering the approved pilot. */
:root body.type-expanded :is(.a-format__lead p, .a-section-heading > div > p,
  .a-contact__lead, .ec-hero__lead, .s-hero__lead, .s-section-lead,
  .c-index-header__lead > p, .c-introduction__lead, .j-index-lead,
  .j-article-lead, .n-index-header__lead, .n-article-lead,
  .p-hero__copy > p, .p-introduction) {
  font-size:var(--reading-lead);font-weight:500;line-height:2.2;letter-spacing:.01em;
}
:root body.type-expanded :is(.a-method-card > p, .a-expertise > p,
  .a-team__promise > p, .a-belief__grid p, .a-profile__table dd,
  .ec-challenges-list li, .ec-metric > p, .ec-timeline > p:not(.ec-note),
  .case-teaser__description, .report-overview__summary > p:not(.report-target-note),
  .report-finding p:not(.report-finding__value), .report-documents__heading > p, .report-preview__caption p,
  .ui-proposal__heading p:not(.report-label), .ui-proposal__caption,
  .ui-proposal__outcome p:not(.report-label), .ui-proposal__perspective p:not(.report-label),
  .ec-check-list li, .ec-plan__description, .pricing-breakdown__note,
  .ec-addon > p:not(.ec-note), .ec-task-list dd, .ec-promise-copy p,
  .cooperation-copy > p, .cooperation-list p, .ec-contact__panel > p:not(.section-kicker),
  .s-approach__copy p, .s-service-lead, .s-service-table dd,
  .s-service-callout > p, .s-start-step p, .s-maps > div > p:not(.section-kicker),
  .s-promise > div > p, .c-card__summary, .c-story-header__client,
  .c-meo-link p:not(.c-eyebrow), .c-approach p, .c-contact__inner > div > p:not(.c-eyebrow),
  .j-editorial-note > p:not(.j-editorial-note__title), .j-editorial-policy > div > p,
  .j-cta__intro > p:not(.j-eyebrow), .n-item__body > p, .n-journal-link > div > p,
  .n-contact__inner > div > p:not(.n-eyebrow)) {
  font-size:var(--reading-body);font-weight:500;line-height:2;letter-spacing:.01em;
}

/* Long-form text retains a comfortable reading size, including report/article pages. */
:root body.type-expanded :is(.a-message__prose p, .c-prose > p,
  .j-article-body > section > p, .j-article-body > section > ul,
  .j-article-body > section > ol, .n-article-body > p,
  .n-article-body > section > p, .n-topic-list, .n-process p,
  .p-section > p:not(.p-section__note), .p-list, .p-fields dd, .p-company dd) {
  font-size:var(--reading-lead);font-weight:500;line-height:2.2;letter-spacing:.01em;
}
:root body.type-expanded :is(.article-steps p, .article-note dd, .article-diagram p,
  .meo-evidence p:not(.source-note), .meo-evidence li,
  .meo-tile > p, .article-takeaway) {
  font-size:var(--reading-body);font-weight:500;line-height:2;letter-spacing:.01em;
}
:root body.type-expanded :is(.a-format__principles li,
  .a-team__facts dt, .a-profile__table dt, .a-profile__table small,
  .ec-hero__label, .ec-plan__tax, .report-preview__caption,
  .pricing-breakdown__term, .s-service-audience, .s-service-note,
  .s-start-note, .s-timeline__steps p, .c-card__client,
  .c-metric dt, .c-metric dd small,
  .c-journey-steps p, .c-sources li, .c-story-author p,
  .j-toc li, .j-toc__back, .j-article-author p:not(.j-eyebrow),
  .j-editorial-note__steps, .p-external-links li) {
  font-size:14px;line-height:1.9;
}
:root body.type-expanded :is(.a-team__qualification, .report-chart__note,
  .report-target-note, .report-sample__disclaimer, .report-sample__footer > p,
  .ui-proposal__bottom p, .s-service-note,
  .c-period-note, .c-card__caption, .c-archive__note, .c-contact__note,
  .c-notes li, .c-figure figcaption, .j-policy-note, .j-sample-notice,
  .j-review-notice, .j-cta__note, .j-article-meta, .source-note,
  .meo-caption, .n-draft-note, .n-archive__note, .n-body-note,
  .p-draft-note, .p-section__note, .p-next__note) {
  font-size:13px;line-height:1.9;letter-spacing:.01em;
}
:root body.type-expanded :is(.a-local-nav a, .a-format__nav a, .a-profile__map-link,
  .s-local-nav a, .s-text-link, .c-text-link, .c-toc a, .c-button,
  .j-text-link, .j-filters button, .journal-filter, .j-cta__button,
  .n-text-link, .n-contact__button, .n-aside-back, .n-post-nav a,
  .p-contents a, .p-next a, .brand-film__transcript summary) {
  font-size:14px;line-height:1.7;
}
:root body.type-expanded :is(.a-method-card h3, .a-expertise h3,
  .ec-metric h3, .report-finding h4, .s-start-step h3) {
  font-size:20px;line-height:1.8;
}
:root body.type-expanded :is(.cooperation-list strong, .report-finding h3,
  .s-service-table dt, .ec-task-list dt, .p-fields dt, .p-company dt) {
  font-size:16px;line-height:1.8;
}
:root body.type-expanded :is(.a-format__lead, .ec-hero__bottom > *,
  .s-hero__bottom > *, .s-service-grid > *, .c-index-header__lead,
  .c-contact__inner > *, .j-cta__grid > *, .n-contact__inner > *) {min-width:0}
:root body.type-expanded :is(.j-article-body, .n-article-body, .p-document, .c-prose) {min-width:0}
:root body.type-expanded :is(.report-preview__caption p, .ui-proposal__caption) {min-height:0}
:root body.type-expanded .j-toc a {font-size:14px;line-height:1.9;padding-block:9px}
:root body.type-expanded .j-toc a::before {font-size:12px;line-height:2.2}
:root body.type-expanded .j-toc summary {font-size:14px;letter-spacing:.02em}
:root body.type-expanded .p-contents a {padding-block:9px}
:root body.type-expanded :is(.a-profile__table dd, .p-company dd, .p-fields dd) {overflow-wrap:anywhere}
@media(max-width:767px) {
  :root body.type-expanded :is(.a-format__lead p, .a-section-heading > div > p,
    .a-contact__lead, .ec-hero__lead, .s-hero__lead, .s-section-lead,
    .c-index-header__lead > p, .c-introduction__lead, .j-index-lead,
    .j-article-lead, .n-index-header__lead, .n-article-lead,
    .p-hero__copy > p, .p-introduction, .a-message__prose p, .c-prose > p,
    .j-article-body > section > p, .j-article-body > section > ul,
    .j-article-body > section > ol, .n-article-body > p,
    .n-article-body > section > p, .n-topic-list, .n-process p,
    .p-section > p:not(.p-section__note), .p-list, .p-fields dd, .p-company dd) {line-height:2}
  :root body.type-expanded :is(.pill-link, .c-button, .j-cta__button, .n-contact__button) {
    min-width:0;max-width:100%;gap:12px;padding-inline:18px;white-space:normal;
  }
  :root body.type-expanded .ec-hero__lead br {display:none}
  :root body.type-expanded :is(.c-index-header__lead > p, .n-index-header__lead) br {display:none}
  :root body.type-expanded :is(.ec-method-grid, .ec-metrics-grid, .report-findings,
    .s-start-grid, .a-expertise-grid) {grid-template-columns:minmax(0,1fr)}
  :root body.type-expanded .consult-flow__header {align-items:flex-start}
}

/* Preserve emphasis and link prominence separately from explanatory body text. */
:root body.type-expanded .c-key-insight p {font-size:max(17px,var(--reading-lead));font-weight:500;line-height:2}
:root body.type-expanded .ui-report-jump {font-size:14px;line-height:1.9}

/* Complete the same scale on secondary navigation and interactive controls.
   Target the text-bearing elements: parent sizes alone cannot override children. */
:root body.type-reference :is(.a-text-link, .availability__link,
  .service-overview header > a, .news__archive-link, .case-teaser__all a,
  .ec-case__link > span:first-child, .s-service-back, .c-approach__links a,
  .c-toc summary, .c-sources a, .c-story-author a, .c-figure figcaption a,
  .j-hero-scroll, .n-inline-link, .n-article-footer a, .n-journal-link__action,
  .mi-sample-inline, .mi-sample-card__copy > strong, .mi-sample-card__preview > span,
  .meo-lp-text-link, .meo-detail summary, .motion-toggle, .brand-film__play,
  .brand-film__transcript summary, .report-chart__replay, .report-preview__link,
  .report-dialog__close, .report-dialog__nav button, .report-dialog__nav a,
  .j-cta__conditions > span) {font-size:14px;line-height:1.8}
:root body.type-reference :is(.brand-film__transcript > div > p,
  .meo-tab-panel > div > p:not(.ec-note):not(.meo-tab-panel__question)) {
  font-size:var(--reading-body);font-weight:500;line-height:2;
}
:root body.type-reference :is(.report-metric dt, .report-label,
  .web-measure__item p, .meo-audit-board__checks > div > p,
  .meo-improvement-flow p, .meo-voice-visual__title,
  .meo-lp-diagnosis__sheet li, .meo-lp-diagnosis__sheet li strong,
  .meo-lp-diagnosis__sheet > p, .meo-task__owner,
  .s-media-tags li, .s-content-flow li, .s-timeline__duration,
  .a-small-label, .article-note dt) {font-size:14px;line-height:1.9}
:root body.type-reference :is(.report-metric small, .report-metric dd > span,
  .report-sheet__setting, .report-sample__badge, .meo-results__growth,
  .c-metric dd > span, .c-card__result small, .c-card__result > div > span,
  .journal-category, .c-category, .c-tags li, .n-category,
  .j-sample-label, .j-result-count, .c-archive__top > p,
  .n-archive__top > p, .brand-film__sound, .a-message__signature > span,
  .a-access__info span, .a-team__structure small,
  .case-teaser__figure figcaption, .c-cover figcaption, .hero-caption,
  .meo-search-figure figcaption) {font-size:13px;line-height:1.9}
:root body.type-reference .motion-toggle {min-height:44px}
:root body.type-reference .report-chart__tools {flex-wrap:wrap}
:root body.type-reference .report-metric dt {min-height:3.8em}
:root body.type-reference .meo-results__change-heading {flex-wrap:wrap}
/* journal-reading.css pins this note with !important; retain the new note scale. */
:root body.type-expanded .meo-summary .source-note {font-size:13px !important}
@media(max-width:420px) {
  :root body.type-reference .report-metrics {grid-template-columns:1fr;gap:14px}
  :root body.type-reference .report-metric {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:baseline}
  :root body.type-reference .report-metric dt {min-height:0}
  :root body.type-reference .report-metric dd {margin:0;text-align:right}
}
