/* APPROVED DESIGN: S-03 / outline / yellow C / simple TOC. */
/* Typography approved: communication high school cafe, 2026-09-10. */
body.reading-page main h1,body.reading-page main h2,body.reading-page main h3,body.reading-page main h4{font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif!important;font-weight:700!important;line-height:1.4!important;letter-spacing:.4px!important;text-shadow:none!important;-webkit-text-stroke:0!important}body.reading-page .page-head h1{font-size:24px!important}body.reading-page .content-section h2{font-size:21px!important}body.reading-page .content-section h3{font-size:19.5px!important}
/* Cafe-style partial TOC: compact bottom control, first three chapters retained. */
body nav.toc>p,body nav.toc>strong{text-align:center!important;border:0!important;color:var(--blue,#0876cb)}
body nav.toc .toc-expand{display:block;margin:18px auto 0;padding:7px 14px;min-height:36px;background:#f7f7f7;color:var(--ink,#102a4b);border:0;border-radius:0;font-size:14px;line-height:1.6;box-shadow:none}
body nav.toc .toc-expand:hover{background:#eaf5ff}
body nav.toc li[hidden]{display:none!important}
body main h2:not(.no-decoration){background:var(--sky,#eaf5ff)!important;border:0!important;border-left:5px solid var(--blue,#0876cb)!important;border-radius:0!important;padding:17px 20px!important;color:var(--blue,#0876cb)!important;box-shadow:none!important;text-align:left!important;line-height:1.65!important}
body main h2::before,body main h2::after{content:none!important}
body main h3{position:relative;border:0!important;border-bottom:1px solid var(--line,#ccdfee)!important;background:linear-gradient(var(--blue,#0876cb),var(--blue,#0876cb)) left bottom/30% 2px no-repeat!important;padding:0 0 13px!important;border-radius:0!important;color:var(--blue,#0876cb)!important;box-shadow:none!important}
body main h3::before,body main h3::after{content:none!important}
body main h4{border:0!important;border-left:2px solid var(--blue,#0876cb)!important;background:none!important;padding:3px 0 3px 13px!important;color:var(--blue,#0876cb)!important}
body .button,body .button.primary,body .dock .button{background:#fff!important;color:var(--blue,#0876cb)!important;border:2px solid var(--blue,#0876cb)!important;border-radius:7px!important;box-shadow:none!important;transform:none!important;transition:opacity .2s ease!important}
body .button:hover,body .button:focus-visible{background:#fff!important;color:var(--blue,#0876cb)!important;opacity:.75;transform:none!important;box-shadow:none!important}
body .button::before,body .button::after{content:none!important}
body main mark,body main .marker,body main em{background:linear-gradient(transparent 40%,#ffe469 40%)!important;font-style:normal;box-decoration-break:clone;-webkit-box-decoration-break:clone}
body main em::before,body main em::after{content:none!important}
body nav.toc{background:#fff!important;border:1px solid var(--line,#ccdfee)!important;border-radius:0!important;padding:22px 26px!important;box-shadow:none!important}
body nav.toc>p,body nav.toc>strong{display:block;border-bottom:1px solid #edf0f2;padding-bottom:12px;font-weight:700}
body nav.toc ol{list-style:decimal!important;padding-left:24px!important}
body nav.toc li{padding:5px 0!important}
body nav.toc li::marker{color:var(--blue,#0876cb)}
body nav.toc li::before,body nav.toc a::before{content:none!important}
body nav.toc a{color:var(--navy,#052348)!important;text-decoration:none}
body nav.toc a:hover{text-decoration:underline}
.approved-reveal{animation:approved-slide .45s ease-out both}
@keyframes approved-slide{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.approved-reveal{animation:none!important}body .button{transition:none!important}}

body nav.toc .toc-toggle{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;background:#fff;color:var(--navy,#052348);border:0;border-bottom:1px solid var(--line,#ccdfee);padding:0 0 14px;margin:0;text-align:left;font-weight:700;min-height:44px}
body nav.toc .toc-action{color:var(--blue,#0876cb);font-size:.875rem;white-space:nowrap}
body nav.toc .toc-panel{display:grid;grid-template-rows:1fr;transition:grid-template-rows .24s ease-in-out}
body nav.toc .toc-panel.is-closed{grid-template-rows:0fr}
body nav.toc .toc-panel-inner{overflow:hidden;min-height:0}
body nav.toc .toc-panel ol{margin:16px 0 0}
body nav.toc .toc-panel.is-closed ol{visibility:hidden}
body main [id]{scroll-margin-top:24px}
@media(prefers-reduced-motion:reduce){body nav.toc .toc-panel{transition:none}}
/* Cafe reference: double horizontal rules, compact hierarchy, quiet bottom control. */
body nav.toc{position:relative;background:transparent!important;border:0!important;border-block:4px double var(--line,#ccdfee)!important;border-radius:0!important;padding:30px!important;margin:48px 4%!important;box-shadow:none!important;font-size:15px;line-height:1.6}
body nav.toc>p,body nav.toc>strong{display:block;text-align:center!important;border:0!important;margin:0 0 13.5px!important;padding:0!important;font-size:18px!important;font-weight:500!important;line-height:1!important;color:var(--blue,#0876cb)}
body nav.toc .toc-panel{display:block}
body nav.toc .toc-panel-inner{overflow:visible}
body nav.toc ol,body nav.toc ul,body nav.toc .toc-panel ol{list-style:none!important;margin:0!important;padding:0!important}
body nav.toc li{position:relative;list-style:none!important;margin:7.5px 0 3.75px!important;padding:0 0 0 18.75px!important;font-size:15px!important;line-height:1.6!important;font-weight:500}
body nav.toc li::before{content:""!important;position:absolute;left:2px;top:.55em;width:6px;height:6px;background:var(--blue,#0876cb);border:0;border-radius:50%;transform:none}
body nav.toc li ol,body nav.toc li ul{padding-left:6.75px!important}
body nav.toc li li{font-size:13.5px!important;margin:3.375px 0!important;padding-left:16.875px!important}
body nav.toc li li::before{left:3.375px;top:.35em;width:5px;height:7px;border-left:1px solid var(--blue,#0876cb);border-bottom:1px solid var(--blue,#0876cb);background:none;border-radius:0}
body nav.toc a{display:inline!important;padding:0!important;font-size:inherit!important;line-height:inherit!important;font-weight:inherit!important;color:var(--ink,#102a4b)!important;text-decoration:none}
body nav.toc a:hover{text-decoration:underline;text-underline-offset:3px}
body nav.toc .toc-expand{display:block;position:relative;width:auto;margin:10.5px auto 0!important;padding:7px 14px!important;min-height:36px;background:#f7f7f7!important;color:#333!important;border:0!important;border-radius:0!important;font-size:14px!important;font-weight:400;line-height:1.6;box-shadow:none;cursor:pointer;transform:none;transition:box-shadow .25s}
body nav.toc .toc-expand:hover{background:#f7f7f7!important;box-shadow:0 0 0 1px #ddd}
body nav.toc .toc-expand:focus-visible,body nav.toc a:focus-visible{outline:2px solid var(--blue,#0876cb);outline-offset:4px}
body nav.toc li[hidden]{display:none!important}
@media(max-width:600px){body nav.toc{margin:32px 0!important;padding:24px 16px!important}}

/* Approved article rules: 2026-09-10 */
body main mark,body main .marker{font-weight:700!important}
body nav.toc ol{overflow-anchor:none}
body nav.toc .toc-expand{touch-action:manipulation}
body.reading-page{font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif}
body.reading-page main h2,body.reading-page main h3,body.reading-page main h4{font-weight:700;letter-spacing:.4px}

/* Approved article assets */
.editorial-image{margin:24px 0 32px}.editorial-image img{width:100%;height:auto;display:block;border-radius:0}.webinar-contact{position:relative;isolation:isolate;color:#fff;text-align:center;background:#132c43;overflow:hidden}.webinar-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.webinar-contact:before{content:"";position:absolute;inset:0;background:rgba(4,19,33,.22);z-index:-1}.webinar-inner{max-width:1180px;margin:auto;padding:60px 28px 56px}.webinar-contact h2{color:white;font-size:clamp(25px,3.1vw,38px);font-weight:700;line-height:1.5;letter-spacing:.02em;margin:0 0 24px}.webinar-copy{font-size:16px;line-height:2;max-width:900px;margin:0 auto 30px}.webinar-copy p{margin:0}.webinar-actions{display:grid;grid-template-columns:1fr 1fr;max-width:840px;margin:auto;gap:32px}.webinar-cta-button{appearance:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:112px;padding:18px 24px;font-family:inherit;line-height:1.5;border:2px solid white;border-radius:4px;background:white;color:#0876cb;cursor:pointer;transition:background .15s}.webinar-cta-button span{font-size:13px;font-weight:400}.webinar-cta-button strong{font-size:22px;font-weight:700}.webinar-cta-button.webinar-secondary{background:transparent;color:#fff}.webinar-cta-button:hover{background:#eef7ff;color:#0876cb}.webinar-cta-button:focus-visible{outline:3px solid #ffce36;outline-offset:5px}.webinar-disclaimer{font-size:12px;color:#e0e8ef;margin:18px 0 0}.webinar-response{min-height:24px;font-size:13px;margin:10px 0 0}@media(max-width:650px){.webinar-inner{padding:36px 20px}.webinar-contact h2{font-size:24px!important}.webinar-actions{grid-template-columns:1fr;gap:14px}.webinar-cta-button{min-height:80px}.webinar-primary{grid-row:1}.webinar-copy{font-size:15px}.webinar-copy br{display:none}}body.reading-page main .webinar-contact h2{background:none!important;border:0!important;color:white!important;padding:0!important;font-size:28px!important;text-align:center!important}
@media(max-width:650px){body.reading-page main .webinar-contact h2{font-size:24px!important}}
body main .webinar-contact h2{background:none!important;border:0!important;color:white!important;padding:0!important;text-align:center!important}body main .webinar-cta-button{text-decoration:none}body main .webinar-contact{margin:48px 0}