/* Shared public type scale. Load after page-migration.css, before media-scale.css.
   Reference proportions: ui.com desktop/mobile, measured 2026-10-22.
   Font sizes belong to content roles; SVG artwork and topology labels keep their
   source geometry. Media widths are deliberately independent of reading width. */
:root {
  --type-hero: 42px;
  --type-h2: 30px;
  --type-h3: 22px;
  --type-card: 18px;
  --type-body: 16px;
  --type-lead: 18px;
  --type-ui: 14px;
  --type-caption: 13px;
  --type-copy-leading: 1.65;
  --reading-size: var(--type-body);
  --reading-leading: var(--type-copy-leading);
  --reading-width: min(680px, 72ch);
  --interface-size: var(--type-ui);
}

:lang(zh) { --type-copy-leading: 1.8; }
body { font-size: var(--type-body); line-height: var(--type-copy-leading); }
h1 { font-size: var(--type-hero); line-height: 1.18; letter-spacing: -.035em; }
h2 { font-size: var(--type-h2); line-height: 1.25; letter-spacing: -.025em; }
h3 { font-size: var(--type-h3); line-height: 1.35; letter-spacing: -.015em; }
h4 { font-size: var(--type-card); line-height: 1.45; }
small { font-size: var(--type-caption); line-height: 1.55; }

/* Hero headings include the two existing home presentations. */
.hero h1, .page-hero h1, .product-intro h1, .review-page h1,
.eco-home h1, .cinema-home .cinema-hero h1, .network-planner h1 {
  font-size: var(--type-hero);
  line-height: 1.18;
  letter-spacing: -.035em;
}
.page-hero h1, .review-page h1 { max-width: 30ch; }
.hero .lead, .page-hero .lead, .review-page .lead, .product-intro .description,
.eco-intro-copy > p, .eco-intro-copy > p.eco-secondary,
.cinema-hero-bottom p, .cinema-human-caption > p:not(:first-child),
.npa-hero-lead {
  font-size: var(--type-lead);
  line-height: var(--type-copy-leading);
}
.page-hero .lead, .review-page .lead, .product-intro .description,
.cinema-hero-bottom p, .cinema-human-caption > p:not(:first-child),
.npa-hero-copy, .npa-hero-body { max-width: var(--reading-width); }
.page-hero .lead, .review-page .lead, .product-intro .description { margin-top: 20px; }

/* Section hierarchy stays compact even on a wide display. */
.section-heading h2, .platform-copy h2, .support-band h2,
.content-reading h2, .article-row h2, .empty h2,
.eco-section-intro h2, .eco-cloud-top h2, .eco-products-heading h2,
.eco-story-copy h2, .eco-service h2,
.cinema-story-heading h2, .cinema-home .cinema-human-caption h2,
.solution-directory-intro h2, .solution-results-group > h2, .solution-help h2,
.regional-solution-content > h2, .regional-media-copy h2,
.case-page .case-section h2, .npa-section-intro h2,
.film-provenance > h2, .review-context h2 {
  font-size: var(--type-h2);
  line-height: 1.28;
  letter-spacing: -.025em;
}
.cinema-home .cinema-chapter h3 { font-size: var(--type-h2); line-height: 1.3; }
.content-reading h3, .aside-card h3, .regional-solution-content h3, .product-notes h3,
.eco-ai-tasks h3, .eco-cloud-actions h3, .eco-control strong,
.cinema-cloud-anchor strong, .source-notes h3, .film-provenance h3,
.review-context > h3, .crm-phases h3, .npa-family-heading h3,
.npa-summary h3 {
  font-size: var(--type-h3);
  line-height: 1.35;
  letter-spacing: -.015em;
}
.product-card h3, .collection-card h3, .info-card h3, .industry-card h3,
.topology h3, .solution-directory-card h3, .eco-stage-label h2,
.case-page .aside-card h2, .solution-film h3, .npa-candidate h4 {
  font-size: var(--type-card);
  line-height: 1.4;
  letter-spacing: -.01em;
}
.planner-entry h2 { font-size: var(--type-h3); line-height: 1.4; }
.provenance-card h2 { font-size: var(--type-h3); line-height: 1.4; }

