/* Wider, clearer Japanese B2B reading rhythm across every language edition.
   Keep the existing HL palette, artwork, content and native script typefaces. */
html { font-size: 112.5%; }
.container { width: min(calc(100% - 96px), 1440px); }
.header-inner { width: min(calc(100% - 64px), 1520px); }

/* Give the article the whole content width; keep all related navigation below. */
.page-layout,
.detail-surface .detail-layout {
  grid-template-columns: minmax(0,1fr);
  gap: 56px;
  padding-block: 64px 88px;
}
.page-layout > * { min-width: 0; }
.detail-section { padding: 40px 48px; margin-bottom: 28px; }
.detail-article--message .detail-section { padding: 40px 48px; }
.article-body h2 { font-size: clamp(1.7rem,2.4vw,2.15rem); margin-bottom: 22px; }
.article-body h3 { font-size: 1.35rem; }
.article-body :is(p,table,td,th),
.article-body td p { font-size: 1rem; }
.detail-section :is(td,th) { padding: 23px 26px; }
.article-body .company-profile-table .company-profile-heading { width: 22%; }
.article-body :is(.content-text,.content-heading) :is(p,h4,h5,h6) { max-width: 64em; }
.detail-article--message,
.detail-article--policy,
.detail-article--form { max-width: 1200px; margin-inline: auto; }
.article-body .inquiry-form { max-width: 1100px; }

/* A quiet, full-width related-page directory instead of a narrow sticky rail. */
.page-layout > .page-sidebar {
  position: static;
  display: grid;
  grid-template-columns: minmax(0,.7fr) minmax(0,2.3fr);
  grid-template-rows: auto auto 1fr;
  gap: 0 48px;
  padding: 34px 40px;
  border: 1px solid #d9e4f0;
  border-top: 3px solid #246ccc;
  border-radius: 12px;
  background: #fff;
}
.page-layout > .page-sidebar > .eyebrow {
  grid-column: 1; grid-row: 1; margin-bottom: 12px; font-size: .8125rem;
}
.page-layout > .page-sidebar > h2 {
  grid-column: 1; grid-row: 2; margin-bottom: 0; font-size: 1.4rem;
}
.page-layout .sidebar-links {
  grid-column: 2; grid-row: 1 / 4;
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  align-content: start;
  gap: 0 26px;
}
.page-layout .sidebar-links a {
  min-width: 0; min-height: 52px; padding-block: 15px;
  align-items: center; font-size: .9375rem; overflow-wrap: anywhere;
}
.page-layout .sidebar-contact {
  grid-column: 1; grid-row: 3; align-self: start;
  margin-top: 24px; padding: 20px 22px; max-width: 320px;
  font-size: .9375rem; overflow-wrap: anywhere;
}
.hero-index-title { font-size: .9375rem; }
.button, .text-link, .card-link { font-size: 1rem; }
.footer-links a { font-size: .875rem; }

/* Shared site-update date next to the existing copyright. */
.site-footer .footer-inner > .footer-meta {
  display: flex; flex: 1 1 auto; flex-wrap: wrap; align-items: baseline;
  gap: 6px 24px; min-width: 0; margin: 0 auto 0 0;
  color: #52657c; font: 400 .75rem/1.8 var(--sans);
}
.footer-meta .footer-copyright { white-space: nowrap; }
.footer-meta .footer-updated {
  display: inline-flex; flex-wrap: wrap; align-items: baseline;
  gap: 0 .5em; min-width: 0;
}
.footer-updated .footer-updated-label { overflow-wrap: anywhere; }
.footer-updated time { white-space: nowrap; font-variant-numeric: tabular-nums; }

@media (max-width: 1200px) {
  .container { width: calc(100% - 64px); }
  .detail-section, .detail-article--message .detail-section { padding: 34px; }
  .page-layout > .page-sidebar { gap: 0 32px; padding: 30px; }
  .page-layout .sidebar-links { grid-template-columns: repeat(2,minmax(0,1fr)); }

  /* Switch to the existing accessible menu before enlarged translations crowd. */
  .site-header .menu-button {
    display: flex; align-items: center; gap: 16px; color: var(--ink);
    border: 0; background: transparent; padding: 12px 0 12px 12px;
    font-size: .9375rem; font-weight: 600; cursor: pointer;
  }
  .site-header .menu-lines { width: 22px; display: flex; flex-direction: column; gap: 6px; }
  .site-header .menu-lines i { display: block; width: 22px; height: 1px; background: var(--ink); transition: transform .2s; }
  .site-header .menu-button[aria-expanded='true'] .menu-lines i:first-child { transform: translateY(3.5px) rotate(45deg); }
  .site-header .menu-button[aria-expanded='true'] .menu-lines i:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .site-header #navigation {
    display: none; position: absolute; top: 100%; left: 0; right: 0;
    padding: 18px 32px 26px; max-height: calc(100vh - 88px);
    max-height: calc(100dvh - 88px); overflow-y: auto; overscroll-behavior: contain;
    background: white; border-bottom: 1px solid var(--line);
    box-shadow: 0 15px 25px #07122218; align-items: stretch; gap: 2px;
  }
  .site-header #navigation.open { display: flex; flex-direction: column; }
  .site-header #navigation > a { padding: 18px 0; font-size: 1rem; white-space: normal; }
  .site-header #navigation > .nav-contact { margin-top: 8px; padding: 16px 20px; justify-content: space-between; }
  .site-header #navigation .language-menu { width: 100%; }
  .site-header #navigation .language-menu summary { padding: 18px 0; }
  .site-header #navigation .language-options { position: static; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); box-shadow: none; margin-bottom: 14px; }
}
@media (max-width: 900px) {
  html { font-size: 106.25%; }
  .page-layout, .detail-surface .detail-layout { gap: 36px; padding-block: 40px 64px; }
  .page-layout > .page-sidebar { grid-template-columns: minmax(0,1fr); gap: 0; }
  .page-layout > .page-sidebar > .eyebrow,
  .page-layout > .page-sidebar > h2,
  .page-layout .sidebar-links,
  .page-layout .sidebar-contact { grid-column: 1; grid-row: auto; }
  .page-layout .sidebar-links { margin-top: 20px; }
}
@media (max-width: 600px) {
  .site-footer .footer-inner > .footer-meta { flex-basis: 100%; }
  .footer-meta .footer-updated { flex-basis: 100%; }
  .container, .header-inner { width: calc(100% - 32px); }
  .detail-section, .detail-article--message .detail-section { padding: 26px 20px; }
  .article-body h2 { font-size: 1.6rem; }
  .article-body h3 { font-size: 1.25rem; }
  .article-body :is(p,table,td,th), .article-body td p { font-size: 1rem; }
  .detail-section :is(td,th) { padding: 18px 14px; }
  .page-layout > .page-sidebar { padding: 26px 22px; }
  .page-layout .sidebar-links { grid-template-columns: minmax(0,1fr); }
  .page-layout .sidebar-contact { width: 100%; max-width: none; }
  .hero-index-title { font-size: .875rem; }
}
@media (prefers-reduced-motion: reduce) {
  .site-header .menu-lines i { transition: none; }
}
@media print {
  html { font-size: 100%; }
  .container { width: 100%; }
  .page-layout > .page-sidebar { display: none; }
}
