/* Company-only editorial scale; the homepage and dashboard keep their own type. */
main:has(.company-section) {
  --company-heading: 1.875rem;
  --company-body: 1.25rem;
  --company-leading: 1.7;
}
.desktop-nav a[aria-current], .mobile-nav a[aria-current] { color: var(--ink); }
.desktop-nav a[aria-current] { text-decoration: underline; text-decoration-color: var(--mint); text-underline-offset: 9px; }
.company-section { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 80px; padding-block: 96px; border-top: 1px solid var(--line); align-items: start; }
.company-section:first-child { border-top: 0; padding-top: 80px; }
.company-section .section-label { font-size: var(--company-heading); line-height: 1.4; letter-spacing: -.025em; color: var(--ink); font-weight: 400; text-wrap: balance; }
.company-section p[data-copy], .company-close p[data-copy], .footer-brand p[data-copy] { white-space: normal; }
.company-sentence { display: block; text-wrap: balance; }
.company-aside, .reading-column { min-width: 0; }
.reading-column > h1 { font-size: var(--type-display); font-weight: 400; line-height: 1.4; letter-spacing: -.025em; margin-bottom: 32px; text-wrap: balance; }
.reading-column p { font-size: var(--company-body); line-height: var(--company-leading); max-width: 68ch; text-wrap: balance; }
.company-close p, .footer-brand p[data-copy] { text-wrap: balance; }
:lang(ja) .reading-column p, :lang(ja) .company-close p, :lang(ja) .footer-brand p[data-copy] { line-break: strict; }
.reading-column > p + p { margin-top: 24px; }
.reading-column .reading-conclusion { color: var(--ink); }

/* Open geometric studies: no panel chrome, with a bounded canvas per section. */
.company-art { position: relative; width: 100%; max-width: 440px; margin-top: 32px; }
.company-art-trigger { display: block; position: relative; width: 100%; aspect-ratio: 1.25; padding: 0; border: 0; background: transparent; color: var(--ink); cursor: pointer; -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
.company-art-trigger:disabled { cursor: default; opacity: 1; }
.company-art-trigger:focus-visible { outline-offset: 0; }
.company-art canvas, .company-art-fallback { display: block; position: absolute; inset: 0; width: 100%; height: 100%; }
.company-art-fallback { stroke: var(--mint); stroke-width: 1; }
.company-art[data-ready="true"] .company-art-fallback { display: none; }
.company-art-spiral .company-art-trigger { aspect-ratio: 1; }
.name-fallback { display: grid; place-items: center; font-size: 3rem; letter-spacing: -.035em; }
.work-list article + article { margin-top: 36px; padding-top: 36px; border-top: 1px solid var(--line); }
.work-list h3 { font-size: var(--type-title); line-height: 1.45; font-weight: 400; letter-spacing: -.02em; margin-bottom: 16px; }
.reading-column .product-name { font-size: var(--type-display); font-weight: 400; letter-spacing: -.035em; line-height: 1.25; margin-bottom: 16px; }
.reading-column .product-statement { font-size: var(--type-title); color: var(--ink); margin-bottom: 24px; line-height: 1.5; }
.product-link { margin-top: 24px; font-size: 1rem; }
.product-owner { display: flex; align-items: center; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--line); gap: 16px; }
.product-owner > div { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 20px; }
.owner-name { font-size: 1rem; color: var(--ink); }
.owner-role { font-size: .875rem; color: var(--muted); }
.company-facts { padding-top: 28px; margin: 36px 0 0; border-top: 1px solid var(--line); font-size: 1rem; }
.company-facts > div { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; }
.company-facts > div + div { margin-top: 16px; }
.company-facts dt { color: var(--muted); }
.company-facts dd { margin: 0; font-variant-numeric: tabular-nums; }
.company-close { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 48px; border-top: 1px solid var(--line); padding-block: 72px 88px; }
.company-close h2 { max-width: 25ch; font-size: var(--company-heading); line-height: 1.45; font-weight: 400; letter-spacing: -.025em; text-wrap: balance; }
.company-close p { font-size: 1rem; margin-top: 20px; line-height: 1.7; }
.company-close a { white-space: nowrap; font-size: 1rem; padding-bottom: 4px; border-bottom: 1px solid var(--mint); }
.text-link > [data-icon] { transition: transform .2s var(--ease); }
.text-link:is(:hover, :focus-visible) > [data-icon] { transform: translate(2px, -2px); }
:lang(ko) .owner-role { word-break: keep-all; }
@media (max-width: 1100px) {
  .company-section { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); column-gap: 48px; }
  .company-close { grid-template-columns: 1fr; justify-items: start; gap: 28px; }
}
@media (max-width: 800px) {
  main:has(.company-section) { --company-heading: 1.5rem; --company-body: 1rem; --company-leading: 1.8; }
  .company-section:first-child { padding-top: 40px; }
  .company-section { grid-template-columns: 1fr; gap: 32px; padding-block: 56px; }
  .reading-column > h1 { font-size: 1.875rem; line-height: 1.4; margin-bottom: 24px; }
  .company-art { max-width: 360px; margin: 24px auto 0; }
  .work-list h3 { font-size: 1.25rem; margin-bottom: 12px; }
  .work-list article + article { margin-top: 28px; padding-top: 28px; }
  .reading-column .product-name { font-size: 2.25rem; }
  .company-close { padding-block: 48px 56px; gap: 20px; }
  .company-close a { white-space: normal; overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) {
  .text-link > [data-icon] { transition: none; }
  .text-link:is(:hover, :focus-visible) > [data-icon] { transform: none; }
}

/* Match the homepage's one-pixel CJK adjustment without shrinking the English
   product/owner names, contact address, or date values. */
.company-section .section-label, .company-close h2 { font-size: calc(var(--company-heading) - var(--marketing-copy-adjustment)); }
.reading-column > h1 { font-size: calc(var(--type-display) - var(--marketing-copy-adjustment)); }
.reading-column p { font-size: calc(var(--company-body) - var(--marketing-copy-adjustment)); }
.work-list h3, .reading-column .product-statement { font-size: calc(var(--type-title) - var(--marketing-copy-adjustment)); }
.product-link, .company-close p, .company-facts dt { font-size: calc(1rem - var(--marketing-copy-adjustment)); }
.owner-role { font-size: calc(.875rem - var(--marketing-copy-adjustment)); }
@media (max-width: 800px) {
  .reading-column > h1 { font-size: calc(1.875rem - var(--marketing-copy-adjustment)); }
  .work-list h3 { font-size: calc(1.25rem - var(--marketing-copy-adjustment)); }
}
