/* D001 additions. Shared styles.css is the unmodified TOP dd5ec23 snapshot.
   Tables use the shared UI-LIB table.css (P006-04 / P006-05, v1.0.1); see design-manifest.json. */
.company-sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
.company-skip { position: fixed; inset: 1rem auto auto 1rem; z-index: 100; padding: .75rem 1rem; background: white; transform: translateY(-200%); }
.company-skip:focus { transform: none; }
.company-page { font-size: var(--font-size-body); }
.company-page [id] { scroll-margin-block-start: 1.5rem; }
.company-breadcrumb { padding-block: var(--space-lg); font-size: var(--font-size-small); }
.company-breadcrumb ol { display: flex; flex-wrap: wrap; gap: var(--space-sm); margin: 0; padding: 0; list-style: none; }
.company-breadcrumb li + li::before { content: '›'; margin-inline-end: var(--space-sm); color: var(--color-text-secondary); }
.company-breadcrumb a { text-underline-offset: .25em; }
.company-hero { position: relative; isolation: isolate; max-width: var(--container-visual-max); margin-inline: auto; padding-block: var(--space-4xl); border-end-start-radius: clamp(3rem, 6vw, 6rem); }
.company-hero::before { content: ''; position: absolute; z-index: -1; inset: 0 min(0px, calc((var(--container-visual-max) - 100vw) / 2)) 0 min(0px, max(-5vw, calc((var(--container-visual-max) - 100vw) / 2))); background: var(--background-section-gradient); border-radius: inherit; pointer-events: none; }
.company-hero h1 { margin: 0 0 var(--space-lg); font-size: clamp(2.125rem, calc(1.5rem + 1vw), 2.75rem); line-height: 1.4; }
.company-hero__lead { max-width: 56rem; margin: 0; font-size: var(--font-size-base); line-height: 2; }
.company-note { margin: var(--space-lg) 0 0; color: var(--color-text-muted); font-size: var(--font-size-small); line-height: 1.8; }
.company-hero .company-note { max-width: 56rem; }
.company-section--soft { background: var(--color-surface-light-gray); }
.company-section .section-heading__support > p:first-child { white-space: normal; }
.company-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding-block: var(--space-sm) var(--space-lg); }
.company-numbers-panel__shell {
  width: min(100%, var(--container-visual-max));
  margin-inline: auto;
  padding-block: var(--space-4xl);
  padding-inline: max(
    var(--page-gutter),
    calc((min(100%, var(--container-visual-max)) - var(--container-default-max)) / 2)
  );
  background: var(--color-surface-soft);
  border-radius: var(--radius-large);
  box-shadow: var(--shadow-feature);
}
#company-numbers .company-stats { gap: var(--space-lg); padding-block: 0; }
#company-numbers .company-stat {
  padding: var(--space-2xl);
  background: var(--color-surface-base);
  border-radius: var(--radius-large);
  box-shadow: var(--shadow-medium);
}
#company-numbers .company-stat + .company-stat { border: 0; }
.company-stat { padding: var(--space-md) var(--space-lg); text-align: center; }
.company-stat + .company-stat { border-inline-start: 1px solid var(--color-border-default); }
.company-stat p { margin: 0; }
.company-stat__label { color: var(--color-brand-green-darker); font-size: var(--font-size-base); font-weight: 700; }
.company-stat .company-stat__value { display: inline-block; white-space: nowrap; margin-block: var(--space-sm) var(--space-md); font-family: Impact; font-size: clamp(3rem, 5vw, 4.5rem); line-height: 1.1; font-weight: 800; color: var(--color-brand-green-darker); background: linear-gradient(transparent 83%, var(--color-brand-lime) 83%); }
.company-stat__value > span:not(.company-countup-viewport) { font-size: 1.125rem; margin-inline-start: .25rem; }
.company-countup-viewport { display: inline-flex; height: 1.1em; vertical-align: top; }
.company-countup-digit { display: block; width: .54em; height: 1.1em; overflow: hidden; }
.company-countup-digit.is-separator { width: .2em; }
.company-countup-roller { display: block; line-height: 1.1; white-space: pre; }
.company-countup-frame { display: block; height: 1.1em; line-height: 1.1; }
.company-stat__description { color: var(--color-text-secondary); font-size: var(--font-size-body); }
.company-partners { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--space-xl); margin: 0; padding: 0; list-style: none; }
.company-partners li { display: flex; align-items: center; min-height: 5rem; padding: var(--space-md); border-block-end: 1px solid var(--color-border-default); overflow-wrap: anywhere; }
.company-area { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-4xl); align-items: center; }
.company-map { margin: 0; padding: var(--space-xl); background: var(--color-surface-light-gray); border-radius: var(--radius-large); }
.company-map svg { display: block; width: 100%; max-width: 28rem; height: auto; margin-inline: auto; }
.company-map-off path { fill: #dce4e0; stroke: white; stroke-width: .8; }
.company-map-on path { fill: var(--color-brand-green-dark); stroke: white; stroke-width: .8; }
.company-map figcaption { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin-block-start: var(--space-md); font-size: var(--font-size-small); }
.company-map-key { display: inline-block; width: .875rem; height: .875rem; background: var(--color-brand-green-dark); border-radius: .125rem; }
.company-map-key--off { background: #dce4e0; margin-inline-start: .5rem; }
.company-region { display: grid; grid-template-columns: 5rem minmax(0, 1fr); gap: var(--space-md); padding-block: var(--space-lg); border-block-end: 1px solid var(--color-border-default); }
.company-region:first-child { padding-block-start: 0; }
.company-region h3 { margin: 0; color: var(--color-brand-green-darker); font-size: var(--font-size-base); }
.company-region ul { display: flex; flex-wrap: wrap; gap: .5rem 1rem; padding: 0; margin: 0; list-style: none; }
.company-contact-description { margin-block: 0 var(--space-sm); font-size: var(--font-size-base); }
.company-page .contact-cta-copy h2 { white-space: normal; overflow-wrap: anywhere; }
.company-page .contact-cta-container > .company-note { margin-block: 0 var(--space-xl); }
.company-link-pending { font-size: var(--font-size-body); }
#company-profile tr:has(.ui-table__phone) > td { vertical-align: middle; }
#company-profile .ui-table__phone::before { transform: translateY(1px); }
@media (max-width: 959px) {
  .company-area { grid-template-columns: 1fr; gap: var(--space-xl); }
  .company-map { max-width: 38rem; width: 100%; margin-inline: auto; }
  .company-partners { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .company-hero { padding-block: var(--space-3xl); }
  .company-numbers-panel__shell { padding: var(--space-2xl) var(--page-gutter); }
  #company-numbers .company-stat { padding: var(--space-xl) var(--space-lg); }
  #company-numbers .company-stat + .company-stat { border: 0; }
  .company-stats { grid-template-columns: 1fr; padding-block: 0; }
  .company-stat { padding: var(--space-lg) 0; }
  .company-stat + .company-stat { border-inline-start: 0; border-block-start: 1px solid var(--color-border-default); }
  .company-stat__value { font-size: 3.5rem; }
  .company-partners { grid-template-columns: 1fr; }
  .company-partners li { min-height: 0; padding-block: var(--space-md); }
  .company-map { padding: var(--space-md); }
  .company-region { grid-template-columns: 3.5rem minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .company-page { scroll-behavior: auto; }
}
@media (max-width: 645px) {
  /* 追従CTAの実測高さは legacy-cta.js が --fixed-cta-clearance へ入れる。変数が無い場合は従来値。 */
  body.company-page { padding-bottom: var(--fixed-cta-clearance, calc(27.3037vw + .25rem)); }
}

/* Keep metric units on the same line without squeezing tablet cards. */
@media (min-width: 768px) and (max-width: 1023px) {
  #company-numbers .company-stat { padding-inline: var(--space-lg); }
}
