/* アオミチ 2026-10-27 の改修：1つの図に1つの結論・文字と線を重ねない・要らない記号を削る（RULES.md 13・14章） */

/* 本文：文節の途中で改行しない（「学力も｜必ず見る」を防ぐ） */
.ans, .sec p, .sec li, .note, figcaption, .find__d, .def p { word-break: auto-phrase; }
.ph { white-space: nowrap; }

/* 図の結論：強調は色を変えず、下に引いた帯だけで（文字と帯の色が重ならない） */
.ill__lead b { color: inherit; background: linear-gradient(var(--hl), var(--hl)) 0 92% / 100% .32em no-repeat; }

/* 見出しの番号：1行目の文字の高さの中央にそろえる */
.sec > h2::before { margin-top: calc((1lh - 32px) / 2) !important; }

/* 図1 出願に推薦がいるか：3本の道。段は同じ高さ、部品は同じ大きさ */
.d1__l { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 8px; }
.d1__c { display: grid; grid-template-rows: 48px 72px 48px 72px; justify-items: center; align-items: center; row-gap: 20px; padding: 12px 0 16px; border-radius: 20px; position: relative; }
.d1__c.is-me { background: var(--brand-50); }
.d1__h { align-self: center; color: var(--ink); font-size: 15px; font-weight: 700; line-height: 1.35; text-align: center; word-break: keep-all; }
.d1__c.is-me .d1__h { color: var(--brand-d); }
.d1__you, .d1__uni { display: grid; justify-items: center; gap: 4px; color: var(--ink); font-size: 14px; font-weight: 700; line-height: 1.2; position: relative; z-index: 2; }
.d1__you .ic, .d1__uni .ic { width: 44px; height: 44px; padding: 10px; box-sizing: border-box; border-radius: 50%; background: #fff; color: #5f6672; box-shadow: var(--sh1); }
.d1__c.is-me .d1__you .ic, .d1__c.is-me .d1__uni .ic { background: var(--brand); color: #fff; }
.d1__g { position: relative; z-index: 2; display: grid; place-items: center; align-content: center; gap: 4px; width: 88px; height: 48px; box-sizing: border-box; border-radius: 12px; font-size: 14px; font-weight: 700; line-height: 1.3; text-align: center; }
.d1__g.is-free { background: #fff; color: #5f6672; box-shadow: inset 0 0 0 1.5px #b0b6c3; }
.d1__c.is-me .d1__g.is-free { color: var(--brand-d); box-shadow: inset 0 0 0 2px var(--brand); }
.d1__g .d-lock { width: 20px; height: 20px; }
.d1 .mo__lines { z-index: 1; }
.d1 .mo__lines path { stroke-width: 3; }

/* 図2 3つの条件を通る：あなた → 条件1・2・3 → 出願できる */
.d2__road { position: relative; display: grid; gap: 16px; }
.d2__me, .d2__ok { display: flex; align-items: center; gap: 8px; width: fit-content; padding: 8px 16px 8px 8px; border-radius: 24px; font-size: 15px; font-weight: 700; line-height: 1.4; position: relative; z-index: 2; }
.d2__me { background: #fff; color: var(--ink); box-shadow: var(--sh1); }
.d2__ok { background: var(--brand); color: #fff; }
.d2__me .ic, .d2__ok .ic { width: 32px; height: 32px; padding: 6px; box-sizing: border-box; border-radius: 50%; background: var(--brand-50); color: var(--brand); }
.d2__ok .ic { background: rgba(255, 255, 255, .2); color: #fff; }
.d2__gs { display: grid; gap: 12px; margin: 0; padding: 0 0 0 20px; list-style: none; }
.d2__gt { display: grid; grid-template-columns: 56px minmax(0, 1fr); column-gap: 16px; align-items: center; position: relative; z-index: 2; }
.d2__bar { grid-row: span 2; position: relative; width: 56px; height: 56px; }
.d2__bar::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 0; }
.d2__bar i { position: absolute; left: 4px; right: 4px; top: 24px; height: 8px; border-radius: 4px; background: var(--brand); transform-origin: 0 50%; }
.d2__bar::after { content: ""; position: absolute; left: 0; top: 18px; width: 8px; height: 20px; border-radius: 4px; background: #5f6672; }
.d2__gt.is-opt .d2__bar i { background: transparent; box-shadow: inset 0 0 0 2px var(--brand); background-image: repeating-linear-gradient(90deg, var(--brand) 0 6px, transparent 6px 10px); background-size: 100% 2px; background-repeat: no-repeat; background-position: 0 50%; box-shadow: none; outline: 2px dashed var(--brand); outline-offset: -2px; }
.d2__k { display: flex; align-items: center; gap: 8px; color: var(--ink); font-size: 16px; font-weight: 700; line-height: 1.4; }
.d2__n { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--brand); color: #fff; font-size: 14px; font-weight: 700; flex: none; }
.d2__gt.is-opt .d2__n { background: #fff; color: var(--brand-d); box-shadow: inset 0 0 0 1.5px var(--brand); }
.d2__s { color: var(--sub); font-size: 14px; line-height: 1.5; }
.d2 .mo__lines { z-index: 1; }

/* 図3 方式＝書類＋面接など＋学力 */
.d3__rows { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.d3__n { margin-bottom: 8px; color: var(--sub); font-size: 14px; font-weight: 700; }
.d3__eq { display: grid; grid-template-columns: minmax(0, 1fr) 16px minmax(0, 1fr) 16px minmax(0, 1fr); align-items: center; }
.d3__eq > i { color: var(--sub); font-size: 16px; font-style: normal; font-weight: 700; text-align: center; }
.d3__c { display: grid; justify-items: center; align-content: center; gap: 4px; min-height: 72px; padding: 8px 4px; box-sizing: border-box; border-radius: 16px; text-align: center; }
.d3__c small { display: flex; align-items: center; gap: 4px; font-size: 14px; font-weight: 700; line-height: 1.3; }
.d3__c small .ic { width: 16px; height: 16px; }
.d3__c b { color: var(--ink); font-size: 15px; line-height: 1.35; word-break: keep-all; }
.d3__c.is-none { background: transparent; box-shadow: inset 0 0 0 1.5px #b0b6c3; } .d3__c.is-none b { color: #5f6672; font-weight: 400; }

/* 図4・図6 日程：月の格子。文字は線の上に乗せず、背景色で切り抜く */
.d4 { --n: 7; }
.d4__g { position: relative; display: grid; gap: 8px; padding: 36px 0 0; }
.d4__g::before { content: ""; position: absolute; left: 0; right: 0; top: 64px; bottom: 0; background: repeating-linear-gradient(90deg, #dfe3ea 0 1px, transparent 1px calc(100% / var(--n))); pointer-events: none; }
.d4__m { display: grid; grid-template-columns: repeat(var(--n), 1fr); color: var(--sub); font-size: 14px; font-weight: 700; }
.d4__m span { padding-left: 4px; letter-spacing: -.02em; }
.d4__r { position: relative; display: grid; gap: 8px; padding-top: 8px; }
.d4__n { position: relative; z-index: 2; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 8px; width: fit-content; padding-right: 8px; background: var(--bg); color: var(--ink); font-size: 15px; font-weight: 700; }
.d4__r.is-me .d4__n { color: var(--brand-d); }
.d4__n small { color: var(--sub); font-size: 14px; font-weight: 400; }
.d4__tr { position: relative; min-height: 88px; }
.d4__b { position: absolute; top: 4px; height: 16px; left: calc(var(--s) / var(--n) * 100%); width: calc((var(--e) - var(--s)) / var(--n) * 100%); border-radius: 8px; background: #9aa3b5; transform-origin: left; }
.d4__r.is-me .d4__b { background: linear-gradient(90deg, var(--brand), #4a68ff); }
.d4__p { position: absolute; z-index: 2; top: 0; left: calc(var(--x) / var(--n) * 100%); display: grid; padding-top: 32px; white-space: nowrap; }
.d4__p.is-end { padding-top: 32px; left: auto; right: calc((var(--n) - var(--x)) / var(--n) * 100% - 12px); justify-items: end; text-align: right; }
.d4__p.is-end i { left: auto; right: 0; }
.d4__p i { position: absolute; left: -12px; top: 0; width: 24px; height: 24px; box-sizing: border-box; border-radius: 50%; background: #fff; border: 5px solid #9aa3b5; }
.d4__p.is-end i { background: #9aa3b5; }
.d4__r.is-me .d4__p i { border-color: var(--brand); }
.d4__r.is-me .d4__p.is-end i { background: var(--brand); }
.d4__p b, .d4__p small { padding: 0 4px; background: var(--bg); font-size: 14px; line-height: 1.45; }
.d4__p:not(.is-end) b, .d4__p:not(.is-end) small { translate: -16px 0; }
.d4__p b { color: var(--ink); }
.d4__p small { color: var(--sub); }
.d4__r.is-me .d4__p b { color: var(--brand-d); }
.d4__p.is-ng i { border-color: #b93c00 !important; background: #b93c00 !important; }
.d4__ex { position: absolute; z-index: 2; top: 32px; right: 0; display: grid; justify-items: end; padding-left: 4px; background: var(--bg); color: var(--ink); font-size: 14px; line-height: 1.45; white-space: nowrap; }
.d4 .tl__today { position: absolute; z-index: 1; top: 0; bottom: 0; left: calc(var(--x) / var(--n) * 100%); width: 0; border-left: 2px dashed #c74700; }
.d4 .tl__today span { position: absolute; top: 0; left: 0; translate: -50% 0; padding: 0 8px; border-radius: 8px; background: #b93c00; color: #fff; font-size: 14px; font-weight: 700; line-height: 1.7; white-space: nowrap; }
.d4 .tl__today[hidden] { display: none; }
@media (max-width: 359px) { .d4__m small { display: none; } }

/* 図5 合格したあと：切り替えで同じ3校の状態が変わる */
.d5__seg { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; max-width: 320px; margin: 0 auto 20px !important; }
.d5__us { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.d5__u { position: relative; display: grid; justify-items: center; align-content: start; gap: 8px; min-height: 152px; padding: 16px 4px; box-sizing: border-box; border-radius: 20px; background: #fff; box-shadow: var(--sh1); transition: background-color .5s var(--ease), opacity .5s var(--ease), transform .5s var(--ease); }
.d5__nm { color: var(--ink); font-size: 16px; font-weight: 700; transition: color .5s; }
.d5__ok, .d5__lk { display: grid; place-items: center; height: 32px; }
.d5__ok { min-width: 64px; padding: 0 12px; border-radius: 16px; background: var(--brand); color: #fff; font-size: 14px; font-weight: 700; }
.d5__u:not(.is-a) .d5__ok { display: none; }
.d5__u.is-a .d5__lk { display: none; }
.d5__lk { width: 32px; border-radius: 50%; color: #5f6672; transition: opacity .4s, transform .5s var(--ease); }
.d5__lk .d-lock { width: 24px; height: 24px; }
.d5__st b { display: block; font-size: 15px; line-height: 1.4; text-align: center; }
.d5__u.is-a .d5__st b { color: var(--brand-d); }
.d5__u:not(.is-a) .s-sen { color: #5f6672; }
.d5__u:not(.is-a) .s-hei { color: var(--brand-d); }
.d5[data-mode="sen"] .s-hei, .d5[data-mode="hei"] .s-sen { display: none; }
.d5[data-mode="sen"] .d5__u:not(.is-a) { background: #eceef2; box-shadow: none; }
.d5[data-mode="sen"] .d5__u:not(.is-a) .d5__nm { color: #5f6672; text-decoration: line-through; text-decoration-thickness: 2px; }
.d5[data-mode="hei"] .d5__u:not(.is-a) .d5__lk { opacity: 0; transform: scale(.6) translateY(-8px); }
.d5[data-mode="sen"] .d5__u.is-a { box-shadow: inset 0 0 0 2px var(--brand), var(--sh1); }
.d5__cap { margin-top: 16px; color: var(--sub); font-size: 14px; line-height: 1.6; text-align: center; text-wrap: pretty; }
.d5__cap span { display: block; }
.d5[data-mode="sen"] .d5__cap .s-hei, .d5[data-mode="hei"] .d5__cap .s-sen { display: none; }

/* 募集要項で探す一文 */
.find1 { margin-top: 24px; display: grid; gap: 8px; }
.find1__k { color: var(--ink); font-size: 15px; font-weight: 700; }
.find1__q { padding: 12px 16px; border-radius: 12px; background: var(--bg); color: var(--ink); font-size: 16px; line-height: 1.6; }
.find1__q span { background: linear-gradient(var(--mk), var(--mk)) 0 100% / 100% 100% no-repeat; -webkit-box-decoration-break: clone; box-decoration-break: clone; padding: 0 4px; }
.find1__s { color: var(--sub); font-size: 14px; line-height: 1.6; }

/* 図8 割合：動く横棒 */
.d8__bars { display: grid; gap: 20px; margin: 0; padding: 0; list-style: none; }
.d8__bars li { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; row-gap: 8px; }
.d8__n { color: var(--ink); font-size: 15px; font-weight: 700; }
.d8__v { color: var(--ink); font-size: 18px; font-variant-numeric: tabular-nums; }
.d8__bars li.is-me .d8__n, .d8__bars li.is-me .d8__v { color: var(--brand-d); }
.d8__bars li.is-me .d8__v { font-size: 32px; line-height: 1.1; }
.d8__t { grid-column: 1 / -1; height: 24px; border-radius: 12px; background: #e3e6ec; overflow: hidden; }
.d8__bars li.is-me .d8__t { height: 32px; border-radius: 16px; }
.d8__b { display: block; height: 100%; width: calc(var(--w) * 1%); border-radius: inherit; background: #9aa3b5; transform-origin: left; }
.d8__bars li.is-me .d8__b { background: linear-gradient(90deg, var(--brand), #4a68ff); }

/* 準備の3カード：アイコンは見出しの横 */
.prep li > .ic { display: none; }
.prep__k { display: flex; align-items: center; gap: 8px; }
.prep__k .ic { width: 32px; height: 32px; padding: 6px; box-sizing: border-box; border-radius: 10px; background: var(--brand); color: #fff; flex: none; }

/* 記事から道具を開くリンク：検索欄の形 */
.rel1 { margin-top: 24px; }
.rel1 a.jmp::after { content: none; }
.jmp { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 8px 8px 8px 16px; border-radius: 26px; background: var(--bg); color: var(--ink) !important; font-size: 15px; font-weight: 700; text-decoration: none; box-shadow: inset 0 0 0 1px #dfe3ea; transition: background-color .2s, transform .2s var(--ease); }
.jmp .ic { width: 20px; height: 20px; color: var(--sub); flex: none; }
.jmp span:not(.jmp__go) { flex: 1; min-width: 0; }
.jmp__go { flex: none; padding: 6px 14px; border-radius: 18px; background: var(--brand); color: #fff; font-size: 14px; }
.jmp:active { transform: scale(.98); }
@media (hover: hover) { .jmp:hover { background: var(--brand-50); } }

/* 共有：理由を添える。リンクのコピーもボタン */
.sshare { align-items: center; }
.sshare .b-copy { display: inline-flex !important; align-items: center; gap: 6px; min-height: 44px; padding: 0 16px !important; border-radius: 22px !important; background: var(--bg) !important; color: var(--ink) !important; font-size: 15px !important; font-weight: 700; text-decoration: none !important; }
.sshare .b-copy .ic { width: 20px; height: 20px; }
.sshare__d { flex-basis: 100%; color: var(--sub); font-size: 14px; line-height: 1.6; }

/* 出典：最後に小さく、たたむ */
.srcs { margin: 32px auto 0; padding: 0 var(--gut, 20px); max-width: 720px; color: var(--sub); font-size: 14px; }
.srcs summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 700; }
.srcs ul { display: grid; gap: 8px; margin: 4px 0 0; padding: 0 0 0 20px; line-height: 1.6; }
.srcs a { color: var(--sub); }

/* 記事の検索欄：その場で打てる */
.fq { margin-top: 16px; padding: 12px; border-radius: 20px; background: rgba(255, 255, 255, .12); }
.fq__row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
@media (min-width: 480px) { .fq__row { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); } }
.fq__u { position: relative; display: flex; align-items: center; gap: 8px; height: 52px; padding: 0 16px; border-radius: 26px; background: #fff; }
.fq__u > .ic { width: 20px; height: 20px; color: #5f6672; flex: none; }
.fq__u input { flex: 1; min-width: 0; height: 100%; border: 0; background: transparent; color: var(--ink); font: inherit; font-size: 17px; font-weight: 700; caret-color: var(--brand); outline: none; }
.fq__u input::placeholder { color: #767676; font-weight: 400; }
.fq__u input::-webkit-search-cancel-button { display: none; }
.fq__u:focus-within { box-shadow: 0 0 0 3px #ffd43d; }
.fq__ty { position: absolute; left: 44px; top: 50%; translate: 0 -50%; display: flex; align-items: center; color: var(--ink); font-size: 17px; font-weight: 700; pointer-events: none; }
.caret { display: inline-block; width: 2px; height: 1.2em; margin-left: 2px; background: var(--brand); animation: caret 1.06s steps(1) infinite; }
@keyframes caret { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .caret { animation: none; } }
.fq__sug { position: absolute; z-index: 40; left: 0; right: 0; top: calc(100% + 8px); max-height: 320px; overflow: auto; margin: 0; padding: 8px; list-style: none; border-radius: 20px; background: rgba(255, 255, 255, .92); -webkit-backdrop-filter: blur(24px) saturate(180%); backdrop-filter: blur(24px) saturate(180%); box-shadow: 0 0 0 .5px rgba(0, 0, 0, .12), 0 16px 48px rgba(10, 16, 30, .22); }
.fq__sug li { display: flex; align-items: baseline; gap: 8px; min-height: 44px; padding: 10px 12px; border-radius: 12px; color: var(--ink); font-size: 16px; font-weight: 700; cursor: pointer; }
.fq__sug li small { color: var(--sub); font-size: 14px; font-weight: 400; }
.fq__sug li[aria-selected="true"] { background: var(--brand-50); }
@media (hover: hover) { .fq__sug li:hover { background: var(--brand-50); } }
.fq__f .pop__b { min-height: 52px; border: 0; }
.fq__f .pop__b:disabled { opacity: 1; background: rgba(255, 255, 255, .55); color: #5f6672; cursor: default; }
.fq__hint { margin-top: 8px; color: #fff; font-size: 14px; line-height: 1.6; }
.fq__go { margin-top: 12px; width: 100%; }

/* 次に読む：CTAのあと。問いのカード（アイコン・問い・何が分かるか） */
.nx2 { margin: 32px auto 0; padding: 0 var(--gut, 20px); max-width: 720px; }
.nx2__t { margin-bottom: 12px; color: var(--ink); font-size: 22px; font-weight: 700; }
.nx2__l { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 560px) { .nx2__l { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.nx2__l a { display: grid; grid-template-columns: 44px minmax(0, 1fr); grid-template-areas: "i q" "i s"; column-gap: 12px; row-gap: 4px; align-items: center; height: 100%; box-sizing: border-box; padding: 16px; border-radius: 20px; background: var(--card); box-shadow: var(--sh1); color: var(--ink); text-decoration: none; transition: transform .2s var(--ease), box-shadow .2s; }
.nx2__ic { grid-area: i; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--brand-50); color: var(--brand); }
.nx2__ic .ic { width: 24px; height: 24px; }
.nx2__l b { grid-area: q; font-size: 16px; line-height: 1.4; }
.nx2__l a > span:last-child { grid-area: s; color: var(--sub); font-size: 14px; line-height: 1.5; }
.nx2__l a:active { transform: scale(.98); }
@media (hover: hover) { .nx2__l a:hover { box-shadow: inset 0 0 0 2px var(--brand), var(--sh1); } }

/* フッター：ロゴとひとこと、小さな灰色のリンク（下線なし・区切りは余白） */
.ft2 { margin-top: 48px; padding: 32px var(--gut, 20px) calc(32px + env(safe-area-inset-bottom)); border-top: 1px solid #dfe3ea; background: var(--bg); }
.ft2__in { max-width: 720px; margin: 0 auto; display: grid; gap: 20px; justify-items: start; }
.ft2__logo { display: flex; align-items: center; gap: 12px; color: var(--ink); text-decoration: none; }
.ft2__logo span { display: grid; gap: 4px; }
.ft2__logo b { font-size: 18px; }
.ft2__logo small { color: var(--sub); font-size: 14px; }
.ft2__nav { display: flex; flex-wrap: wrap; gap: 0 20px; }
.ft2__nav a { display: inline-flex; align-items: center; min-height: 44px; color: var(--sub); font-size: 14px; text-decoration: none; }
@media (hover: hover) { .ft2__nav a:hover { color: var(--ink); text-decoration: underline; } }
.ft2__c { color: var(--sub); font-size: 14px; }

/* ヘッダー：入試を探す＝検索欄の形、保存＝しおりの印と件数、記事一覧は控えめな文字 */
.hd2 { display: flex !important; align-items: center; gap: 8px; }
.hd2 a, .hd2 button { text-decoration: none !important; }
.hd2__ar { display: inline-flex; align-items: center; min-height: 44px; padding: 0 8px; color: var(--sub) !important; font-size: 15px; }
.hd2__sv { position: relative; display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 22px; background: transparent; color: var(--ink); cursor: pointer; }
.hd2__sv .ic { width: 24px; height: 24px; }
.hd2__n { position: absolute; top: 4px; right: 2px; min-width: 20px; height: 20px; padding: 0 6px; box-sizing: border-box; border-radius: 10px; background: var(--brand); color: #fff; font-size: 14px; font-weight: 700; line-height: 20px; text-align: center; }
.hd2__q { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px 0 12px; border: 0; border-radius: 20px; background: var(--bg); color: var(--ink); font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; box-shadow: inset 0 0 0 1px #dfe3ea; }
.hd2__q .ic { width: 18px; height: 18px; color: var(--sub); }
.hd2 :is(.hd2__sv, .hd2__q):active { transform: scale(.96); }
@media (hover: hover) { .hd2__q:hover { background: var(--brand-50); } .hd2__sv:hover { background: var(--bg); } .hd2__ar:hover { color: var(--ink) !important; } }
@media (max-width: 479px) { .hd2__ar { display: none; } }

/* 色は2つだけ（HIG「カラー」：同じ色を別の意味に使わない・色を控えめに）。ブランドの青＝大事な所・操作、灰＝それ以外。
   例外は「今日」の線（今の時刻＝赤みのある色は、カレンダーと同じ慣習）とLINEの緑（LINEのボタンだけ） */
a:visited { color: var(--brand-d); }
mark { background: linear-gradient(transparent 62%, var(--hl) 62%) !important; }
.prep__do { color: var(--ink) !important; }
.d3__c, .d3__c.c-doc, .d3__c.c-talk { background: #fff; box-shadow: var(--sh1); }
.d3__c small, .d3__c.c-doc small, .d3__c.c-talk small { color: var(--sub); }
.d3__c.c-pen { background: var(--brand); box-shadow: none; }
.d3__c.c-pen small, .d3__c.c-pen b { color: #fff; }
.d3__c.is-none { background: transparent; box-shadow: inset 0 0 0 1.5px #c4c9d4; }
.d1__g.is-lock { height: 64px; background: #eceef2; color: var(--ink); box-shadow: none; }
.d4__p.is-ng i { border-color: #5f6672 !important; background: #5f6672 !important; }
.d4__p.is-ng b { color: var(--ink); }
.find1__q span { background: linear-gradient(transparent 62%, var(--hl) 62%); }
.nx__k, .tag--soon { background: var(--brand-50) !important; color: var(--brand-d) !important; }
.d2__bar i { transform: rotate(-70deg); }
.d2__gt.is-opt .d2__bar i { background: transparent; background-image: none; outline: none; box-shadow: inset 0 0 0 2px var(--brand); }

/* 図2 修正：道の上の輪。必ずある条件は実線、ない方式もある条件は点線 */
.d2__gt { grid-template-columns: 40px minmax(0, 1fr); }
.d2__dot { grid-row: span 2; justify-self: center; width: 24px; height: 24px; box-sizing: border-box; border-radius: 50%; background: var(--card, #fff); border: 3px solid var(--brand); position: relative; z-index: 2; }
.d2__gt.is-opt .d2__dot { border-style: dashed; }
.d2__gs { padding-left: 0; }
.d2__me, .d2__ok { margin-left: 0; }

/* 図3 修正：方式ごとの横棒。部品が左から積み上がる。学力の部品だけ青 */
.d3__key { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; margin-bottom: 4px; color: var(--sub); font-size: 14px; font-weight: 700; text-align: center; }
.d3__key .is-pen { color: var(--brand-d); }
.d3__rows { gap: 12px; }
.d3__n { margin-bottom: 4px; }
.d3__bar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
.d3__s { display: grid; place-items: center; min-height: 48px; padding: 4px; border-radius: 0; background: var(--seg1); color: var(--ink); font-size: 14px; font-style: normal; font-weight: 700; line-height: 1.35; text-align: center; word-break: keep-all; transform-origin: left; }
.d3__s:first-child { border-radius: 12px 0 0 12px; }
.d3__s:last-child { border-radius: 0 12px 12px 0; }
.d3__s.c-talk { background: var(--seg2); }
.d3__s.c-pen { background: var(--brand); color: #fff; }
.d3__s.is-none { background: transparent; box-shadow: inset 0 0 0 1.5px #c4c9d4; color: #5f6672; font-weight: 400; }

/* 図4 修正：今日の札は線の上だけ。発表のラベルは1段下げて、出願のラベルと重ねない */
.d4 .tl__today span { bottom: auto !important; transform: none !important; }
.d4__p.is-end { padding-top: 76px; }
.d4__tr { min-height: 124px; }
.d6 .d4__tr { min-height: 136px; }

/* ヘッダー修正 */
.hd2__q span { white-space: nowrap; }
@media (max-width: 479px) { .hd2 .hd2__ar { display: none !important; } }
:root { --seg1: #e3e6ec; --seg2: #ccd1db; }
.fq__f .pop__b:disabled { background: rgba(255, 255, 255, .22) !important; color: #fff !important; }

/* ===== 道具の画面 ===== */
/* 一覧の行（HIGのリスト：1行＝1方式。大学名を太く、方式は小さく、状態は色の点＋文字、右に›） */
.tool .find__list { display: grid; gap: 0; margin-top: 8px; border-radius: 16px; background: var(--card, #fff); box-shadow: var(--sh1); overflow: hidden; }
.res2 { list-style: none; }
.res2 + .res2 { border-top: 1px solid #e6e8ee; }
.res2 .res__open { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "t c" "p c" "s c"; column-gap: 8px; row-gap: 2px; align-items: center; width: 100%; min-height: 64px; margin: 0 !important; padding: 12px 12px 12px 16px !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: var(--ink) !important; font: inherit; text-align: left; box-shadow: none !important; cursor: pointer; }
.res2__t { grid-area: t; font-size: 16px; font-weight: 700; line-height: 1.4; }
.res2__p { grid-area: p; color: var(--sub); font-size: 14px; line-height: 1.4; }
.res2 .st2 { grid-area: s; }
.res2__sv { grid-area: s; justify-self: end; display: inline-flex; align-items: center; gap: 4px; color: var(--brand-d); font-size: 14px; font-weight: 700; }
.res2__sv .ic { width: 16px; height: 16px; }
.res2__chev { grid-area: c; width: 16px; height: 16px; color: #8a92a3; }
.res2.is-now .res__open { background: var(--brand-50) !important; }
.res2 .res__open:active { background: var(--bg) !important; transform: none !important; }
@media (hover: hover) { .res2 .res__open:hover { background: var(--bg) !important; } }
.res2__more { list-style: none; border-top: 1px solid #e6e8ee; }
.res2__more button { width: 100%; min-height: 48px; border: 0; background: transparent; color: var(--brand-d); font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; }
.tool .find__list > li:not(.res2):not(.res2__more) { padding: 12px 16px; }
.tool .res__hint p { font-size: 14px; }

/* 受付の状態：点＋文字（色は青＝受付中、灰＝それ以外） */
.st2 { display: inline-flex; align-items: center; gap: 6px; width: fit-content; color: var(--sub); font-size: 14px; font-weight: 700; line-height: 1.4; }
.st2 i { width: 8px; height: 8px; border-radius: 50%; background: #8a92a3; flex: none; }
.st2--open { color: var(--brand-d); } .st2--open i { background: var(--brand); box-shadow: 0 0 0 3px var(--brand-50); }
.st2--soon { color: var(--ink); } .st2--soon i { background: transparent; box-shadow: inset 0 0 0 2px var(--brand); }

/* PCは左の列をスクロールさせない */
@media (min-width: 1120px) { .tool .tool__side { overflow: hidden !important; } }

/* 右の空の状態：これから出る準備リストの形を見せる */
.tool__empty { display: none; }
@media (min-width: 1120px) {
  .tool:not(.has-plan) .tool__empty { display: grid; justify-items: center; align-content: center; gap: 8px; position: sticky; top: 56px; height: calc(100dvh - 56px); }
}
.te__card { width: min(360px, 100%); padding: 20px; border-radius: 24px; background: var(--card, #fff); box-shadow: var(--sh1); display: grid; gap: 16px; margin-bottom: 16px; }
.te__hero { display: grid; gap: 8px; padding-bottom: 12px; border-bottom: 1px solid #e6e8ee; }
.te__hero i, .te__sec i { display: block; height: 12px; border-radius: 6px; background: #e3e6ec; }
.te__l1 { width: 40%; } .te__l2 { width: 70%; height: 20px !important; border-radius: 8px !important; } .te__pill { width: 30%; background: var(--brand-50) !important; }
.te__sec { display: grid; gap: 6px; }
.te__sec p { display: flex; align-items: center; gap: 8px; color: var(--ink); font-size: 14px; font-weight: 700; }
.te__sec .ic { width: 24px; height: 24px; padding: 4px; box-sizing: border-box; border-radius: 8px; background: var(--brand-50); color: var(--brand); }
.te__sec i:nth-of-type(2) { width: 60%; }
.te__t { color: var(--ink); font-size: 17px; font-weight: 700; }
.te__s { color: var(--sub); font-size: 14px; }
@media (prefers-reduced-motion: no-preference) { .te__sec { animation: teIn .7s var(--ease) both; } .te__sec:nth-child(3) { animation-delay: .12s; } .te__sec:nth-child(4) { animation-delay: .24s; } .te__sec:nth-child(5) { animation-delay: .36s; } }
@keyframes teIn { from { opacity: 0; transform: translateY(8px); } }

/* 準備リスト：見出しの塊・グループごとの面（HIGの「グループ化されたリスト」） */
.tool .find__card { background: transparent !important; box-shadow: none !important; padding: 0 !important; }
.plan__hero { display: grid; gap: 4px; padding: 8px 4px 16px; }
.plan__hero .plan__m { color: var(--sub); font-size: 15px; font-weight: 700; }
.plan__hero .plan__t { margin: 0; font-size: 28px; line-height: 1.3; }
.plan__hero .plan__t small { display: block; margin-top: 4px; color: var(--ink); font-size: 17px; font-weight: 400; }
.plan__hero .st2 { margin-top: 8px; font-size: 15px; }
.plan__next { margin-top: 0 !important; padding: 20px !important; border-radius: 20px !important; background: var(--brand) !important; color: #fff !important; }
.plan__next * { color: inherit !important; }
.plan__next .plan__nk { opacity: .8; font-size: 14px; }
.plan__next .plan__nh { font-size: 20px; line-height: 1.45; }
.plan__next button, .plan__next a { background: rgba(255, 255, 255, .18) !important; border: 0 !important; color: #fff !important; }
.plan__sv { margin-top: 16px !important; }
.plan__svb { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.plan__svb button { display: inline-flex !important; align-items: center; justify-content: center; gap: 8px; min-height: 52px; margin: 0 !important; border-radius: 26px !important; font-size: 15px !important; font-weight: 700; }
.plan__svb .ic, .plan__svb .i-line { width: 20px; height: 20px; }
.plan__svb .plan__save { background: var(--brand) !important; color: #fff !important; border: 0 !important; }
.plan__svb .plan__un { background: var(--brand-50) !important; color: var(--brand-d) !important; border: 0 !important; }
.plan__sv .plan__svd { margin-top: 8px; color: var(--sub); font-size: 14px; line-height: 1.6; }
.find__card .plan__g { margin-top: 24px !important; padding: 16px 20px !important; border: 0 !important; border-radius: 20px; background: var(--card, #fff); box-shadow: var(--sh1); }
.find__card .plan__g h4 { margin: 0 0 12px !important; color: var(--ink); font-size: 20px !important; line-height: 1.4; }
.find__card .plan__g > ul:not(.cnd):not(.plan__tasks):not(.plan__docs) li { padding: 8px 0; border-top: 1px solid #e6e8ee; list-style: none; font-size: 16px; }
.find__card .plan__g > ul:not(.cnd):not(.plan__tasks):not(.plan__docs) li:first-child { border-top: 0; }
.cnd { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.cnd li { display: grid; grid-template-columns: 32px minmax(0, 1fr); column-gap: 12px; align-items: center; padding: 12px 0; border-top: 1px solid #e6e8ee; }
.cnd li:first-child { border-top: 0; padding-top: 0; }
.cnd .ic { width: 32px; height: 32px; padding: 6px; box-sizing: border-box; border-radius: 10px; background: var(--brand-50); color: var(--brand); }
.cnd span { display: grid; gap: 4px; }
.cnd small { color: var(--sub); font-size: 14px; line-height: 1.4; }
.cnd b { color: var(--ink); font-size: 17px; line-height: 1.45; }
.plan__act { display: grid !important; gap: 0 !important; margin-top: 24px !important; border-radius: 20px; background: var(--card, #fff); box-shadow: var(--sh1); overflow: hidden; }
.plan__act button { display: flex !important; align-items: center; gap: 12px; min-height: 52px; margin: 0 !important; padding: 0 20px !important; border: 0 !important; border-top: 1px solid #e6e8ee !important; border-radius: 0 !important; background: transparent !important; color: var(--brand-d) !important; font-size: 16px !important; font-weight: 700; text-align: left; text-decoration: none !important; }
.plan__act button:first-child { border-top: 0 !important; }
.plan__act .ic { width: 20px; height: 20px; color: var(--brand); flex: none; }
.plan__src, .plan__share { color: var(--sub); font-size: 14px; }
.plan__t:focus:not(:focus-visible) { outline: none; box-shadow: none; }
.find__card fieldset { margin-top: 0 !important; padding: 12px 16px !important; border: 0 !important; border-radius: 20px; background: var(--card, #fff); box-shadow: var(--sh1); }
.find__card fieldset legend { float: left; width: 100%; margin-bottom: 4px; padding: 0; color: var(--sub); font-size: 14px; font-weight: 700; }
.find__card fieldset label { padding: 8px 0; border-top: 1px solid #e6e8ee; }
.find__card fieldset legend + label { border-top: 0; }
.plan__next { margin-top: 16px !important; }
.tool:not(.is-saved) #saved { display: none !important; }
.tool .find__list > .res__hint { padding: 12px 16px !important; border-bottom: 1px solid #e6e8ee; background: var(--bg); }
.tool .find__list > .res__hint p { color: var(--sub); line-height: 1.6; }
.tool .find__list > .res__hint button { min-height: 44px; padding: 0 !important; border: 0 !important; background: none !important; color: var(--brand-d) !important; font-weight: 700; text-decoration: none !important; }

/* 揃えの修正（線を引いて測った結果） */
.sec > h2 { align-items: first baseline !important; }
.sec > h2::before { margin-top: 0 !important; translate: 0 -4px; }
.prep__k { align-items: center !important; }
.prep__k .ic { margin: 0 !important; align-self: center; }
.d2__dot { align-self: start; margin-top: 0; }
.d2__k { min-height: 24px; }
.d7__n { align-self: start; margin-top: 6px; }
.prep .prep__k { display: flex !important; }
.four__list a::after { content: none !important; display: none !important; }
.four__list a { grid-template-areas: "i q" "i a" !important; align-items: center !important; }

/* 点検の修正（4pxの格子・はみ出し・押せる大きさ） */
.four__list a:is(:link, :visited) { grid-template-areas: "i q" "i a" !important; align-items: center !important; }
@media (min-width: 768px) { .sec > h2::before { translate: 0 -1px; } }
.d1__g { width: min(88px, 100%); }
.d4__m small { font-size: inherit; }
.d4__p[style*="--x:0"]:not(.is-end) b, .d4__p[style*="--x:0"]:not(.is-end) small { translate: -4px 0; }
.d4__p[style*="--x:0"]:not(.is-end) i { left: 0; }
.hd2__q { min-height: 44px; border-radius: 22px; }
.hd2__n { padding: 0 4px; }
.fq__u input { padding: 0; }
.caret { margin-left: 4px; }
.jmp__go { padding: 8px 16px; }
.sshare .b-copy { gap: 8px; }
.d5__seg { padding: 4px !important; gap: 8px !important; }
.d7__n { margin-top: 8px; }
.d7__ui { min-height: 48px; }
.st2 { gap: 8px; }
.res2__sv { gap: 4px; }
.te__sec { gap: 8px; }
.te__t { font-size: 16px; }
@media (max-width: 359px) { .jmp__go { display: none; } .d4__n small { flex-basis: 100%; } }
.srcs__d { margin: 4px 0 0 20px; }
.hd2__sv { padding: 0; }
.four__list a .ic { align-self: center !important; }
.srcs summary { min-width: 44px; }
.res2 .res__open, .plan__hero { row-gap: 4px; }
@media (min-width: 768px) { .sec > h2::before { translate: 0 -3px; } }
.d4__n small { flex-basis: 100%; }
@media (max-width: 359px) { .d1__h { font-size: 14px; letter-spacing: -.04em; } }
/* 見出し番号：1行目の高さ（文字の大きさ×1.4）の中央に置く */
.sec > h2 { --h2lh: 36.4px; align-items: start !important; line-height: 1.4 !important; }
@media (min-width: 768px) { .sec > h2 { --h2lh: 39.2px; } }
@media (max-width: 359px) { .sec > h2 { --h2lh: 30.8px; } }
.sec > h2::before, .sec > h2::before { margin-top: calc((var(--h2lh) - 32px) / 2) !important; translate: none !important; }
/* 左の列を詰める：見出しのラベルは読み上げだけ、補足は1行 */
.tool .find__l { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.tool .find__two { display: grid; gap: 8px; }
.tool .find__ex { margin: 4px 0 0 !important; font-size: 14px; color: var(--sub); }
.tool .find__cond { margin-top: 8px !important; }
.tool .find__n { margin-top: 8px !important; font-size: 14px; color: var(--sub); }
.tool .find__list > .res__hint { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 8px; padding: 4px 16px !important; }

/* ===== 記事末のCTA：もらえる物がLINEに届く様子を、スマホの見本で見せる（cta-research/analysis.md） ===== */
.cta { margin: 32px auto 0; max-width: 960px; padding: 32px 20px; border-radius: 28px; background: var(--card, #fff); box-shadow: var(--sh1); display: grid; gap: 24px; position: relative; overflow: hidden; }
.cta::before { content: ""; position: absolute; inset: auto -20% -40% -20%; height: 70%; background: radial-gradient(60% 60% at 50% 50%, var(--brand-50), transparent 70%); pointer-events: none; }
.cta > * { position: relative; }
@media (min-width: 768px) { .cta { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); grid-template-areas: "copy ph" "act ph"; column-gap: 40px; padding: 48px; align-items: center; } .cta__copy { grid-area: copy; } .cta__ph { grid-area: ph; } .cta__act { grid-area: act; align-self: start; } }
.cta__k { color: var(--brand-d); font-size: 15px; font-weight: 700; }
.cta__t { margin-top: 8px; color: var(--ink); font-size: 28px; line-height: 1.35; word-break: keep-all; }
@media (max-width: 359px) { .cta__t { font-size: 24px; } }
.cta__n { display: flex; align-items: baseline; gap: 4px; margin-top: 16px; color: var(--ink); }
.cta__n b { color: var(--brand); font-size: 48px; line-height: 1; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.cta__n span { font-size: 16px; font-weight: 700; margin-right: 16px; }
.cta__d { margin-top: 16px; color: var(--sub); font-size: 16px; line-height: 1.7; }
.cta__ph { position: relative; justify-self: center; width: 240px; height: 480px; }
.cta__frame { position: absolute; inset: 0; width: 100%; height: 100%; }
.cta__scr { position: absolute; left: 23px; top: 13px; width: 194px; height: 454px; border-radius: 35px; overflow: hidden; background: #e8eef6; display: flex; flex-direction: column; }
.cta__bar { display: flex; align-items: center; justify-content: center; gap: 4px; padding: 44px 0 8px; background: #fff; color: #1a1a1a; font-size: 14px; font-weight: 700; }
.cta__chat { flex: 1; display: grid; align-content: end; gap: 8px; padding: 12px 10px 20px; }
.cta__me { justify-self: end; padding: 6px 12px; border-radius: 16px 16px 4px 16px; background: #06c755; color: #fff; font-size: 14px; font-weight: 700; }
.cta__msg { justify-self: start; max-width: 85%; padding: 8px 12px; border-radius: 16px 16px 16px 4px; background: #fff; color: #1a1a1a; font-size: 14px; line-height: 1.5; }
.cta__file { justify-self: start; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 8px; align-items: center; width: 88%; padding: 8px; border-radius: 16px; background: #fff; }
.cta__file img { width: 56px; height: 72px; }
.cta__file b { display: block; color: #1a1a1a; font-size: 14px; line-height: 1.35; }
.cta__file small { color: #5f6672; font-size: 14px; }
.cta__how { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.cta__how li { display: grid; justify-items: center; gap: 8px; color: var(--ink); font-size: 14px; font-weight: 700; line-height: 1.4; text-align: center; }
.cta__how span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--brand-50); color: var(--brand-d); font-size: 14px; }
.cta__btn { display: flex !important; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 56px; margin-top: 20px; border-radius: 28px; background: var(--line-g, #00843d) !important; color: #fff !important; font-size: 17px; font-weight: 700; text-decoration: none !important; box-shadow: 0 8px 24px rgba(0, 132, 61, .25); transition: transform .2s var(--ease); }
.cta__btn .i-line { width: 24px; height: 24px; }
.cta__btn:active { transform: scale(.97); }
.cta__safe { margin-top: 12px; color: var(--ink); font-size: 14px; text-align: center; }
.cta__note { margin-top: 12px; color: var(--sub); font-size: 14px; line-height: 1.6; }
/* スマホの見本は、ダークモードでも実物どおりの明るい画面 */
.cta__scr, .cta__scr * { word-break: normal !important; }
.cta__scr { background: #e8eef6 !important; }
.cta__bar, .cta__msg, .cta__file { background: #fff !important; color: #1a1a1a !important; }
.cta__file b { color: #1a1a1a !important; } .cta__file small { color: #5f6672 !important; white-space: nowrap; }
.cta__msg { max-width: 90%; }
.cta__how li { align-content: start; }
.cta__me { background: #00843d !important; padding: 8px 12px; }
.cta__chat { padding: 12px 8px 20px; }
.d1__h { text-wrap: balance; }
.tool .pop__v { word-break: keep-all; }

/* ===== 2026-10-27 2回目の指摘から（RULES.md 15章） ===== */
[hidden] { display: none !important; }
/* 線とブロックの重なり：一覧の上下の線をなくす */
.four__list, .four__list li, .prep { border: 0 !important; }
/* 記事の検索欄：見本の文字は入力中は消す。学部のメニューは横書き・1行 */
.fq__ty[hidden] { display: none !important; }
.fq .pop__m { width: max(100%, 280px); }
.fq .pop__m li { grid-template-columns: 24px minmax(0, 1fr) auto; white-space: nowrap; }
.fq .pop__m li > span { overflow: hidden; text-overflow: ellipsis; }
/* 図2：まっすぐな道。人と大学の印を、輪と同じ列に */
.d2__road { padding-left: 0; }
.d2__me, .d2__ok { margin-left: 4px; }
.d2__me .ic, .d2__ok .ic { width: 32px; height: 32px; }
/* 図3：実際の方式。見出しは「大学 学部」を太く、方式名を小さく */
.d3__n { display: grid; gap: 2px; margin-bottom: 8px; }
.d3__n b { color: var(--ink); font-size: 15px; }
.d3__n span { color: var(--sub); font-size: 14px; font-weight: 400; }
.d3__rows { gap: 16px; }
.d3__s { min-height: 52px; }
/* 図4・図6：縦の線をやめ、月ごとの薄い帯に（文字が線を切らない） */
.d4__g::before { background: repeating-linear-gradient(90deg, transparent 0 calc(100% / var(--n)), var(--bg2, rgba(0, 0, 0, .035)) calc(100% / var(--n)) calc(200% / var(--n))); }
.d4__sub { margin: -12px 0 16px; color: var(--sub); font-size: 14px; }
.d4__n, .d4__p b, .d4__p small, .d4__ex { background: transparent !important; }
.d4__n small { flex-basis: auto; }
.d4__r { padding-top: 12px; }
.d4__tr { min-height: 112px; }
.d4__p.is-end { padding-top: 64px; }
/* 図5：押さなくても両方見える */
.d5__two { display: grid; gap: 16px; }
@media (min-width: 640px) { .d5__two { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.d5__g { display: grid; gap: 12px; padding: 16px; border-radius: 20px; background: var(--card, #fff); box-shadow: var(--sh1); }
.d5__g.is-hei { box-shadow: inset 0 0 0 2px var(--brand), var(--sh1); }
.d5__h { display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: 10px; align-items: center; margin: 0; color: var(--ink); font-size: 18px; line-height: 1.3; }
.d5__h small { grid-column: 2; display: block; color: var(--sub); font-size: 14px; font-weight: 400; line-height: 1.4; }
.d5__ic { grid-row: span 2; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: #eceef2; color: var(--ink); }
.d5__g.is-hei .d5__ic { background: var(--brand-50); color: var(--brand); }
.d5__ic svg { width: 24px; height: 24px; }
.d5__us { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.d5__u { position: relative; display: grid; justify-items: center; align-content: start; gap: 8px; min-height: 128px; padding: 12px 4px; box-sizing: border-box; border-radius: 16px; background: var(--bg); }
.d5__nm { color: var(--ink); font-size: 16px; font-weight: 700; }
.d5__u.is-a { background: var(--brand-50); box-shadow: inset 0 0 0 2px var(--brand); }
.d5__u .d5__st { display: block; font-size: 14px; line-height: 1.4; text-align: center; color: var(--brand-d); }
.d5__g.is-sen .d5__u:not(.is-a) { background: #eceef2; }
.d5__g.is-sen .d5__u:not(.is-a) .d5__nm { color: #5f6672; text-decoration: line-through; text-decoration-thickness: 2px; }
.d5__g.is-sen .d5__u:not(.is-a) .d5__st { color: #5f6672; }
.d5__lk { color: #5f6672; } .d5__lk .d-lock { width: 24px; height: 24px; }
.d5__go { display: grid; place-items: center; min-height: 32px; padding: 0 10px; border-radius: 16px; background: #fff; color: var(--brand-d); font-size: 14px; font-weight: 700; box-shadow: inset 0 0 0 1.5px var(--brand); }
.d5__u.is-open { background: var(--brand-50); }
.d5__cap { margin: 0; color: var(--sub); font-size: 14px; line-height: 1.6; text-align: left; }
.d5__cap span { display: inline; }
/* 準備の3カード：丸いアイコン＋見出し、下に説明 */
.prep__k { display: flex !important; align-items: center; gap: 10px; margin: 0 0 12px !important; padding: 0 !important; background: none !important; font-size: 18px; }
.prep__k .ic { width: 20px; height: 20px; padding: 0; background: none; color: #fff; }
.prep__ic { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--brand); color: #fff; flex: none; }
.prep li + li::before { display: none; }
.prep__w { color: var(--sub); font-size: 14px; }
/* 共有：中央に。ボタンにホバーの反応（HIG「ポインタ」：ホバーで面がわずかに明るく、押すと縮む） */
.sshare { justify-content: center; text-align: center; }
.sshare__d { text-align: center; }
@media (hover: hover) {
  .b-line:hover, .b-copy:hover, .jmp:hover, .hd2__q:hover, .plan__act button:hover, .cta__btn:hover, .nx2__l a:hover, .find__b:hover, .res2 .res__open:hover, .plan__svb button:hover { filter: brightness(1.06); transform: translateY(-1px); box-shadow: 0 4px 14px rgba(16, 24, 40, .14); }
  .b-copy:hover .ic, .jmp:hover .ic { transform: translateX(2px); }
}
.b-line, .b-copy, .jmp, .hd2__q, .plan__act button, .cta__btn, .nx2__l a, .find__b, .plan__svb button { transition: transform .22s var(--ease), box-shadow .22s var(--ease), filter .22s, background-color .2s; }
.b-copy .ic, .jmp .ic { transition: transform .22s var(--ease); }
:is(.b-line, .b-copy, .jmp, .hd2__q, .cta__btn, .nx2__l a, .find__b):active { transform: scale(.97) !important; filter: brightness(.96); }
/* ヘッダー：保存は文字で */
.hd2__sv { width: auto; padding: 0 12px; border-radius: 22px; color: var(--ink); font: inherit; font-size: 15px; font-weight: 700; gap: 6px; display: inline-flex; align-items: center; }
/* マイページ（2026-11-03）：数字はやめ、書きかけの下書きか7日以内の締切があるときだけ点 */
.hd2__sv { position: relative; }
.hd2__n { position: absolute; top: 8px; right: 1px; width: 8px; min-width: 0; height: 8px; padding: 0 !important; border-radius: 50%; }
.hd2__tl { display: inline-flex; align-items: center; min-height: 44px; padding: 0 8px; color: var(--ink); font-size: 15px; font-weight: 700; white-space: nowrap; }
.hd2__sv { white-space: nowrap; }
@media (max-width: 374px) { .hd2__tl, .hd2__sv { padding: 0 6px; font-size: 14px; } }
/* 「道具」「マイページ」を並べると幅が足りないので、スマホではロゴの文字を消してハムスターだけにする */
@media (max-width: 419px) { .logo span { display: none; } .logo { min-width: 44px; justify-content: center; } .hd2 { gap: 4px; } .hd2__tl, .hd2__sv { padding: 0 8px; } }
/* 幅をそろえる：CTA・次に読む・出典・フッターの中身は本文の列と同じ */
.nx2, .srcs { max-width: 720px; margin-left: auto; margin-right: auto; padding-left: 0; padding-right: 0; }
.cta { max-width: 720px; }
@media (min-width: 768px) { .cta { grid-template-columns: minmax(0, 1fr) 300px; column-gap: 32px; padding: 40px; } }
/* CTA：Apple公式のiPhone 17ベゼル（1350×2760、画面は 72,220〜1277,2690）とLINEのトーク画面 */
.cta__ph { width: 300px; height: 613px; }
.cta__scr { left: 16px; top: 49px; width: 268px; height: 549px; border-radius: 56px; background: #8aa2d1 !important; }
.cta__bar { position: relative; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 52px 12px 10px; background: #fff !important; color: #1a1a1a !important; font-size: 15px; font-weight: 700; }
.cta__back { position: absolute; left: 14px; bottom: 12px; width: 10px; height: 10px; border-left: 2px solid #1a1a1a; border-bottom: 2px solid #1a1a1a; transform: rotate(45deg); }
.cta__bic { position: absolute; right: 14px; bottom: 14px; display: flex; gap: 6px; }
.cta__bic i { width: 14px; height: 14px; border-radius: 4px; border: 1.5px solid #1a1a1a; }
.cta__chat { flex: 1; display: grid; align-content: end; gap: 10px; padding: 12px 10px 12px; }
.cta__date { justify-self: center; padding: 2px 10px; border-radius: 10px; background: rgba(0, 0, 0, .2); color: #fff; font-size: 11px; }
.cta__row { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; column-gap: 6px; align-items: end; }
.cta__row.is-me { grid-template-columns: auto minmax(0, 1fr); justify-items: end; }
.cta__row.is-me .cta__me { grid-column: 2; }
.cta__av { width: 36px; height: 36px; border-radius: 50%; background: #fff; object-fit: contain; align-self: start; }
.cta__col { display: grid; gap: 6px; justify-items: start; }
.cta__me { padding: 8px 12px; border-radius: 18px; background: #8ee06a !important; color: #1a1a1a !important; font-size: 14px; font-weight: 400; }
.cta__msg { padding: 8px 12px; border-radius: 18px; background: #fff !important; color: #1a1a1a !important; font-size: 14px; line-height: 1.5; }
.cta__file { grid-template-columns: 48px minmax(0, 1fr); padding: 8px 10px; border-radius: 18px; }
.cta__file img { width: 48px; height: 62px; }
.cta__meta { display: grid; justify-items: end; color: #fff; font-size: 10px; line-height: 1.3; }
.cta__in { display: flex; align-items: center; gap: 8px; padding: 8px 12px 20px; background: #fff; }
.cta__in i { width: 18px; height: 18px; border-radius: 4px; border: 1.5px solid #5f6672; }
.cta__in span { flex: 1; height: 32px; border-radius: 16px; background: #f2f4f7; }
.cta__scr * { word-break: normal !important; }
/* 揃え：次に読む・出典は本文の列の中に。フッターの中身も同じ列 */
.nx2, .srcs { max-width: none; margin-left: 0; margin-right: 0; }
.nx2 { margin-top: 32px; }
.ft2__in { max-width: 720px; }
@media (min-width: 1120px) { .ft2__in { max-width: 1008px; } .ft2__in > * { max-width: 720px; } }
/* 図1：関門の部品は全部同じ大きさ。鍵は文字の横 */
.d1__g, .d1__g.is-lock { display: flex; align-items: center; justify-content: center; gap: 4px; width: 100%; max-width: 104px; height: 48px; padding: 0 6px; }
.d1__g .d-lock { width: 18px; height: 18px; }
/* 図2：人・出願できるの印を、輪の列の真上に置く（線が面を横切らない） */
.d2__me, .d2__ok { margin-left: 0; padding-left: 4px; }
.d2__gt { grid-template-columns: 40px minmax(0, 1fr); }
/* 選考の段階 */
.selx { display: grid; gap: 8px; margin: 0 0 8px; padding: 0; list-style: none; }
.selx li { display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 12px; align-items: baseline; }
.selx b { color: var(--brand-d); font-size: 14px; }
.selx span { color: var(--ink); font-size: 16px; line-height: 1.6; }
.selx i { margin: 0 6px; color: var(--sub); font-style: normal; }

/* 揃え・大きさの修正（2回目の点検） */
.d1__l { grid-template-rows: auto 72px 48px 72px; row-gap: 16px; }
.d1__c { grid-row: 1 / span 4; display: grid; grid-template-rows: subgrid; row-gap: 16px; padding: 12px 0 16px; }
.d1__h { align-self: end; }
.d1__g, .d1__g.is-lock { padding: 0 8px; }
.d3__n { gap: 4px; }
.prep__k { gap: 12px; }
.d5__h { column-gap: 12px; }
.d5__go { padding: 0 12px; }
@media (max-width: 379px) {
  .d5__us { grid-template-columns: 1fr; gap: 8px; }
  .d5__u { grid-template-columns: 64px minmax(0, 1fr) auto; justify-items: start; align-items: center; column-gap: 12px; min-height: 48px; padding: 8px 12px; }
  .d5__u .d5__ok, .d5__u .d5__lk, .d5__u .d5__go { grid-column: 3; }
  .d5__u .d5__st { grid-column: 2; text-align: left; }
  .d5__u.is-a .d5__ok { order: 3; }
}
@media (max-width: 359px) { .d1__g.is-lock { flex-direction: column; gap: 2px; height: auto; min-height: 48px; padding: 4px; line-height: 1.2; } .d1__g { padding: 0 4px; letter-spacing: -.02em; } }
.d7__ui.is-r { max-width: 100%; overflow: hidden; }
.d7__ui.is-r i { white-space: nowrap; }
.hd2__sv { gap: 8px; }
.jmp { align-items: flex-start; }
.jmp .ic { margin-top: calc((1.5em - 20px) / 2); }
.jmp__go { margin-top: calc((1.5em - 32px) / 2 - 0px); }
.d7__ui.is-r { flex-wrap: nowrap; }
.nx2__t { font-size: 20px; }
.tool .find__l { display: none !important; }
/* 図4・図6：出願のラベルは帯の上、発表のラベルは帯の下（重ならない） */
.d4__tr { min-height: 136px; }
.d4__b { top: 60px; }
.d4__p { top: 0; padding-top: 0; }
.d4__p i { top: 56px; }
.d4__p.is-end { padding-top: 88px; }
.d4__p:not(.is-end) b, .d4__p:not(.is-end) small { translate: -12px 0; }
.d4__ex { top: 88px; }
.d4__r { padding-top: 16px; }
/* CTAの画面：4pxの格子にそろえる。文字は小さくても12px。中身はLINEの実物の見た目（テーマで変えない） */
.cta__time { position: absolute; left: 28px; top: 14px; color: #1a1a1a; font-size: 14px; font-weight: 700; letter-spacing: -.02em; }
.cta__bar { padding: 52px 12px 8px; }
.cta__bic { right: 12px; bottom: 12px; gap: 8px; }
.cta__bic i { display: none; }
.cta__bic svg { width: 18px; height: 18px; color: #1a1a1a; }
.cta__chat { gap: 8px; padding: 12px 8px; }
.cta__date { padding: 4px 12px; font-size: 12px; }
.cta__row { column-gap: 8px; }
.cta__col { gap: 8px; }
.cta__file { padding: 8px 12px; }
.cta__file small { white-space: normal; font-size: 12px; }
.cta__meta { font-size: 12px; color: #fff; }
.cta__in { padding: 8px 12px 20px; }
.d5__go { padding: 0 8px; white-space: nowrap; }
.d5__u .d5__st { white-space: nowrap; }
.d1__g.is-lock { gap: 4px; }
.cta__bar { gap: 8px; }
.jmp { align-items: center; }
.jmp .ic { align-self: flex-start; }
.jmp__go { margin-top: 0; }
.d5__go { padding: 0 4px; letter-spacing: -.02em; }
.d5__u { padding-left: 0; padding-right: 0; }
.jmp .ic { align-self: center; margin-top: 0; }

/* ===== 2026-10-27 3回目：日程の線・図7・LINE画面 ===== */
/* 日程：出願→発表を線でつなぐ。行は詰める。ラベルは印の真上／真下に中央そろえ */
.d4__g { gap: 4px; }
.d4__r { padding-top: 12px; }
.d4__n { margin-bottom: 4px; }
.d4__tr { min-height: 120px; }
.d4__b { display: none; }
.d4__ln { position: absolute; top: 56px; left: calc(var(--a) / var(--n) * 100%); width: calc((var(--b) - var(--a)) / var(--n) * 100%); height: 24px; box-sizing: border-box; border-top: 3px solid #9aa3b5; border-bottom: 0; transform-origin: left; translate: 0 10px; height: 3px; border: 0; background: #9aa3b5; border-radius: 2px; }
.d4__r.is-me .d4__ln { background: var(--brand); }
.d4__p { top: 0; padding-top: 0; left: calc(var(--x) / var(--n) * 100%); translate: -50% 0; display: grid; justify-items: center; text-align: center; }
.d4__p i { left: 50%; top: 56px; translate: -50% 0; width: 24px; height: 24px; }
.d4__p.is-end { right: auto; left: calc(var(--x) / var(--n) * 100%); translate: -50% 0; padding-top: 88px; justify-items: center; text-align: center; }
.d4__p.is-end i { left: 50%; right: auto; }
.d4__p:not(.is-end) b, .d4__p:not(.is-end) small { translate: 0 0; }
.d4__p b, .d4__p small { padding: 0; }
.d4__p.is-end b:empty { display: none; }
.d4__p[style*="--x:0"]:not(.is-end) { translate: 0 0; justify-items: start; text-align: left; }
.d4__p[style*="--x:0"]:not(.is-end) i { left: 12px; translate: -50% 0; }
.d4__ex { display: none; }
.d4 .tl__today { top: 36px; }
/* 図7：番号＋カード（見本と説明を1つに）。実際の値 */
.d7__s { gap: 16px; }
.d7__s li { grid-template-columns: 32px minmax(0, 1fr); align-items: start; }
.d7__n { grid-row: auto; margin-top: 12px; }
.d7__c { display: grid; gap: 8px; padding: 16px; border-radius: 20px; background: var(--card, #fff); box-shadow: var(--sh1); }
.d7__c > b { font-size: 17px; line-height: 1.5; color: var(--ink); }
.d7__c > span { color: var(--sub); font-size: 14px; line-height: 1.6; }
.d7__ui { margin: 0; box-shadow: none; background: var(--bg); }
.d7__ui.is-s .ic { color: var(--brand); }
.d7__rows { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.d7__rows li { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; column-gap: 8px; align-items: center; min-height: 40px; padding: 0 12px; border-radius: 12px; background: var(--bg); font-size: 14px; }
.d7__rows .ic { width: 20px; height: 20px; color: var(--sub); }
.d7__rows span { color: var(--sub); }
.d7__rows b { color: var(--brand-d); font-size: 15px; }
.d7__go { margin-top: 4px; }
.d7__ty { position: static; translate: none; }
/* LINE：上から並ぶ。ファイルは白い吹き出し。入力欄は＋・カメラ・画像・Aa・マイク */
.cta__chat { align-content: start; padding-top: 12px; }
.cta__file { display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: 8px; align-items: center; width: auto; max-width: 100%; padding: 8px 12px; border-radius: 18px; }
.cta__file img { width: 40px; height: 52px; }
.cta__file b { font-size: 14px; }
.cta__file small { display: block; font-size: 12px; white-space: nowrap; }
.cta__in { display: flex; align-items: center; gap: 12px; padding: 8px 12px 24px; color: #5f6672; }
.cta__in svg { width: 22px; height: 22px; flex: none; }
.cta__in span { flex: 1; height: 32px; padding: 0 12px; border-radius: 16px; background: #f2f4f7; color: #8a92a3; font-size: 14px; line-height: 32px; }
.cta__in i { display: none; }

/* 日程：右端の印は右そろえ。月の列は端まで使う */
.d4__p.is-end.is-r { translate: calc(-100% + 12px) 0; justify-items: end; text-align: right; }
.d4__p.is-end.is-r i { left: auto; right: 0; translate: 0 0; }
.d4__g { padding-left: 0; padding-right: 0; }
.d4__g::before { left: 0; right: 0; }
@media (max-width: 359px) { .d4__m span { padding-left: 0; } }
/* 図7：番号はカードの最初の段（見本）の中央に */
.d7__n { margin-top: 24px; }
.d7__s > li { align-items: start; }
.d4__g { padding-right: 12px; padding-top: 64px; }
.d4__g::before { right: 12px; }
.d4 .tl__today { top: 36px; }
.d4 .tl__today span { top: -32px; }
.d7__ui.is-q { min-width: 0; width: 100%; box-sizing: border-box; }
.d7__ui { max-width: 100%; box-sizing: border-box; }
.d4__p.is-end.is-r { left: min(calc(var(--x) / var(--n) * 100%), calc(100% - 12px)); }
.d4__g { padding-right: 0; }
.d4__g::before { right: 0; }
.d7__rows span { min-width: 0; overflow-wrap: anywhere; }
.d7__rows b { white-space: nowrap; }
.d7__rows span { white-space: nowrap; }
@media (max-width: 359px) { .d7__rows li { padding: 0 8px; column-gap: 4px; } }
.d7__rows b { white-space: normal; text-align: right; }
.d7__rows li { grid-template-columns: 24px auto minmax(0, 1fr); }

/* 冒頭アニメ（docs/design/intro/embed.html）：ページの全体指定（body の文字・行送り・字間・折り返し・box-sizing）を .gi の中では外し、見本（intro/index.html）と同じ土台にする。アニメ側は変えない */
.gi { font-size: 16px; line-height: normal; letter-spacing: normal; word-break: normal; overflow-wrap: normal; line-break: auto; color: #1d1d1f; }
.gi h1, .gi h2, .gi h3 { color: inherit; }
.gi h1, .gi h2, .gi h3, .gi p, .gi li, .gi em, .gi span { word-break: normal; text-wrap: auto; }
.gi .src { display: block; }
.gi .src span { font-size: inherit; color: inherit; }
.d2__gt.is-opt .d2__dot { border-style: solid; }
.d2__gt.is-opt .d2__n { background: var(--brand); color: #fff; box-shadow: none; }
.gi .sub { font-size: inherit; line-height: inherit; }
.gi .nw { overflow-wrap: normal; }
.cta__note { font-size: 14px !important; }
/* 図1：段の間を広げて線を見せる。見出しは1行に */
.d1__l, .d1__c { row-gap: 28px; }
@media (max-width: 479px) { .d1__h { font-size: 14px; letter-spacing: -.03em; white-space: nowrap; } }
/* 記事の並び：①結論（art__top）②動画（vid：全幅）③以降。目次は動画の下から右に */
.art__top { display: grid; gap: 0; }
.vid { margin-top: 32px; }
.vid__k { color: var(--brand-d); font-size: 15px; font-weight: 700; }
.vid__t { margin-top: 4px; font-size: 22px; line-height: 1.4; color: var(--ink); }
.vid__d { margin: 8px 0 16px; color: var(--sub); font-size: 16px; line-height: 1.7; }
.vid__d b { color: var(--ink); }
.vid .gi h1 { }
.vid .gi__head { display: none; } /* 見出しは上の「総合型選抜とは？」に一本化（アニメ側は変えない） */
@media (min-width: 1120px) { .art > .art__top { grid-column: 1; grid-row: 1; } .art > .vid { grid-column: 1 / -1; grid-row: 2; } .art > .toc { grid-row: 3 / span 40 !important; } .vid__d { max-width: 720px; } }

/* 準備リスト：先頭の「材料メモを書く」近道と、材料メモの後の次の一歩（2026-11-02 全監査 G-5・G-12） */
.plan__jump { display: inline-flex; align-items: center; min-height: 44px; margin-top: 12px; padding: 0 16px; border: 1px solid currentColor; border-radius: 999px; background: none; color: var(--blue-1000); font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; }
.wr__next { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--gray-200); }
.wr__l textarea::placeholder { color: var(--gray-420); }

/* 2026-11-02 全監査・最終統合版：保護者の入口・載っていない大学の探し方・評定のものさし（図11）・お金の時間軸（図10）・準備リストの段階 */
.four__pa { margin-top: 12px; font-size: 16px; line-height: 1.6; }
.four__pa a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }
.find .find__out { margin-top: 16px; color: rgba(255, 255, 255, .9); font-size: 15px; line-height: 1.7; }
.d11__ax { position: relative; height: 22px; margin: 0 0 4px; color: var(--sub); font-size: 14px; line-height: 22px; }
.d11__ax span { position: absolute; top: 0; white-space: nowrap; }
.d11__ax span:nth-child(1) { left: 0; }
.d11__ax span:nth-child(2) { left: 50%; translate: -50% 0; }
.d11__ax span:nth-child(3) { right: 0; }
.d11__rows { display: grid; gap: 20px; margin: 0; padding: 0; list-style: none; }
.d11__n { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 8px; color: var(--ink); font-size: 15px; font-weight: 700; line-height: 1.45; }
.d11__n span { color: var(--sub); font-size: 14px; font-weight: 400; }
.d11__t { position: relative; height: 24px; margin-top: 8px; border-radius: 12px; background: #e3e6ec; overflow: hidden; }
.d11__b { position: absolute; top: 0; bottom: 0; right: 0; left: calc((var(--v) - 1) / 4 * 100%); border-radius: inherit; background: #9aa3b5; }
.d11__rows li.is-me .d11__b { background: linear-gradient(90deg, var(--brand), #4a68ff); }
.d11__v { margin-top: 4px; color: var(--ink); font-size: 15px; font-weight: 700; }
.d11__rows li.is-me .d11__v { color: var(--brand-d); }
.d10__s { position: relative; display: grid; gap: 20px; margin: 0; padding: 0 0 0 28px; list-style: none; }
.d10__s::before { content: ""; position: absolute; left: 7px; top: 8px; bottom: 8px; width: 2px; background: #9aa3b5; }
.d10__s li { position: relative; display: grid; gap: 4px; }
.d10__s li::before { content: ""; position: absolute; left: -28px; top: 4px; width: 16px; height: 16px; box-sizing: border-box; border: 4px solid #9aa3b5; border-radius: 50%; background: var(--card); }
.d10__s li.is-me::before { border-color: var(--brand); background: var(--brand); }
.d10__d { color: var(--sub); font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }
.d10__s li.is-me .d10__d { color: var(--brand-d); }
.d10__c { display: grid; gap: 2px; }
.d10__c b { color: var(--ink); font-size: 16px; line-height: 1.5; }
.d10__c span { color: var(--ink); font-size: 15px; line-height: 1.6; }
.parent__l { margin: 12px 0 0; padding-left: 1.2em; }
.parent__l li + li { margin-top: 8px; }
.plan__stage { margin: 0 0 16px; }
.plan__stage .ps__h { color: var(--sub); font-size: 14px; font-weight: 700; }
.plan__stage ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; margin: 8px 0 0; padding: 0; list-style: none; }
.plan__stage button { display: grid; justify-items: start; align-content: start; gap: 2px; width: 100%; min-height: 64px; padding: 8px 6px; border: 0; border-top: 4px solid #c4c9d4; border-radius: 0 0 12px 12px; background: none; color: var(--ink); font: inherit; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent; touch-action: manipulation; user-select: none; transition: transform .12s var(--std, ease); }
.plan__stage button:active { transform: scale(.97); }
.plan__stage .ps__n { color: var(--sub); font-size: 14px; font-variant-numeric: tabular-nums; }
.plan__stage .ps__k { font-size: 15px; font-weight: 700; line-height: 1.3; word-break: keep-all; }
.plan__stage small { color: var(--sub); font-size: 14px; line-height: 1.3; }
.plan__stage li.is-done button { border-top-color: var(--brand); }
.plan__stage li.is-done small { color: var(--brand-d); }
.plan__stage li.is-now button { border-top-color: var(--brand); background: var(--brand-50); }
.plan__stage li.is-now .ps__k, .plan__stage li.is-now small { color: var(--brand-d); }
.plan__stage li.is-now small { font-weight: 700; }
.plan__stage .ps__d { margin-top: 8px; color: var(--ink); font-size: 15px; line-height: 1.6; }
@media (hover: hover) and (pointer: fine) { .plan__stage button:hover { background: var(--brand-50); } }

/* 2026-11-02 追補：記事側（site/src/styles/article.css）の規律に寄せる。結論のカード・節の答えの線・節末の「この節でやること」・本文の文字 */
body { line-height: 1.75; }
@media (min-width: 768px) { body { font-size: 18px; line-height: 1.7; } }
.sum { position: relative; margin-top: 16px; padding: 20px 20px 20px 24px; border-radius: 20px; background: var(--card); box-shadow: var(--sh1); }
.sum::before { content: ""; position: absolute; left: 0; top: 20px; bottom: 20px; width: 4px; border-radius: 0 4px 4px 0; background: var(--brand); }
.sum .def { margin: 0; padding: 0; border-radius: 0; background: none; box-shadow: none; }
.sum .def::before { display: none; }
.sum .def__sub { margin-top: 8px; color: var(--sub); font-size: 16px; line-height: 1.7; }
.sum .sum__do { margin-top: 12px; color: var(--ink); font-size: 16px; line-height: 1.7; }
.sum .sum__do b { color: var(--brand-d); }
.sec .ans { position: relative; padding-left: 16px; font-weight: 500; line-height: 1.75; }
.sec .ans::before { content: ""; position: absolute; left: 0; top: .35em; bottom: .35em; width: 4px; border-radius: 2px; background: var(--brand); }
.td { margin-top: 24px; padding: 16px 20px; border-radius: 20px; background: var(--brand-50); }
.td__h { margin: 0 0 4px; color: var(--brand-d); font-size: 16px; font-weight: 700; }
.td__list { margin: 0; padding: 0; list-style: none; }
.sec .td__list li { margin: 0; }
.td__list label { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 10px; align-items: start; min-height: 44px; padding: 8px 0; color: var(--ink); font-size: 16px; line-height: 1.6; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.td__list input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--brand); }
.td__list input:checked + span { color: var(--sub); text-decoration: line-through; }
.gi__next .gi__nh { margin: 0 0 var(--s3, 16px); font-size: 22px; font-weight: 700; line-height: 1.4; }
.find .find__out a, .find .find__out a:visited { color: #fff; }