/* Text measures apply to prose rather than the article's visual children. */
.content-reading { max-width: none; }
.content-reading > p, .content-reading > ul, .content-reading > ol,
.content-reading > h2, .content-reading > h3, .content-reading .body-block,
.case-page .case-section > p, .case-page .case-section > ul,
.case-page .case-section > h2 {
  max-width: var(--reading-width);
}
.content-reading p, .content-reading li, .body-block p, .body-block ul,
.section-heading > p, .platform-copy > p, .support-band p,
.product-card p, .collection-card p, .info-card p, .industry-card p,
.topology p, .article-row p, .aside-card p,
.info-card ul, .product-intro ul,
.notice, .empty p, .faq-list p, .choice-row p,
.eco-stage-label p, .eco-control p, .eco-section-intro > p:last-child,
.eco-ai-tasks p, .eco-cloud-top > p:last-child, .eco-cloud-actions p,
.eco-story-copy > p:not(.eco-kicker), .eco-service p,
.cinema-story-heading > p:last-child, .cinema-chapter > p:not(.cinema-chapter-label),
.planner-entry p:not(.eyebrow), .solution-directory-intro p,
.solution-directory-card > p, .solution-help p,
.regional-solution-content p:not(.source-line), .regional-media-copy p,
.case-page .case-section li, .film-provenance > p, .film-provenance li > p,
.systems-glossary dt, .systems-glossary dd, .pim-preparation p,
.product-availability, .product-notes p {
  font-size: var(--type-body);
  line-height: var(--type-copy-leading);
}
.section-heading > p, .platform-copy > p, .support-band p,
.regional-media-copy p, .regional-solution-content p:not(.source-line),
.solution-directory-intro p, .solution-help p {
  max-width: var(--reading-width);
}
.content-reading p + p { margin-top: 18px; }
.content-reading h2 { margin-top: 40px; margin-bottom: 18px; }
.content-reading h3 { margin-top: 30px; margin-bottom: 14px; }
.value-list div { font-size: var(--type-body); line-height: var(--type-copy-leading); }
.quick-grid strong, .choice-row strong, .pim-preparation strong {
  font-size: var(--type-body); line-height: 1.5;
}
.faq-list summary { font-size: var(--type-body); line-height: 1.55; min-height: 48px; }

/* Complete original source chapters use the same hierarchy as authored pages. */
.source-chapter h2 { font-size: var(--type-h2); line-height: 1.28; margin-top: 44px; margin-bottom: 18px; }
.source-chapter h3 { font-size: var(--type-h3); line-height: 1.35; margin-top: 32px; margin-bottom: 16px; }
.source-chapter h4 { font-size: var(--type-card); line-height: 1.45; margin-top: 26px; margin-bottom: 14px; }
.source-paragraph, .source-chapter > ul, .source-chapter > ol {
  font-size: var(--type-body);
  line-height: var(--type-copy-leading);
}
.source-chapter h2, .source-chapter h3, .source-chapter h4,
.source-paragraph, .source-chapter > ul, .source-chapter > ol {
  max-width: var(--reading-width);
}
.source-paragraph { margin-top: 16px; margin-bottom: 16px; }
.source-topic-grid h3 { font-size: var(--type-card); line-height: 1.45; margin-bottom: 16px; }
.source-topic-nav a, .source-inline-links { font-size: var(--type-ui); line-height: 1.55; }
.source-figure figcaption { font-size: var(--type-caption); line-height: 1.6; max-width: var(--reading-width); }

