/* 制度と成長：役割、給与の基準、査定を読み分ける図解。 */
[data-page="seido"] { --sd-ink:#183c3f; --sd-main:#0f5f66; --sd-line:#bdd9d8; --sd-muted:#45686b; }
.sd-hero { padding-bottom:30px; background:#174e53; color:#fff; }
.sd-hero > .wrap { width:min(1280px,calc(100% - 64px)); }
.sd-hero .crumb, .sd-hero .crumb a { color:#e0eeee; }
.sd-hero .sp-hero__grid { grid-template-columns:1.06fr 1fr; gap:56px; align-items:center; }
.sd-hero h1 { font-size:clamp(48px,5.3vw,76px); line-height:1.32; letter-spacing:-.035em; margin:0 0 30px; color:#fff; text-wrap:initial; }
.sd-hero h1 span { white-space:nowrap; }
.sd-hero h1 em { font-style:normal; color:#78cdcf; white-space:nowrap; }
.sd-hero .sp-lead { font-size:17px; line-height:1.85; font-weight:700; margin:0 0 18px; }
.sd-hero__body { font-size:14px; line-height:1.95; margin:0 0 24px; color:#e0eeee; }
.sd-hero .sd-hero__photo { transform:none; border-radius:0; background:transparent; overflow:visible; }
.sd-hero .sd-hero__photo img { aspect-ratio:1.1; height:auto; border-radius:0; object-position:53% center; }
.sd-hero__photo figcaption { margin-top:18px; font-size:14px; color:#e0eeee; font-weight:700; }
.sd-hero .sd-text-link { color:#fff; padding-bottom:12px; border-bottom:1px solid #79acaf; }
.sd-scope { padding-top:22px; margin:32px 0 0; border-top:1px solid #79acaf; font-size:12px; line-height:1.8; color:#e0eeee; }
.sd-text-link { display:inline-flex; align-items:center; gap:18px; color:var(--sd-main); font-weight:700; font-size:15px; line-height:1.8; }
.sd-text-link svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; transition:transform .2s ease; flex-shrink:0; }
.sd-text-link:hover svg { transform:translateX(3px); }
.sd-text-link:focus-visible { outline:3px solid var(--c-orange); outline-offset:5px; }
.sd-section { padding:88px 0; scroll-margin-top:86px; }
.sd-section--mint { background:#edf8f7; }
.sd-heading { display:grid; grid-template-columns:1.15fr 1fr; gap:56px; align-items:start; margin-bottom:44px; }
.sd-heading h2 { margin:0; font-size:clamp(27px,3vw,40px); line-height:1.55; color:var(--sd-ink); }
.sd-heading > p { margin:7px 0 0; font-size:16px; line-height:1.95; color:var(--sd-muted); }
.sd-roles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:56px; }
.sd-roles article { padding-top:24px; border-top:1px solid var(--sd-line); }
.sd-drawing { width:120px; height:100px; display:block; margin-bottom:20px; fill:none; stroke:var(--sd-ink); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.sd-drawing__fill { fill:#c6e8e6; stroke:none; }
.sd-drawing__accent { stroke:var(--sd-main); stroke-width:2.3; }
.sd-roles h3 { font-size:24px; line-height:1.6; margin:0 0 12px; }
.sd-roles p { font-size:15px; line-height:1.9; margin:0; max-width:25em; }
.sd-note { color:var(--sd-muted); font-size:12px; line-height:1.9; margin:28px 0 0; }
.sd-rank-map { padding:0 32px; background:#fff; border-radius:4px; }
.sd-rank-row { display:grid; grid-template-columns:220px 1fr; align-items:center; gap:24px; padding:25px 0; }
.sd-rank-row + .sd-rank-row { border-top:1px solid var(--sd-line); }
.sd-rank-label { display:flex; align-items:center; gap:24px; }
.sd-rank-label > b { font-family:var(--f-num); font-size:46px; line-height:1; color:var(--sd-main); width:48px; text-align:center; }
.sd-rank-label h3 { margin:0 0 4px; font-size:19px; line-height:1.5; }
.sd-rank-label span { display:block; font-size:12px; color:var(--sd-muted); }
.sd-rank-row ol { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; padding:0; margin:0; list-style:none; }
.sd-rank-row li { display:flex; align-items:center; justify-content:center; min-height:58px; font-family:var(--f-num); font-size:23px; font-weight:700; color:var(--sd-main); background:#e7f4f3; border-radius:3px; }
.sd-rank-row:nth-child(2) li { background:#c6e7e5; }
.sd-rank-row:nth-child(3) li { background:#40858a; color:#fff; }
.sd-rank-row:nth-child(4) li { background:#18565c; color:#fff; }
.sd-rank-foot { display:flex; align-items:center; justify-content:space-between; gap:32px; margin-top:28px; }
.sd-rank-foot p { margin:0; font-size:14px; line-height:1.9; color:var(--sd-muted); }
.sd-pay-map { display:grid; grid-template-columns:1.15fr 64px 1fr; align-items:center; column-gap:24px; margin:0 0 24px; }
.sd-pay-inputs { display:grid; gap:20px; }
.sd-pay-inputs > div { padding:20px 24px; background:#edf8f7; }
.sd-pay-map span { display:block; font-size:13px; color:var(--sd-muted); line-height:1.8; }
.sd-pay-map strong { display:block; font-size:28px; line-height:1.6; color:var(--sd-main); margin:4px 0; }
.sd-pay-map p { margin:0; font-size:13px; line-height:1.8; }
.sd-pay-join { width:64px; height:180px; fill:none; stroke:var(--sd-main); stroke-width:1.6; }
.sd-pay-result { padding:40px 24px; border-block:1px solid var(--sd-line); }
.sd-pay-result strong { font-size:32px; }
.sd-pay-map figcaption { grid-column:1 / -1; font-size:13px; line-height:1.9; color:var(--sd-muted); margin-top:24px; }
.sd-score { display:flex; align-items:center; gap:32px; padding:32px 0; border-block:1px solid var(--sd-line); }
.sd-score > div { flex:1; }
.sd-score > div strong { display:block; font-size:28px; color:var(--sd-ink); }
.sd-score > div span { font-size:14px; color:var(--sd-muted); }
.sd-score > b { font-size:24px; font-weight:400; color:var(--sd-main); }
.sd-score__total { display:flex; align-items:baseline; gap:8px; font-size:16px; white-space:nowrap; color:var(--sd-main); }
.sd-score__total strong { font-family:var(--f-num); font-size:48px; font-weight:700; line-height:1; }
.sd-assess-lead { font-size:14px; color:var(--sd-muted); margin:20px 0 36px; }
.sd-calendar { display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.sd-calendar__row { display:grid; grid-template-columns:105px minmax(70px,1fr) 140px; gap:16px; align-items:center; }
.sd-calendar__date > span { display:block; font-size:12px; line-height:1.7; color:var(--sd-muted); }
.sd-calendar__date strong { font-family:var(--f-num); display:block; font-size:60px; color:var(--sd-main); line-height:1.2; }
.sd-calendar__date strong span { font-family:var(--f-jp); font-size:18px; margin-left:4px; }
.sd-calendar__date--result { padding:18px 16px; background:#fff; }
.sd-calendar__link { display:flex; flex-direction:column; align-items:center; gap:10px; }
.sd-calendar__link span { font-size:11px; color:var(--sd-muted); }
.sd-calendar__link svg { width:100%; height:24px; fill:none; stroke:var(--sd-main); stroke-width:1.5; }
.sd-continuity { display:grid; grid-template-columns:1fr 1fr; gap:64px; margin-bottom:28px; }
.sd-continuity h3 { font-size:23px; margin:0 0 24px; line-height:1.65; }
.sd-continuity dl { margin:0; border-top:1px solid var(--sd-line); }
.sd-continuity dl > div { padding:18px 0; border-bottom:1px solid var(--sd-line); }
.sd-continuity dt { font-size:12px; color:var(--sd-muted); margin-bottom:6px; }
.sd-continuity dd { margin:0; font-size:18px; font-weight:700; line-height:1.6; color:var(--sd-main); }
.sd-continuity p { margin:20px 0 0; font-size:14px; line-height:1.9; color:var(--sd-muted); }
@media (max-width:1100px) {
  .sd-hero .sp-hero__grid { gap:32px; }
  .sd-calendar { gap:30px; }
  .sd-calendar__row { grid-template-columns:80px minmax(54px,1fr) 120px; gap:10px; }
  .sd-calendar__link span { font-size:10px; }
}
@media (max-width:800px) {
  .sd-hero > .wrap { width:calc(100% - 40px); }
  .sd-hero .sp-hero__grid, .sd-heading { grid-template-columns:1fr; gap:28px; }
  .sd-hero h1 { font-size:clamp(36px,8.5vw,66px); }
  .sd-hero .sd-hero__photo img { aspect-ratio:3/2; }
  .sd-hero .sd-hero__photo { max-width:620px; }
  .sd-heading { margin-bottom:32px; }
  .sd-rank-row { grid-template-columns:180px 1fr; }
  .sd-rank-row ol { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .sd-score { gap:20px; flex-wrap:wrap; }
  .sd-score__total { flex-basis:100%; padding-top:10px; }
  .sd-calendar { grid-template-columns:1fr; gap:28px; }
  .sd-calendar__row { grid-template-columns:95px minmax(65px,1fr) 140px; gap:20px; }
  .sd-calendar__link span { font-size:12px; }
  .sd-continuity { gap:32px; }
}
@media (max-width:560px) {
  .sd-section { padding:56px 0; }
  .sd-hero .sp-lead { font-size:17px; }
  .sd-hero__body { font-size:14px; }
  .sd-hero__body br { display:none; }
  .sd-hero__photo figcaption { font-size:12px; }
  .sd-scope { margin-top:26px; }
  .sd-heading { gap:18px; }
  .sd-heading > p { font-size:14px; margin:0; }
  .sd-roles { grid-template-columns:1fr; gap:24px; }
  .sd-roles article { display:grid; grid-template-columns:84px minmax(0,1fr); gap:8px 20px; align-items:start; padding-top:24px; }
  .sd-roles .sd-drawing { grid-row:1 / 3; width:84px; height:70px; margin:0; }
  .sd-roles h3 { font-size:21px; margin:0; }
  .sd-roles p { font-size:14px; }
  .sd-rank-map { padding:0 20px; }
  .sd-rank-row { grid-template-columns:1fr; gap:16px; padding:22px 0; }
  .sd-rank-label { gap:14px; }
  .sd-rank-label > b { font-size:36px; width:34px; }
  .sd-rank-label h3 { font-size:17px; margin:0; }
  .sd-rank-label span { font-size:11px; }
  .sd-rank-row ol { gap:8px; }
  .sd-rank-row li { min-height:44px; font-size:20px; }
  .sd-rank-foot { display:block; }
  .sd-rank-foot .sd-text-link { margin-top:18px; }
  .sd-pay-map { grid-template-columns:1fr; gap:0; }
  .sd-pay-inputs { grid-template-columns:1fr 1fr; gap:12px; }
  .sd-pay-inputs > div { padding:18px 14px; }
  .sd-pay-map span { font-size:11px; }
  .sd-pay-map strong { font-size:22px; }
  .sd-pay-map p { font-size:12px; }
  .sd-pay-join { width:48px; height:88px; transform:rotate(90deg); margin:-10px auto; }
  .sd-pay-result { text-align:center; padding:24px 12px; }
  .sd-pay-result strong { font-size:28px; }
  .sd-score { gap:16px; }
  .sd-score > div strong { font-size:25px; }
  .sd-score > div span { font-size:12px; display:block; }
  .sd-score__total strong { font-size:44px; }
  .sd-calendar__row { grid-template-columns:60px minmax(60px,1fr) 124px; gap:12px; }
  .sd-calendar__date strong { font-size:48px; }
  .sd-calendar__date--result { padding:18px 12px; }
  .sd-calendar__date > span { font-size:10px; }
  .sd-calendar__link span { font-size:10px; text-align:center; }
  .sd-continuity { grid-template-columns:1fr; gap:40px; }
  .sd-continuity h3 { font-size:22px; }
  .sd-text-link { font-size:14px; }
}
@media (prefers-reduced-motion:reduce) { .sd-text-link svg { transition:none; } .sd-text-link:hover svg { transform:none; } }

.sd-calendar__date .sd-date-phrase { display:inline-block; white-space:nowrap; }
