:root {
  --type-readable-body: 15px;
  --type-readable-note: 14px;
  --type-body-leading: 1.8;
  --type-heading-weight: 800;
  --type-label-weight: 700;
}
/* Preserve approved display headings and CTA scales; improve dense body copy. */
@media (min-width: 1101px) {
  .why-lak__reason h3 { font-size: 16px; font-weight: var(--type-heading-weight); }
  .why-lak__reason p:not(.why-lak__number) { font-size: var(--type-readable-body); line-height: var(--type-body-leading); }
}
@media (max-width: 600px) {
  .products__examples p,
  .products__support-list p,
  .products__extensions p,
  .products__teaser p:not(.products__release) { font-size: var(--type-readable-body); line-height: var(--type-body-leading); }
  .products .products__note,
  .products__principles li,
  .products__context { font-size: var(--type-readable-note); }
}

/* One label hierarchy; does not change Japanese headings or body typography. */
p.section-eyebrow { display:block; margin:0 0 16px; padding:0; color:#0965d6; font-family:"Noto Sans JP",sans-serif; font-size:14px; font-weight:600; line-height:1.5; letter-spacing:.1em; }
p.section-eyebrow::before,p.section-eyebrow::after { content:none; }
.dx-ai__labels { display:block; margin:0; }
@media(max-width:600px) { p.section-eyebrow { margin-bottom:12px; font-size:13px; } }

/* Section-heading alignment only. The existing artwork, grids and cards retain
   their own containers; offsets apply to the heading blocks, not those layouts. */
:root {
  --section-heading-size: clamp(52px, calc(1.176471vw + 39.058824px), 56px);
  --section-heading-inset: calc(max(0px, (100vw - 1440px) / 2) + 5.2vw);
  --section-heading-lead-gap: 20px;
}
main :is(.approach__heading, .solution-map__heading, .products__heading,
         .dx-ai__heading, .why-lak__heading, .dx-column__heading) > h2 {
  margin-inline: 0;
  font-size: var(--section-heading-size);
  text-wrap: balance;
}
main .solution-map__heading > h2 { font-size: min(var(--section-heading-size), 52px); word-break: keep-all; }
main :is(.approach__lead, .solution-map__lead, .products__lead,
         .dx-ai__lead, .why-lak__lead, .dx-column__lead) {
  margin-inline: 0;
  margin-top: var(--section-heading-lead-gap);
}
main .why-lak__heading > h2 { margin-bottom: 0; }
main :is(.approach__heading, .dx-ai__heading, .why-lak__heading) {
  margin-inline: calc(var(--section-heading-inset) - var(--heading-container-inset));
}
.approach__heading { --heading-container-inset: calc(max(0px, (100vw - 1920px) / 2) + 4.2vw); }
.dx-ai__heading { --heading-container-inset: calc(max(4.6vw, (100vw - 1308px) / 2) + 41px); }
.why-lak__heading { --heading-container-inset: calc(max(0px, (100vw - 1920px) / 2) + min(2.4vw, 46.08px)); }
/* Preserve the emphasis and the approved two-column story layout. */
main .challenges__intro > h2 { font-size: clamp(46px, 5.14vw, 72px); }
main .contact-cta__copy > h2 { font-size: min(4.9cqw, 72px); }
@media(max-width:1100px) {
  .dx-ai__heading { --heading-container-inset: calc(3vw + 27px); }
  .why-lak__heading { --heading-container-inset: 28px; }
}
@media(max-width:1000px) {
  :root { --section-heading-size: 40px; --section-heading-inset: 32px; }
  main .contact-cta__copy > h2 { font-size: clamp(32px, 5.6vw, 52px); }
}
@media(max-width:800px) {
  .approach__heading { --heading-container-inset: 24px; }
  .dx-ai__heading { --heading-container-inset: 49px; }
  main .challenges__intro > h2 { font-size: 48px; }
}
@media(max-width:600px) {
  :root { --section-heading-size: 32px; --section-heading-inset: 24px; --section-heading-lead-gap: 18px; }
  .dx-ai__heading { --heading-container-inset: 25px; }
  .why-lak__heading { --heading-container-inset: 24px; }
  main :is(.challenges__intro, .contact-cta__copy) > h2 { font-size: clamp(32px, 9vw, 38px); }
  main .contact-cta__copy > h2 span { white-space: normal; text-wrap: balance; word-break: keep-all; }
}
@media(max-width:359px) {
  :root { --section-heading-size: 28px; --section-heading-inset: 20px; }
  .approach__heading, .why-lak__heading { --heading-container-inset: 20px; }
  .dx-ai__heading { --heading-container-inset: 23px; }
}
@media(max-width:320px) {
  main .contact-cta__copy > h2 { font-size: 26px; }
}
