/* =========================================================
   事業内容 (Services) — Claude Design "Services Page"
   Section rhythm: Intro (light) → For Companies (dark, photo)
   → For Individuals (light) → CTA band (dark, common.css) → Footer
   ========================================================= */

/* ---------- Shared section parts ---------- */

.svc-section__inner {
  position: relative;
  max-width: var(--content-max);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.svc-section__inner > p { margin: 0; }

.svc-lead {
  max-width: 620px;
  font: 400 16px/1.9 var(--font-mincho);
  letter-spacing: .08em;
  text-wrap: pretty;
}

.svc-no {
  font: 400 11px/1 var(--font-mono);
  letter-spacing: .2em;
}

/* ---------- Intro ---------- */

.svc-intro {
  box-sizing: border-box;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: clamp(64px, 10vw, 160px) var(--page-gutter);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
  gap: var(--space-4);
  align-items: center;
}

.svc-intro__text {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.svc-intro__title {
  margin: 0;
  font: 400 clamp(30px, 3.6vw, 48px)/1.5 var(--font-mincho);
  letter-spacing: .08em;
  text-wrap: pretty;
}

.svc-intro__lead {
  margin: 0;
  max-width: 560px;
  font: 400 16px/1.9 var(--font-mincho);
  letter-spacing: .08em;
  text-wrap: pretty;
}

/* ---------- Service diagram (static) ----------
   Drawn on a square canvas; every position is a % of the canvas and
   type sizes use container units so the cluster keeps its shape on
   mobile (DESIGN.md §6: don't collapse diagrams into a single column).
   Reference sizes are at the 540px maximum. */

.svc-diagram {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
}

.svc-diagram__canvas {
  position: relative;
  width: 100%;
  max-width: 540px;
  aspect-ratio: 1;
  container-type: inline-size;
}

.svc-diagram__outline {
  position: absolute;
  inset: 1%;
  border-radius: 50%;
  border: 1px solid rgba(27, 42, 74, .12);
}

.svc-diagram__field {
  position: absolute;
  top: 22%;
  width: 56%;
  height: 56%;
  border-radius: 50%;
}
.svc-diagram__field--companies {
  left: 4%;
  background: radial-gradient(circle at 40% 40%, rgba(27, 42, 74, .07), rgba(27, 42, 74, .03) 70%);
  border: 1px solid rgba(27, 42, 74, .14);
}
.svc-diagram__field--individuals {
  left: 40%;
  background: radial-gradient(circle at 60% 40%, rgba(201, 162, 75, .10), rgba(201, 162, 75, .03) 70%);
  border: 1px solid rgba(201, 162, 75, .35);
}

.svc-diagram__core {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 24%;
  height: 24%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: var(--color-surface);
  border: 1px solid var(--color-secondary);
  box-shadow: 0 0 0 6px var(--color-surface), 0 0 0 7px rgba(201, 162, 75, .4), 0 14px 40px rgba(27, 42, 74, .10);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.svc-diagram__core-main {
  font: 300 clamp(13px, 3.7cqw, 20px)/1 var(--font-display);
  letter-spacing: .28em;
  padding-left: .28em;
}
.svc-diagram__core-sub {
  font: 400 6px/1 var(--font-display);
  letter-spacing: .45em;
  padding-left: .45em;
  color: var(--color-secondary-on-light);
}

.svc-diagram__badge {
  position: absolute;
  left: var(--x);
  top: 22%;
  transform: translate(-50%, -50%);
  white-space: nowrap;
  background: var(--color-primary);
  color: #FFFFFF;
  border-radius: 9999px;
  padding: 8px 20px;
  font: 400 clamp(10px, 2.2cqw, 12px)/1 var(--font-mincho);
  letter-spacing: .12em;
}

.svc-diagram__node {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: 14%;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: var(--color-surface);
  box-shadow: 0 6px 18px rgba(27, 42, 74, .08);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  font: 400 clamp(8px, 2.04cqw, 11px)/1.45 var(--font-mincho);
  letter-spacing: .04em;
  color: var(--color-text-on-light);
}

.svc-diagram__caption {
  position: absolute;
  left: var(--x);
  top: 84%;
  transform: translateX(-50%);
  white-space: nowrap;
  font: italic 400 clamp(11px, 2.4cqw, 13px)/1 var(--font-display);
  letter-spacing: .14em;
  color: var(--color-text-muted-on-light);
}

.svc-diagram__statement {
  font: 400 clamp(18px, 2vw, 24px)/1.7 var(--font-mincho);
  letter-spacing: .14em;
  text-align: center;
}

/* ---------- For Companies (dark, photo background) ---------- */

.svc-companies {
  position: relative;
  overflow: hidden;
  background: var(--color-bg-dark-soft);
  padding: clamp(64px, 10vw, 140px) var(--page-gutter);
}

.svc-companies__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.svc-companies__shade {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(10, 10, 10, .82) 0%, rgba(10, 10, 10, .5) 55%, rgba(10, 10, 10, .3) 100%);
}

.svc-corp-list {
  list-style: none;
  padding: 0;
  margin: var(--space-2) 0 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  border-top: 1px solid rgba(255, 255, 255, .2);
}

.svc-corp-list__item {
  padding: 24px 24px 24px 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.svc-corp-list__item .svc-no { color: var(--color-secondary); }

.svc-corp-list__name {
  margin: 0;
  font: 500 17px/1.5 var(--font-mincho);
  letter-spacing: .08em;
}

.svc-corp-list__body {
  margin: 0;
  font: 400 13px/1.8 var(--font-sans);
  color: var(--color-text-sub-on-dark);
}

.svc-companies__more {
  display: flex;
  justify-content: flex-end;
}

/* ---------- For Individuals (light) ---------- */

.svc-individuals {
  padding: clamp(64px, 10vw, 160px) var(--page-gutter);
}

.svc-indiv-list {
  list-style: none;
  padding: 0;
  margin: var(--space-2) 0 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: var(--space-3);
}

.svc-indiv-list__item {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.svc-indiv-list__item .svc-no { color: var(--color-secondary-on-light); }

.svc-indiv-list__photo {
  aspect-ratio: 4 / 3;
  background: #E6E2D6;
  overflow: hidden;
}
.svc-indiv-list__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.svc-indiv-list__name {
  margin: 0;
  font: 500 18px/1.5 var(--font-mincho);
  letter-spacing: .08em;
}

.svc-indiv-list__body {
  margin: 0;
  font: 400 14px/1.9 var(--font-sans);
  color: var(--color-text-sub-on-light);
}


/* Small canvases: keep node labels on one line and the core wordmark inside its circle */
.svc-diagram__node > span { white-space: nowrap; }

@container (max-width: 420px) {
  .svc-diagram__node { letter-spacing: 0; font-size: 7.5px; }
  .svc-diagram__core-sub { letter-spacing: .25em; padding-left: .25em; font-size: 5px; }
}
