:root{
  --lab-bg:#FFFFFF;
  --lab-panel:#F3F5F8;
  --lab-ink:#0E2B4A;
  --lab-accent:#2C3440;
  --lab-rule:#D6DEE6;
  --lab-muted:#5A6673;
  --lab-soft:#E9EEF3;
  --lab-link:#1F4B7A;
  --lab-warn:#7A3B2E;
  --lab-max:1180px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Noto Sans JP','Zen Kaku Gothic New',system-ui,-apple-system,sans-serif;
  color:var(--lab-accent);
  background:var(--lab-bg);
  line-height:1.75;
  font-size:16px;
}
h1,h2,h3,h4{
  font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
  color:var(--lab-ink);
  font-weight:600;
  letter-spacing:.01em;
}
h1{font-size:1.95rem;margin:0 0 .8rem}
h2{font-size:1.45rem;margin:2rem 0 .8rem;border-left:3px solid var(--lab-ink);padding-left:.8rem}
h3{font-size:1.15rem;margin:1.4rem 0 .6rem}
p{margin:.6rem 0}
a{color:var(--lab-link);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto;display:block}

.wrap{max-width:var(--lab-max);margin:0 auto;padding:0 24px}

.cookie-bar{
  position:fixed;top:0;left:0;right:0;z-index:2000;
  background:var(--lab-ink);color:#FFFFFF;
  border-bottom:2px solid var(--lab-accent);
  padding:14px 20px;
  display:none;
}
.cookie-bar.active{display:block}
.cookie-inner{max-width:var(--lab-max);margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:14px;justify-content:space-between}
.cookie-text{flex:1 1 320px;font-size:.92rem;line-height:1.6}
.cookie-actions{display:flex;gap:10px;flex-wrap:wrap}
.cookie-actions button{
  border:1px solid #FFFFFF;background:transparent;color:#FFFFFF;
  padding:8px 18px;cursor:pointer;font-family:inherit;font-size:.9rem;
}
.cookie-actions button.accept{background:#FFFFFF;color:var(--lab-ink);font-weight:600}

.site-header{
  border-bottom:1px solid var(--lab-rule);
  background:#FFFFFF;
  position:sticky;top:0;z-index:100;
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 0;gap:20px;flex-wrap:wrap;
}
.brand{display:flex;flex-direction:column;line-height:1.2}
.brand a{color:var(--lab-ink)}
.brand-name{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:700;font-size:1.1rem}
.brand-sub{font-size:.74rem;color:var(--lab-muted);letter-spacing:.04em}

.nav-main{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.nav-main a{color:var(--lab-accent);font-size:.93rem}
.nav-main a:hover{color:var(--lab-ink)}

.nav-accordion{position:relative}
.nav-accordion-toggle{
  background:none;border:none;font:inherit;cursor:pointer;
  color:var(--lab-accent);font-size:.93rem;display:inline-flex;align-items:center;gap:6px;padding:0;
}
.nav-accordion-panel{
  display:none;
  position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%);
  min-width:320px;background:#FFFFFF;border:1px solid var(--lab-rule);
  padding:10px 0;
}
.nav-accordion.open .nav-accordion-panel{display:block}
.nav-accordion-panel a{
  display:block;padding:10px 18px;font-size:.88rem;color:var(--lab-accent);
  border-left:2px solid transparent;
}
.nav-accordion-panel a:hover{background:var(--lab-panel);border-left-color:var(--lab-ink);text-decoration:none}

.cta-pill{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--lab-ink);color:#FFFFFF;
  padding:9px 18px;font-size:.88rem;font-weight:500;
  border:1px solid var(--lab-ink);
}
.cta-pill:hover{background:var(--lab-accent);border-color:var(--lab-accent);color:#FFFFFF;text-decoration:none}
.cta-outline{
  display:inline-flex;align-items:center;gap:8px;
  background:transparent;color:var(--lab-ink);
  padding:9px 18px;font-size:.88rem;font-weight:500;
  border:1px solid var(--lab-ink);
}
.cta-outline:hover{background:var(--lab-ink);color:#FFFFFF;text-decoration:none}

.hero-report{
  position:relative;min-height:500px;
  background:linear-gradient(rgba(14,43,74,.72),rgba(14,43,74,.78)),url('../img/home-report-hero.jpg') center/cover no-repeat;
  color:#FFFFFF;
  display:flex;align-items:center;
  padding:60px 0;
}
.hero-report h1{color:#FFFFFF;font-size:2.2rem;max-width:780px}
.hero-lead{font-size:1rem;max-width:720px;color:#E6EBF0;margin:1rem 0 1.6rem;line-height:1.8}
.hero-index{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid rgba(255,255,255,.3);
  border-bottom:1px solid rgba(255,255,255,.3);
  margin-top:2rem;
}
.hero-index a{
  color:#FFFFFF;padding:18px 14px;
  border-right:1px solid rgba(255,255,255,.2);
  display:block;font-size:.88rem;line-height:1.5;
}
.hero-index a:last-child{border-right:none}
.hero-index a:hover{background:rgba(255,255,255,.08);text-decoration:none}
.hero-index .idx-num{display:block;font-size:.72rem;letter-spacing:.2em;color:#B7C3D2;margin-bottom:4px}

section.module{padding:64px 0;border-bottom:1px solid var(--lab-rule)}
section.module.alt{background:var(--lab-panel)}
.module-head{display:flex;align-items:baseline;gap:18px;margin-bottom:26px;flex-wrap:wrap}
.module-num{
  font-family:'Zen Kaku Gothic New',sans-serif;
  font-size:.78rem;letter-spacing:.28em;color:var(--lab-muted);
  border:1px solid var(--lab-rule);padding:4px 10px;
}
.module-title{margin:0;font-size:1.55rem}

.two-col{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:40px;align-items:start}
.two-col > *{min-width:0}
.two-col img{border:1px solid var(--lab-rule);width:100%;height:auto}

.article-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--lab-rule);border-left:1px solid var(--lab-rule)}
.article-card{
  border-right:1px solid var(--lab-rule);
  border-bottom:1px solid var(--lab-rule);
  padding:26px 24px;background:#FFFFFF;
  display:flex;flex-direction:column;
}
.article-card .card-num{
  font-family:'Zen Kaku Gothic New',sans-serif;
  font-size:.72rem;letter-spacing:.26em;color:var(--lab-muted);
  margin-bottom:10px;
}
.article-card img{margin-bottom:14px;border:1px solid var(--lab-rule)}
.article-card h3{margin:0 0 8px;font-size:1.02rem;line-height:1.45}
.article-card h3 a{color:var(--lab-ink)}
.article-card p{font-size:.88rem;color:var(--lab-muted);margin:0 0 14px}
.article-card .card-link{margin-top:auto;font-size:.85rem;color:var(--lab-link);display:inline-flex;align-items:center;gap:6px}

.pillars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--lab-rule);border-left:1px solid var(--lab-rule)}
.pillar{
  border-right:1px solid var(--lab-rule);
  border-bottom:1px solid var(--lab-rule);
  padding:28px 22px;
}
.pillar .p-num{
  font-family:'Zen Kaku Gothic New',sans-serif;font-size:.76rem;letter-spacing:.22em;color:var(--lab-muted);
  display:block;margin-bottom:10px;
}
.pillar h3{margin:0 0 10px;font-size:1.02rem}
.pillar p{font-size:.88rem;color:var(--lab-muted);margin:0}

.faq-list{border-top:1px solid var(--lab-rule)}
.faq-item{border-bottom:1px solid var(--lab-rule)}
.faq-q{
  width:100%;text-align:left;background:#FFFFFF;border:none;
  padding:20px 20px;cursor:pointer;font-family:inherit;
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  font-size:1rem;color:var(--lab-ink);font-weight:500;
}
.faq-q:hover{background:var(--lab-panel)}
.faq-q .faq-icn{color:var(--lab-muted);flex-shrink:0}
.faq-a{display:none;padding:0 20px 20px;color:var(--lab-accent);font-size:.95rem;line-height:1.8}
.faq-item.open .faq-a{display:block}
.faq-item.open .faq-icn{transform:rotate(180deg)}

.closing-cta{background:var(--lab-ink);color:#FFFFFF;padding:60px 0;text-align:center}
.closing-cta h2{color:#FFFFFF;border:none;padding:0}
.closing-cta p{color:#D8DEE6;max-width:620px;margin:1rem auto 2rem}
.closing-cta .cta-pill{background:#FFFFFF;color:var(--lab-ink);border-color:#FFFFFF}
.closing-cta .cta-pill:hover{background:var(--lab-soft);color:var(--lab-ink)}
.closing-cta .cta-outline{border-color:#FFFFFF;color:#FFFFFF}
.closing-cta .cta-outline:hover{background:#FFFFFF;color:var(--lab-ink)}
.closing-cta .cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

.site-footer{background:#0A1F38;color:#D8DEE6;padding:50px 0 20px;font-size:.9rem}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:40px}
.footer-grid > *{min-width:0}
.footer-col h4{color:#FFFFFF;font-size:.92rem;margin:0 0 14px;letter-spacing:.06em}
.footer-col a{color:#D8DEE6}
.footer-col a:hover{color:#FFFFFF}
.footer-col ul{list-style:none;padding:0;margin:0}
.footer-col li{margin-bottom:8px;display:flex;gap:10px;align-items:flex-start}
.footer-col li i{color:#7F99B8;margin-top:3px}
.footer-bottom{
  border-top:1px solid #1B3556;margin-top:34px;padding-top:18px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  color:#8A98AA;font-size:.82rem;
}

.breadcrumb{font-size:.82rem;color:var(--lab-muted);padding:16px 0;border-bottom:1px solid var(--lab-rule)}
.breadcrumb a{color:var(--lab-muted)}
.breadcrumb a:hover{color:var(--lab-ink)}
.breadcrumb .sep{margin:0 6px;color:var(--lab-rule)}

.page-hero{
  background:var(--lab-panel);padding:54px 0;border-bottom:1px solid var(--lab-rule);
}
.page-hero h1{margin:0 0 .6rem}
.page-hero .lead{color:var(--lab-muted);max-width:760px;font-size:1rem}

.content-body{padding:50px 0}
.content-body ul,.content-body ol{padding-left:1.4rem}
.content-body li{margin:.35rem 0}
.content-body blockquote{
  border-left:3px solid var(--lab-ink);background:var(--lab-panel);
  padding:14px 20px;margin:1rem 0;color:var(--lab-accent);font-size:.95rem;
}

.qa-block{
  background:var(--lab-panel);border-left:3px solid var(--lab-ink);
  padding:16px 20px;margin:1.3rem 0;
}
.qa-block .qa-label{
  display:inline-block;font-family:'Zen Kaku Gothic New',sans-serif;
  font-size:.76rem;letter-spacing:.22em;color:var(--lab-ink);
  margin-bottom:6px;
}

.article-meta{color:var(--lab-muted);font-size:.86rem;margin-bottom:1.2rem}
.article-meta i{margin-right:5px}

.prevnext{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;
  border-top:1px solid var(--lab-rule);margin-top:50px;
}
.prevnext a{
  display:block;padding:22px 24px;color:var(--lab-accent);
  border-right:1px solid var(--lab-rule);
}
.prevnext a:last-child{border-right:none;text-align:right}
.prevnext a:hover{background:var(--lab-panel);text-decoration:none}
.prevnext .pn-label{display:block;font-size:.72rem;letter-spacing:.24em;color:var(--lab-muted);margin-bottom:6px}
.prevnext .pn-title{font-size:.96rem;color:var(--lab-ink)}

.contact-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:40px;align-items:start;padding:50px 0}
.contact-layout > *{min-width:0}
.contact-info{background:var(--lab-panel);padding:30px 26px}
.contact-info h3{margin-top:0}
.contact-info ul{list-style:none;padding:0;margin:0}
.contact-info li{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px;font-size:.93rem}
.contact-info li i{color:var(--lab-ink);font-size:1.1rem;margin-top:2px}

.contact-form-card{background:#FFFFFF;border:1px solid var(--lab-rule);padding:30px 28px}
.contact-form-card h3{margin-top:0}
.form-row{margin-bottom:18px}
.form-row label{display:block;font-size:.86rem;color:var(--lab-ink);margin-bottom:6px;font-weight:500}
.form-row input,.form-row textarea{
  width:100%;padding:10px 12px;border:1px solid var(--lab-rule);
  font-family:inherit;font-size:.95rem;color:var(--lab-accent);
  background:#FFFFFF;
}
.form-row textarea{min-height:140px;resize:vertical}
.form-row input:focus,.form-row textarea:focus{outline:2px solid var(--lab-ink);outline-offset:-1px;border-color:var(--lab-ink)}
.form-submit{
  background:var(--lab-ink);color:#FFFFFF;border:none;
  padding:12px 28px;font-family:inherit;font-size:.95rem;cursor:pointer;
}
.form-submit:hover{background:var(--lab-accent)}

.map-wrap{padding:0 0 50px}
.map-wrap iframe{width:100%;height:360px;border:1px solid var(--lab-rule);display:block}
.map-meta{margin-top:10px;font-size:.85rem;color:var(--lab-muted)}

.modal-overlay{
  display:none;position:fixed;inset:0;background:rgba(14,43,74,.6);
  z-index:3000;align-items:center;justify-content:center;padding:20px;
}
.modal-overlay.active{display:flex}
.modal-box{
  background:#FFFFFF;max-width:440px;width:100%;padding:30px 28px;
  border-top:4px solid var(--lab-ink);
}
.modal-box h3{margin-top:0}
.modal-box button{
  background:var(--lab-ink);color:#FFFFFF;border:none;padding:10px 22px;
  font-family:inherit;font-size:.92rem;cursor:pointer;margin-top:14px;
}

.insights-list{padding:50px 0}
.insights-list .article-grid{grid-template-columns:repeat(2,minmax(0,1fr))}

.legal-toc{
  background:var(--lab-panel);padding:20px 24px;margin-bottom:30px;
  border-left:3px solid var(--lab-ink);
}
.legal-toc h4{margin:0 0 10px;font-size:.95rem}
.legal-toc ol{margin:0;padding-left:1.4rem;font-size:.9rem;color:var(--lab-accent)}
.legal-toc li{margin:4px 0}

@media (max-width:900px){
  .two-col,.contact-layout,.footer-grid{grid-template-columns:minmax(0,1fr);gap:30px}
  .article-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pillars{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-index{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-index a{border-right:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2)}
  .hero-report h1{font-size:1.7rem}
}
@media (max-width:600px){
  .article-grid,.insights-list .article-grid,.pillars{grid-template-columns:minmax(0,1fr)}
  .prevnext{grid-template-columns:minmax(0,1fr)}
  .prevnext a{border-right:none;border-bottom:1px solid var(--lab-rule);text-align:left !important}
  .header-inner{flex-direction:column;align-items:flex-start}
  .nav-main{width:100%;overflow-x:auto}
  h1{font-size:1.5rem}
  .hero-report{min-height:420px;padding:40px 0}
  .hero-report h1{font-size:1.45rem}
}
