/* Hallmark · macrostructure: bespoke · page: business（事業内容・沿革） */

/* ---------- 事業内容 ---------- */
.biz { padding-block: var(--space-3xl) var(--section-y); }
.biz__list { display: grid; gap: var(--space-3xl) var(--space-2xl); margin-top: var(--space-2xl); }
.biz-item { display: grid; gap: var(--space-md); align-content: start; scroll-margin-top: 96px; }
.biz-item__img { overflow: hidden; aspect-ratio: 4 / 3; background: var(--color-paper-2); }
.biz-item__img img { width: 100%; height: 100%; object-fit: cover; }
.biz-item--portrait .biz-item__img { aspect-ratio: 3 / 4; }
.biz-item h3 { margin-top: var(--space-xs); font-size: var(--text-2xl); color: var(--color-navy); }
.biz-item p { color: var(--color-muted); max-width: 36em; }
.biz-item--wide .biz-item__text { display: grid; gap: var(--space-md); align-content: center; }
@media (min-width: 900px) {
  .biz__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .biz-item--wide { grid-column: 1 / -1; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: var(--space-3xl); align-items: center; }
  .biz-item--wide .biz-item__img { aspect-ratio: 16 / 10; }
  .biz-item:nth-child(odd):not(.biz-item--wide) { margin-top: var(--space-4xl); }
  .biz-item--rev { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); }
  .biz-item--portrait { grid-template-columns: minmax(0, 0.75fr) minmax(0, 1fr); }
  .biz-item--portrait .biz-item__img { aspect-ratio: 3 / 4; }
  .biz-item--rev .biz-item__img { order: 2; }
}

/* ---------- 沿革 ---------- */
.history { padding-block: var(--section-y); background: var(--color-white); }
.history__inner { display: grid; gap: var(--space-2xl); }
.timeline { position: relative; display: grid; }
.timeline::before { content: ""; position: absolute; left: 5px; top: 12px; bottom: 12px; width: 1px; background: var(--color-line); }
.timeline::after {
  content: ""; position: absolute; left: 5px; top: 12px; bottom: 12px; width: 1px; background: var(--color-accent);
  transform: scaleY(var(--progress, 0)); transform-origin: top; transition: transform var(--dur-slow) var(--ease-out);
}
.timeline li { position: relative; display: grid; gap: var(--space-2xs); padding: 0 0 var(--space-xl) var(--space-2xl); }
.timeline li::before {
  content: ""; position: absolute; left: 0; top: 0.55em; width: 11px; height: 11px; border-radius: 50%;
  background: var(--color-white); border: 1px solid var(--color-line); z-index: 1;
  transition: background-color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.timeline li.is-lit::before { background: var(--color-accent); border-color: var(--color-accent); }
.timeline__when { font-family: var(--font-display); font-size: var(--text-xl); color: var(--color-navy); letter-spacing: 0.1em; line-height: 1.5; }
.timeline__when .num { font-size: 1.3em; letter-spacing: 0.02em; }
.timeline__when small { margin-left: var(--space-sm); font-family: var(--font-body); font-size: var(--text-xs); color: var(--color-muted); letter-spacing: 0.1em; }
.timeline li > p:last-child { color: var(--color-muted); max-width: 38em; }
@media (min-width: 900px) {
  .history__inner { grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr); gap: var(--space-4xl); }
  .history__head { position: sticky; top: 120px; align-self: start; }
  .timeline li { grid-template-columns: 11rem minmax(0, 1fr); gap: var(--space-lg); }
}

/* ---------- 展望 ---------- */
.vision { position: relative; isolation: isolate; overflow: hidden; padding-block: var(--section-y); background: var(--color-ink); color: var(--color-on-dark); }
.vision__bg { position: absolute; inset: 0; z-index: -2; }
.vision__bg img { width: 100%; height: 100%; object-fit: cover; opacity: 0.35; }
.vision::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, var(--color-veil-strong) 30%, var(--color-veil) 100%); }
.vision__inner { display: grid; gap: var(--space-xl); max-width: 44rem; margin-inline: auto; text-align: center; }
.vision__inner p { color: var(--color-on-dark-muted); line-height: 2.2; text-align: left; }
@media (min-width: 600px) { .vision__inner p { text-align: center; } }

/* ---------- 会社概要 ---------- */
.profile { padding-block: var(--section-y); }
.profile__inner { display: grid; gap: var(--space-2xl); }
.profile__list { margin-top: var(--space-xl); border-top: var(--rule-hair) solid var(--color-line); }
.profile__list > div { display: grid; gap: var(--space-2xs); padding-block: var(--space-md); border-bottom: var(--rule-hair) solid var(--color-line); }
.profile__list dt { font-family: var(--font-display); color: var(--color-navy); letter-spacing: 0.14em; }
.profile__list dd { color: var(--color-text); overflow-wrap: anywhere; }
.profile__list small { color: var(--color-muted); }
.profile__list a { text-decoration: underline; text-underline-offset: 3px; }
.profile__map { min-height: 360px; background: var(--color-paper-2); }
.profile__map iframe { width: 100%; height: 100%; min-height: 360px; border: 0; display: block; }
@media (min-width: 600px) { .profile__list > div { grid-template-columns: 7rem minmax(0, 1fr); gap: var(--space-lg); } }
@media (min-width: 1024px) { .profile__inner { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--space-4xl); } }
