/* Shared subpage compositions, following the homepage's blue / paper / navy palette. */
html:has(.hallmark-page), body.hallmark-page { overflow-x: clip; }
html:has(.hallmark-page) { scroll-behavior: auto; }
.hallmark-page { --hm-rule: #dce2ec; --hm-paper: #fff; background: var(--hm-paper); }
.hallmark-page main { counter-reset: chapter; }
.hallmark-page main [id] { scroll-margin-top: 92px; }
.hallmark-page main > section { overflow: visible; }
.hallmark-page main :is(h1,h2,h3,p,li,strong,span) { overflow-wrap: anywhere; }
.hallmark-page main :is(h1,h2,h3) { word-break: keep-all; }
.hallmark-page main :is(a,button,summary,input,select,textarea):focus-visible { outline: 3px solid #0047c1; outline-offset: 4px; }
.hallmark-page .container { max-width: 1240px; }
.hallmark-page :is(.section-padding,.reader-section) { padding-block: 80px !important; }
.hallmark-page main > section:first-child { padding: 64px 0 56px !important; background: #fff !important; border: 0 !important; }
.hallmark-page .type-page-title { font-size: clamp(36px,4.8vw,68px) !important; line-height: 1.08 !important; letter-spacing: -.045em; }
.hallmark-page .type-section-title { font-size: clamp(27px,3.1vw,40px) !important; line-height: 1.28 !important; }
.hallmark-page :is(.section-tag,.reader-kicker,.kicker,[class$="-kicker"]) { margin-bottom: 16px; line-height: 1.5; }
.hallmark-page .section-tag { width: fit-content; border: 0; border-radius: 0; background: none; padding: 0; }
.hallmark-page :is(.intro,.section-intro,.section-header) { text-align: left; margin-bottom: 36px !important; }
.hallmark-page :is(.intro,.section-intro,.section-header) p { max-width: 68ch; }
.hallmark-page :is(.hero-aside,.hero-facts) { border: 0 !important; border-left: 2px solid #0047c1 !important; padding: 24px 0 24px 28px !important; background: transparent !important; border-radius: 0 !important; box-shadow: none !important; }
.hallmark-page :is(.hero-aside,.hero-facts) strong { color: #151b2a !important; }
.hallmark-page :is(.hero-aside,.hero-facts) p { color: #455064 !important; }
.hm-page-index { padding-block: 22px 26px; border-top: 1px solid var(--hm-rule); border-bottom: 1px solid var(--hm-rule); }
.hm-index-label { display: block; color: #687386; font-size: 14px; margin-bottom: 16px; }
.hm-page-index ol { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; gap: 12px 28px; }
.hm-page-index li { flex: 1 1 180px; min-width: 0; }
.hm-page-index a { display: flex; gap: 12px; color: #151b2a; font-size: 14px; line-height: 1.6; text-decoration: none; padding-block: 4px; }
.hm-page-index a span { color: #0047c1; flex-shrink: 0; font-variant-numeric: tabular-nums; }
.hm-page-index a:hover { color: #0047c1; text-decoration: underline; text-underline-offset: 4px; }
/* Replace repeated equal-card groups with open, ruled reading rows. */
.hallmark-page .reader-grid { grid-template-columns: 1fr !important; gap: 0 !important; margin-top: 32px; }
.hallmark-page .reader-card { display: grid; grid-template-columns: minmax(150px,.7fr) minmax(190px,1fr) minmax(0,1.5fr); gap: 20px 32px; align-items: start; padding: 28px 0 !important; border: 0 !important; border-top: 1px solid var(--hm-rule) !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
.hallmark-page .reader-card > * { margin: 0 !important; min-width: 0; }
.hallmark-page .reader-card p { font-size: 16px; }
.hallmark-page .reader-card > :is(ul,ol) { grid-column: 2 / -1; }
.hallmark-page .reader-actions { margin-top: 28px; }
.hallmark-page :is(.contact-band,.cta,.cta-band,.inquiry) { background: #eef2f8 !important; color: #151b2a !important; border-top: 1px solid var(--hm-rule) !important; }
.hallmark-page :is(.contact-band,.cta,.cta-band,.inquiry) :is(h2,p) { color: #151b2a !important; }
.hallmark-page .inquiry .btn-outline-white { color: #0047c1 !important; border-color: #0047c1 !important; }
/* Product: large object stage followed by a horizontal specification ledger. */
.hm-product .product-hero-grid { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr) !important; gap: 48px !important; }
.hm-product .product-visual { min-height: 420px !important; border: 0 !important; border-radius: 0 !important; background: #edf0f4 !important; box-shadow: none !important; padding: 38px 28px 24px !important; }
.hm-product .product-visual:hover, .hm-product .product-visual:hover img { transform: none !important; }
.hm-product .product-visual img { max-height: 340px !important; max-width: 100% !important; }
.hm-product .product-visual figcaption { background: transparent !important; box-shadow: none !important; border: 0 !important; border-radius: 0 !important; padding: 12px 0 0 !important; line-height: 1.6; text-align: center; }
.hm-product .product-hero-spec-bar { border: 0 !important; border-top: 1px solid var(--hm-rule) !important; border-radius: 0 !important; box-shadow: none !important; padding: 24px 0 0 !important; }
.hm-product .spec-bar-header { flex-wrap: wrap; align-items: baseline !important; gap: 8px 16px !important; }
.hm-product .spec-bar-header > span { margin: 0 !important; line-height: 1.5 !important; }
.hm-product .spec-bar-kicker { padding: 0 !important; background: none !important; }
.hm-product .spec-bar-grid { gap: 0 !important; }
.hm-product .spec-bar-card { border: 0 !important; border-left: 1px solid var(--hm-rule) !important; background: transparent !important; border-radius: 0 !important; padding: 12px 22px !important; }
.hm-product .spec-bar-card:first-child { padding-left: 0 !important; border-left: 0 !important; }
.hm-product .spec-bar-card:hover { transform: none !important; box-shadow: none !important; }
.hm-product :is(.feature-grid,.capability-grid) { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 0 48px !important; }
.hm-product :is(.feature-grid,.capability-grid) > * { border: 0 !important; border-top: 1px solid var(--hm-rule) !important; padding: 28px 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
.hm-product .measurement-grid { grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); }
.hm-products-viiew-max #hm-section-7 { padding-top: 40px !important; }
.hm-products-viiew-max .measurement-grid { align-items: start !important; gap: 40px; }
.hm-products-viiew-max .operation-list { margin-top: 0; }
.hm-products-viiew-max .measurement-shot { margin: 0; }
.hm-product .youtube-evidence-grid { gap: 32px; }
/* The training rows sit directly on navy after removing card backgrounds. */
.hm-product #ai-training-scale .dataset-card h3 { color: #f5f8ff !important; }
.hm-product #ai-training-scale .dataset-card p { color: #cbd5e1 !important; }
.hm-product #ai-training-scale .dataset-card small { color: #38bdf8 !important; }
.hm-product #ai-training-scale .dataset-card { border-top-color: #475569 !important; }
/* Company: manifesto, open research ledger, then business evidence. */
.hm-company .company-hero-grid { grid-template-columns: minmax(0,1.6fr) minmax(0,.65fr) !important; align-items: end; gap: 64px !important; }
.hm-company .company-slogan-section { padding: 64px 0; background: #eef2f8; }
.hm-company .company-slogan-section :is(h2,h3) { color: #151b2a !important; }
.hm-company .company-slogan-section p { color: #455064 !important; }
.hm-company .company-slogan-section small { color: #0047c1 !important; }
.hm-company .company-slogan-grid { grid-template-columns: 1fr !important; gap: 0 !important; }
.hm-company .company-slogan-grid article { display: grid; grid-template-columns: 180px minmax(0,1fr) minmax(0,1.2fr); gap: 28px; border: 0 !important; border-top: 1px solid #cbd4e1 !important; border-radius: 0 !important; background: transparent !important; padding: 26px 0 !important; }
.hm-company .company-slogan-grid article > * { margin: 0 !important; }
.hm-company .evidence-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
/* History: a dated archive rather than a stack of floating cards. */
.hm-history .history-hero .container { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 56px; }
.hm-history .history-hero :is(.section-tag,h1) { grid-column: 1/-1; margin: 0; }
.hm-history .history-hero .thesis { font-size: 24px; color: #0047c1; line-height: 1.6; }
.hm-history .timeline { gap: 0; }
.hm-history .year-card { display: grid; grid-template-columns: 230px minmax(0,1fr); gap: 12px 40px; border: 0; border-top: 1px solid var(--hm-rule); border-radius: 0; padding: 32px 0; background: transparent; box-shadow: none; }
.hm-history .year-head { grid-row: span 2; display: block; border: 0; margin: 0; padding: 0; }
.hm-history .year { font-size: 48px; font-weight: 600; color: #0047c1; letter-spacing: -.05em; }
.hm-history .year-head strong { display: block; margin-top: 12px; font-size: 14px; line-height: 1.6; }
.hm-history .year-card :is(h3,ul) { margin: 0; }
.hm-history .evolution { grid-template-columns: 1fr !important; gap: 0; }
.hm-history .evolution > div { display: grid; grid-template-columns: 220px minmax(0,1fr) minmax(0,1.4fr); gap: 24px; border: 0; border-top: 1px solid var(--hm-rule); padding: 24px 0; background: none; }
/* Documents: generous paper-like exhibits with compact metadata. */
.hm-archive .evidence-hero-grid { grid-template-columns: minmax(0,1.5fr) minmax(0,.7fr) !important; gap: 56px; }
.hm-archive :is(.cert-gallery,.ip-gallery) { gap: 32px !important; }
.hm-archive :is(.cert-gallery-card,.ip-gallery-card) { border-radius: 0 !important; box-shadow: none !important; }
.hm-archive :is(.cert-gallery-index,.ip-gallery-index,.category-index) { border-radius: 0 !important; }
.hm-archive :is(.cert-gallery-section,.ip-gallery-section) { padding-block: 56px; border-top: 1px solid var(--hm-rule); }
.hm-archive :is(.cert-gallery-section,.ip-gallery-section) .group-head { grid-template-columns: minmax(180px,.65fr) minmax(0,1.5fr) !important; gap: 40px; }
/* Technical and implementation pages: large evidence and ordered workflows. */
.hm-technical .case-hero-grid { grid-template-columns: minmax(0,1.5fr) minmax(0,.7fr) !important; }
.hm-technical .evidence-grid { grid-template-columns: minmax(0,1.5fr) minmax(0,1fr) !important; gap: 48px; }
.hm-technical .field-frame { border-radius: 0; }
.hm-technical :is(.four-grid,.summary-grid) { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 0 40px; }
.hm-technical :is(.four-grid,.summary-grid) > * { border-radius: 0; border: 0; border-top: 1px solid var(--hm-rule); padding: 24px 0; background: transparent; box-shadow: none; }
.hm-solution .solution-hero-grid { grid-template-columns: minmax(0,1.4fr) minmax(0,.7fr) !important; gap: 64px; }
.hm-solution .solution-lead strong { color: #0047c1 !important; }
.hm-solution .reader-flow { display: block; }
.hm-solution .reader-step { display: grid; grid-template-columns: 56px minmax(180px,.8fr) minmax(0,1.4fr); gap: 24px; padding: 28px 0 !important; border: 0 !important; border-top: 1px solid var(--hm-rule) !important; border-radius: 0 !important; background: none !important; box-shadow: none !important; }
.hm-solution .reader-step > * { margin: 0; }
.hm-solution .reader-step small { font-size: 28px; color: #0047c1; line-height: 1; }
.hm-solution .reader-step span { font-size: 16px; }
.hm-solutions-3d-printing .proof-grid { grid-template-columns: 1fr !important; gap: 0; }
.hm-solutions-3d-printing .proof-grid > * { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1fr); gap: 24px; border: 0; border-top: 1px solid var(--hm-rule); border-radius: 0; padding: 28px 0; }
/* Contact: quiet writing surface paired with a compact contact directory. */
.hm-contact .contact-hero { padding-bottom: 32px !important; }
.hm-contact .contact-grid { grid-template-columns: minmax(0,1.25fr) minmax(0,.75fr); gap: 80px !important; align-items: start; }
.hm-contact main > section:last-child { background: #fff !important; padding-top: 32px !important; }
.hm-contact :is(.form-card,.info-panel) { border: 0; border-radius: 0; padding: 0; background: transparent; box-shadow: none; }
.hm-contact .form-card { border-top: 3px solid #0047c1; padding-top: 28px; }
.hm-contact .info-panel { padding: 28px; background: #eef2f8; }
.hm-contact .route-grid { grid-template-columns: 1fr; gap: 0; }
.hm-contact .route { border: 0; border-top: 1px solid #cbd4e1; border-radius: 0; padding: 18px 0; background: transparent; }
.hm-contact .form-control { min-height: 48px; font-size: 16px; }
.hm-company-intro { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 48px; align-items: center; }
.hm-company-intro .type-page-title { font-size: clamp(34px,4.2vw,60px) !important; }
.hm-company-intro .company-lead { margin-top: 24px; max-width: none; font-size: 16px; word-break: keep-all; overflow-wrap: break-word; }
.hm-company-evidence { margin: 0; background: #eef2f8; padding: 20px; }
.hm-company-evidence img { display: block; width: 100%; height: auto; }
.hm-company-evidence figcaption { font-size: 14px; line-height: 1.6; color: #455064; margin: 16px 0 12px; }
.hm-company-evidence a { display: inline-block; font-size: 14px; }
.hm-contents summary { cursor: pointer; font-size: 14px; color: #455064; padding-block: 8px; }
.hm-contents[open] summary { margin-bottom: 12px; }
.hm-company .evidence-item { border-radius: 0; box-shadow: none; }
@media (max-width: 760px) {
  .hm-company-intro { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .hm-company-evidence { padding: 12px; }
  .hm-company-intro .company-lead { margin-top: 18px; }
  .hm-page-index { padding-block: 8px; }
  .hm-contents summary { min-height: 44px; align-content: center; }
}
.hallmark-page .technical-glossary :is(dt,dd) { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 1024px) {
  .hallmark-page:has(.main-nav.open) { padding-top: var(--header-height); }
  .hallmark-page:has(.main-nav.open) .site-header { position: fixed !important; width: 100%; }
  .hm-product .product-hero-grid { gap: 28px !important; }
  .hm-product .product-visual { min-height: 320px !important; }
  .hallmark-page .reader-card { grid-template-columns: minmax(0,1fr) minmax(0,1.5fr); }
  .hallmark-page .reader-card small { grid-column: 1/-1; }
  .hm-company .company-slogan-grid article { grid-template-columns: minmax(0,1fr) minmax(0,1.4fr); }
  .hm-company .company-slogan-grid small { grid-column: 1/-1; }
  .hm-contact .contact-grid { gap: 36px !important; }
}
@media (max-width: 760px) {
  .hallmark-page :is(.section-padding,.reader-section) { padding-block: 48px !important; }
  .hallmark-page main > section:first-child { padding-block: 40px 32px !important; }
  .hallmark-page .container { padding-inline: 20px; }
  .hm-page-index ol { display: grid; grid-template-columns: 1fr; gap: 4px; }
  .hm-page-index li { border-top: 1px solid #edf0f4; }
  .hm-page-index a { min-height: 44px; align-items: center; }
  .hallmark-page :is(.company-hero-grid,.product-hero-grid,.evidence-hero-grid,.case-hero-grid,.solution-hero-grid,.contact-grid) { grid-template-columns: minmax(0,1fr) !important; gap: 28px !important; }
  .hallmark-page .reader-card { display: block; }
  .hallmark-page .reader-card > * + * { margin-top: 12px !important; }
  .hm-product .product-hero-visual-wrap { order: 0; }
  .hm-product .product-visual { min-height: 260px !important; padding: 24px 16px !important; }
  .hm-product .product-visual img { max-height: 280px !important; }
  .hm-product .spec-bar-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  .hm-product .spec-bar-card { padding: 16px 12px !important; border-top: 1px solid var(--hm-rule) !important; }
  .hm-product .spec-bar-card:nth-child(odd) { border-left: 0 !important; padding-left: 0 !important; }
  .hallmark-page :is(.feature-grid,.capability-grid,.measurement-grid,.evidence-grid,.four-grid,.summary-grid) { grid-template-columns: minmax(0,1fr) !important; }
  .hm-history .history-hero .container { display: block; }
  .hm-history .history-hero .thesis { font-size: 20px; margin-block: 24px; }
  .hm-history :is(.year-card,.evolution > div), .hm-company .company-slogan-grid article { display: block; }
  .hm-history :is(.year-card,.evolution > div) > * + *, .hm-company .company-slogan-grid article > * + * { margin-top: 12px !important; }
  .hm-history .year-head { margin-bottom: 24px; }
  .hm-archive :is(.cert-gallery-section,.ip-gallery-section) .group-head { grid-template-columns: minmax(0,1fr) !important; gap: 16px; }
  .hm-archive :is(.cert-feature-gallery,.ip-feature-gallery) { grid-template-columns: minmax(0,1fr) !important; overflow: visible; gap: 28px; }
  .hm-solution .reader-step { grid-template-columns: 36px minmax(0,1fr); gap: 12px 16px; }
  .hm-solution .reader-step span { grid-column: 2; }
  .hm-solutions-3d-printing .proof-grid > * { display: block; }
  .hm-contact .info-panel { padding: 24px 20px; }
}
