.service-stack { border-top: 1px solid var(--carbon); }
.service-detail { display: grid; grid-template-columns: 90px 1fr 1fr; gap: 42px; padding: 54px 0; border-bottom: 1px solid var(--line); align-items: start; }
.service-detail .num { color: transparent; -webkit-text-stroke: 1px var(--blue); font: 400 76px/.8 var(--font-impact); }
.service-detail h2 { margin: 0 0 14px; font-size: clamp(30px, 4vw, 48px); line-height: 1.25; }
.service-detail p { color: var(--zinc); margin: 0; }
.service-detail ul { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.service-detail li { padding: 10px 12px; background: var(--mist); font-size: 13px; }
.service-detail li::before { content: "—"; color: var(--oxide); margin-right: 8px; }
.building-strip { display: grid; grid-template-columns: repeat(6, 1fr); border: 1px solid var(--line); }
.building-strip div { min-height: 130px; display: grid; place-items: center; padding: 18px; text-align: center; border-right: 1px solid var(--line); font-weight: 700; }
.building-strip div:last-child { border: 0; }
.decision-grid { display: grid; grid-template-columns: repeat(5,1fr); margin-top: 40px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.decision-grid article { padding: 26px 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); min-height: 210px; }
.decision-grid .n { color: var(--oxide); font: 700 11px/1 var(--font-en); }
.decision-grid h3 { margin: 28px 0 10px; font-size: 19px; }
.decision-grid p { margin: 0; color: var(--zinc); font-size: 13px; }

.cases-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px 28px; }
.case-card { position: relative; }
.case-card:nth-child(even) { margin-top: 100px; }
.case-image { aspect-ratio: 4/3; overflow: hidden; background: var(--mist); }
.case-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.22,1,.36,1); }
.case-card:hover img { transform: scale(1.03); }
.case-meta { display: flex; justify-content: space-between; gap: 16px; margin: 17px 0 8px; color: var(--zinc); font: 600 10px/1.5 var(--font-en); letter-spacing: .1em; }
.case-card h2 { margin: 0; font-size: clamp(24px, 3vw, 36px); line-height: 1.3; }
.case-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 18px; }
.case-summary div { padding-top: 12px; border-top: 1px solid var(--line); }
.case-summary dt { color: var(--oxide); font: 700 10px/1 var(--font-en); letter-spacing: .12em; }
.case-summary dd { margin: 7px 0 0; color: var(--zinc); font-size: 13px; }

.message-spread { display: grid; grid-template-columns: 38% 1fr; gap: 70px; align-items: start; }
.message-photo { position: sticky; top: 128px; }
.message-photo img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.message-photo .caption { margin-top: 16px; color: var(--zinc); font-size: 12px; }
.message-copy h2 { margin: 0 0 28px; font-size: clamp(36px, 5vw, 68px); line-height: 1.2; }
.message-copy .lead-letter::first-letter { float: left; margin: 13px 20px 0 0; color: var(--oxide); font: 400 118px/.65 var(--font-impact); }
.message-copy p { color: #45565c; font-size: 16px; }
.philosophy-list { border-top: 1px solid var(--carbon); }
.philosophy-item { display: grid; grid-template-columns: 60px .7fr 1fr; gap: 28px; padding: 34px 0; border-bottom: 1px solid var(--line); }
.philosophy-item .n { color: var(--oxide); font: 700 12px/1 var(--font-en); }
.philosophy-item h3 { margin: -4px 0 0; font-size: 24px; }
.philosophy-item p { margin: 0; color: var(--zinc); }
.org-chart { display: grid; grid-template-columns: repeat(5,1fr); gap: 24px; align-items: center; }
.org-node { min-height: 160px; padding: 20px; color: #fff; background: var(--steel); position: relative; }
.org-node:not(:last-child)::after { content: "→"; position: absolute; right: -21px; top: 50%; color: var(--oxide); font-size: 22px; }
.org-node .n { color: #cbe870; font: 700 10px/1 var(--font-en); }
.org-node h3 { margin: 28px 0 6px; }
.org-node p { margin: 0; color: #aec0c6; font-size: 12px; }
.map-block { display: grid; grid-template-columns: 1fr 1fr; background: var(--mist); }
.map-block img { width: 100%; height: 100%; object-fit: cover; }
.map-copy { padding: clamp(28px, 6vw, 70px); }
.map-copy h2 { font-size: clamp(32px, 4vw, 54px); line-height: 1.2; }

.recruit-hero-photo { min-height: 70vh; }
.job-list { border-top: 1px solid var(--carbon); }
.job-row { display: grid; grid-template-columns: 64px 1fr 1fr; gap: 28px; padding: 30px 0; border-bottom: 1px solid var(--line); }
.job-row .n { color: var(--oxide); font: 700 12px/1 var(--font-en); }
.job-row h3 { margin: -4px 0 0; font-size: 23px; }
.job-row p { margin: 0; color: var(--zinc); }
.training-timeline { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.training-step { padding: 32px; background: var(--paper); min-height: 270px; }
.training-step .month { color: var(--oxide); font: 400 58px/1 var(--font-impact); }
.training-step h3 { margin: 24px 0 10px; }
.training-step p { color: var(--zinc); }
.day-flow { display: grid; grid-template-columns: repeat(7,1fr); gap: 0; border-top: 1px solid var(--line); }
.day-flow article { padding: 24px 16px; border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); }
.day-flow time { color: var(--oxide); font: 700 11px/1 var(--font-en); }
.day-flow h3 { font-size: 16px; }

.privacy-body { max-width: 840px; }
.privacy-body section { padding: 30px 0; border-bottom: 1px solid var(--line); }
.privacy-body h2 { margin: 0 0 12px; font-size: 24px; }
.privacy-body p, .privacy-body li { color: var(--zinc); }

@media (max-width: 980px) {
  .service-detail { grid-template-columns: 64px 1fr; }
  .service-detail > :last-child { grid-column: 2; }
  .building-strip { grid-template-columns: repeat(3,1fr); }
  .decision-grid { grid-template-columns: repeat(2,1fr); }
  .org-chart { grid-template-columns: 1fr; }
  .org-node:not(:last-child)::after { content: "↓"; right: auto; left: 50%; top: auto; bottom: -25px; }
  .day-flow { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 720px) {
  .service-detail { grid-template-columns: 1fr; gap: 16px; }
  .service-detail > :last-child { grid-column: auto; }
  .service-detail .num { font-size: 56px; }
  .service-detail ul { grid-template-columns: 1fr; }
  .building-strip { grid-template-columns: 1fr 1fr; }
  .building-strip div { min-height: 100px; }
  .decision-grid { grid-template-columns: 1fr; }
  .cases-grid { grid-template-columns: 1fr; }
  .case-card:nth-child(even) { margin-top: 0; }
  .message-spread { grid-template-columns: 1fr; }
  .message-photo { position: static; }
  .philosophy-item { grid-template-columns: 40px 1fr; }
  .philosophy-item p { grid-column: 2; }
  .map-block { grid-template-columns: 1fr; }
  .job-row { grid-template-columns: 40px 1fr; }
  .job-row p { grid-column: 2; }
  .training-timeline { grid-template-columns: 1fr; }
  .day-flow { grid-template-columns: 1fr; }
}
