:root{--ink:#1B2838;--gray:#526075;--soft:#8496AC;--line:#DFE5EC;--panel:#F1F5F9;--bg:#FFFFFF;--navy:#14355F;--navy-2:#1D4E8A;--link:#1D4E8A;--dark:#0E2440;--pos:#1E7A46;--neg:#B33A3A;--maxw:1200px;--font-sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;--font-en:"Inter","Noto Sans JP",sans-serif;--ease:cubic-bezier(.25,.1,.25,1)}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-sans);color:var(--ink);background:var(--bg);line-height:1.95;font-size:15px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
ul,ol{list-style:none}
:focus-visible{outline:2px solid var(--navy-2);outline-offset:2px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
html.js [data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .65s var(--ease),transform .65s var(--ease);transition-delay:calc(var(--d,0)*70ms)}
html.js [data-reveal].is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html.js [data-reveal]{opacity:1;transform:none;transition:none}*,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}html{scroll-behavior:auto}}
.eyebrow{font-family:var(--font-en);font-size:.7rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--soft);margin-bottom:16px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;padding:.95em 1.9em;font-weight:600;font-size:.88rem;letter-spacing:.05em;border:1px solid transparent;cursor:pointer;transition:background .25s,color .25s,border-color .25s;text-decoration:none}
.btn:hover{text-decoration:none}
.btn .ar{font-family:var(--font-en);transition:transform .25s var(--ease)}
.btn:hover .ar{transform:translateX(4px)}
.btn-solid{background:var(--navy);color:#fff}
.btn-solid:hover{background:var(--navy-2)}
.btn-gold{background:linear-gradient(115deg,#A9873B,#C9A25C);color:#fff;box-shadow:0 10px 26px rgba(169,135,59,.3)}
.btn-gold:hover{filter:brightness(1.05)}
.btn-outline{background:#fff;color:var(--navy);border-color:#C9CFD6}
.btn-outline:hover{border-color:var(--navy)}
.tlink{display:inline-flex;align-items:center;gap:.5em;font-weight:600;font-size:.85rem;color:var(--link)}
.tlink .ar{font-family:var(--font-en);transition:transform .25s var(--ease)}
.tlink:hover{text-decoration:none;color:var(--navy)}
.tlink:hover .ar{transform:translateX(4px)}
.chip{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.06em;padding:.26em .9em;border-radius:99px;background:var(--panel);color:var(--navy)}
.site-header{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--line);transition:box-shadow .3s}
.site-header.scrolled{box-shadow:0 2px 12px rgba(14,36,64,.07)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:72px}
.brand a{display:flex;flex-direction:row;align-items:center;gap:12px;text-decoration:none}
.brand-mark{height:42px;width:auto;display:block}
.brand-text{display:flex;flex-direction:column;line-height:1.35}
.brand-en-main{font-family:"Cinzel",Georgia,serif;font-weight:600;font-size:1rem;letter-spacing:.14em;color:var(--navy)}
.brand-ja-sub{font-size:.58rem;letter-spacing:.5em;color:var(--gray)}
.global-nav ul{display:flex;gap:2px;align-items:center}
.global-nav a{position:relative;display:block;padding:.85em .95em;color:var(--ink);font-size:.86rem;font-weight:500}
.global-nav a::after{content:"";position:absolute;left:.95em;right:.95em;bottom:.5em;height:2px;background:var(--navy);transform:scaleX(0);transition:transform .25s var(--ease)}
.global-nav a:hover{text-decoration:none}
.global-nav a:hover::after{transform:scaleX(1)}
.global-nav .nav-cta a{background:var(--navy);color:#fff;margin-left:14px;padding:.7em 1.5em;font-weight:600}
.global-nav .nav-cta a::after{display:none}
.global-nav .nav-cta a:hover{background:var(--navy-2)}
.menu-toggle{display:none;background:#fff;border:1px solid var(--line);width:44px;height:44px;cursor:pointer;position:relative}
.menu-toggle span,.menu-toggle span::before,.menu-toggle span::after{content:"";position:absolute;left:50%;transform:translateX(-50%);width:18px;height:2px;background:var(--ink);transition:.25s}
.menu-toggle span{top:21px}
.menu-toggle span::before{top:-6px}
.menu-toggle span::after{top:6px}
.kb-card{background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;text-decoration:none;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.kb-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(14,36,64,.12);border-color:#B9C7D8;text-decoration:none}
.kb-thumb{aspect-ratio:16/9;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:16px 18px;position:relative;overflow:hidden}
.kb-thumb::before{content:"";position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;border:1px solid rgba(255,255,255,.14)}
.kb-thumb::after{content:"OP";position:absolute;right:14px;top:10px;font-family:"Cinzel",Georgia,serif;font-size:.66rem;letter-spacing:.2em;color:rgba(255,255,255,.5)}
.kb-thumb .th-cat{font-family:var(--font-en);font-size:.58rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.65)}
.kb-thumb .th-kw{font-weight:700;font-size:1.05rem;line-height:1.45;color:#fff;margin-top:4px}
.kb-body{padding:16px 18px 14px;display:flex;flex-direction:column;flex:1}
.kb-title{font-size:.86rem;font-weight:600;color:var(--ink);line-height:1.65;flex:1}
.kb-card:hover .kb-title{color:var(--navy)}
.kb-meta{display:flex;justify-content:space-between;align-items:center;font-size:.7rem;color:var(--soft);border-top:1px solid var(--line);margin-top:14px;padding-top:10px}
.xl{background:#fff;border:1px solid #D0D5DA;box-shadow:0 14px 40px rgba(14,36,64,.10);font-size:12.5px}
.xl-titlebar{display:flex;align-items:center;gap:10px;background:#F3F2F1;border-bottom:1px solid #E1DFDD;padding:8px 12px}
.xl-appicon{width:18px;height:18px;background:#217346;color:#fff;font-family:var(--font-en);font-weight:600;font-size:10px;display:flex;align-items:center;justify-content:center}
.xl-titlebar .t-name{font-size:.74rem;color:#484644}
.xl-grid{width:100%;border-collapse:collapse;table-layout:fixed;background:#fff}
.xl-grid th,.xl-grid td{border:1px solid #E7EAEC;height:27px;padding:0 8px;font-size:.78rem;overflow:hidden;white-space:nowrap}
.xl-grid thead th{background:#F8F9FA;color:#6E7781;font-family:var(--font-en);font-weight:400;font-size:.7rem;text-align:center;height:22px}
.xl-grid tbody th{background:#F8F9FA;color:#6E7781;font-family:var(--font-en);font-weight:400;font-size:.7rem;text-align:center;width:36px}
.xl-grid td{color:#24292F;text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-en)}
.xl-grid td.lab{text-align:left;font-family:var(--font-sans)}
.xl-grid td.hd{background:var(--navy);color:#fff;font-weight:600;text-align:left;font-family:var(--font-sans)}
.xl-grid td.sub{color:#6E7781;text-align:center;font-size:.7rem}
.xl-grid td.ipt{color:#0B5CAB}
.xl-grid td.res{font-weight:600}
.site-footer{background:var(--dark);color:#A7B8CC;margin-top:110px}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:36px;padding:64px 0 48px}
.footer-brand .brand-lockup{display:flex;align-items:center;gap:12px}
.footer-mark{height:46px;width:auto}
.footer-brand p{margin-top:14px;font-size:.78rem;line-height:2}
.site-footer h3{color:#fff;font-family:var(--font-en);font-size:.66rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;margin-bottom:16px}
.site-footer li{margin-bottom:.6em}
.site-footer a{color:#A7B8CC;font-size:.8rem}
.site-footer a:hover{color:#fff;text-decoration:none}
.footer-legal{border-top:1px solid rgba(255,255,255,.12);padding:22px 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;font-size:.7rem;color:#7C90A8}
@media (max-width:880px){
.menu-toggle{display:block}
.global-nav{position:absolute;top:72px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(14,36,64,.08);display:none}
.global-nav.open{display:block}
.global-nav ul{flex-direction:column;align-items:stretch;padding:12px 24px 20px}
.global-nav .nav-cta a{margin-left:0;text-align:center;margin-top:8px}
.footer-grid{grid-template-columns:1fr 1fr}
}

/* ===== block ===== */

/* ---------- Article layout ---------- */
.crumbs{padding:18px 0 0;font-size:.74rem;color:var(--soft)}
.crumbs a{color:var(--soft)}
.crumbs a:hover{color:var(--navy)}
.crumbs .sep{margin:0 .6em;color:#C3CEDA}
.article-head{padding:26px 0 34px;border-bottom:1px solid var(--line)}
.article-head .cat-row{display:flex;gap:10px;align-items:center;margin-bottom:16px}
.article-head h1{font-size:clamp(1.5rem,3vw,2.05rem);font-weight:700;line-height:1.6;color:var(--navy);letter-spacing:.02em;max-width:900px}
.article-meta{margin-top:16px;display:flex;gap:22px;flex-wrap:wrap;font-size:.76rem;color:var(--soft)}
.article-meta b{color:var(--gray);font-weight:600}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:64px;padding:48px 0 0;align-items:start}
.article-body{max-width:720px}
.article-body h2{font-size:1.25rem;font-weight:700;color:var(--navy);line-height:1.6;margin:56px 0 18px;padding-top:18px;border-top:2px solid var(--navy)}
.article-body h2:first-of-type{margin-top:0}
.article-body h3{font-size:1.02rem;font-weight:700;color:var(--ink);margin:32px 0 12px}
.article-body p{margin-bottom:1.2em;font-size:.95rem}
.article-body ul.disc{list-style:none;margin:0 0 1.4em}
.article-body ul.disc li{position:relative;padding:.3em 0 .3em 1.5em;font-size:.95rem}
.article-body ul.disc li::before{content:"";position:absolute;left:.2em;top:1em;width:.55em;height:.55em;background:var(--navy);border-radius:1px}
.summary-box{background:var(--panel);border:1px solid var(--line);padding:26px 30px;margin:34px 0}
.summary-box h2{border:none;margin:0 0 12px;padding:0;font-size:.95rem;letter-spacing:.04em}
.summary-box ul li{position:relative;padding:.35em 0 .35em 1.6em;font-size:.9rem;color:var(--gray)}
.summary-box ul li::before{content:"";position:absolute;left:.1em;top:.95em;width:.9em;height:.5em;border-left:2px solid var(--navy);border-bottom:2px solid var(--navy);transform:rotate(-45deg)}
.formula{background:#fff;border:1px solid var(--line);border-left:3px solid var(--navy);padding:20px 26px;margin:22px 0;font-size:1rem;font-weight:600;color:var(--navy);letter-spacing:.02em}
.formula small{display:block;margin-top:8px;font-size:.72rem;font-weight:400;color:var(--soft)}
table.data{width:100%;border-collapse:collapse;margin:22px 0;font-size:.88rem}
table.data caption{caption-side:top;text-align:left;font-size:.78rem;color:var(--soft);margin-bottom:8px}
table.data th{background:var(--navy);color:#fff;font-weight:600;padding:.6em 1em;text-align:left;font-size:.82rem}
table.data td{border-bottom:1px solid var(--line);padding:.6em 1em;font-variant-numeric:tabular-nums}
table.data td.num{text-align:right;font-family:var(--font-en)}
table.data tr.total td{border-top:2px solid var(--navy);border-bottom:none;font-weight:700;color:var(--navy)}
.figure-slot{margin:28px 0;border:1px dashed #B9C7D8;background:var(--panel);padding:0}
.figure-slot .fs-area{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:var(--soft)}
.figure-slot .fs-area .fs-code{font-family:var(--font-en);font-size:.72rem;letter-spacing:.2em}
.figure-slot .fs-area .fs-desc{font-size:.8rem}
.figure-slot figcaption{border-top:1px solid var(--line);background:#fff;padding:10px 16px;font-size:.76rem;color:var(--gray)}
.qa-box{background:#fff;border:1px solid var(--line);margin:22px 0}
.qa-box .qa{padding:18px 24px;border-top:1px solid var(--line)}
.qa-box .qa:first-child{border-top:none}
.qa-box .q{font-weight:700;color:var(--navy);font-size:.92rem;margin-bottom:6px}
.qa-box .a{font-size:.88rem;color:var(--gray)}
.src-box{margin:48px 0 0;padding:22px 26px;background:var(--panel);border:1px solid var(--line);font-size:.8rem;color:var(--gray)}
.src-box h2{border:none;padding:0;margin:0 0 10px;font-size:.85rem}
.cta-inline{margin:40px 0;border:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:26px 30px}
.cta-inline.gold{border-color:#D9C48E;background:#FCF9F1}
.cta-inline h3{font-size:.98rem;font-weight:700;color:var(--navy);margin:0 0 4px}
.cta-inline p{font-size:.8rem;color:var(--gray);margin:0}
/* ---------- Sidebar ---------- */
.side{position:sticky;top:96px;display:flex;flex-direction:column;gap:28px}
.toc{border:1px solid var(--line)}
.toc h2{font-size:.78rem;font-weight:700;letter-spacing:.14em;color:var(--soft);padding:14px 18px;border-bottom:1px solid var(--line);font-family:var(--font-en);text-transform:uppercase}
.toc ol{counter-reset:toc}
.toc li a{display:block;padding:10px 18px;font-size:.82rem;color:var(--gray);border-top:1px solid var(--panel);counter-increment:toc}
.toc li a::before{content:counter(toc,decimal-leading-zero);font-family:var(--font-en);color:var(--soft);margin-right:.8em;font-size:.72rem}
.toc li a:hover{color:var(--navy);background:var(--panel);text-decoration:none}
.side-cta{background:var(--navy);color:#fff;padding:26px 24px}
.side-cta .eyebrow{color:#9FB6D2;margin-bottom:10px}
.side-cta h3{font-size:.95rem;font-weight:700;line-height:1.7;margin-bottom:14px}
.side-cta p{font-size:.78rem;color:#C0D0E2;margin-bottom:18px}
.related{padding:72px 0 0}
.related h2{font-size:1.2rem;font-weight:700;color:var(--navy);margin-bottom:26px}
.related .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media (max-width:1024px){.layout{grid-template-columns:1fr}.side{position:static;flex-direction:row;flex-wrap:wrap}.side>*{flex:1 1 280px}}
@media (max-width:600px){.related .grid{grid-template-columns:1fr}.cta-inline{grid-template-columns:1fr}.article-body h2{margin-top:44px}}

/* ===== 可読性 v2（行長・行間・表の列幅/行高） ===== */
.article-body{max-width:680px;font-size:16px;line-height:2.05;letter-spacing:.01em}
.article-body p{margin-bottom:1.6em;font-size:1em}
.article-head h1{font-size:clamp(1.55rem,3vw,2.05rem);line-height:1.7;text-wrap:balance}
.article-body h2{font-size:1.32rem;line-height:1.7;margin:64px 0 22px;padding-top:22px;text-wrap:balance}
.article-body h3{margin:36px 0 14px;line-height:1.7}
.article-body ul.disc li{padding:.5em 0 .5em 1.6em;line-height:1.95;font-size:1em}
.summary-box{padding:28px 32px}
.summary-box ul li{padding:.45em 0 .45em 1.7em;line-height:1.9}
.formula{padding:24px 28px;line-height:2.1;font-size:.98rem}
.formula small{line-height:1.9;margin-top:10px}
table.data{table-layout:fixed;font-size:.92rem;margin:26px 0}
table.data caption{margin-bottom:10px;line-height:1.7}
table.data th{padding:.8em 1em;line-height:1.6;font-size:.8rem}
table.data td{padding:.72em 1em;line-height:1.75}
table.data th:first-child,table.data td:first-child{width:27%}
table.data td.num{white-space:nowrap}
table.data tbody tr:hover{background:#FAFBFC}
.qa-box .qa{padding:20px 26px}
.qa-box .q{line-height:1.85;margin-bottom:8px}
.qa-box .a{line-height:1.95;font-size:.9rem}
.cta-inline{padding:28px 32px}
.cta-inline p{line-height:1.85}
.src-box{line-height:1.95;padding:24px 28px}
.toc li a{padding:11px 18px;line-height:1.7}
.side-cta{padding:28px 26px}
.side-cta h3{line-height:1.85}
figure figcaption{line-height:1.85 !important}
@media (max-width:600px){
  .article-body{font-size:15.5px}
  table.data{display:block;overflow-x:auto;white-space:nowrap;table-layout:auto}
  table.data th:first-child,table.data td:first-child{width:auto;min-width:9em}
}

/* ===== block ===== */

/* ---------- Mega menu（無料コンテンツ） ---------- */
.has-mega{position:relative}
.has-mega>a::before{content:"";position:absolute;left:0;right:0;bottom:-14px;height:14px}
.mega{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(10px);opacity:0;visibility:hidden;transition:opacity .28s cubic-bezier(.16,1,.3,1),transform .28s cubic-bezier(.16,1,.3,1),visibility .28s;background:#fff;border:1px solid var(--line);box-shadow:0 28px 70px rgba(14,36,64,.16);display:grid;grid-template-columns:230px 210px 230px;padding:26px 30px 24px;gap:0 34px;z-index:150}
.mega::before{content:"";position:absolute;top:-7px;left:50%;transform:translateX(-50%) rotate(45deg);width:12px;height:12px;background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line)}
.has-mega:hover .mega,.has-mega:focus-within .mega{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.mega h4{font-family:var(--font-en);font-size:.64rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--soft);margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.global-nav .has-mega .mega ul{display:block;flex-direction:column;gap:0;margin:0;padding:0}
.mega li{display:block;width:100%;white-space:nowrap}
.mega li{margin:0}
.mega a.mg{display:block;padding:7px 0;font-size:.82rem;font-weight:500;color:var(--ink);line-height:1.6}
.mega a.mg::after{display:none}
.mega a.mg:hover{color:var(--navy);text-decoration:none;transform:translateX(3px)}
.mega a.mg{transition:color .2s,transform .25s cubic-bezier(.16,1,.3,1)}
.mega a.mg-all{font-weight:700;color:var(--link);margin-top:4px}
@media (max-width:880px){.mega{display:none}.has-mega>a::before{display:none}}

/* ===== block ===== */

@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
h2[id],h3[id]{scroll-margin-top:88px}
:focus-visible{outline:2px solid var(--navy-2);outline-offset:2px}
::selection{background:#D8E4F4}
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.xlfig{overflow-x:auto}
.to-top{position:fixed;right:16px;bottom:16px;width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-en);font-size:1.05rem;text-decoration:none;box-shadow:0 10px 26px rgba(14,36,64,.28);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .3s,transform .3s,visibility .3s,background .2s;z-index:90}
.to-top.show{opacity:.95;visibility:visible;transform:none}
.to-top:hover{background:var(--navy-2);text-decoration:none}
.m-ctabar{display:none}
@media (max-width:700px){
.article-head h1{font-size:1.34rem;line-height:1.6}
.article-meta{flex-wrap:wrap;gap:8px 14px}
.crumbs{white-space:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}
.tbl-scroll table.data{min-width:560px}
}
@media (max-width:640px){
.m-ctabar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:95;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom))}
.m-ctabar a{display:block;text-align:center;background:var(--navy);color:#fff;font-weight:700;font-size:.92rem;padding:13px 10px;text-decoration:none;letter-spacing:.02em}
.m-ctabar a:active{background:var(--navy-2)}
body.has-ctabar{padding-bottom:74px}
.has-ctabar .to-top{bottom:84px}
}
@media print{.site-header,.to-top,.side,.cta-inline,.m-ctabar,.menu-toggle{display:none !important}}

/* ===== block ===== */

.reading-progress{position:fixed;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--navy),#C9A961);transform-origin:0 50%;transform:scaleX(0);z-index:130;pointer-events:none}
.toc a{transition:color .2s,padding-left .2s;border-left:2px solid transparent}
.toc a.active{color:var(--navy);font-weight:700;padding-left:6px;border-left:2px solid var(--navy)}

/* ===== block ===== */

/* op-motion-v1 */
#opCurtain{position:fixed;inset:0;background:var(--navy,#14355F);opacity:0;pointer-events:none;transition:opacity .22s ease;z-index:12000}
#opCurtain.on{opacity:1;pointer-events:auto}
@media (prefers-reduced-motion:no-preference){
html.js body{animation:opPageIn .5s cubic-bezier(.22,1,.36,1) both}
@keyframes opPageIn{from{opacity:0}to{opacity:1}}
.btn:active{transform:translateY(1px) scale(.985)}
a.kb-card:active,a.hub-card:active{transform:translateY(0) scale(.995)}
}
a,button{-webkit-tap-highlight-color:transparent}
@media (hover:none){a.lib-item:active,a.kb-card:active,.hub-card:active{background:#F2F6FB}}
@media (pointer:fine){
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(20,53,95,.28);border-radius:99px;border:3px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:rgba(20,53,95,.5);border:3px solid transparent;background-clip:content-box}
}
html{scrollbar-width:thin;scrollbar-color:rgba(20,53,95,.35) transparent}
#opCur{position:fixed;left:0;top:0;width:34px;height:34px;border:1.5px solid rgba(29,78,138,.4);border-radius:50%;pointer-events:none;z-index:11000;opacity:0;transition:opacity .3s,width .25s,height .25s,border-color .25s,background .25s;will-change:transform}
#opCur.v{opacity:1}
#opCur.act{width:54px;height:54px;border-color:rgba(176,138,60,.75);background:rgba(176,138,60,.07)}
#opCur.dn{width:26px;height:26px}
#opCur::after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:var(--gold,#B08A3C)}
@media (pointer:coarse),(prefers-reduced-motion:reduce){#opCur{display:none}}

/* ===== block ===== */

/* op-nav-v2 */
.nv2 .nv-list{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0}
.nv2 .nv-link,.nv2 .nv-btn{display:flex;align-items:center;gap:6px;padding:10px 14px;font-size:.88rem;font-weight:600;color:var(--navy);background:none;border:none;cursor:pointer;font-family:inherit;letter-spacing:.02em;text-decoration:none;line-height:1}
.nv2 .nv-link:hover,.nv2 .nv-btn:hover{color:var(--navy-2,#1D4E8A);text-decoration:none}
.nv2 .nv-car{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.55}
.nv2 .nv-item{position:relative}
.nv2 .nv-item[data-open="true"]>.nv-btn{color:var(--navy-2,#1D4E8A)}
.nv2 .nv-item[data-open="true"]>.nv-btn .nv-car{transform:rotate(225deg) translateY(-1px)}
.nv2 .nv-sub{display:none;position:absolute;top:calc(100% + 8px);left:0;min-width:330px;background:#fff;border:1px solid var(--line);border-top:2px solid #B08A3C;box-shadow:0 14px 34px rgba(20,53,95,.12);padding:18px 20px 14px;z-index:110}
.nv2 .nv-item[data-open="true"]>.nv-sub{display:block}
.nv2 .nv-mega{display:none;min-width:640px;left:50%;transform:translateX(-50%)}
.nv2 .nv-item[data-open="true"]>.nv-mega{display:flex;gap:26px}
.nv2 .nv-col{flex:1;min-width:0}
.nv2 .nv-h{font-family:var(--font-en);font-size:.62rem;font-weight:700;letter-spacing:.2em;color:#B08A3C;margin:0 0 8px;text-transform:uppercase}
.nv2 .nv-sub ul{display:block;list-style:none;margin:0;padding:0}
.nv2 .nv-sub li{display:block;margin:0}
.nv2 .nv-sub{white-space:normal}
.nv2 a::after{display:none}
.nv2 .nv-sub li a{display:block;padding:8px 10px;font-size:.84rem;font-weight:500;color:var(--ink);text-decoration:none;border-radius:2px;line-height:1.6}
.nv2 .nv-sub li a:hover{background:#F4F7FB;color:var(--navy);text-decoration:none}
.nv2 .nv-foot{display:block;margin:12px -6px 0;padding:12px 10px 2px;border-top:1px solid var(--line);font-size:.82rem;font-weight:600;color:var(--navy);text-decoration:none}
.nv2 .nv-mega .nv-foot{position:absolute;left:20px;right:20px;bottom:12px}
.nv2 .nv-mega{padding-bottom:56px}
.nv2 #nv-lab.nv-mega{padding-bottom:18px}
.nv2 .nv-foot:hover{text-decoration:none;color:var(--navy-2,#1D4E8A)}
.nv2 .nav-cta{margin-left:14px}
.nv2 .nav-cta a{display:inline-block;background:var(--navy);color:#fff;font-size:.84rem;font-weight:600;letter-spacing:.04em;padding:11px 22px;border-radius:2px;text-decoration:none;border:1px solid var(--navy)}
.nv2 .nav-cta a:hover{background:#0F2A4C;border-color:#0F2A4C;color:#fff;text-decoration:none}
@media (max-width:980px){
.nv2.global-nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 18px 30px rgba(20,53,95,.10);max-height:calc(100vh - 72px);overflow-y:auto;padding:6px 0 18px}
.nv2.global-nav.open{display:block}
.nv2 .nv-list{display:block;padding:0 16px}
.nv2 .nv-link,.nv2 .nv-btn{width:100%;padding:14px 6px;font-size:.95rem;border-bottom:1px solid var(--line);justify-content:space-between}
.nv2 .nv-btn .nv-car{margin-left:auto}
.nv2 .nv-item{position:static}
.nv2 .nv-sub,.nv2 .nv-mega{position:static;display:none;min-width:0;border:none;border-left:2px solid #B08A3C;box-shadow:none;padding:6px 0 10px 14px;margin:4px 0 6px;transform:none}
.nv2 .nv-item[data-open="true"]>.nv-sub{display:block}
.nv2 .nv-item[data-open="true"]>.nv-mega{display:block}
.nv2 .nv-mega{padding-bottom:10px}
.nv2 .nv-col+.nv-col{margin-top:12px}
.nv2 .nv-sub li a{padding:11px 8px;font-size:.9rem}
.nv2 .nv-foot{position:static;margin:8px 0 0;padding:12px 8px 0}
.nv2 .nv-mega .nv-foot{position:static;left:auto;right:auto;bottom:auto}
.nv2 .nav-cta{margin:16px 0 0}
.nv2 .nav-cta a{display:block;text-align:center;padding:14px}
}

/* ===== block ===== */

/* op-fit-v2 + op-mcta */
@media (max-width:640px){
html,body{overflow-x:hidden}
.brand-mark{height:34px}
.brand-en-main{font-size:.9rem;letter-spacing:.12em}
.brand-ja-sub{font-size:.6rem}
.header-inner{gap:10px}
.wrap{padding-left:18px;padding-right:18px}
.article-head h1{font-size:1.32rem;line-height:1.75}
.summary-box{padding:18px 16px}
table.data th,table.data td{font-size:.8rem}
}
#opMcta{position:fixed;left:0;right:0;bottom:0;z-index:9500;display:none;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -8px 24px rgba(20,53,95,.10)}
#opMcta.on{display:flex;gap:10px;align-items:center}
#opMcta .m-txt{flex:1;font-size:.72rem;line-height:1.5;color:var(--gray);min-width:0}
#opMcta .m-txt b{display:block;font-size:.8rem;color:var(--navy)}
#opMcta a{flex-shrink:0;background:var(--navy);color:#fff;font-size:.8rem;font-weight:600;padding:11px 18px;border-radius:2px;text-decoration:none;letter-spacing:.03em}
@media (min-width:641px){#opMcta{display:none!important}}
@media print{#opMcta{display:none!important}}
/* ================================================== */
/* op-table-v2: 表の可読性再設計（多列比較表の折返し・列幅問題を解消） */
/* 列幅は内容に応じて自動配分。行ラベルは中途改行させない。 */
table.data{table-layout:auto !important;min-width:600px}
table.data thead th{white-space:nowrap}
table.data th:first-child,table.data td:first-child{width:auto !important;max-width:15em;word-break:keep-all;line-break:strict;overflow-wrap:break-word}
table.data td:first-child{font-weight:600;color:#14355F;background:#F6F8FB}
table.data td{line-height:1.8}
table.data tbody tr:nth-child(even) td{background:#FAFBFD}
table.data tbody tr:nth-child(even) td:first-child{background:#F2F5F9}
table.data tr.total td{background:#fff}
table.data tr.total td:first-child{background:#F6F8FB}
@media (max-width:700px){table.data{min-width:640px}}

/* op-table-v2.2: デスクトップでは表をサイドバー際まで拡張（列幅+92px） */
@media (min-width:1025px){
.article-body .tbl-scroll{width:calc(100% + 92px);max-width:none}
.article-body .tbl-scroll table.data{width:100%}
}


/* ===== 記事タイプ別 追加ブロック（全151記事の和集合） ===== */

/* チュートリアル専用：Excel画面図 */
.xlfig{margin:26px 0;border:1px solid var(--line);background:#fff}
.xlfig .xl-titlebar{display:flex;align-items:center;gap:10px;background:#F3F2F1;border-bottom:1px solid #E1DFDD;padding:7px 12px}
.xlfig .xl-appicon{width:16px;height:16px;background:#217346;color:#fff;font-family:var(--font-en);font-weight:600;font-size:9px;display:flex;align-items:center;justify-content:center}
.xlfig .t-name{font-size:.7rem;color:#484644}
.xlfig table{width:100%;border-collapse:collapse;table-layout:fixed;background:#fff;font-size:.78rem}
.xlfig th{background:#F8F9FA;color:#6E7781;font-family:var(--font-en);font-weight:400;font-size:.68rem;text-align:center;border:1px solid #E1E4E8;height:20px}
.xlfig td{border:1px solid #E7EAEC;height:25px;padding:0 8px;overflow:hidden;white-space:nowrap;color:#24292F;text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-en)}
.xlfig td.lab{text-align:left;font-family:var(--font-sans);color:#24292F}
.xlfig td.hd{background:#14355F;color:#fff;font-weight:600;text-align:left;font-family:var(--font-sans)}
.xlfig td.ipt{color:#0B5CAB}
.xlfig td.fx{text-align:left;font-family:Consolas,Monaco,monospace;font-size:.72rem;color:#217346;outline:2px solid #217346;outline-offset:-2px}
.xlfig td.res{font-weight:700}
.xlfig td.dim{color:#98A2AC}
.xlfig figcaption{border-top:1px solid var(--line);padding:11px 16px;font-size:.76rem;color:var(--gray);line-height:1.85}
.stepno{display:inline-flex;align-items:center;justify-content:center;min-width:1.9em;height:1.9em;border-radius:50%;background:var(--navy);color:#fff;font-family:var(--font-en);font-weight:600;font-size:.85rem;margin-right:.5em;vertical-align:-.35em}
.doit{background:#F1F5F9;border-left:3px solid var(--navy);padding:14px 20px;margin:16px 0;font-size:.9rem}
.doit b{color:var(--navy)}

/* op-abfix-v1: 本文カラム(グリッドアイテム)のmin-width:auto暴発防止。幅広表はラッパー内横スクロールに閉じ込め、ページ横溢れを防ぐ */
.layout>.article-body{min-width:0}
