/* Shared shell: namespaced to coexist with existing course templates/plugins. */
:root{--wbr-ink:#172d43;--wbr-blue:#126397;--wbr-teal:#17777b;--wbr-line:#dce5e8;--wbr-font:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
html{scroll-padding-top:112px}
body{margin:0}
/* Preserve native hidden semantics without relying on Bootstrap's global reset. */
.ai-chatbot [hidden]{display:none!important}
.wbr-header,.wbr-footer,.wbr-breadcrumb,.wbr-skip{font-family:var(--wbr-font);box-sizing:border-box;line-height:1.65;letter-spacing:normal}
.wbr-header *,.wbr-footer *,.wbr-breadcrumb *{box-sizing:border-box}
.wbr-header a,.wbr-footer a,.wbr-breadcrumb a{text-decoration:none}
.wbr-header a:focus-visible,.wbr-footer a:focus-visible,.wbr-breadcrumb a:focus-visible,.wbr-menu-toggle:focus-visible{outline:3px solid #e6a526;outline-offset:5px;border-radius:4px}
.wbr-sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.wbr-skip{position:fixed;top:8px;left:12px;transform:translateY(-180%);z-index:100001;background:#172d43;color:white!important;padding:12px 20px;border-radius:8px}
.wbr-skip:focus{transform:translateY(0)}
.wbr-header{position:sticky;top:0;z-index:1000;background:rgba(250,250,246,.98);border-bottom:1px solid var(--wbr-line);color:var(--wbr-ink)}
body.admin-bar .wbr-header{top:32px}
.wbr-header-inner{max-width:1380px;min-height:92px;padding:12px 36px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:28px}
.wbr-brand{display:flex;align-items:center;gap:12px;flex-shrink:0;color:var(--wbr-ink)!important}
.wbr-brand img{display:block;width:62px;height:55px;object-fit:contain;max-width:none}
.wbr-brand>span{font-size:16px;font-weight:700;letter-spacing:.04em;line-height:1.5;white-space:nowrap}
.wbr-brand>span small{display:block;font-size:12px;font-weight:500;color:#4c7283;letter-spacing:.09em;margin-top:2px}
.wbr-nav{display:flex;align-items:center;gap:21px}
.wbr-nav>a{display:block;color:var(--wbr-ink);font-size:13px;font-weight:700;padding:10px 0;white-space:nowrap;transition:color .15s}
.wbr-nav>a:hover{color:var(--wbr-blue)}
.wbr-nav>a.wbr-nav-flagship{color:#2349cc;border-bottom:2px solid #2349cc}
.wbr-nav>a.wbr-nav-contact{background:#234be0;color:#fff;padding:12px 19px;border-radius:3px;display:flex;gap:18px}
.wbr-nav>a.wbr-nav-contact:hover{background:var(--wbr-blue)}
.wbr-menu-toggle{display:none}
.wbr-breadcrumb{max-width:1260px;display:flex;align-items:baseline;flex-wrap:wrap;gap:12px;margin:0 auto;padding:16px 30px;font-size:12px;color:#516474}
.wbr-breadcrumb a{color:#126397;text-decoration:underline;text-underline-offset:3px}
.wbr-breadcrumb>span:last-child{overflow-wrap:anywhere}
#wbr-content:focus{outline:none}
.wbr-footer{background:#112a3c;color:#d1dde6;padding:64px 30px 0;position:relative;z-index:1}
.wbr-footer-inner{max-width:1200px;margin:auto;display:grid;grid-template-columns:1.05fr 1.65fr;gap:80px}
.wbr-footer-brand>a:first-child{font-family:Arial,sans-serif;font-size:25px;font-weight:800;letter-spacing:.08em;color:#fff;line-height:1.2;display:inline-block}
.wbr-footer-brand>a:first-child span{display:block;font-size:13px;letter-spacing:.3em;margin-top:8px}
.wbr-footer .wbr-footer-brand p{font-size:13px;line-height:2;margin:24px 0 16px;color:#bacbd7}
.wbr-footer .wbr-footer-about{font-size:12px;color:#fff;border-bottom:1px solid #688496;padding-bottom:5px}
.wbr-footer-links{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:30px}
.wbr-footer .wbr-footer-links h2{font-size:13px;font-weight:700;color:#fff;margin:0 0 19px;line-height:1.6}
.wbr-footer-links a{display:block;color:#bacbd7;font-size:12px;margin:0 0 12px;line-height:1.7}
.wbr-footer-links a.wbr-footer-flagship{color:#e2ff77;font-weight:700}
.wbr-footer a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.wbr-footer-bottom{max-width:1200px;margin:48px auto 0;border-top:1px solid #345063;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:23px 0}
.wbr-footer-bottom p,.wbr-footer-bottom a{font-size:11px;margin:0;color:#b3c6d2}
@media(max-width:1320px){.wbr-nav{gap:22px}}
@media(max-width:1100px){
 .wbr-header-inner{padding:10px 24px;min-height:80px;flex-wrap:wrap;gap:10px}
 .wbr-brand img{width:60px;height:53px}
 .wbr-header.wbr-nav-ready .wbr-menu-toggle{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #c8d8df;border-radius:7px;padding:10px 12px;color:var(--wbr-ink);font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;min-height:44px}
 .wbr-menu-lines{width:17px;height:12px;border-top:2px solid currentColor;border-bottom:2px solid currentColor;position:relative}
 .wbr-menu-lines:after{content:"";height:2px;background:currentColor;position:absolute;left:0;right:0;top:4px}
 .wbr-nav{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:0 24px;padding:10px 0}
 .wbr-nav>a{padding:13px 4px;border-bottom:1px solid var(--wbr-line);font-size:14px;white-space:normal}
 .wbr-nav>a.wbr-nav-contact{margin-top:10px;justify-content:space-between}
 .wbr-header.wbr-nav-ready .wbr-nav{display:none}
 .wbr-header.wbr-menu-open .wbr-nav{display:grid;max-height:calc(100dvh - 110px);overflow:auto}
 .wbr-footer-inner{gap:42px;grid-template-columns:1fr 2fr}
 .wbr-footer-links{gap:22px}
 html{scroll-padding-top:96px}
}
@media(max-width:760px){
 .wbr-header-inner{padding:8px 20px;min-height:74px}
 .wbr-brand img{width:48px;height:43px}
 .wbr-brand>span{font-size:13px}
 .wbr-brand>span small{font-size:11px}
 body.admin-bar .wbr-header{top:46px}
 .wbr-breadcrumb{padding:14px 20px;font-size:11px}
 .wbr-footer{padding:45px 24px 0}
 .wbr-footer-inner{grid-template-columns:1fr;gap:38px}
 .wbr-footer-links{grid-template-columns:1fr 1fr;gap:28px}
 .wbr-footer-links>div:last-child{grid-column:1/-1}
 .wbr-footer-links>div:last-child a{display:inline-block;margin-right:20px}
 .wbr-footer-bottom{align-items:flex-start;gap:18px;flex-direction:column;margin-top:32px}
}
@media(max-width:370px){
 .wbr-header-inner{padding-inline:16px}
 .wbr-nav{grid-template-columns:1fr}
 .wbr-nav>a.wbr-nav-contact{gap:10px;padding:12px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.wbr-header *{transition:none!important}}