/* Secondary copy remains visibly secondary without reducing the hit area. */
.eyebrow, .card-kicker, .collection-card .card-top, .eco-kicker,
.cinema-overline, .cinema-hero-top, .cinema-chapter-label,
.cinema-human-caption > p:first-child, .npa-eyebrow,
.source-line, .text-small, .filter-note, .modal-note, .language-notice,
.hero-bottom, .map-label, .solution-card-kind,
.case-facts dt, .regional-solution-content small,
.eco-stage-label > span, .eco-control small, .eco-control strong span,
.eco-compatibility, .eco-ai-image > span, .eco-ai-tasks article > span,
.eco-cloud-photo small, .eco-service small,
.cinema-scene-caption, .cinema-cloud-anchor small,
.film-provenance details, .film-provenance details p, .film-provenance code,
.quick-grid small, .case-facts dd, .article-row .case-card-location {
  font-size: var(--type-caption);
  line-height: 1.6;
}
.case-facts dd { font-size: var(--type-ui); }
.map-label b { font-size: var(--type-ui); }
.badge, .chip, .status-list small, .fallback-image small,
.info-card .number, .topology .number,
.platform-label, .platform-badge, .platform-pending > span:last-child,
.product-platform-details .platform-badge, .product-card .badge,
.product-card .compare-check, .solution-results-group > h2 small {
  font-size: var(--type-caption);
  line-height: 1.55;
}
.product-platform-details p { font-size: var(--type-ui) !important; line-height: 1.65; }
.platform-filter p { font-size: var(--type-caption); line-height: 1.65; }

/* Shared interface controls retain touch and keyboard target sizes. */
.btn, .btn.small, .link, .pagination, .eco-text-link, .eco-story-links a,
.cinema-case-link, .film-source-links a, .regional-media-enlarge > span,
.page-nav a, .result-count, .solution-result-count,
.product-card .link, .collection-card .link, .info-card .link,
.topology .link, .article-row .link, .planner-entry > .btn,
.solution-axis-link, .solution-directory-filters button {
  font-size: var(--type-ui);
  line-height: 1.5;
}
.btn, .btn.small { min-height: 44px; padding: 11px 18px; }
.link, .eco-text-link, .cinema-case-link, .page-nav a,
.solution-axis-link { min-height: 44px; }
.page-nav a { padding-top: 15px; padding-bottom: 15px; min-height: 52px; }
.head-inner { min-height: 80px; padding-top: 8px; padding-bottom: 8px; }
.nav-item > button, .nav-item > a, .locale-trigger { font-size: var(--type-ui); line-height: 1.5; min-height: 44px; }
.icon-btn { min-width: 44px; min-height: 44px; }
.film-control { font-size: var(--type-caption); min-height: 44px; }
.demo-bar, .demo-bar a { font-size: 12px; line-height: 1.5; }
.breadcrumb { font-size: var(--type-caption); line-height: 1.55; padding-top: 20px; padding-bottom: 20px; }
.breadcrumb a { min-height: 36px; }

