/* Company information uses one page edge and one consistent reading rhythm. */
html:has(body[data-page="company"]) { scrollbar-width: none; scrollbar-gutter: auto; }
html:has(body[data-page="company"])::-webkit-scrollbar { display: none; }
/* A feathered white field keeps scrolling text from crossing the fixed logo. */
body[data-page="company"] .header::after {
  content: '';
  position: absolute;
  z-index: 0;
  top: -12px;
  left: -20px;
  width: clamp(255px, 25vw, 360px);
  height: 118px;
  pointer-events: none;
  background: radial-gradient(ellipse 68% 75% at 40% 30%, #fff 0%, #fff 60%, #ffffff00 100%);
  filter: blur(7px);
}
body[data-page="company"] .header.menu-active::after { opacity: 0; }
body[data-page="company"] .company-page {
  --company-line: #dcdedb;
  --company-columns: minmax(180px, .7fr) minmax(0, 2fr);
  color: #292b29;
}
.company-page > :is(.company-page-hero, .company-index, .company-detail, .company-back) {
  width: min(1120px, 88%);
  margin-inline: auto;
}
.company-page .company-page-hero { padding: 154px 0 54px; }
.company-page .page-kicker { margin: 0 0 22px; }
.company-page .company-page-hero h1 {
  margin: 0 0 20px;
  font: 400 clamp(1.5rem, 2.6vw, 2rem)/1.55 var(--serif);
  letter-spacing: .055em;
}
.company-page .page-intro {
  max-width: 44em;
  margin: 0;
  color: #60645f;
  font-size: 1rem;
  line-height: 1.95;
  letter-spacing: .015em;
}
.company-page .company-index {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  padding: 0;
  border-color: var(--company-line);
}
.company-page .company-index a {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 5px;
  min-width: 0;
  margin: 18px 0;
  padding: 0 28px;
}
.company-page .company-index a + a { border-left: 1px solid var(--company-line); }
.company-page .company-index b { font: 400 1rem/1.6 var(--serif); letter-spacing: .025em; }
.company-page .company-index small { font: 400 .75rem/1.6 var(--sans); letter-spacing: .075em; color: #666b65; }
.company-page .company-detail {
  display: grid;
  grid-template-columns: var(--company-columns);
  gap: 0 52px;
  padding: 64px 0;
  align-items: start;
  border-color: var(--company-line);
  scroll-margin-top: 112px;
}
.company-page .company-detail > .detail-label { margin: 0; padding-top: 6px; }
.company-page .detail-label > small { margin: 0; color: #383b37; font: 400 clamp(1.375rem, 2.3vw, 1.75rem)/1.4 Georgia, 'Noto Serif JP', serif; letter-spacing: .035em; }
.company-page .company-section-copy { min-width: 0; }
.company-page .company-section-copy > h2 {
  margin: 0 0 24px;
  color: #292b29;
  font: 400 clamp(1.5rem, 2.5vw, 2rem)/1.6 var(--serif);
  letter-spacing: .035em;
  text-wrap: pretty;
}
.company-page .company-section-copy > .lead { margin: 0 0 12px; color: #656b63; font-weight: 400; font-size: .875rem; }
.company-page .company-section-copy > p:not(.lead) {
  max-width: 46em;
  margin: 0;
  color: #545a53;
  font-size: 1rem;
  line-height: 1.95;
  letter-spacing: .015em;
}
.company-page .company-section-copy > h2 .phrase { display: inline-block; white-space: normal; }
.company-page .business-overview .phrase { white-space: nowrap; }
.company-page .business-outline .outline-grid {
  display: block;
  grid-column: 1 / -1;
  margin: 36px 0 0;
  border-bottom: 1px solid var(--company-line);
}
.company-page .business-outline .outline-grid > article {
  display: grid;
  grid-template-columns: var(--company-columns);
  align-items: baseline;
  gap: 12px 52px;
  min-height: 0;
  padding: 25px 0;
  border-top: 1px solid var(--company-line);
  background: #f6f7f5;
}
.company-page .business-outline .outline-grid > article:nth-child(even) { background: #fff; }
.company-page .business-outline .outline-grid h3 {
  min-width: 0;
  margin: 0;
  padding-left: 28px;
  color: #292d29;
  font: 400 1.0625rem/1.8 var(--serif);
  letter-spacing: .015em;
  text-align: left;
  text-wrap: pretty;
}
.company-page .business-outline .outline-grid p {
  min-width: 0;
  margin: 0;
  padding-right: 28px;
  color: #535952;
  font-size: 1rem;
  line-height: 1.9;
  letter-spacing: 0;
  text-align: left;
  text-wrap: pretty;
}
.company-page .outline-grid p .phrase { display: inline-block; max-width: 100%; white-space: normal; }
.company-page .profile dl { margin: 0; }
.company-page .profile dl > div {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  align-items: baseline;
  gap: 28px;
  padding: 22px 0;
  border-color: var(--company-line);
}
.company-page .profile dt { color: #676c66; font: 400 .9375rem/1.9 var(--sans); }
.company-page .profile dd { min-width: 0; margin: 0; font-size: 1rem; line-height: 1.9; letter-spacing: .015em; }
.company-page .profile .profile-address { display: flex; flex-wrap: wrap; column-gap: .7em; }
.company-page .profile-address > span { max-width: 100%; }
.company-page .profile-businesses .phrase { display: block; }
.company-page .profile-businesses .phrase + .phrase { margin-top: 4px; }
.company-page .company-back { padding: 30px 0 50px; font-size: .9375rem; }
@media (max-width: 900px) {
  .company-page .company-detail { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-block: 48px; }
  .company-page .company-detail > .detail-label { padding: 0; }
  .company-page .business-outline .outline-grid { margin-top: 6px; }
  .company-page .business-outline .outline-grid > article { grid-template-columns: minmax(200px, .9fr) minmax(0, 1.5fr); gap: 12px 30px; padding: 24px; }
  .company-page .business-outline .outline-grid :is(h3, p) { padding-inline: 0; }
}
@media (max-width: 700px) {
  .company-page > :is(.company-page-hero, .company-index, .company-detail, .company-back) { width: 86%; }
  .company-page .company-page-hero { padding: 128px 0 34px; }
  .company-page .page-kicker { margin-bottom: 20px; }
  .company-page .company-page-hero h1 { margin-bottom: 18px; }
  .company-page .company-index a { margin: 16px 0; padding: 0 12px; gap: 4px; }
  .company-page .company-index a:first-child { padding-left: 0; }
  .company-page .company-index b { font-size: .9375rem; }
  .company-page .company-index small { font-size: .75rem; letter-spacing: .025em; }
  .company-page .company-detail { gap: 22px; padding: 40px 0; }
  .company-page .company-section-copy > h2 { margin-bottom: 20px; }
  .company-page .business-outline .outline-grid > article {
    display: block;
    padding: 24px 20px;
  }
  .company-page .business-outline .outline-grid h3 { margin-bottom: 10px; }
  .company-page .profile dl > div { grid-template-columns: 76px minmax(0, 1fr); gap: 20px; padding: 18px 0; }
  .company-page .profile dt { font-size: .875rem; }
}
@media (max-width: 360px) {
  .company-page .company-index a { padding-inline: 8px; }
  .company-page .company-index small { font-size: .75rem; letter-spacing: 0; }
  .company-page .business-outline .outline-grid > article { padding: 22px 16px; }
  .company-page .profile dl > div { grid-template-columns: minmax(0, 1fr); gap: 6px; }
}
