/* 全画面共通：落ち着いた学習面、操作の明確さ、読みやすい本文。 */
:root{--ux-ink:#203832;--ux-muted:#52665f;--ux-line:#d6e3dc;--ux-paper:#fff;--ux-bg:#f4f7f4;--ux-action:#0f625a;--ux-radius:16px;--ink-3:#65756f}
html{scroll-padding-top:0}body{background:var(--ux-bg);text-rendering:optimizeLegibility}
body:has(dialog[open]){overflow:hidden}
.ux-skip{position:fixed;top:8px;left:8px;z-index:999;background:#fff;color:#0f625a;border:2px solid #0f625a;border-radius:8px;padding:12px 16px;transform:translateY(-150%)}.ux-skip:focus{transform:none}
button,a,input,select,textarea,summary{touch-action:manipulation}
:where(button,a,input,select,textarea,summary):focus-visible{outline:3px solid #2563eb;outline-offset:4px}
:where(input,textarea,select){font:inherit;font-size:16px;max-width:100%;accent-color:var(--ux-action)}
:where(h1,h2,h3){text-wrap:balance;overflow-wrap:anywhere}:where(p,li,dd){overflow-wrap:break-word}
button:disabled{cursor:not-allowed}:where(button,a){-webkit-tap-highlight-color:#0f625a20}
/* 記事・科目・サイト情報の全ページに同じ上部ナビゲーション。 */
body>header{background:#f0f7f4;box-shadow:0 1px 0 var(--ux-line);z-index:40}
body>header>.w{display:flex;align-items:center;gap:10px;min-height:64px;padding-block:8px}
body>header .brand{font-size:18px;white-space:nowrap}
.ux-header-nav{margin-left:auto;display:flex;gap:4px;align-items:center}
.ux-header-nav a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;border-radius:10px;text-decoration:none;color:var(--ux-action);font-size:13px;font-weight:700}
.ux-header-nav a:hover{background:#dfeee6}.ux-header-nav svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;margin-right:6px}
body>main.w{max-width:800px;font-size:16px;line-height:1.95;padding:28px 28px 48px}
body>main.w>h1{font-size:clamp(25px,4vw,34px);line-height:1.5;letter-spacing:-.025em;color:var(--ux-ink);margin:24px 0 18px}
body>main.w>.lead{font-size:16px;line-height:1.95;color:var(--ux-muted);margin-bottom:26px}
body>main.w>.bc{font-size:12px;line-height:1.8;margin:0 0 20px;color:var(--ux-muted)}
body>main.w>.chk{border:0;border-left:3px solid #bdd2c6;border-radius:0;background:transparent;padding:8px 14px;line-height:1.8}
body>main.w [id]{scroll-margin-top:140px}
.read-article-section{margin:48px 0}.read-article-section>h2{font-size:22px;line-height:1.6;border-bottom:1px solid #b6cfc2;padding-bottom:16px}
.read-article-section>h2>span{letter-spacing:.12em;font-size:11px}
.read-article-section>p,.read-more-body>p{font-size:16px;line-height:1.95}
.read-article-section>ul:not([class]),.read-article-section>ol:not([class]){padding:18px 22px 18px 42px;background:#fff;border:1px solid var(--ux-line);border-radius:12px}
.read-article-section>ul:not([class])>li,.read-article-section>ol:not([class])>li{padding:3px 0;margin:8px 0;line-height:1.85}
.read-more,.pr-details{border-color:var(--ux-line);box-shadow:0 2px 4px #183c2903}
.read-more>summary,.pr-details>summary{min-height:56px;font-size:14px;padding:16px}
.read-more>summary:hover,.pr-details>summary:hover{background:#eef6f0}
.read-toc ol{gap:0 20px}.read-toc a{min-height:48px}
.gv-intro{border-radius:var(--ux-radius);border-color:var(--ux-line)}.gv-intro nav a{min-height:52px;font-size:14px}
.gd-subject,.gd2-subject,.catalog-row,.srow{border-radius:12px;transition:background-color .16s,border-color .16s}
.tw{border:1px solid var(--ux-line);border-radius:12px;background:#fff;overscroll-behavior-x:contain;scrollbar-color:#98b2a4 #eef4ef}
.tw table{margin:0!important}.tw th{background:#edf4ef!important;color:#315748}.tw td,.tw th{padding:14px!important;line-height:1.8}
.ux-table-hint{display:block;font-size:12px;color:var(--ux-muted);margin:6px 0 12px}.ux-table-hint[hidden]{display:none}
.gd2-cover{overflow:hidden;border-radius:12px}.gd2-cover img{border-radius:0!important}
.gv-exam-identity strong{font-size:clamp(20px,3.8vw,28px)}.gv-exam-identity.ux-long-name strong{font-size:clamp(16px,2.5vw,22px)}
/* 長いページでも目次をすぐ開ける。固定フッターは追加しない。 */
.ux-reading-bar{position:sticky;top:64px;z-index:35;background:#f4f7f4f5;border-bottom:1px solid var(--ux-line);backdrop-filter:blur(12px)}
.ux-reading-inner{display:flex;align-items:center;gap:12px;max-width:800px;margin:auto;padding:7px 28px;min-height:54px}
.ux-reading-label{font-size:12px;font-weight:600;color:#49695c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.ux-outline-open{display:flex;align-items:center;gap:7px;flex:none;min-height:40px;padding:7px 12px;border:1px solid #a7c3b4;border-radius:8px;background:#fff;color:#155e54;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.ux-outline-open:hover{background:#e7f1eb}.ux-outline-open svg{height:16px;width:16px;fill:none;stroke:currentColor;stroke-width:2}
.ux-outline-dialog{width:min(560px,calc(100vw - 24px));max-height:80dvh;padding:0;border:1px solid #ceded4;border-radius:18px;color:var(--ux-ink);box-shadow:0 20px 80px #143b2940;background:#fff;overscroll-behavior:contain}
.ux-outline-dialog::backdrop{background:#142f26a8}.ux-outline-dialog[open]{display:flex;flex-direction:column}
.ux-outline-head{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--ux-line);flex:none}
.ux-outline-head h2{font-size:17px;margin:0}.ux-outline-head button{min-width:64px;min-height:44px;border:1px solid #b6cabf;border-radius:8px;background:#fff;color:var(--ux-action);font:inherit;font-size:13px;cursor:pointer}
.ux-outline-dialog nav{overflow:auto;padding:12px 20px 24px;overscroll-behavior:contain}.ux-outline-dialog nav a{display:flex;gap:14px;padding:16px 0;min-height:52px;border-bottom:1px solid #e0e9e3;text-decoration:none;color:var(--ux-ink);font-size:14px;line-height:1.7}
.ux-outline-dialog nav a:hover,.ux-outline-dialog nav a[aria-current]{color:#0f625a;background:#edf5ef}.ux-outline-dialog nav a>span{color:#4e7765;font-size:12px;font-variant-numeric:tabular-nums;flex:none}
/* 学習アプリ：文字とタップ領域を広げ、選択状態は既存の意味を保持。 */
.wrap{max-width:600px;background:#f5f8f6}.hd{min-height:64px;border-bottom:1px solid var(--ux-line)}
.view{padding:24px 20px 28px}.view.on{animation:none}.hero .sbox{border:1.5px solid #8cb5a3;border-radius:14px;min-height:56px;background:#fff;box-shadow:0 4px 16px #16473508}
.hero .sbox:focus-within{border-color:#155e54;box-shadow:0 0 0 3px #155e541c}.hero .sbox input{font-size:16px}.hero .sbox button{min-width:44px;min-height:44px}
.hero .hint{display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:12px}.hero .hint button{min-height:40px;padding:6px 10px;border:1px solid #d4e3d9;border-radius:20px;background:#fff;text-decoration:none;font-size:12px}
.hero .hint button::before{content:none!important}.hero .hint button:hover{border-color:#80ac97;background:#edf5ef}
.ux-search-title{font-size:20px;line-height:1.5;letter-spacing:-.02em;margin:22px 0 6px;color:#1d4f40}.ux-search-caption{font-size:13px;line-height:1.7;color:var(--ux-muted);margin:0 0 14px}
#v-top.ux-searching #resume{display:none!important}#resume{margin:24px 0}.resume-card .resume-progress{margin:8px 0}.resume .resume-actions{gap:10px}
.catalog-group{border-color:var(--ux-line);border-radius:14px;overflow:hidden}.catalog-group>summary{min-height:76px;padding:16px}.catalog-group>summary b{font-size:16px}.catalog-group>summary small{font-size:12px;color:var(--ux-muted)}
.catalog-group[open]>summary{background:#eaf3ed}.catalog-row,.srow{min-height:68px}.catalog-name,.gd-qual-name{line-height:1.65;min-width:0}.gd-qual-count{white-space:nowrap;font-variant-numeric:tabular-nums}
.qhome-cover{border:1px solid var(--ux-line);border-bottom:0}.qhero{box-shadow:none}.mode{min-height:92px;padding:18px}.mode .lb{font-size:15px}
.qtop .x{width:44px;height:44px;border:1px solid var(--ux-line)}.qtop .n{font-size:13px}.qtop .pr{height:6px}
.qc{padding:24px 22px;border:1px solid var(--ux-line);border-radius:18px}.qt{font-size:19px;line-height:1.9;font-weight:700;letter-spacing:.005em}.chs{gap:12px}
.ch{min-height:60px;padding:16px;font-size:16px;line-height:1.8;border-radius:12px;transition:border-color .15s,background-color .15s}.ch .no{flex:none;margin-top:2px}
.ch:not(:disabled):hover{background:#eff6f1;border-color:#79a68f}.ch:focus-visible{outline:3px solid #2563eb;outline-offset:3px}
.answer-feedback{border-radius:16px}.answer-feedback .answer-title{font-size:18px}.answer-actions .nx{min-height:56px}
.tabbar{box-shadow:0 -3px 20px #173f2d08;background:#fffffffa;border-top:1px solid var(--ux-line)}.tab{min-height:62px;font-size:12px;color:#52665f}.tab.on{background:#edf5f0;border-radius:12px;color:#0f625a}
.bt,.cta,.nx{min-height:50px;line-height:1.6}.morebtn,.quiet{min-height:44px}.gd-empty p{font-size:15px;line-height:1.9}.gd-result-progress{border-radius:8px}
.explanation-dialog{border-radius:18px;overscroll-behavior:contain}.explanation-dialog .answer-body{font-size:16px;line-height:1.9}
.gd-site-footer nav a{min-height:48px}.gd-site-footer>.w{max-width:800px}
@media(min-width:1000px){.wrap{margin:24px auto;border:1px solid var(--ux-line);border-radius:22px;overflow:clip;min-height:calc(100vh - 48px)}.wrap .hd{border-radius:20px 20px 0 0}.tabbar{max-width:598px}.wrap:has(#v-quiz.on){margin-top:0;border-radius:0}.wrap:has(#v-quiz.on) .hd{border-radius:0}}
@media(max-width:560px){body>header>.w{padding-inline:16px}.ux-header-nav a{padding:8px 10px}.ux-header-nav .ux-help-link{display:none}body>main.w{padding:22px 18px 36px}body>main.w>h1{font-size:25px}.ux-reading-inner{padding:7px 18px;gap:8px}.ux-reading-label{font-size:11px}.read-article-section>h2{font-size:20px}.view{padding:20px 16px 24px}.qc{padding:20px 16px}.qt{font-size:18px}.ch{padding:14px 12px}.gv-exam-identity strong{font-size:22px}.gv-exam-identity.ux-long-name strong{font-size:16px}}
@media(max-width:360px){body>main.w{padding-inline:16px}.view{padding-inline:12px}.qc{padding:18px 13px}.ux-header-nav a{font-size:12px;padding:8px}.gv-exam-identity strong{font-size:19px}.ux-reading-inner{padding-inline:16px}.tab{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.ux-reading-bar,.ux-header-nav,.ux-outline-dialog{display:none!important}body>main.w{max-width:none;padding:0}body{background:#fff}.pr-details>.pr-detail-body{display:block!important}}
/* 図解の説明も本文として読める大きさに。枠を重ねて図を縮めない。 */
.bv-scene>p,.bv-branches dd,.bv-flow-nodes>li,.gv-diagram li p{font-size:16px;line-height:1.85}
.bv-note{font-size:14px!important}.bv-scale,.bv-branches dt,.bv-branch-label{font-size:14px}
.bv-bar-label{font-size:16px}.bv-original>summary{font-size:15px}
.gv-diagram .gv-note,.read-focus-diagram .read-vessel-note{font-size:14px}
.pr-summary .pr-caption,.pr-summary .pr-source,.pr-metrics dt,.pr-metrics dd small,.pr-record dt{font-size:14px}
.pr-note p,.pr-steps p,.pr-timeline p,.pr-checks small{font-size:16px}
.pr-checks b,.pr-details>summary,.read-more>summary{font-size:16px}
.read-solution .exp>p,.read-answer strong,.read-schedule div,.read-compare p{font-size:16px}
.read-toc a,.read-nav a{font-size:15px}.read-route strong{font-size:15px}.read-route p,.read-muted{font-size:14px}
.read-visual-nav span{font-size:15px}.read-visual-nav small{font-size:13px}
.tw table{font-size:15px}
.wrap .answer-feedback .answer-key{font-size:16px;line-height:1.8;display:block;-webkit-line-clamp:unset;overflow:visible}
.explanation-dialog .explanation-answer p,.explanation-dialog .eb{font-size:16px;line-height:1.8}
.wrap .answer-feedback .answer-open{font-size:15px;min-height:44px}
.wrap .answer-feedback .question-feedback-actions button{font-size:14px}
body .gd-feedback .intro,body .gd-feedback .extra summary{font-size:16px}
body .gd-feedback .invite-message,body .gd-feedback .rating b{font-size:14px}
body .gd-feedback .privacy-reassurance,body .gd-feedback .privacy-reassurance span,body .gd-feedback .privacy,body .gd-feedback .privacy-details,body .gd-feedback .request-hint{font-size:14px}
main a[data-read-zoom]:not(:has(img)){display:flex;align-items:center;justify-content:center;gap:8px;width:fit-content;max-width:100%;min-height:48px;padding:10px 16px;margin:12px 0 0;border:1px solid #98b8a9;border-radius:10px;background:#fff;color:#155e54;font-size:15px;font-weight:700;line-height:1.6;text-decoration:none;box-sizing:border-box}
main a[data-read-zoom]:not(:has(img)):hover{background:#e7f1eb}
.ux-image-dialog{width:min(1100px,calc(100vw - 16px));max-width:none;max-height:94dvh;border-radius:14px;overflow:hidden;padding:0}
.ux-image-dialog{border:1px solid #a7c3b4;background:#fff;color:#164f48;font-family:inherit;box-shadow:0 20px 70px #173c3240}
.ux-image-dialog::backdrop{background:#142b2466}
.ux-image-dialog .read-zoom-head{display:flex;align-items:center;justify-content:space-between;background:#f0f7f3;border-bottom:1px solid #d6e3dc}
.ux-image-dialog .read-zoom-close{font:inherit;font-size:16px;font-weight:700;padding:8px 16px;color:#164f48;border:1px solid #a7c3b4;border-radius:10px;background:white;cursor:pointer}
.ux-image-dialog .read-zoom-scroll{background:#fff}
.ux-image-dialog .read-zoom-help{margin:0;color:#405e55;background:#f8fbf9}
.ux-image-dialog[open]{display:flex;flex-direction:column}
.ux-image-dialog .read-zoom-head{flex:none;padding:10px 12px;gap:10px}
.ux-image-dialog .read-zoom-head strong{font-size:16px;line-height:1.6;min-width:0}
.ux-image-dialog .read-zoom-close{flex:none;min-height:48px}
.ux-image-tools{display:grid;grid-template-columns:44px 44px minmax(44px,1fr) minmax(96px,1.5fr);align-items:center;gap:6px;padding:8px 12px;flex:none;border-bottom:1px solid #d6e3dc;background:#fff}
.ux-image-tools button{min-height:44px;min-width:44px;padding:8px 12px;font:inherit;font-size:14px;border:1px solid #a7c3b4;background:#fff;color:#155e54;border-radius:8px;cursor:pointer}
.ux-image-tools button:disabled{opacity:.45}.ux-image-tools output{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.ux-image-tools[hidden]{display:none}
.ux-image-dialog .read-zoom-scroll{flex:1;min-height:0;max-height:none;overflow:auto;touch-action:pan-x pan-y pinch-zoom;scrollbar-color:#98b2a4 #eef4ef}
.ux-image-dialog .read-zoom-scroll img{display:block;margin:0 auto;max-width:none;width:1000px;height:auto}
.ux-image-dialog .read-zoom-help{font-size:14px;line-height:1.7;padding:8px 12px;flex:none;border-top:1px solid #d6e3dc}
.ux-image-error{padding:24px;font-size:16px;line-height:1.8}
.ux-startup-recovery{max-width:560px;margin:32px auto;padding:24px;border:1px solid #c7dcd1;border-radius:16px;background:#fff;line-height:1.85;font-size:16px;color:#203832}
.ux-startup-recovery[hidden]{display:none}.ux-startup-brand{font-size:20px;font-weight:800;color:#0f625a}.ux-startup-recovery h2{font-size:24px;line-height:1.55}
.ux-startup-recovery button{width:100%;min-height:56px;padding:12px;font:inherit;font-weight:700;color:white;background:#0f625a;border:0;border-radius:10px;cursor:pointer}
.ux-startup-recovery nav{display:grid;gap:0;margin-top:16px}.ux-startup-recovery nav a{display:flex;align-items:center;min-height:52px;padding:12px 0;border-bottom:1px solid #d6e3dc;color:#0f625a;text-underline-offset:4px}
@media(max-width:600px){.ux-startup-recovery{margin:20px 12px;padding:20px}}
@media(max-width:560px){
 .bv-figure{padding:16px 12px}.bv-figure>figcaption>span{font-size:12px}.bv-figure>figcaption>strong{font-size:18px}
 .bv-scene{border:0;border-radius:0;background:transparent;padding:0}.bv-scene-grid{gap:24px}
 .bv-scene+.bv-scene{border-top:1px solid #c7dcd1;padding-top:20px}
 .bv-scene>strong{font-size:17px}.bv-scene svg{max-width:360px;margin:16px auto}
 .bv-formula{font-size:17px;padding:12px 8px;text-align:left;line-height:1.9}
 .bv-node{font-size:16px}.bv-bar-label{font-size:16px}.bv-bar-label b{font-size:20px}
 .bv-branches dl{padding:12px}.bv-branches dd{font-size:16px}
 .bv-subject-map>.read-more-body{padding:0 10px 12px}.bv-subject-map .bv-figure{padding:12px 0;border:0;background:transparent}
 .gv-diagram{padding:16px 12px}.gv-diagram li{padding:14px 12px}.gv-diagram li p{font-size:16px}
 .pr-summary .pr-steps li{padding:16px 12px 16px 50px}.pr-step-no{left:12px}
 .pr-summary .pr-timebar span{font-size:13px}.pr-summary .pr-tools li{font-size:15px}
 .pr-timeline li{display:block}.pr-timeline li>span{display:block;margin-bottom:8px;font-size:16px}
 .ux-outline-open{min-height:44px;font-size:14px}.ux-reading-label{font-size:12px}
 .read-vessels{gap:10px}.read-vessels>div{padding:14px 8px}.read-vessels small,.read-vessels em{font-size:14px}
 .read-figure figcaption p{font-size:16px}.read-more>summary small{font-size:14px}
 main a[data-read-zoom]:not(:has(img)){width:100%}
}

/* 危険物の代表問題・日程記事：途中式と手順も本文サイズで読む。 */
.gd-kiken-study p,.gd-kiken-study li,.gd-kiken-study h4{font-size:16px}

/* 2026-11-09: opt-in readability for five SEO learning pages. */
.gd-seo-study p,.gd-seo-study li,.gd-seo-study h4,.gd-seo-study td,.gd-seo-study th{font-size:16px!important}
.seo-context-link,.seo-verification{font-size:16px;line-height:1.85}

/* 2026-11-09: scoped reading steps for SEO pages ranked 6-10. */
.seo-next-context,.seo-next-verification,.seo-driving-intro{font-size:16px;line-height:1.85}
.gd-seo-next5{margin:28px 0;padding:24px 0;border-top:1px solid #b8d0c7;border-bottom:1px solid #b8d0c7}
.gd-seo-next5 h2{font-size:22px;line-height:1.6}.gd-seo-next5 h3{font-size:19px;line-height:1.6}
.gd-seo-next5 .seo-step-list{list-style:none;counter-reset:seo-step;padding:0;margin:24px 0}
.gd-seo-next5 .seo-step-list>li{counter-increment:seo-step;position:relative;margin:0 0 22px 16px;padding:0 0 0 28px;border-left:1px solid #b5d5c8;line-height:1.8}
.gd-seo-next5 .seo-step-list>li:before{content:counter(seo-step);position:absolute;left:-17px;top:0;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#126d60;color:#fff;font-weight:700}
.gd-seo-next5 .seo-step-list>li>strong{display:block;margin-bottom:10px;padding-left:4px}.gd-seo-next5 p{line-height:1.9}