/* Navigation typography is independent from the content heading scale. */
.mega-intro strong, .solutions-menu-intro > strong,
.mega-detail-heading h2, .product-menu-detail h2,
.native-product-detail-header h2 { font-size: var(--type-h3); line-height: 1.35; }
.mega-intro p, .mega-feature p, .solutions-menu-intro > p,
.product-menu-detail > p:not(.eyebrow) { font-size: var(--type-ui); line-height: 1.65; }
.mega-grid a strong, .mega-categories > div > a, .mega-child,
.mega-detail-grid h3, .mega-detail-grid .chip,
.product-nav-group h3, .product-category-entry > a,
.product-menu-detail .chip, .product-menu-detail > .link,
.solutions-menu-intro > .link, .solutions-mega section > h3,
.solution-menu-links > a, .solutions-mega section > .link,
.cloud-menu-intro .cloud-platform-label, .cloud-platform-control,
.native-product-group > h3, .native-product-category,
.native-product-column > h3, .native-product-column .solution-menu-links a,
.native-product-detail-header > .link {
  font-size: var(--type-ui);
  line-height: 1.5;
}
.mega-grid a span, .product-menu-detail > p.menu-detail-note,
.native-product-rail .menu-overview-links .link,
.native-product-subcategory { font-size: var(--type-caption); line-height: 1.55; }
.native-product-category, .native-product-subcategory,
.native-product-column .solution-menu-links a,
.product-category-entry > a, .mega-child, .solution-menu-links > a,
.cloud-platform-control, .mega-detail-grid .chip { min-height: 44px; }
/* Products columns use the same option scale at every navigation depth. */
.native-product-menu .native-product-category,
.native-product-menu .native-product-column .solution-menu-links a {
  font-size: var(--type-ui);
  line-height: 1.5;
  font-weight: 600;
}
.native-product-menu .native-product-detail-header h2 {
  font-size: var(--type-body);
  line-height: 1.5;
  font-weight: 700;
}
.native-product-menu .native-product-column > h3 {
  font-size: var(--type-ui);
  line-height: 1.5;
  font-weight: 700;
}
.native-product-menu .menu-overview-links .link,
.native-product-menu .native-product-detail-header > .link {
  font-size: var(--type-caption);
  line-height: 1.5;
}
.cloud-platform-control { padding-top: 10px; padding-bottom: 10px; }
.mobile-top-group > summary, .mobile-top-link { font-size: var(--type-card); line-height: 1.5; }
.mobile-product-group > summary, .mobile-product-group > a,
.mobile-product-category > summary, .mobile-product-category > a,
.mobile-cloud-section > a { font-size: var(--type-body); line-height: 1.6; }
.mobile-overview, .mobile-product-category > a.mobile-overview,
.mobile-cloud-section > h4 { font-size: var(--type-ui); line-height: 1.55; }
.sidebar h2 { font-size: var(--type-card); line-height: 1.4; }
.sidebar a, .sidebar-product-group > h3, .sidebar-product-group > h3 a,
.sidebar-product-group > a, .sidebar-product-subcategories > a,
.filter-group h3, .filter-group label,
.platform-filter legend, .sidebar .platform-filter label {
  font-size: var(--type-ui);
  line-height: 1.55;
}
.sidebar a, .sidebar-product-subcategories > a,
.sidebar-product-group > h3 a, .filter-group label { min-height: 44px; }
.filter-group label small { font-size: var(--type-caption); }
.home-product-groups h3 { font-size: var(--type-ui); line-height: 1.5; }
.home-product-groups section > div > a, .eco-product-index a {
  font-size: var(--type-card); line-height: 1.5; min-height: 56px;
}
.home-product-subcategories > a { font-size: var(--type-ui); line-height: 1.55; min-height: 44px; }

/* Native text inputs stay at 16px to prevent mobile browser zoom. */
.form-grid label, .solution-directory-filters label { font-size: var(--type-ui); line-height: 1.55; }
.search-box input, .form-grid input, .form-grid select, .form-grid textarea,
.review-toolbar input, .review-toolbar select,
.solution-directory-filters input, .solution-directory-filters select {
  font-size: 16px; line-height: 1.5; min-height: 44px; padding-top: 10px; padding-bottom: 10px;
}
.form-grid textarea { min-height: 144px; }
.search-box svg { top: 14px; }
.modal-head h2, .locale-dialog .modal-head h2 { font-size: var(--type-h3); line-height: 1.35; }
.locale-picker-intro, .locale-dialog .modal-note { font-size: var(--type-body); line-height: var(--type-copy-leading); }
.locale-region h3 { font-size: var(--type-card); line-height: 1.4; }
.locale-market-name h4, .locale-option strong { font-size: var(--type-body); line-height: 1.5; }
.locale-language { font-size: var(--type-ui); line-height: 1.5; min-height: 44px; }
.locale-market-name > span, .locale-baseline, .locale-option small { font-size: var(--type-caption); line-height: 1.55; }
.global-results strong { font-size: var(--type-body); line-height: 1.5; }
.global-results small { font-size: var(--type-caption); line-height: 1.6; }

