/* ESチェッカー（追補23-48 §4 の15）。色は shared/tokens.css の3色（紺・空色・オレンジ）だけを使う */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--bg-light); color: var(--text-body); font-family: var(--font-base); font-size: 16px; line-height: var(--lh-ui); -webkit-text-size-adjust: 100%; }
a { color: var(--navy); }
:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; }
[hidden] { display: none !important; }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 100; padding: 8px 14px; background: var(--navy); color: #fff; }
.skip-link:focus { left: 8px; top: 8px; }
.ec-wrap { max-width: 760px; margin: 0 auto; padding: 0 16px; }
.ec-main { padding: 8px 0 56px; }
.ec-crumb ol { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 12px 0 0; font-size: 12px; color: var(--text-muted); }
.ec-crumb li + li::before { content: "›"; margin-right: 6px; color: var(--border-strong); }
.ec-crumb a { color: var(--text-muted); }
.ec-head { padding: 16px 0 6px; }
.ec-title { margin: 0 0 10px; color: var(--navy); font-size: var(--fs-h1-sp); font-weight: var(--fw-h1); line-height: var(--lh-h1); }
.ec-lead { margin: 0 0 10px; font-size: 15px; line-height: 1.85; }
.ec-privacy { margin: 0; padding: 8px 12px; border-left: 4px solid var(--navy); background: var(--bg-white); font-size: 13.5px; font-weight: 700; color: var(--text-main); }
.ec-card { margin: 16px 0 0; padding: 18px 16px 20px; border: 1px solid var(--border-color); border-radius: var(--radius); background: var(--bg-white); box-shadow: var(--shadow-card); }
.ec-h2 { margin: 0 0 12px; color: var(--navy); font-size: var(--fs-h2-sp); font-weight: var(--fw-h2); line-height: var(--lh-h2); }
.ec-row { display: flex; flex-wrap: wrap; gap: 12px 24px; margin: 0 0 12px; }
.ec-kind { margin: 0; padding: 0; border: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; }
.ec-kind legend { float: left; margin-right: 6px; font-size: 14px; font-weight: 700; color: var(--navy); }
.ec-kind label { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; font-size: 15px; }
.ec-limit { display: flex; align-items: center; gap: 8px; }
.ec-limit label { font-size: 14px; font-weight: 700; color: var(--navy); }
.ec-limit input { width: 7em; min-height: 40px; padding: 6px 10px; border: 1px solid var(--border-strong); border-radius: 8px; font: inherit; font-size: 16px; }
.ec-label { display: block; margin: 0 0 6px; font-size: 14px; font-weight: 700; color: var(--navy); }
#ec-text { width: 100%; padding: 10px 12px; border: 1px solid var(--border-strong); border-radius: 8px; font: inherit; font-size: 16px; line-height: 1.8; resize: vertical; }
.ec-count { margin: 6px 0 14px; font-size: 14px; font-weight: 700; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.ec-list { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 10px; }
.ec-item { padding: 12px 14px; border-radius: 10px; border: 1px solid var(--border-color); border-left-width: 5px; }
.ec-item.is-ok { border-left-color: var(--navy); }
.ec-item.is-look { border-left-color: var(--orange); background: var(--bg-light); }
.ec-item.is-info { border-left-color: var(--sky-line); }
.ec-item__title { margin: 0 0 4px; font-weight: 800; color: var(--text-main); overflow-wrap: anywhere; }
.ec-item__detail { margin: 0 0 4px; font-size: 14.5px; line-height: 1.75; }
.ec-item__link { font-size: 13.5px; font-weight: 700; }
.ec-human { margin: 0; font-size: 14.5px; }
@media (min-width: 640px) { .ec-title { font-size: var(--fs-h1); } .ec-card { padding: 22px 26px 24px; } .ec-h2 { font-size: var(--fs-h2); } }