/* Real source tables keep their scroll containers and cell geometry. */
.spec-table, .comparison-table, .download-table,
.spec-table th, .spec-table td, .comparison-table th, .comparison-table td,
.download-table th, .download-table td,
.source-table-scroll th, .source-table-scroll td {
  font-size: var(--type-ui); line-height: 1.65;
}
.spec-table th, .spec-table td, .comparison-table th, .comparison-table td,
.download-table th, .download-table td { padding: 14px 16px; }
.spec-table small, .comparison-table small, .download-table small,
.matrix-table small { font-size: var(--type-caption); line-height: 1.55; }
.matrix-table { font-size: var(--type-ui); line-height: 1.6; }
.comparison-table thead h2[style], #inquiry-preview .notice h2[style] {
  font-size: var(--type-h3) !important; line-height: 1.4;
}

/* Planning questions become quieter; the physical topology remains untouched. */
.network-planner { font-size: var(--type-body); line-height: var(--type-copy-leading); }
.npa-hero-body, .npa-section-intro p, .npa-question-help,
.npa-checks ul, .npa-candidate-reasons ul, .npa-empty, .npa-summary-text,
.npa-summary-actions > p:first-child {
  font-size: var(--type-body); line-height: var(--type-copy-leading);
}
.npa-journey a, .npa-hero-end button, .npa-question-group,
.npa-review-link, .npa-family-heading > span, .npa-candidate-reasons > p:first-child,
.npa-candidate-actions > a, .npa-summary-actions .btn, .npa-action-status,
.network-planner button, .network-planner .btn, .network-planner .npa-select-model {
  font-size: var(--type-ui); line-height: 1.55;
}
.network-planner button, .network-planner .btn,
.network-planner .npa-select-model, .npa-candidate-actions > a { min-height: 44px; }
.npa-question legend, .npa-checks h3, .npa-summary-actions strong {
  font-size: var(--type-card); line-height: 1.45;
}
.npa-option strong { font-size: var(--type-body); line-height: 1.45; }
.npa-option small { font-size: var(--type-ui); line-height: 1.55; }
.npa-number, .npa-section-index, .npa-journey b { font-size: var(--type-caption); line-height: 1.5; }
.npa-additional-notes { font-size: var(--type-ui); line-height: 1.6; }
.npa-additional-notes ul { font-size: var(--type-ui) !important; line-height: 1.65; }
.npa-memory-note, .npa-candidate-kind, .npa-local-status,
.npa-candidate-caution, .npa-result-footnote, .npa-consult-note,
.npa-family-note, .npa-diagram-caption {
  font-size: var(--type-caption) !important;
  line-height: 1.65;
}
.npa-option { padding-top: 14px; padding-bottom: 14px; }
.npa-question { margin-bottom: 28px; }
.npa-question-group:not(:first-child) { margin-top: 40px; }
.npa-hero-lead { margin-top: 20px !important; }
.npa-section-intro { margin-bottom: 30px; }

/* Footer and review utilities share the secondary interface scale. */
.footer h3 { font-size: var(--type-ui); line-height: 1.5; margin-bottom: 14px; }
.footer a, .footer-brand p, .footer-bottom, .footer-bottom a,
.footer-bottom button { font-size: var(--type-caption); line-height: 1.65; }
.footer a, .footer-bottom a, .footer-bottom button { min-height: 44px; }
.footer-bottom button[style] { font-size: var(--type-caption) !important; min-height: 44px !important; }
.review-dock a, .review-dock button, .save-bar,
.regional-diffs b, .regional-diffs p, .provenance-card dl,
.provenance-card dt, .provenance-card dd, #toast { font-size: var(--type-ui); line-height: 1.65; }
.review-dock a, .review-dock button { min-height: 44px; }
.calc-output small, .calc-output p { font-size: var(--type-ui); line-height: 1.65; }
.calc-output b { font-size: 36px; line-height: 1.25; }
.status-list b { font-size: 32px; line-height: 1.25; }
.dashboard-stat b { font-size: var(--type-h3); line-height: 1.3; }
.boot p { font-size: var(--type-body); line-height: var(--type-copy-leading); }
.eco-control strong { letter-spacing: -.02em; }
.cinema-cloud-word { font-size: clamp(72px, 9vw, 136px); }

/* Reduce text-led whitespace while retaining the established page structure. */
.section, .eco-home .section { padding-top: 72px; padding-bottom: 72px; }
.page-hero { padding-bottom: 48px; }
.section-heading { gap: 24px; margin-bottom: 32px; }
.cinema-ecosystem { padding-top: 80px; }
.cinema-hero-bottom { margin-top: 24px; }
.cinema-story-heading > p:last-child, .cinema-chapter > p:not(.cinema-chapter-label),
.cinema-human-caption > p:not(:first-child) { margin-top: 20px; }
.cinema-chapter { padding-top: 40px; padding-bottom: 48px; }
.source-chapter { margin-bottom: 56px; }
.npa-input-section { padding-top: 56px; padding-bottom: 72px; }
.npa-results, .npa-summary { padding-top: 56px; margin-top: 56px; }
.case-page .case-section { margin-top: 36px; margin-bottom: 36px; }
.case-page .case-section h2 { margin-bottom: 16px; }
.eco-section-intro { margin-bottom: 40px; }
.eco-product-index a { padding-top: 16px; padding-bottom: 16px; }
.film-provenance, .review-context { padding-top: 36px; padding-bottom: 36px; }

@media (max-width: 760px) {
  :root {
    --type-hero: 28px;
    --type-h2: 26px;
    --type-h3: 20px;
    --type-lead: 17px;
  }
  .head-inner { min-height: 72px; }
  .section, .eco-home .section { padding-top: 48px; padding-bottom: 48px; }
  .page-hero { padding-bottom: 36px; }
  .section-heading { gap: 18px; margin-bottom: 26px; }
  .page-hero .lead, .review-page .lead, .product-intro .description { margin-top: 16px; }
  .breadcrumb { padding-top: 16px; padding-bottom: 16px; }
  .content-reading h2, .source-chapter h2 { margin-top: 32px; margin-bottom: 16px; }
  .content-reading h3, .source-chapter h3 { margin-top: 26px; margin-bottom: 14px; }
  .source-chapter { margin-bottom: 40px; }
  .source-chapter h4 { margin-top: 22px; }
  .cinema-home .cinema-chapter h3 { font-size: var(--type-h3); }
  .cinema-ecosystem { padding-top: 56px; }
  .cinema-chapter { padding-top: 32px; padding-bottom: 36px; }
  .cinema-cloud-word { font-size: 15vw; }
  .eco-story-copy { padding-top: 48px; padding-bottom: 48px; }
  .case-page .case-section { margin-top: 28px; margin-bottom: 28px; }
  .spec-table th, .spec-table td, .comparison-table th, .comparison-table td,
  .download-table th, .download-table td { padding: 12px; }
  .npa-hero { padding-top: 28px; padding-bottom: 28px; }
  .npa-input-section { padding-top: 40px; padding-bottom: 48px; }
  .npa-results, .npa-summary { padding-top: 40px; margin-top: 40px; }
  .npa-question-group:not(:first-child) { margin-top: 32px; }
  .npa-summary-text { font-size: 15px; }
  .film-provenance, .review-context { padding-top: 28px; padding-bottom: 28px; }
  .calc-output b { font-size: 32px; }
}

/* Independent brand and case destinations share the global footer hierarchy. */
.footer-top { grid-template-columns: minmax(180px, 1.25fr) repeat(5, minmax(0, 1fr)); }
@media (max-width: 1300px) {
  .footer-top { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
